% PCWSTY.TEX - This is the file of definitions to handle the PR.DOC output % which converts a file from PC-WRITE format to TeX format. % \magnification=\magstep1 %\hsize=6truein \hoffset=.5truein % use this line for theses to give 1«" margin % sans-serif fonts invoked by Alt-E (elite typesize, originally 12cpi) \font\zrm=cmss10 \font\zit=cmssi10 \font\zbf=cmssbx10 \font\zsc=cmss8 % % small cmr fonts invoked by Alt-C (originally compressed type) \font\srm=cmr8 \font\sbf=cmbx8 \font\sit=cmti8 \font\ssl=cmsl8 \font\stt=cmtt8 \font\ssc=cmr6 % % use the narrower bold for default bold (Alt-B) \font\bf=cmb10 % and bold extended for Alt-S (originally shadow-print) \font\bx=cmbx10 % % 17pt fonts for the Alt-D (double-width type) command \font\brm=cmr17 \font\bit=cmti10 scaled \magstep2 \font\bsl=cmsl10 scaled \magstep2 \font\bbf=cmbx10 scaled \magstep2 \font\btt=cmtt10 scaled \magstep2 \font\bsc=cmcsc10 scaled \magstep2 % % cmu gives us the upright pounds sterling sign \font\upr=cmu10 % caps and small caps invoked by Alt-P \font\sc=cmcsc10 % also grab bold italics %\font\ibf=cmbxti10 scaled \magstep1 %\font\slbf=cmbxsl10 scaled \magstep1 %\font\cu=cuplt60 at 60truept % % define the three typestyle changes \def\sans{\let\rm=\zrm\let\it=\zit\let\bf=\zbf\let\sl=\zit\let\bx=\zbf \let\sc=\zsc\rm} \def\smaller{\let\rm=\srm\let\it=\sit\let\bf=\sbf\let\sl=\ssl\let\bx=\sbf \let\sc=\ssc\let\tt=\stt\rm\baselineskip=9pt} \def\bigger{\let\rm=\brm\let\it=\bit\let\bf=\bbf\let\sl=\bsl\let\tt=\btt \let\sc=\bsc\let\bx=\bbf\let\stt=\tt\rm} %\def\bold{\let\rm=\bf\let\bf=\bx\let\it=\ibf\let\sl=\slbf\let\sc=\sbf\rm} %\def\temp{} %\def\ital{\let\temp=\rm\let\rm=\it\let\it=\temp\let\bf=\ibf\let\sl=\slbf % \let\sc=\ssl\let\bx=\ibf\rm} % % redefine vertical bar character to active and equate it with a prime mark % for use as abbreviation for feet (or twice for inches) \catcode`\|=13 \def|{\ifmmode\vert\else\ifnum\uflag=1 \char'174 \else$'$\fi\fi} % redefine slash to active so it can be used in math mode for \over \catcode`\/=13 \def/{\ifmmode\over\else\char'057 \fi} % make backslash and otErs produce the right thing in typewriter type \newcount\fflag \fflag=0 \def\\{\ifnum\fam=\ttfam\char'134 \else\ifnum\fflag=1 \char'134 \else$\backslash$\fi\fi} \def\lb{\ifnum\fam=\ttfam\char'173 \else\ifnum\uflag=1 \char'173 \else\ifmmode\bgroup\else$\{$\fi\fi\fi} \def\rb{\ifnum\fam=\ttfam\char'175 \else\ifnum\uflag=1 \char'175 \else\ifmmode\egroup\else$\}$\fi\fi\fi} \def\lt{\ifnum\fam=\ttfam\char'074 \else\ifnum\uflag=1 \char'074 \else\ifmmode<\else$\langle$\fi\fi\fi} \def\gt{\ifnum\fam=\ttfam\char'076 \else\ifnum\uflag=1 \char'076 \else\ifmmode>\else$\rangle$\fi\fi\fi} \def\tilde{\ifnum\fam=\ttfam\char'176 \else\ifnum\uflag=1 \char'176 \else$\sim$\fi\fi} % similarly with caret, but take account of superscripting work \def\caret{\ifnum\fam=\ttfam{\char'136}% \else\ifnum\uflag=1 \char'136% \else\ifmmode^\else{$\wedge$}\fi\fi\fi} % get math characters to work right in and out of math mode \def\mt#1{\ifmmode#1\else$#1$\fi} % ditto sub- and super-scripts \def\sup#1{\ifmmode{^{\rm #1}}\else$\rm^{#1}$\fi} \def\sub#1{\ifmmode{_{\rm #1}}\else$\rm_{#1}$\fi} % define a verbatim mode \newcount\uflag \uflag=0 \def\verbon{\medbreak\begingroup\stt\baselineskip=9pt\parskip=0pt plus.1pt \global\uflag=1 \global\fflag=1 \obeylines\obeyspaces} {\obeyspaces\global\let =\ } \def\verboff{\endgroup\global\uflag=0 } % define neater itemisation \def\element#1 {\item{#1}} % % define pounds sterling sign, cents, yen \def\pounds{{\upr\$}} \def\cents{\hbox{\rm\rlap/c}} \def\yen{\hbox{\rm\rlap{Y}{$-$}}} % % define double-quote char as active and make it toggle between left and right % (opening and closing quotes). Can't do this with single-quote because it % also gets used as an apostrophe which would upset the counter logic. Maybe % someone could work out a way of testing if the character preceding a single % quote was a space or line-end, then you could say if so, make it an opening % single quote. Check also made for if you are in typewriter type, if so, use % plain double-quote character and try to do the same in underlined mode, % which is a math box, family -1, which failed before. \catcode`\"=13 \newcount\quotes \def"{\ifnum\fam=\ttfam\char'042 \else \ifnum\uflag=1 \char'042 \else % \ifnum\fam<0 \char'042 \else \global\advance\quotes by1 \ifodd\quotes``\else''\fi\fi\fi} % % tidy up footnoting, using the normal \footnote macro but doing automatic % numbering \newcount\footnum \setbox\strutbox=\hbox{\vrule height10pt depth4pt width0pt}% for tabulations \def\footstrut{\vbox to 9pt{}} \newbox\fstrutbox \setbox\fstrutbox=\hbox{\vrule height1pt depth 1pt width0pt} \def\fstrut{\relax\ifmmode\copy\fstrutbox\else\unhcopy\fstrutbox\fi} \begingroup\catcode`\@=11 \global\def\@foot{\fstrut\egroup} \global\def\vfootnote#1{\insert\footins\bgroup% \interlinepenalty\interfootnotelinepenalty% \splittopskip\ht\strutbox%topbaseline for broken footnotes% \splitmaxdepth\dp\strutbox\floatingpenalty\@MM% \leftskip\z@skip\rightskip\z@skip\spaceskip\z@skip\xspaceskip\z@skip% \baselineskip=9pt\item{#1}\footstrut\futurelet\next\fo@t} \endgroup \def\fn#1{\global\advance\footnum by1 \footnote{$^{\number\footnum}$} {\global\fflag=1 {\smaller #1}}\global\fflag=0 } % % fudge \narrower to apply to one paragraph only \def\squeeze{\par\noindent\ignorespaces\let\endgraf=\par% \edef\restorehsize{\leftskip=0pt\rightskip=\leftskip}% \def\par{\endgraf\restorehsize\noindent\ignorespaces\let\par=\endgraf}% \leftskip=2\parindent\rightskip=\leftskip} % % define fractions (TeXbook, p311) \def\frac#1/#2 {\leavevmode\kern.1em \raise.6ex\hbox{\the\scriptfont0 #1}\kern-.1em /\kern-.2em\lower.2ex\hbox{\the\scriptfont0 #2}} % define the fixed-space character \def\fixspace{{\tt\char'040}} % % ensure baselines are 12pt apart to begin with \baselineskip=12pt \parskip=.5em plus.25em minus.25em \tolerance=5000 % % Fudge a \la for the beginning of \latex \def\La{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em}} % \def\insertplot:#1,#2,#3!{\par\hbox{\hskip#3 \vbox to#2 {\special{hp: plotfile #1 }\vfil}}} % \def\wider{\global\parindent=1in} \def\normal{\global\parindent=20pt} \def\tighter{\global\divide\parskip by2} \def\looser{\global\multiply\parskip by2} \def\front{\global\pageno=0} \def\folio{\ifnum\pageno=0 \else\ifnum\pageno<0 \romannumeral-\pageno \else\number\pageno\fi\fi} \def\emgap{\vskip1em\noindent\ignorespaces}% \def\newpage{\vfill\eject\noindent\ignorespaces}% \def\newline{\par\vskip-\parskip\noindent\ignorespaces} \def\csc#1{{\sc\lowercase{#1}}} \def\uline#1{$\underline{\global\uflag=1\hbox{#1}\global\uflag=0}$} \def\newpara{\par\noindent\ignorespaces}% % \message{PC-WRITeX v2.3} % \hbox{}