summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/plain/tugboat-plain/tugboat.cmn
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-04-02 23:48:15 +0000
committerKarl Berry <karl@freefriends.org>2007-04-02 23:48:15 +0000
commite0f182fd8b27038d7b911a1e9a6cdb180ebced8e (patch)
tree3b8d28ca765c26640d1d18a7b073e32e66f3dc41 /Master/texmf-dist/tex/plain/tugboat-plain/tugboat.cmn
parent840c92f5af1df8211bed142e425912394a23ba7a (diff)
separate tugboat-plain package a la ctan
git-svn-id: svn://tug.org/texlive/trunk@4101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/plain/tugboat-plain/tugboat.cmn')
-rw-r--r--Master/texmf-dist/tex/plain/tugboat-plain/tugboat.cmn1104
1 files changed, 1104 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/plain/tugboat-plain/tugboat.cmn b/Master/texmf-dist/tex/plain/tugboat-plain/tugboat.cmn
new file mode 100644
index 00000000000..854ff5e7146
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/tugboat-plain/tugboat.cmn
@@ -0,0 +1,1104 @@
+%% @texfile{
+%% filename = "tugboat.cmn",
+%% version = "1.18",
+%% date = "2006/06/07",
+%% time = "13:41:59 EDT",
+%% checksum = "29788 1064 3117 35978",
+%% filetype = "common macros for TUGboat",
+%% copyright = "Copyright 1993-1996, 2006 TeX Users Group.
+%% Unlimited copying and redistribution of this file
+%% are permitted as long as this file is not
+%% modified. Modifications (and redistribution of
+%% modified versions) are also permitted, but only if
+%% the resulting file is renamed."
+%% author = "TeX Users Group",
+%% address = "TeX Users Group,
+%% P.O.Box 2311,
+%% Portland, OR 97208-2311,
+%% USA",
+%% telephone = "+1 503 223-9994",
+%% FAX = "+1 206 203-3960",
+%% email = "TUGboat@tug.org",
+%% codetable = "ISO/ASCII",
+%% keywords = "tex users group, tugboat, common macros",
+%% supported = "yes",
+%% abstract = "This file contains macros common to both
+%% the PLAIN and LaTeX style files for TUGboat,
+%% the Communications of the TeX Users Group.
+%% Among other things, it contains supplementary
+%% definitions for abbreviations and logos that
+%% appear in TUGboat.",
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fileversion{v1.18}
+\def\filedate{2006/06/07}
+
+\message{File `TUGBOAT.CMN' \fileversion \space\space <\filedate>}
+
+%
+% ***** TUGBOAT.CMN *****
+%
+% See the bottom of the file (after \endinput) for a list of
+% items defined.
+%
+
+% *************************************************************************
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** helpful shorthand *****
+%
+
+% The following allow for easier changes of category. These require that
+% the character be addressed as a control-sequence: e.g. \makeescape\/ will
+% make the / an escape character.
+
+\def\makeescape#1{\catcode`#1=0 }
+\def\makebgroup#1{\catcode`#1=1 }
+\def\makeegroup#1{\catcode`#1=2 }
+\def\makemath#1{\catcode`#1=3 }
+\def\makealign#1{\catcode`#1=4 }
+\def\makeeol#1{\catcode`#1=5 }
+\def\makeparm#1{\catcode`#1=6 }
+\def\makesup#1{\catcode`#1=7 }
+\def\makesub#1{\catcode`#1=8 }
+\def\makeignore#1{\catcode`#1=9 }
+\def\makespace#1{\catcode`#1=10 }
+\def\makeletter#1{\catcode`#1=11 }
+\def\makeother#1{\catcode`#1=12 }
+\def\makeactive#1{\catcode`#1=13 }
+\def\makecomment#1{\catcode`#1=14 }
+
+\def\makeatletter{\catcode`\@=11 } % included for historical reasons
+\chardef\other=12
+\def\makeatother{\catcode`\@=\other}
+
+ % alternative to localization
+\def\savecat#1{%
+ \expandafter\xdef\csname\string#1savedcat\endcsname{\the\catcode`#1}}
+\def\restorecat#1{\catcode`#1=\csname\string#1savedcat\endcsname}
+
+
+\savecat\@
+\makeletter\@ % used, as in PLAIN, in protected control sequences
+
+ % for restoring meanings of global control sequences
+\def\SaveCS#1{%
+ \def\scratch{\expandafter\let\csname saved@@#1\endcsname}%
+ \expandafter\scratch\csname#1\endcsname}
+\def\RestoreCS#1{%
+ \def\scratch{\expandafter\let\csname#1\endcsname}%
+ \expandafter\scratch\csname saved@@#1\endcsname}
+
+
+% To distinguish between macro files loaded
+
+\def\plaintubstyle{plain}
+\def\latextubstyle{latex}
+\ifx\tugstyloaded@\undefined\let\tugstyloaded@\plaintubstyle\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** abbreviations and logos *****
+%
+
+\def\acro#1{{\SMC #1}\spacefactor1000 }
+
+\def\AllTeX{(\La)\TeX}
+\def\AMS{American Mathematical Society}
+\def\AmS{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox
+ {\the\textfont2 M}\kern-.125em{\the\textfont2 S}}
+\def\AmSLaTeX{\AmS-\LaTeX}
+\def\AmSTeX{\AmS-\TeX}
+\def\ANSI{\acro{ANSI}}
+\def\ASCII{\acro{ASCII}}
+\def\aw{A\kern.1em-W}
+\def\AW{Addison\kern.1em-\penalty\z@\hskip\z@skip Wesley}
+\def\BibTeX{{\rm B\kern-.05em{\smc i\kern-.025emb}\kern-.08em\TeX}}
+\def\CandT{{\sl Computers \& Typesetting}}
+\def\ConTeXt{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
+\def\Cplusplus{C\raise.7ex\hbox{$_{++}$}}
+\def\CSS{\acro{CSS}}
+\def\CTAN{\acro{CTAN}}
+\def\DTD{\acro{DTD}}
+\def\DVD{\acro{DVD}}
+\def\DVI{\acro{DVI}}
+\def\DVIPDFMx{\acro{DVIPDFM}$x$}
+\def\DVItoVDU{DVIto\kern-.12em VDU}
+\def\eTeX{$\varepsilon$-\kern-.125em\TeX}
+\def\FAQ{\acro{FAQ}}
+\def\FTP{\acro{FTP}}
+\def\GNU{\acro{GNU}}
+\def\GUI{\acro{GUI}}
+\def\Hawaii{Hawai`i}
+\def\HTML{\acro{HTML}}
+\def\HTTP{\acro{HTTP}}
+\def\ISBN{\acro{ISBN}}
+\def\ISO{\acro{ISO}}
+\def\ISSN{\acro{ISSN}}
+\def\JPEG{\acro{JPEG}}
+% Japanese TeX
+\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}}
+\def\JoT{{\sl The Joy of \TeX\/}}
+\def\LAMSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont2 A}%
+ \kern-.2em\lower.376ex\hbox{\the\textfont2 M}\kern-.125em
+ {\the\textfont2 S}-\TeX}
+% note -- \LaTeX definition is from LATEX.TEX 2.09 of 7 Jan 86,
+% adapted for additional flexibility in TUGboat
+%\def\LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex
+% \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX}
+% note -- broken in two parts, to permit separate use of La,
+% as in (La)TeX
+\def\La{\TestCount=\the\fam \leavevmode L%
+ \setbox\TestBox=\hbox{$\fam\TestCount\scriptstyle A$}%
+ \kern-.5\wd\TestBox\raise.42ex\box\TestBox}
+\def\LaTeX{\La\kern-.15em\TeX}
+\def\LaTeXe{\LaTeX{}\kern.05em2$_{\textstyle\varepsilon}$}
+\def\MacOSX{Mac\,\acro{OS\,X}}
+\def\MathML{Math\acro{ML}}
+% for Robert McGaffey
+\def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}}
+% Additional sizes of the manual font may be needed.
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\def\MF{{\manual META}\-{\manual FONT}\spacefactor1000 }
+\def\MP{{\manual META}\-{\manual POST}\spacefactor1000 }
+\def\mf{{\smc Metafont}}
+\def\MFB{{\sl The \slMF book}}
+% multilingual (INRS) TeX
+\def\mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX\spacefactor1000 }
+\def\NTStext{N\mkern-4mu \lower.5ex\hbox{$\cal T$}\mkern-2mu S}
+\def\NTS{{\ifmmode \cal\NTStext \else $\cal\NTStext $\fi}}
+\def\OMEGA{$\Omega$}
+\def\OCP{\OMEGA\acro{CP}}
+\def\OTP{\OMEGA\acro{TP}}
+\def\Pas{Pascal}
+\def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}MF\spacefactor1000 }
+\def\PCTeX{PC\thinspace\TeX}
+\def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}\TeX}
+\def\PDF{\acro{PDF}}
+\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC\spacefactor1000 }
+\def\PiCTeX{\PiC\kern-.11em\TeX}
+\def\plain{{\tt plain}}
+\def\PNG{\acro{PNG}}
+\def\POBox{P.\thinspace O.~Box }
+%\def\POBoxTUG{\POBox\unskip~9506, Providence, RI~02940}
+\def\PS{{Post\-Script}}
+\def\RTF{\acro{RTF}}
+\def\SC{Steering Committee}
+\def\SGML{\acro{SGML}}
+\def\SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}}
+% for \def\slMF{{\manualsl META}\-{\manualsl FONT}\spacefactor1000 }
+% Use \font\manualsl=logosl10 instead, if it's available,
+\def\slMF{\MF}
+% Atari ST (Klaus Guntermann)
+\def\stTeX{{\smc st\rm\kern-0.13em\TeX}}
+\def\SVG{\acro{SVG}}
+\def\TANGLE{{\tt TANGLE}\spacefactor1000 }
+\def\TB{{\sl The \TeX book\/}}
+\def\TP{{\sl \TeX\/}: {\sl The Program\/}}
+\def\TeX{T\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX\spacefactor1000 }
+\def\TeXhax{\TeX hax}
+% Don Hosek
+\def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG%
+ \spacefactor1000 }
+%\def\TeXtures{\TestCount=\the\fam
+% \TeX\-\hbox{$\fam\TestCount\scriptstyle TURES$}}
+\def\TeXtures{{\it Textures}}
+\let\Textures=\TeXtures
+\def\TeXXeT{\TeX-{}-\XeT}
+\def\TFM{\acro{TFM}}
+\def\Thanh{H\`an~Th\^e\llap{\raise.5ex\hbox{\'{}}}~Th\`anh}
+\def\TIFF{\acro{TIFF}}
+\def\ttn{{\sl TTN}\spacefactor1000 }
+\def\TTN{{\sl \TeX{} and TUG NEWS}\spacefactor1000 }
+\def\tubfont{\sl} % redefined in other situations
+\def\TUB{{\tubfont TUGboat\/}}
+\def\TUG{\TeX\ \UG}
+\def\tug{\acro{TUG}}
+\def\UG{Users Group}
+\def\UNIX{\acro{UNIX}}
+\def\UTF{\acro{UTF}}
+\def\VAX{V\kern-.12em A\kern-.1em X\spacefactor1000 }
+\def\VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX}
+\def\XeT{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT\spacefactor1000 }
+\def\XML{\acro{XML}}
+\def\WEB{{\tt WEB}\spacefactor1000 }
+\def\WEAVE{{\tt WEAVE}\spacefactor1000 }
+% the Xe\TeX logo requires Eplain, which is not assumed here, so
+% the definition is omitted.
+\def\XHTML{\acro{XHTML}}
+\def\XSLT{\acro{XSLT}}
+
+%********************************************************************
+
+\newlinechar=`\^^J
+\normallineskiplimit=1pt
+
+\clubpenalty=10000
+\widowpenalty=10000
+
+\def\NoParIndent{\parindent=\z@}
+\newdimen\normalparindent \normalparindent=20pt % plain = 20pt
+\def\NormalParIndent{\global\parindent=\normalparindent}
+\NormalParIndent
+
+\def\BlackBoxes{\overfullrule=5pt }
+\def\NoBlackBoxes{\overfullrule=\z@ }
+\def\newline{\hskip\z@ plus \pagewd \break}
+\def\nohyphens{\hyphenpenalty\@M\exhyphenpenalty\@M}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** 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
+\newif\ifT@stIf \newif\ifTestIf
+
+
+% \cs existence test, stolen from TeXbook exercise 7.7
+\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax }
+
+% LaTeX conventions which are also useful here.
+\ifx\tugstyloaded@\plaintubstyle
+ \let\@@input\input
+ \def\iinput#1{\@@input#1 }
+ \def\tub@inputcheck{\if\@nextchar\bgroup
+ \expandafter\iinput\else\expandafter\@@input\fi}
+ \def\input{\futurelet\@nextchar\tub@inputcheck}
+\fi
+
+% 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@skip \lineskip\z@skip}
+
+
+% Empty rules for special occasions
+\def\nullhrule{\hrule height\z@ depth\z@ width\z@ }
+\def\nullvrule{\vrule height\z@ depth\z@ width\z@ }
+
+% Support ad-hoc strut construction.
+\def\makestrut[#1;#2]{\vrule height#1 depth#2 width\z@ }
+
+% Construct box for figure pasteup, etc.
+% height = #1, width = #2, rule thickness = #3
+\def\drawoutlinebox[#1;#2;#3]{\T@stDimen=#3
+ \vbox to#1{\hrule height\T@stDimen depth\z@
+ \vss\hbox to#2{\vrule width\T@stDimen
+ \hfil\makestrut[#1;\z@]%
+ \vrule width\T@stDimen}\vss
+ \hrule height\T@stDimen depth\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}
+
+% Current time; this may be system dependent!
+\newcount\hours
+\newcount\minutes
+\def\SetTime{\hours=\time
+ \global\divide\hours by 60
+ \minutes=\hours
+ \multiply\minutes by 60
+ \advance\minutes by-\time
+ \global\multiply\minutes by-1 }
+\SetTime
+\def\now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes}
+
+\def\Now{\today\ \now}
+
+\newif\ifPrelimDraft \PrelimDraftfalse
+
+\def\midrtitle{\ifPrelimDraft {{\tensl preliminary draft, \Now}}\fi}
+
+% Section heads. The following set of macros is used to set the large
+% TUGboat section heads (e.g. "General Delivery", "Fonts", etc.)
+
+\newdimen\PreTitleDrop \PreTitleDrop=\z@
+
+\newskip\AboveTitleSkip \AboveTitleSkip=12pt
+\newskip\BelowTitleSkip \BelowTitleSkip=8pt
+
+\newdimen\strulethickness \strulethickness=.6pt
+\def\sthrule{\hrule height\strulethickness depth \z@ }
+\def\stvrule{\vrule width\strulethickness }
+
+\newdimen\stbaselineskip \stbaselineskip=18pt
+
+\def\@sectitle #1{%
+ \par \SecTitletrue
+ \penalty-1000
+ \secsep
+ \vbox{
+ \sthrule
+ \hbox{%
+ \stvrule
+ \vbox{
+ \advance\hsize by -2\strulethickness
+ \raggedcenter
+ \def\\{\unskip\break}%
+ \sectitlefont
+ \makestrut[2\stfontheight;\z@]
+ #1\unskip
+ \makestrut[\z@;\stfontheight]\endgraf
+ }%
+ \stvrule }
+ \sthrule }
+ \nobreak
+ \vskip\baselineskip }
+
+% distance between articles which are run together
+\def\secsep{\vskip 5\baselineskip}
+
+\newif\ifSecTitle
+\SecTitlefalse
+
+
+
+% Registration marks; permit them to be invisible
+
+\newdimen\RegRuleThickness \RegRuleThickness=0.2pt
+
+\def\HorzR@gisterRule{\vrule height\RegRuleThickness depth \z@ width 0.5in }
+\def\DownShortR@gisterRule{%
+ \vrule height 0.2pt depth 1pc width\RegRuleThickness }
+\def\UpShortR@gisterRule{\vrule height 1pc depth \z@ width\RegRuleThickness }
+
+
+% ``T'' marks centered on top and bottom edges of paper
+
+\def\ttopregister{\dlap{%
+ \hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule
+ \HorzR@gisterRule \hfil \HorzR@gisterRule}%
+ \hbox to \trimwd{\hfil \DownShortR@gisterRule \hfil}}}
+\def\tbotregister{\ulap{%
+ \hbox to \trimwd{\hfil \UpShortR@gisterRule \hfil}%
+ \hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule
+ \HorzR@gisterRule \hfil \HorzR@gisterRule}}}
+
+\def\topregister{\ttopregister}
+\def\botregister{\tbotregister}
+
+
+
+% PLAIN's definition of \raggedright doesn't permit any stretch, and
+% results in too many overfull boxes. We also turn off hyphenation.
+\newdimen\raggedskip \raggedskip=\z@
+\newdimen\raggedstretch \raggedstretch=5em % ems of font set now (10pt)
+\newskip\raggedparfill \raggedparfill=\z@ plus 1fil
+
+\def\raggedspaces{\spaceskip=.3333em \relax \xspaceskip=.5em \relax }
+% Some applications may have to add stretch, in order to avoid
+% all overfull boxes.
+
+\def\raggedright{%
+ \nohyphens
+ \rightskip=\raggedskip plus\raggedstretch \raggedspaces
+ \parfillskip=\raggedparfill }
+\def\raggedleft{%
+ \nohyphens
+ \leftskip=\raggedskip plus\raggedstretch \raggedspaces
+ \parfillskip=\z@skip }
+\def\raggedcenter{%
+ \nohyphens
+ \leftskip=\raggedskip plus\raggedstretch
+ \rightskip=\leftskip \raggedspaces
+ \parindent=\z@ \parfillskip=\z@skip }
+
+\def\normalspaces{\spaceskip\z@skip \xspaceskip\z@skip }
+
+
+% Miscellaneous useful stuff
+
+\def\,{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
+
+%\def~{\penalty\@M \ } % tie -- this is PLAIN value; it is reset in AMS-TeX
+\def~{\unskip\nobreak\ \ignorespaces} % AMS-TeX value
+
+\def\newbox{\alloc@4\box\chardef\insc@unt} % remove \outer
+\def\boxcs#1{\box\csname#1\endcsname}
+\def\setboxcs#1{\setbox\csname#1\endcsname}
+\def\newboxcs#1{\expandafter\newbox\csname#1\endcsname}
+
+\def\gobble#1{}
+
+\def\vellipsis{%
+ \leavevmode\kern0.5em
+ \raise1pt\vbox{\baselineskip6pt\vskip7pt\hbox{.}\hbox{.}\hbox{.}}
+ }
+
+\def\bull{\vrule height 1ex width .8ex depth -.2ex } % square bullet
+\def\cents{{\rm\raise.2ex\rlap{\kern.05em$\scriptstyle/$}c}}
+\def\Dag{\raise .6ex\hbox{$\scriptstyle\dagger$}}
+
+\def\careof{\leavevmode\hbox{\raise.75ex\hbox{c}\kern-.15em
+ /\kern-.125em\smash{\lower.3ex\hbox{o}}} \ignorespaces}
+\def\sfrac#1/#2{\leavevmode\kern.1em
+ \raise.5ex\hbox{\the\scriptfont\z@ #1}\kern-.1em
+ /\kern-.15em\lower.25ex\hbox{\the\scriptfont\z@ #2}}
+
+\def\thinskip{\hskip 0.16667em\relax}
+\def\endash{--}
+\def\emdash{\endash-}
+\def\d@sh#1#2{\unskip#1\thinskip#2\thinskip\ignorespaces}
+\def\dash{\d@sh\nobreak\endash}
+\def\Dash{\d@sh\nobreak\emdash}
+\def\ldash{\d@sh\empty{\hbox{\endash}\nobreak}}
+\def\rdash{\d@sh\nobreak\endash}
+\def\Ldash{\d@sh\empty{\hbox{\emdash}\nobreak}}
+\def\Rdash{\d@sh\nobreak\emdash}
+
+% Hack to permit automatic hyphenation after an actual hyphen.
+
+\def\hyph{-\penalty\z@\hskip\z@skip }
+
+\def\slash{/\penalty\z@\hskip\z@skip } % "breakable" slash
+
+% Adapted from c.t.t posting by Donald Arseneau, 26 May 93.
+\def\nth#1{\TestCount=#1\relax
+ \ifnum\TestCount <0 \multiply\TestCount by\m@ne \fi % subdue negatives
+ \T@stCount=\TestCount
+ \divide\T@stCount by 100 \multiply\T@stCount by 100
+ \advance\TestCount by-\T@stCount % n mod 100
+ \ifnum\TestCount >20 \T@stCount=\TestCount
+ \divide\T@stCount by 10 \multiply\T@stCount by 10
+ \advance\TestCount by-\T@stCount % n mod 10
+ \fi
+ \T@stCount=\the\fam\relax
+ $\fam\T@stCount#1^{\fam\T@stCount
+ \ifcase\TestCount th% 0th
+ \or st% 1st
+ \or nd% 2nd
+ \or rd% 3rd
+ \else th% nth
+ \fi
+ }$}
+
+
+% Format information on reviewed items for book review articles.
+
+\def\Review:#1{\ifx[#1\@Rev[%
+ \else Book review:\enspace\sl #1%
+ \fi
+ }
+\def\@Rev[#1]{\ignorespaces#1\unskip:\enspace\ignorespaces\sl}
+\def\reviewitem{%
+ \def\revauth##1{\def\therevauth{##1, }\ignorespaces}%
+ \def\revtitle##1{\def\therevtitle{{\sl##1}. }\ignorespaces}%
+ \def\revpubinfo##1{\def\therevpubinfo{##1.}\ignorespaces}%
+ }
+\def\endreviewitem{{\noindent\interlinepenalty=10000
+ \therevauth\therevtitle\therevpubinfo\endgraf}%
+ \vskip\medskipamount
+ \ifx\tugstyloaded@\plaintubstyle
+ \DeleteOptionalSpacesandPars{\noindent\ignorespaces}%
+ \fi
+ }
+
+\def\booktitle#1{{\sl #1\/}}
+
+
+% Dates and other items which identify the volume and issue
+
+% To use: \vol 5, 2.
+% \issdate October 1984.
+% \issueseqno=10
+% For production, these are set in a separate file, TUGBOT.DATES,
+% which is issue-specific.
+
+\newcount\issueseqno \issueseqno=-1
+
+\def\v@lx{\gdef\volx{Volume~\volno~(\volyr), No.~\issno}}
+\def\volyr{}
+\def\volno{}
+\def\vol #1,#2.{\gdef\volno{#1\unskip}%
+ \gdef\issno{\ignorespaces#2\unskip}%
+ \setbox\TestBox=\hbox{\volyr}%
+ \ifdim \wd\TestBox > .2em \v@lx \fi }
+
+% Original issue date included month and year.
+\def\issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}%
+ \gdef\bigissdt{#1{\smc\uppercase{#2}} #3}%
+ \setbox\TestBox=\hbox{\volno}%
+ \ifdim \wd\TestBox > .2em \v@lx \fi }
+% Beginning in 2002, only year
+\def\issyear #1.{\gdef\issdt{#1}\gdef\volyr{#1}%
+ \gdef\bigissdt{#1}%
+ \setbox\TestBox=\hbox{\volno}%
+ \ifdim \wd\TestBox > .2em \v@lx \fi }
+
+\vol 0, 0. % volume, issue.
+\issdate Thermidor, 2001. % month, year of publication
+
+
+\ifx\tugstyloaded@\plaintubstyle
+ \def\tubissue#1(#2){\TUB~#1, no.~#2}
+\else
+ \def\tubissue#1#2{\TUB~#1, no.~#2}
+\fi
+
+\def\xEdNote{{\tenuit Editor's note:\enspace }}
+
+
+% TUGboat conventions include the issue number in the file name.
+% Permit this to be incorporated into file names automatically.
+% If issue number = 11, \Input filnam will read tb11filnam.tex.
+
+
+\def\infil@{\jobname}
+\def\Input #1 {\ifnum\issueseqno<0 \def\infil@{#1}%
+ \else \def\infil@{tb\number\issueseqno#1}\fi
+ \edef\jobname{\infil@}\@readFLN
+ \@@input \infil@\relax
+ \ifRMKopen\immediate\closeout\TBremarkfile\RMKopenfalse\fi}
+
+\newif\ifRMKopen \RMKopenfalse
+\newwrite\TBremarkfile
+\def\TBremarkON#1{%
+ \ifRMKopen\else\RMKopentrue\immediate\openout\TBremarkfile=\infil@.rmk \fi
+ \toks@={#1}%
+ \immediate\write\TBremarkfile{^^J\the\toks@}%
+ \immediate\write16{^^JTBremark:: \the\toks@^^J}}
+\def\TBremarkOFF#1{}
+\let\TBremark=\TBremarkOFF
+
+% for marking locations in articles that pertain to remarks
+% in another file of editorial comments
+\def\TUBedit#1{}
+
+% for using different filenames in Providence than those supplied
+% by authors
+
+\def\TUBfilename#1#2{\expandafter\def\csname file@@#1\endcsname{#2}}
+\newread\@altfilenames
+\def\@readFLN{\immediate\openin\@altfilenames=\jobname.fln
+ \ifeof\@altfilenames\let\@result\relax\else
+ \def\@result{\@@input\jobname.fln }\fi
+ \immediate\closein\@altfilenames
+ \@result}
+\@readFLN
+\everyjob=\expandafter{\the\everyjob\@readFLN}
+
+% Following needs to work entirely in TeX's mouth
+\def\@tubfilename#1{\expandafter\ifx\csname file@@#1\endcsname\relax
+ #1\else\csname file@@#1\endcsname\fi}
+
+\def\fileinput#1{\@@input\@tubfilename{#1} }
+
+% Write out (both to a file and to the log) the starting page number
+% of an article, to be used for cross references and in contents.
+% \pagexref is used for articles fully processed in the TUGboat run.
+% \PageXref is used for "extra" pages, where an item is submitted
+% as camera copy, and only running heads (at most) are run.
+
+\ifx\tugstyloaded@\plaintubstyle
+\def\pagexrefON#1{%
+ \write-1{\def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}%
+ \write\ppoutfile{%
+ \def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}%
+ }
+\def\PageXrefON#1{%
+ \immediate\write-1{\def\expandafter
+ \noexpand\csname#1\endcsname{\number\pageno}}%
+ \immediate\write\ppoutfile{\def\expandafter
+ \noexpand\csname#1\endcsname{\number\pageno}}}
+\else
+\def\pagexrefON#1{%
+ \write-1{\def\expandafter\noexpand\csname#1\endcsname{\number\c@page}}%
+ \write\ppoutfile{%
+ \def\expandafter\noexpand\csname#1\endcsname{\number\c@page}}%
+ }
+\def\PageXrefON#1{%
+ \immediate\write-1{\def\expandafter
+ \noexpand\csname#1\endcsname{\number\c@page}}%
+ \immediate\write\ppoutfile{\def\expandafter
+ \noexpand\csname#1\endcsname{\number\c@page}}}
+\fi
+
+\def\pagexrefOFF#1{}
+\let\pagexref=\pagexrefOFF
+\def\PageXrefOFF#1{}
+\let\PageXref=\PageXrefOFF
+
+\def\xreftoON#1{%
+ \ifundefined{#1}%
+ ???\TBremark{Need cross reference for #1.}%
+ \else\csname#1\endcsname\fi}
+\def\xreftoOFF#1{???}
+\let\xrefto=\xreftoOFF
+
+\def\TBdriver#1{}
+
+
+% Authors, addresses, signatures
+
+\def\theauthor#1{\csname theauthor#1\endcsname}
+\def\theaddress#1{\csname theaddress#1\endcsname}
+\def\thenetaddress#1{\csname thenetaddress#1\endcsname}
+
+\newcount\count@@
+\def\@defaultauthorlist{% % standard way of listing authors
+ \count@=\authornumber
+ \advance\count@ by -2
+ \count@@=0
+ \loop
+ \ifnum\count@>0
+ \advance\count@@ by 1
+ \ignorespaces\csname theauthor\number\count@@\endcsname\unskip,
+ \advance\count@ by -1
+ \repeat
+ \count@=\authornumber
+ \advance\count@ by -\count@@
+ \ifnum\authornumber>0
+ \ifnum\count@>1
+ \count@=\authornumber
+ \advance\count@ by -1
+ \ignorespaces\csname theauthor\number\count@\endcsname\unskip\ and
+ \fi
+ \ignorespaces\csname theauthor\number\authornumber\endcsname\unskip
+ \fi
+ }
+
+\def\signature#1{\def\@signature{#1}}
+\def\@signature{\@defaultsignature}
+
+\def\@defaultsignature{%
+ \count@=0
+ \loop
+ \ifnum\count@<\authornumber
+ \medskip
+ \advance\count@ by \@ne
+ \signaturemark
+ \theauthor{\number\count@}\\
+ \leavevmode\theaddress{\number\count@}\\
+ \leavevmode\thenetaddress{\number\count@}\\
+ \repeat
+ }
+
+\newdimen\signaturewidth \signaturewidth=12pc
+\def\makesignature{%
+ \par
+ \penalty9000
+ \vskip\medskipamount
+ \rightline{%
+ \vbox{\hsize\signaturewidth \ninepoint \raggedright
+ \parindent \z@ \everypar={\hangindent 1pc }
+ \parskip \z@skip
+ \netaddrat
+ \netaddrpercent
+ \def\|{\unskip\hfil\break}%
+ \def\\{\endgraf}%
+ \def\net{\tt}%
+ \def\phone{\rm Phone: } \rm
+ \@signature}}
+ }
+
+{\makeactive\@
+ \gdef\signatureat{\makeactive\@\def@{\char"40\discretionary{}{}{}}}
+ \makeactive\%
+ \gdef\signaturepercent{\makeactive\%\def%{\char"25\discretionary{}{}{}}}
+}
+
+\def\signaturemark{\leavevmode\llap{$\diamond$\enspace}}
+
+
+% some hyphenation exceptions:
+\hyphenation{Del-a-ware Dijk-stra Duane Eijk-hout
+ Flor-i-da Free-BSD Ghost-script Ghost-view
+ Hara-lam-bous Jac-kow-ski Karls-ruhe
+ Mac-OS Math-Sci-Net
+ Net-BSD Open-BSD Open-Office
+ Pfa-Edit Post-Script Rich-ard Skoup South-all
+ VM-ware Win-Edt
+ acro-nym ap-pen-dix asyn-chro-nous
+ bit-map bit-mapped bit-maps buf-fer buf-fers bool-ean
+ col-umns cus-tom-iz-able
+ data-base data-bases
+ de-riv-a-tive de-riv-a-tives de-riv-a-ble der-i-va-tion
+ fall-ing
+ half-way
+ key-note
+ long-est
+ ma-gyar man-u-script man-u-scripts
+ off-line over-view
+ pal-ettes par-a-digm par-a-dig-mat-ic par-a-digms
+ pipe-line pipe-lines
+ plug-in plug-ins pro-gram-mable
+ se-vere-ly spell-ing spell-ings stand-alone strong-est
+ sub-ex-pres-sion syn-chro-ni-city syn-chro-nous
+ time-stamp time-stamped
+ vis-ual vis-ual-ly
+ which-ever white-space white-spaces wide-spread wrap-around
+}
+
+
+\restorecat\@
+
+\endinput
+
+
+% *************************************************************************
+
+Contents and Notes
+------------------
+
+\makeescape, ..., \makecomment allow users to change category
+codes a little more easily.
+
+\savecat#1 and \restorecat#1 will save and restore the category
+of a given character. These are useful in cases where one doesn't
+wish to localize the settings and therefore be required to globally
+define or set things.
+
+\SaveCS#1 and \RestoreCS#1 save and restore `meanings' of control
+sequences. Again this is useful in cases where one doesn't want to
+localize or where global definitions clobber a control sequence which
+is needed later with its `old' definition.
+
+Abbreviations. Just a listing with indications of expansion where
+that may not be obvious. For full definitions, see real code above.
+
+\AllTeX (\La)\TeX
+\AMS American Mathematical Society
+\AmSLaTeX
+\AmSTeX
+\ANSI
+\ASCII
+\aw A-W (abbreviation for Addison-Wesley)
+\AW Addison-Wesley
+\BibTeX
+\CandT Computers \& Typesetting
+\ConTeXt
+\Cplusplus C++
+\CSS
+\CTAN
+\DTD
+\DVD
+\DVI
+\DVIPDFMx
+\DVItoVDU
+\eTeX
+\FAQ
+\FTP
+\GNU
+\GUI
+\Hawaii Hawai`i
+\HTML HTML
+\HTTP
+\ISBN ISBN
+\ISO
+\ISSN
+\JPEG
+\JTeX
+\JoT The Joy of \TeX
+\LAMSTeX
+\LaTeX
+\LaTeXe
+\MacOSX Mac OS X
+\MathML
+\Mc M ``w/ raised c''
+\MF METAFONT
+\mf Metafont (using small caps)
+\MFB The Metafont book
+\MP METAPOST
+\mtex multilingual TeX
+\NTS
+\OMEGA
+\OCP \Omega CP
+\OTP \Omega TP
+\Pas Pascal
+\pcMF pcMF
+\PCTeX
+\pcTeX
+\PDF PDF
+\PiCTeX
+\plain plain (in typewriter font)
+\PNG
+\POBox P. O. Box
+\POBoxTUG TUG PO Box
+\PS PostScript
+\RTF
+\SC Steering Committee
+\SGML SGML
+\SliTeX
+\slMF Metafont (slanted)
+\stTeX TeX for the Atari ST
+\SVG
+\TANGLE
+\TB The \TeX book
+\TP \TeX the Program
+\TeX
+\TeXhax
+\TeXMaG
+\TeXtures
+\Textures
+\TeXXeT
+\TFM
+\Thanh Han The Thanh
+\TIFF
+\ttn TTN
+\TTN \TeX and TUG News
+\TUB TUGboat
+\TUG TeX Users Group
+\tug
+\UG Users Group
+\UNIX
+\UTF
+\VAX
+\VorTeX
+\XeT
+\XML
+\WEB
+\WEAVE
+\XHTML
+\XSLT
+
+\NoBlackBoxes turns off marginal rules marking overfull boxes
+\BlackBoxes turns them back on
+\newline horizontal glue plus a break
+
+\ifundefined#1 checks argument with \csname against \relax
+
+\topsmash smashes above baseline (from AMSTeX)
+\botsmash smashes below baseline (from AMSTeX)
+\smash smashes both (from plain)
+
+\ulap lap upwards
+\dlap lap downwards
+\xlap reference point at center horizontally; 0 width
+\ylap reference point at center vertically; 0 height, depth
+\zlap combination \xlap and \ylap
+
+\basezero to avoid insertion of baselineskip and lineskip glue
+
+\nullhrule empty \hrule
+\nullvrule empty \vrule
+
+\makestrut[#1;#2] ad hoc struts; #1=height, #2=depth
+
+\today today's date
+\SetTime converts \time to hours, minutes
+\now displays time in hours and minutes
+\Now shows current date and time
+
+\ifPrelimDraft flag to indicate status as preliminary draft
+
+\rtitlex TUGboat volume and number info for running head
+\midrtitle information for center of running head
+
+\HorzR@gisterRule pieces of registration marks ("trimmarks")
+\DownShortR@gisterRule
+\UpShortR@gisterRule
+
+\ttopregister top registration line with `T' in center
+\tbotregister bottom registration line with inverted `T' in center
+\topregister register actually used
+\botregister
+
+
+\raggedskip parameters used for ragged settings
+\raggedstretch
+\raggedparfill
+\raggedspaces
+
+\raggedright
+\raggedleft
+\raggedcenter
+\normalspaces
+\raggedbottom
+
+\bull square bullet
+\cents ``cents'' sign
+\Dag superscripted dagger
+\careof c/o
+\sfrac slashed fraction
+
+\dash en-dash surrounded by thinspaces; only breakable AFTER
+\Dash em-dash, as above
+
+\hyph permit automatic hyphenation after an actual hyphen
+
+\slash "breakable" slash
+\nth for obtaining "1^{st}", "2^{nd}", 3^{rd}, etc.
+
+\tubissue gets \TUB followed by volume and issue numbers
+
+\xEdNote Editor's Note:
+
+\Review: Review: (for title of book review article)
+\reviewitem begin data for item being reviewed
+ \revauth with one argument, author(s) of item being reviewed
+ \revtitle with one argument, title of ...
+ \revpubinfo with one argument, other info pertaining to ...
+\endreviewitem end data for item being reviewed
+\booktitle with one argument, format book title in text
+
+\Input \input with some other bookkeeping for
+ case where multiple articles are put together
+
+\TBremark reminder to TUGboat editorial staff
+\TBremarkON
+\TBremarkOFF
+
+\pagexref used to write out page numbers to screen and
+\pagexrefON external files
+\pagexrefOFF
+\PageXref
+\PageXrefON
+\PageXrefOFF
+
+\xrefto used for symbolic cross-reference to other pages
+\xreftoON in TUGboat
+\xreftoOFF
+
+\TBdriver marks code which only takes effect when articles
+ are run together in a driver file
+
+\signatureat items for signatures
+\signaturepercent
+\signaturemark
+\signaturewidth
+
+
+% *************************************************************************
+
+% Change history
+
+Version Date Changes
+------- --------- ---------------------------------------------------
+1.18 7 Jun 06 another fix to repair a stupid mistake
+
+1.16-1.17 24 May 06 fixes to repair stupid mistakes in 1.15
+
+1.15 30 Apr 06 additions to match ltugboat.cls v2.0, 2006/04/25:
+ name macros and hyphenation exceptions
+
+1.14 21 Jun 04 added numerous name macros and hyphenation exceptions
+
+1.13l 15 Nov 03 updated header address to Portland, OR
+
+1.13k 28 Jun 03 added \RegRuleThickness to allow easy modification
+
+1.13j 16 Feb 03 added \issyear to handle removal of month
+
+1.13i 14 Oct 96 updated header and installed CRC-16 checksum
+
+1.13h 10 Nov 95 added \acro and converted all \SMC entries to use it
+ added acronyms \HTML and \PDF
+
+1.13g 4 Nov 95 added \MP for METAPOST
+
+1.13f 15 Apr 94 added \@Rev[...] to permit variable text for reviews
+
+1.13e 14 Mar 94 revised definition of \La to use actual width of A
+ added \LaTeXe definition
+
+1.13d 5 Jan 94 added {} to \TeX-{}-\Xet
+
+1.13c 11 Nov 93 removed extraneous " from header
+ added \AmSLaTeX, \CTAN, \ISSN
+
+1.13b 4 Nov 93 added \hyphenation{Eijk-hout}
+
+1.13a 18 Aug 93 corrected \nth to produce ordinal in current font
+
+1.13 27 May 93 upgraded \nth based on algorithm by Donald Arseneau
+ in comp.text.tex, 26 May 93
+
+1.12 19 Feb 93 added \spacefactor1000 to all replacement text that ends
+ with a capital letter, so that if these items end a
+ sentence, there will be a normal end-of-sentence space
+ removed \hbox from definitions of \TeX, etc.; no longer
+ needed
+ changed definition of \TeXXeT to use \XeT rather than
+ unique dimensions
+ installed new TUG address and phone number in header
+ reformatted change history, similar to tugboat.sty
+
+1.11c 29 Nov 92 added macros to format book review and related items for
+ review articles
+ added \SGML
+ changed def of \UNIX to use \SMC rather than \smc
+
+1.11b 20 Oct 92 added font code for \ISBN font ("big small caps")
+ added \Textures as the current form
+
+1.11a 6 Jun 92 added \drawoutlinebox
+
+1.11 15 Mar 92 added \ttn and \TTN
+
+1.10 8 Mar 92 added \AllTeX
+ changed file name from .COM to .CMN to avoid objection
+ that .COM files have a special significance on DOS
+ and other operating systems
+ added standard headers, prepared for archive installation
+
+1.09 5 May 91 inserted large penalty at top of \makesignature to
+ inhibit break between article and signature
+
+1.08 24 Oct 90 modified signature slightly (took \medskip out of box)
+ fixed bug in previous rendition of \@readFLN
+
+1.07 16 Oct 90 added \TUBedit to facilitate editorial marking
+ added \iinput variant from LaTeX; \input redefined now
+ as with LaTeX
+ added mechanism for local file names in Providence
+ (\TUBfilename, \fileinput, etc.)
+ \tugstyload@ defaults to plain if it's not defined
+
+1.06 3 Aug 90 added \leavevmode to \@defaultsignature so that
+ \everypar is not executed inside a group
+ dash routines modified and corrected (to suppress
+ insertion of discretionary node after -- and ---;
+ and to allow hyphenation of ensuing word)
+ changed \lDash to \Ldash and \rDash to \Rdash
+
+1.05 29 Mar 90 added \lDash and \rDash for `parenthetical' dashing
+ added \TP for TeX: The Program
+ added \relax after file input of \Input
+ added \relax before \ifmmode of \,
+
+1.04 28 Feb 90 modified pagexref macros to work in both plain and
+ latex styles (this should NOT affect authors)
+
+1.03 26 Feb 90 removed <tab>s and adjusted definition of \slMF
+
+1.02 25 Feb 90 added definitions of \plaintubissue, \latextubissue
+ added definition of \tubissue
+
+1.01 19 Feb 90 added \signaturewidth to allow for modification
+ added \nth to obtain 1^{st}, etc.