summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tugboat/tugboat.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tugboat/tugboat.dtx')
-rw-r--r--macros/latex/contrib/tugboat/tugboat.dtx121
1 files changed, 53 insertions, 68 deletions
diff --git a/macros/latex/contrib/tugboat/tugboat.dtx b/macros/latex/contrib/tugboat/tugboat.dtx
index 12e7dc6397..6b627b723e 100644
--- a/macros/latex/contrib/tugboat/tugboat.dtx
+++ b/macros/latex/contrib/tugboat/tugboat.dtx
@@ -1,8 +1,8 @@
% \iffalse (this is a meta-comment (so they say))
-% $Id: tugboat.dtx 314 2020-11-15 02:06:03Z karl $
+% $Id: tugboat.dtx 376 2021-06-27 16:27:44Z karl $
% tugboat.dtx - main source for LaTeX TUGboat classes.
%
-% Copyright 1994-2020 TeX Users Group.
+% Copyright 1994-2021 TeX Users Group.
%
% This file is part of the tugboat package.
%
@@ -28,7 +28,7 @@
%<ltugboatsty>\ProvidesPackage{ltugboat}
%<ltugprocsty>\ProvidesPackage{ltugproc}
%<ltugcomn> \ProvidesPackage{ltugcomn}
- [2020-11-14 v2.24
+ [2021-06-27 v2.25
%<ltugboatcls> TUGboat journal class%
%<ltugproccls> TUG conference proceedings class%
%<ltugboatsty|ltugprocsty> TUG compatibility package%
@@ -39,13 +39,6 @@
]
% \end{macrocode}
%
-% ^^A behold, a horrible hack...
-% \begin{macrocode}
-%<*dtx>
-\newif\ifoldlongtable
-%</dtx>
-% \end{macrocode}
-%
% \iffalse
%
% Note that the version control Id above relates to the number of times
@@ -65,37 +58,6 @@
%
\usepackage{array,longtable}
%
-% If longtable.sty is not ancient, then it doesn't need
-% \cs{setlongtables}, so we avoid the setlong.tab game.
-\GetFileInfo{longtable.sty}
-\def\extractdate#1/#2/#3\relax{\def\fileyear{#1}%
- \def\filemonth{#2}%
- \def\fileday{#3}}
-\expandafter\extractdate\filedate\relax
-\expandafter\ifnum\fileyear>1996\relax
- \oldlongtablefalse
-\else
- \oldlongtabletrue
- \expandafter\ifnum\fileyear=1996\relax
- \expandafter\ifnum\filemonth>5\relax
- \oldlongtablefalse
- \else
- \expandafter\ifnum\filemonth=5\relax
- \expandafter\ifnum\fileday>23\relax
- \oldlongtablefalse
- \fi
- \fi
- \fi
- \fi
-\fi
-\ifoldlongtable
- \InputIfFileExists{setlong.tab}{}% if this file exists, it should
-% % contain (only) \setlongtables
- {\typeout{*** create a file `setlong.tab' containing only}
- \typeout{***\space\space\space\string\setlongtables}
- \typeout{*** to get the tables of commands, etc., lined up}}
-\fi
-%
\begin{document}
\GetFileInfo{tugboat.dtx}
\title{The \textsf{tugboat} package\thanks{This file
@@ -446,8 +408,6 @@
%
% The section-numbering style, so that we can allow the same heading
% layout as in the plain macros.
-% \changes{v1.4a}{1996/09/14}{Added nonumber and numbersec (default)
-% options}
%
% \begin{macrocode}
\DeclareOption{numbersec}{\let\if@numbersec\iftrue}
@@ -465,6 +425,17 @@
\DeclareOption{runningfull}{\AtEndOfClass{\@tubrunningfull}}
% \end{macrocode}
%
+% Usually we want to print the doi if [final], else not.
+% But sometimes we want to omit it even if [final], namely when we're
+% posting a review or other item early.
+%
+% \begin{macrocode}
+\newif\iftubomitdoioption
+\DeclareOption{omitdoi}{%
+ \tubomitdoioptiontrue
+}
+% \end{macrocode}
+%
% \begin{macro}{\if@tubtwocolumn}
% Occasionally (|tb107jackowski|, and past conference preprints), we
% need the option |onecolumn|. For alternative approaches to one-column
@@ -715,7 +686,7 @@
\def\CPU{\acro{CPU}}
\def\CSczabbr{\ensuremath{\cal C}\kern-.1667em\lower.5ex\hbox{$\cal S$}}
\def\CSS{\acro{CSS}}
-\def\CSTUG{\CSczabbr\acro{TUG}}
+\def\CSTUG{\CSczabbr\kern.05em\acro{TUG}}
\def\CSV{\acro{CSV}}
\def\CTAN{\acro{CTAN}}
\def\DTD{\acro{DTD}}
@@ -797,7 +768,7 @@
%
% \begin{macrocode}
\def\mf{\textsc{Metafont}}
-\def\MFB{\textsl{The \MF\kern1pt book}}
+\def\MFB{\textsl{The \MF\kern.1em\-book}}
\def\MkIV{Mk\acro{IV}}
\let\TB@@mp\mp
\DeclareRobustCommand{\mp}{\ifmmode\TB@@mp\else MetaPost\fi}
@@ -840,6 +811,7 @@
\def\POBox{P.\thinspace O.~Box }
\def\PS{{Post\-Script}}
\def\PSTricks{\acro{PST}ricks}
+\def\RIT{\acro{RIT}}
\def\RTF{\acro{RTF}}
\def\SC{Steering Committee}
\def\SGML{\acro{SGML}}
@@ -851,9 +823,9 @@
\def\STIX{\acro{STIX}}
\def\SVG{\acro{SVG}}
\def\TANGLE{\texttt{TANGLE}\@}
-\def\TB{\textsl{The \TeX book}}
+\def\TB{\textsl{The \TeX\-book}}
\def\TIFF{\acro{TIFF}}
-\def\TP{\textsl{\TeX}: \textsl{The Program}}
+\def\TP{\textsl{\TeX}:\ \textsl{The Program}}
\DeclareRobustCommand{\TeX}{T\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX\@}
\def\TeXhax{\TeX hax}
\def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}%
@@ -863,7 +835,7 @@
\def\TeXworks{\TeX\kern-.07em works}
\def\TeXXeT{\TeX-{}-\XeT}
\def\TFM{\acro{TFM}}
-\ifx\Umathchardef\@thisisundefined % xetex|luatex
+\ifx\Umathchardef\@thisisundefined % not (xetex|luatex)
\def\Thanh{H\`an~Th\^e\llap{\raise 0.5ex\hbox{\'{}}}~Th\`anh}% non-XeTeX
\else
\def\Thanh{H\`an~Th\textcircumacute{e}~Th\`anh}% else xunicode drops the acute
@@ -876,7 +848,15 @@
\def\tug{\acro{TUG}}
\def\UG{Users Group}
\def\UNIX{\acro{UNIX}}
-% omit \UTF, since other packages use it for Unicode character access.
+% Don't define \UTF, since other packages use it for Unicode character access.
+% On the other hand, we want a macro for UTF-8 that doesn't break at the -.
+\def\tbUTF{\acro{UTF}\futurelet\@nextchar\@tbUTFcheck}
+ \def\@tbUTFcheck{\ifx\@nextchar-%
+ \mbox{-}\let\next=\tbgobbledash
+ \else
+ \let\next=\empty
+ \fi\next}
+ \def\tbgobbledash-{}
\def\VAX{V\kern-.12em A\kern-.1em X\@}
\def\VnTeX{V\kern-.03em n\kern-.02em \TeX}
\def\VorTeX{V\kern-2.7\p@\lower.5ex\hbox{O\kern-1.4\p@ R}\kern-2.6\p@\TeX}
@@ -889,15 +869,16 @@
%
% Xe\TeX{} requires reflecting the first E, hence we complain if the
% graphics package is not present. (For plain documents, this can be
-% loaded via Eplain.) Also, at Barbara's suggestion, if the current
-% font is slanted, we rotate by 180 instead of reflecting so there is at
-% least a chance to look ok. (The magic values here seem more or less
-% ok for \texttt{cmsl} and \texttt{cmti}.)
+% loaded via \texttt{miniltx} or Eplain.) Also, at Barbara's
+% suggestion, if the current font is slanted, we rotate by 180 instead
+% of reflecting so there is a better chance to look ok. (The magic
+% values here seem more or less ok for \texttt{cmsl} and \texttt{cmti}.)
%
% \begin{macrocode}
\def\tubreflect#1{%
\@ifundefined{reflectbox}{%
- \TBError{A graphics package must be loaded for \string\XeTeX}%
+ \TBError{A graphics package must be loaded to use \string\XeTeX}
+ {Load graphicx or graphics.}%
}{%
\ifdim \fontdimen1\font>0pt
\raise 1.75ex \hbox{\kern.1em\rotatebox{180}{#1}}\kern-.1em
@@ -2749,24 +2730,28 @@
% \begin{macrocode}
\newdimen\@tubfullpageindent
\@tubfullpageindent = \if@tubtwocolumn 4.875pc \else 3.875pc \fi
-\let\tubcaptionleftglue=\hfil
% \end{macrocode}
% \end{macro}
%
% One-line captions are normally centered, but sometimes we want to set
-% them flush-left for consistency with other nearby figures.
+% them flush left for consistency with other nearby figures.
% \begin{macro}{\tubcaptionleftglue}
% \begin{macrocode}
\let\tubcaptionleftglue=\hfil
% \end{macrocode}
% \end{macro}
%
-% Ok, here is \cs{@makecaption}.
+% For \TUB, we like 9pt captions to help differentiate from the main text.
% \begin{macrocode}
\def\tubcaptionfonts{\small}%
+% \end{macrocode}
+%
+% Ok, here is \cs{@makecaption}.
+% \begin{macrocode}
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
- \sbox\@tempboxa{\tubcaptionfonts \frenchspacing \tubmakecaptionbox{#1}{#2}}% try in an hbox
+ % try in an hbox:
+ \sbox\@tempboxa{\tubcaptionfonts \frenchspacing \tubmakecaptionbox{#1}{#2}}%
\ifdim \wd\@tempboxa > \hsize
{% caption doesn't fit on one line; set as a paragraph.
\tubcaptionfonts \raggedright \hyphenpenalty=\@M \parindent=1em
@@ -2956,7 +2941,7 @@
\def\tubverb@meta##1>{\meta{##1}}
% \end{macrocode}
%
-% The default verbatim defines `'<>,- as active characters to do
+% The default verbatim defines `'<>,- as active characters to
% stop ligatures; remove <> from the list so we get normal characters.
% Just hope that the CM <> ligatures aren't used.
% \begin{macrocode}
@@ -3356,26 +3341,26 @@
%
% Typeset the doi. The format we decided on looks like:
% \texttt{https://doi.org/10.47397/tb/41-3/tb129mansour-nonlatin}
-% where the last element is (usually) the |\jobname|.
+% where the last element is the |\jobname|.
%
% We put this below the footline. The footer definitions above specify
% that it is always called, even if the regular footer is empty.
%
% If the article started in the second column (option [secondcolstart]),
-% have to manually move the doi over.
-%
-% We do not check for validity of |\volno|, etc. For testing, etc.,
-% seems simpler to just typeset what we've got.
+% we manually move the doi over.
%
-% But don't do any of this yet. Maybe for 42:1.
+% We do not check for validity of |\volno|, |\issno|, |\jobname|. For
+% testing, etc., seems simpler to just typeset what we've got. Other
+% scripts will verify consistency.
%
% \begin{macrocode}
%
\def\tubdoiprefix{10.47397/tb} % the number crossref assigned us
%
-\def\notyettubtypesetdoi{\iftubfinaloption % do this if [final], even if pageno>900
+\def\tubtypesetdoi{\iftubomitdoioption\else % if not explicit omission ...
+ \iftubfinaloption % do this if [final], even if pageno>900
\vbox to 0pt{% don't impact normal layout
- \edef\thedoi{\ifnum\value{page}>900 xnot\fi % but make url invalid if >900
+ \edef\thedoi{\ifnum\count0>900 xnot\fi % but make url invalid if >900
doi.org/\tubdoiprefix/\volno-\issno/\jobname}%
\scriptsize
\vskip\baselineskip
@@ -3384,9 +3369,9 @@
\vss
}%
\global\let\tubtypesetdoi\@empty % only do it once, no matter what.
+ \fi
\fi}
%
-\def\tubtypesetdoi{}
%
% \end{macrocode}
%