home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 1B
/
DATAFILE_PDCD1B.iso
/
_tex
/
tex
/
source
/
texextr2
/
!TeX
/
Misc
/
TeXmacros
/
tugbot
/
sty
next >
Wrap
Text File
|
1987-09-23
|
44KB
|
1,121 lines
% ***** TUGBOT86.STY ***** 8 Jul 87, bb
%
% WARNING -- UNDER CONSTRUCTION
%
% This file contains the TeX82 instructions for preparing a document
% in TUGboat format. It is based on the TeX80 TUGboat format and on
% AMSPPT.STY (AMS-TeX82). It is compatible with, but does not
% require (or load) AMS-TeX. It assumes that PLAIN.TEX is preloaded.
%
% This version differs in significant ways from the production version
% used at the AMS to generate the published TUGboat; particular
% features of the production version address idiosyncracies of the
% Alphatype CRS typesetter, used to prepare camera copy, which are not
% relevant to output prepared on, e.g., a laser printer.
%
% Explicit registers:
% Counters: 0 = \pageno (PLAIN)
% 1 = \xcol -- column on page (values 1 or 2)
% 2 = \spoolno -- sequential segment count
% Files: 1 = page number xref definitions
\def\makeatletter{\catcode`\@=11 }
\chardef\other=12
\def\makeatother{\catcode`\@=\other}
\makeatletter % used, as in PLAIN, in protected control sequences
% Stuff different from PLAIN, or reiterated for clarity
\def~{\penalty\@M \ } % tie -- this is PLAIN value; it is reset in AMS-TeX
\clubpenalty=10000
\widowpenalty=10000
\normallineskiplimit=1pt
\newif\ifNoParIndent \NoParIndentfalse
\def \NoParIndent{\parindent=0pt \NoParIndenttrue}
\newdimen\normalparindent \normalparindent=20pt % plain = 20pt
\def \NormalParIndent{\global\parindent=\normalparindent
\global\NoParIndentfalse}
\NormalParIndent
% set up auxiliary `page numbers'
% \pageno = \count0 as used in PLAIN
\countdef\xcol=1 \xcol=1
\countdef\spoolno=2 \spoolno=1
% some things with the same names as in, or reiterated from, AMS-TeX
\def \BlackBoxes{\overfullrule=5pt }
\def \NoBlackBoxes{\overfullrule=0pt }
\def \document{} % override an AMS-TeX convention
\def \linebreak{\unskip\break}
\def \newline{\hskip0pt plus\pagewd \break}
%\let\brk=\linebreak % TeX80 version
%\let\lbrk=\newline % TeX80 version
\output{\output@}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% ***** utility registers and definitions ***** %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test registers for transient use; paired - internal/external
\newbox\T@stBox \newbox\TestBox
\newcount\T@stCount \newcount\TestCount
\newdimen\T@stDimen \newdimen\TestDimen
% \cs existence test, stolen from TeXbook exercise 7.7
\def \ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax }
% Smashes repeated from AMS-TeX; PLAIN implements only full \smash .
\newif\iftop@ \newif\ifbot@
\def\topsmash{\top@true\bot@false\smash@}
\def\botsmash{\top@false\bot@true\smash@}
\def\smash{\top@true\bot@true\smash@}
\def\smash@{\relax\ifmmode\def\next{\mathpalette\mathsm@sh}%
\else\let\next\makesm@sh\fi \next }
\def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\box\z@}
% Vertical `laps'; cf. \llap and \rlap
\long\def\ulap#1{\vbox to \z@{\vss#1}}
\long\def\dlap#1{\vbox to \z@{#1\vss}}
% And centered horizontal and vertical `laps'
\def\xlap#1{\hbox to \z@{\hss#1\hss}}
\long\def\ylap#1{\vbox to \z@{\vss#1\vss}}
\long\def\zlap#1{\ylap{\xlap{#1}}}
% Avoid unwanted vertical glue when making up pages.
\def \basezero{\baselineskip\z@ \lineskip\z@}
% Today's date, to be printed on drafts. Based on TeXbook, p.406.
\def\today{\number\day\space \ifcase\month\or
Jan \or Feb \or Mar \or Apr \or May \or Jun \or
Jul \or Aug \or Sep \or Oct \or Nov \or Dec \fi
\number\year}
\newif\ifPrelimDraft \PrelimDraftfalse
\def\PrelimDraft{\PrelimDrafttrue
\def\midrtitle{\tensl preliminary draft, \today}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% ***** fonts and friends ***** %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Struts give ascenders and descenders to assist in baseline alignment
% (e.g. of adjoining vertical boxes); useful only with text fonts.
%
% \strut is defined in PLAIN . The structure of \strutt is equivalent.
\newbox\struttbox
\def\strutt{\relax\ifmmode\copy\struttbox\else\unhcopy\struttbox\fi}
% Struts are given the following dimensions for use in TUGboat:
%
% \strut = height/depth of parenthesis in current font
% (not the same as PLAIN)
% \strutt height + depth = \normalbaselineskip,
% height = same as \strut
% (equivalent to PLAIN \strut )
% The fonts below are sufficient for most ordinary TUGboat production.
% Additional titling fonts are defined elsewhere, and occasionally an
% extra font will be needed for a particular item (e.g. the device
% charts) and defined in that file.
% all PLAIN CM fonts
\font\tenrm=cmr10
\font\ninerm=cmr9
\font\eightrm=cmr8
\font\sevenrm=cmr7
\font\sixrm=cmr6
\font\fiverm=cmr5
\font\teni=cmmi10 \skewchar\teni='177
\font\ninei=cmmi9 \skewchar\ninei='177
\font\eighti=cmmi8 \skewchar\eighti='177
\font\seveni=cmmi7 \skewchar\seveni='177
\font\sixi=cmmi6 \skewchar\sixi='177
\font\fivei=cmmi5 \skewchar\fivei='177
\font\tensy=cmsy10 \skewchar\tensy='60
\font\ninesy=cmsy9 \skewchar\ninesy='60
\font\eightsy=cmsy8 \skewchar\eightsy='60
\font\sevensy=cmsy7 \skewchar\sevensy='60
\font\sixsy=cmsy6 \skewchar\sixsy='60
\font\fivesy=cmsy5 \skewchar\fivesy='60
\font\tenex=cmex10
\font\tenbf=cmbx10
\font\ninebf=cmbx9
\font\eightbf=cmbx8
\font\sevenbf=cmbx7
\font\sixbf=cmbx6
\font\fivebf=cmbx5
\font\tentt=cmtt10
\font\ninett=cmtt9
\font\eighttt=cmtt8
\font\tensl=cmsl10
\font\ninesl=cmsl9
\font\eightsl=cmsl8
%\font\sevensl=amsl7
\let\sevensl=\eightsl % for distribution
\font\tenit=cmti10
\font\nineit=cmti9
\font\eightit=cmti8
\font\sevenit=cmti7
\font\tenupit=cmu10
\font\tensmc=cmcsc10
\font\tentex=cmtex10
\def \mit{\fam\@ne}
\def \cal{\fam\tw@}
\def \sy{\cal} % old name
% fonts added at AMS
% \font\eightex=amex8
% \newfam\cyrfam % uncomment if needed
% \font\tencyr=mcyr10
% \font\ninemcyr=mcyr9
% \font\eightcyr=mcyr8
% \font\sixcyr=mcyr6
%\font\ninesmc=amcsc9
\let\ninesmc=\tensmc % temporary expedient
%\font\eightsmc=amcsc8
\let\eightsmc=\tensmc % temporary expedient
%\font \sixteenssb=amssbx16
\font \sixteenssb=cmssbx10 scaled \magstep3 % for distribution
%\font \twelvessb=amssbx12
\font \twelvessb=cmssbx10 scaled \magstep1 % for distribution
\font \tenssb=cmssbx10
%\font \eightssb=amssbx8
%\font \seventphon=tphon7 % used in macro index and device list
\newfam\titlefam
\def \titlefont{\textfont\titlefam=\sixteenssb
\scriptfont\titlefam=\twelvessb \scriptscriptfont\titlefam=\tenssb
\fam\titlefam \sixteenssb \baselineskip=16pt }
% Formerly \twelvessb and \eightssb
% Planned additions and changes:
%
% Dynamic loading of fonts, probably in groups according to size
% Removal of \rm, \bf, etc., from \*point expansions, replacement
% by generic \rm, \bf, etc. definitions
% Mechanism for switching neatly between serif and sans-serif
% Allow text to be a bit stretchier than the built-in setting;
% TeXbook, page 433, 355
\newdimen\normaltenptstretch \normaltenptstretch=1.6667pt
\newdimen\extratenptstretch \extratenptstretch=4pt
\def\NormalTenPointSpacing{\fontdimen3\te