summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-07-04 19:54:52 +0000
committerKarl Berry <karl@freefriends.org>2023-07-04 19:54:52 +0000
commit807611d85d9134f945c5ef60a7e59b96341620c6 (patch)
tree14e46641df6588f4d6f5cdb63a501af20ae99c31
parent05521ca120f1bb734f3c85b7a85f9b33b093459c (diff)
tugboat (4jul23)
git-svn-id: svn://tug.org/texlive/trunk@67549 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst48
-rw-r--r--Master/texmf-dist/doc/latex/tugboat/NEWS15
-rw-r--r--Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx49
-rw-r--r--Master/texmf-dist/doc/latex/tugboat/ltubguid.pdfbin363060 -> 364822 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tugboat/tugboat-code.pdf (renamed from Master/texmf-dist/doc/latex/tugboat/tugboat.pdf)bin516315 -> 519269 bytes
-rw-r--r--Master/texmf-dist/source/latex/tugboat/tugboat.dtx191
-rw-r--r--Master/texmf-dist/tex/latex/tugboat/ltugboat.cls144
-rw-r--r--Master/texmf-dist/tex/latex/tugboat/ltugboat.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty12
-rw-r--r--Master/texmf-dist/tex/latex/tugboat/ltugproc.cls2
-rw-r--r--Master/texmf-dist/tex/latex/tugboat/ltugproc.sty2
11 files changed, 309 insertions, 156 deletions
diff --git a/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst b/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst
index 1129bb8ab5e..403256d1a41 100644
--- a/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst
+++ b/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst
@@ -1,4 +1,4 @@
-%%% $Id: tugboat.bst 462 2023-03-08 17:26:54Z karl $
+%%% $Id: tugboat.bst 487 2023-06-22 22:39:59Z karl $
%%% TUGboat changes are public domain.
%%%
%%% Modified for TUGboat from abbrvurl.bst:
@@ -28,7 +28,7 @@
%%% "nowarning" - if set, omit empty field warnings from output.check.
%%% "prebibitem" - material output before \bibitem, with newline appended
%%% (for example, section headings).
-%%% "urlnewline" - force line break before url value;
+%%% "urlnewline" - force line break before url or doi value;
%%% --karl, originally created 24jul18.
%%%
%%% Modification of BibTeX style file /usr/local/texlive/2009/texmf-dist/bibtex/bst/base/abbrv.bst
@@ -85,6 +85,7 @@ ENTRY
version % ctan
%
journaltie % tub
+ monthtie % tub
newpage % tub
nowarning % tub
prebibitem % tub
@@ -189,9 +190,10 @@ FUNCTION {output.nonnull.original}
{ last.output.check "journal" = not
{ ", " * }
{ journaltie empty$ not
- { "~" * }
- { " " * }
+ { "~" }
+ { " " }
if$
+ *
}
if$
write$
@@ -350,10 +352,18 @@ FUNCTION {output.bibitem.original} % urlbst (renamed from output.bibitem, so it
before.all 'output.state :=
}
-FUNCTION {fin.entry.original} % urlbst (renamed from fin.entry, so it can be wrapped below)
+% we wrap this function below to handle urls.
+% The url string to print (of whatever sort) is on the stack to write$.
+% If the `urlnewline' field is set, write "\newline" first.
+FUNCTION {fin.entry.original} % urlbst (renamed from fin.entry)
{ doi empty$ url empty$ and
{ add.period$ }
- { skip$ }
+ {
+ urlnewline empty$ not
+ { "\newline " write$ }
+ 'skip$
+ if$
+ }
if$
write$
newline$
@@ -600,7 +610,14 @@ FUNCTION {format.date}
}
{ month empty$
'year
- { month " " * year * }
+ { month
+ monthtie empty$ not
+ { "~" }
+ { " " }
+ if$
+ *
+ year *
+ }
if$
}
if$
@@ -1033,17 +1050,11 @@ FUNCTION {format.doi}
% so that `format.url format.lastchecked * output' ends up with both
% the URL and the lastchecked in brackets.
%
-% If the `urlnewline' field is present, output \newline before the
-% url value.
FUNCTION {output.url}
{ url empty$
'skip$
{ new.block
format.url output
- urlnewline empty$ not
- { "\newline " write$ }
- 'skip$
- if$
format.lastchecked output
}
if$
@@ -1108,10 +1119,10 @@ FUNCTION {fin.entry}
% Title and url fields required;
% author, note, year, month, and lastchecked fields optional
% See references
-% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
-% http://www.classroom.net/classroom/CitingNetResources.html
-% http://neal.ctstateu.edu/history/cite.html
-% http://www.cas.usf.edu/english/walker/mla.html
+% [gone] ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
+% [gone] http://www.classroom.net/classroom/CitingNetResources.html
+% [gone] http://neal.ctstateu.edu/history/cite.html
+% [gone] http://www.cas.usf.edu/english/walker/mla.html
% for citation formats for web pages.
FUNCTION {webpage}
{ output.bibitem
@@ -1130,7 +1141,8 @@ FUNCTION {webpage}
new.block
title empty$ 'skip$ 'possibly.setup.inlinelink if$
format.title "title" output.check
- inbrackets onlinestring output
+ % This causes the year to be output in brackets, which we don't want:
+ % inbrackets onlinestring output
new.block
year empty$
'skip$
diff --git a/Master/texmf-dist/doc/latex/tugboat/NEWS b/Master/texmf-dist/doc/latex/tugboat/NEWS
index aa1e53391ea..53621cccdc1 100644
--- a/Master/texmf-dist/doc/latex/tugboat/NEWS
+++ b/Master/texmf-dist/doc/latex/tugboat/NEWS
@@ -1,6 +1,19 @@
-$Id: NEWS 463 2023-03-08 21:59:19Z karl $
+$Id: NEWS 490 2023-07-03 22:27:49Z karl $
This file records noteworthy changes. This file is public domain.
+ltugboat.cls:
+- print page numbers with preceding ? in draft mode, including in references,
+ by redefining \thepage.
+- new abbrev \XMP.
+
+tugboat.bst:
+- for webpage entry type, do not output random material in brackets.
+- new field "monthtie" to editorially force a tie after the month.
+
+ltubguid documentation:
+- mention preferred placement of captions, namely below figures
+but above tables and listings.
+
-----------------
2.29 (2023-03-08):
diff --git a/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx b/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx
index 7d15fd9c6c7..088a8e19afd 100644
--- a/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx
+++ b/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx
@@ -1,4 +1,4 @@
-% $Id: ltubguid.ltx 458 2023-01-16 18:44:30Z karl $
+% $Id: ltubguid.ltx 487 2023-06-22 22:39:59Z karl $
% ltubguid.ltx - documentation for ltugboat classes.
%
% Copyright 1994-2023 TeX Users Group.
@@ -571,25 +571,18 @@ normal text size.
\section{Floating inserts}
-The classes do not make any change to \LaTeX{}'s built-in provision
-for floating inserts, so that authors may generate figures and tables
-just as they would in any `normal' \LaTeX{} document. Figure and
-table captions, and labels referring to them, are also substantially
-untouched.
-
-However, since both classes typeset in two columns, authors must
-distinguish between the \envname{figure} and \envname{table} environments
-(which produce floats that are the same width as the column) and the
-\envname{figure*} and \envname{table*} (which produce floats that are the same
-width as the page).
-
-%\begin{itemize}
-%\item figures and tables as normal
-%\item captions and labels work whatever (i.e., no restriction on
-% numbering)
-%\item twocolumn setting implies distinction between \envname{figure} and
-% \envname{figure*}
-%\end{itemize}
+The classes do not make any change to \LaTeX{}'s built-in provision for
+floating inserts, so that authors may write figures and tables as usual,
+
+The default is for floats to be the width of the column. To make a float
+which is the width of the whole page, use \envname{figure*} and
+\envname{table*}.
+
+Regarding caption placement, \TUB's convention is to put captions for
+figures beneath the figure, but captions for tables and listings above
+the table\slash listing. Please follow this convention unless there is a
+specific reason not to. As a reminder, \cs{label} commands should always
+follow the \cs{caption}.
\section{Special-purpose typesetting}
@@ -830,16 +823,16 @@ aliases for \textsf{@misc}.
\CTAN, following the fields output by the \pkgname{ctanbib} script (in
the package of the same name, \url{ctan.org/pkg/ctanbib}).
-\item For completeness only: \verb|tugboat.bst| provides editor-intended
-fields \textsf{journaltie} to output a tie instead of space after the \textsf{journal} value,
+\item For completeness only: \verb|tugboat.bst| provides several
+fields intended to be used by the editors: \textsf{journaltie} to output
+a tie instead of space after the \textsf{journal} value,
+\textsf{monthtie} for the same after \textsf{month},
\textsf{newpage} to force a page break after the current item,
-\textsf{nowarning} to omit empty field warnings,
-\textsf{prebibitem} to output material before \cs{bibitem} (e.g., a
-section heading), and
+\textsf{nowarning} to omit empty field warnings, \textsf{prebibitem} to
+output material before \cs{bibitem} (e.g., a section heading), and
\textsf{urlnewline} to force a line break before the \textsf{url} value.
-As editors, we've found that these presentation
-tweaks can be desirable for the final typeset output. Authors need not
-worry about them.
+As editors, we've found that these presentation tweaks can be desirable
+for the final typeset output. Authors need not worry about them.
\end{itemize}
diff --git a/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf b/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf
index 3d39af7dade..5d4df0b38fd 100644
--- a/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf
+++ b/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tugboat/tugboat.pdf b/Master/texmf-dist/doc/latex/tugboat/tugboat-code.pdf
index fc6500607f0..2c5c124fa8f 100644
--- a/Master/texmf-dist/doc/latex/tugboat/tugboat.pdf
+++ b/Master/texmf-dist/doc/latex/tugboat/tugboat-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/tugboat/tugboat.dtx b/Master/texmf-dist/source/latex/tugboat/tugboat.dtx
index ea7f22af778..a4b558b1587 100644
--- a/Master/texmf-dist/source/latex/tugboat/tugboat.dtx
+++ b/Master/texmf-dist/source/latex/tugboat/tugboat.dtx
@@ -1,5 +1,5 @@
% \iffalse (this is a meta-comment (so they say))
-% $Id: tugboat.dtx 462 2023-03-08 17:26:54Z karl $
+% $Id: tugboat.dtx 490 2023-07-03 22:27:49Z karl $
% tugboat.dtx - main source for LaTeX TUGboat classes.
%
% Copyright 1994-2023 TeX Users Group.
@@ -28,7 +28,7 @@
%<ltugboatsty>\ProvidesPackage{ltugboat}
%<ltugprocsty>\ProvidesPackage{ltugproc}
%<ltugcomn> \ProvidesPackage{ltugcomn}
- [2023-03-08 v2.29
+ [2023-07-03 v2.30
%<ltugboatcls> TUGboat journal class%
%<ltugproccls> TUG conference proceedings class%
%<ltugboatsty|ltugprocsty> TUG compatibility package%
@@ -318,19 +318,13 @@
% Class options: |draft| vs.\ |preprint| vs.\ |final|.
%
% \begin{macrocode}
-\DeclareOption{draft}{%
+\DeclareOption{draft}{% [draft], the default
+ % If the user loads hyperref, avoid passing on the global draft option
+ % (which would remove all links in the pdf).
+ \PassOptionsToPackage{final}{hyperref}
+ %
\AtEndOfClass{%
\setcounter{page}{901}%
- %
- % Put a question mark into the page number in draft mode.
- \let\tuborigthepage = \thepage
- \def\thepage{%
- \ifnum\value{page}>900
- \textsl{?\texorpdfstring{\,}{}\@arabic{\numexpr\the\c@page-900\relax}}%
- \else
- \arabic{page}%
- \fi}%
- %
\BlackBoxes
\def\MakeRegistrationMarks{}%
\PrelimDrafttrue
@@ -338,22 +332,21 @@
}
\newif\ifpreprint
-\def\preprint{\preprinttrue}
+\def\preprint{\preprinttrue} % [preprint], hardly used
\DeclareOption{preprint}{%
\preprinttrue
}
-\newif\iftubfinaloption % [final]
+\newif\iftubfinaloption % [final], manually inserted by us for processing
\DeclareOption{final}{%
\tubfinaloptiontrue
\AtEndOfClass{%
- \let\thepage=\tuborigthepage
- \NoBlackBoxes
% Insert draft date into the header even with [final], if we are not
% doing a production run. (tugboat.dates sets up page numbers
% above 900 in such pseudo-draft mode.) We use [final] in the first
- % place for this case because draft can change page layout, wrt
- % registration marks, etc.
+ % place for this case because draft vs. final can change page
+ % layout, wrt registration marks, etc. (Not good, but too painful to
+ % change at this late date.)
\ifnum\value{page}>900 \PrelimDrafttrue \else \PrelimDraftfalse \fi
\@tubrunningfull
}%
@@ -377,7 +370,7 @@
\pdfstringdefDisableCommands{%
\let\acro\relax
\let\origDash=\Dash \def\Dash{\texorpdfstring{\origDash}{--}}%
- % lots more could be added.
+ % lots more could/should be added.
}%
\fi
}
@@ -480,10 +473,15 @@
% Occasionally, we need to start an article in the second column of a
% page, due to splicing with a previous article. Let's try declaring that.
% Then, before |\maketitle|, we'll force the move to the second column.
+%
+% And sometimes we need to add space at the top of that second column
+% (e.g., |tb136lettre|); there's no way to intervene in the article
+% source, so define a hook |\tubsecondcolstartextra|.
%
% \begin{macrocode}
-\newif\iftubsecondcolstart
+\newif\iftubsecondcolstart
\DeclareOption{secondcolstart}{\tubsecondcolstarttrue}
+\let\tubsecondcolstartextra\relax
% \end{macrocode}
% \end{macro}
%
@@ -683,7 +681,8 @@
%
% Font used for the METAFONT logo, etc.
% \begin{macrocode}
-\DeclareRobustCommand{\AllTeX}{(\La\kern-.075em)\kern-.075em\TeX}
+\DeclareRobustCommand{\AllTeX}{%
+ \texorpdfstring{(\La\kern-.075em)\kern-.075em\TeX}{(La)TeX}}
\def\AMS{American Mathematical Society}
\def\AmS{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox
{$\mathcal{M}$}\kern-.125em$\mathcal{S}$}
@@ -876,7 +875,7 @@
\def\TANGLE{\texttt{TANGLE}\@}
\def\TB{\textsl{The \TeX\-book}}
\def\TIFF{\acro{TIFF}}
-\def\TP{\textsl{\TeX}:\ \textsl{The Program}}
+\def\TP{\textsl{\TeX:\ 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}%
@@ -927,6 +926,7 @@
\def\VorTeX{V\kern-2.7\p@\lower.5ex\hbox{O\kern-1.4\p@ R}\kern-2.6\p@\TeX}
\def\XeT{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT\@}
\def\XML{\acro{XML}}
+\def\XMP{\acro{XMP}}
\def\WEB{\texttt{WEB}\@}
\def\WEAVE{\texttt{WEAVE}\@}
\def\WYSIWYG{\acro{WYSIWYG}}
@@ -1012,11 +1012,12 @@
% ellipsis character (U+2026) a single character's width, typically more
% squashed together than three period characters. This just looks wrong.
% It is too painful to try to redefine in general, but provide the
-% normal definition for \cs{let} in individual papers.
-\DeclareRobustCommand{\tubdots}{%
+% normal definition to reset in individual papers with, e.g.:
+% |\ifx\tubdots\undefined \else \let\dots\tubdots \let\ldots\tubdots \fi|
+\DeclareRobustCommand{\tubdots}{\ifmmode\mathellipsis\else
.\kern\fontdimen3\font
.\kern\fontdimen3\font
- .\kern\fontdimen3\font}
+ .\kern\fontdimen3\font\fi}
%
% \begin{macro}{\allowhyphens}
% Hyphen control: first, we save (via \cs{edef}) the hyphenpenalties in
@@ -1216,7 +1217,7 @@
%
% \subsection{Assorted user-level markup}
%
-% \LaTeXe{} defines a robust \cs{,}, but that we provide a new definition
+% \LaTeXe{} defines a robust \cs{,} we provide a new definition
% of |~| by redefining \cs{\nobreakspace} (\cs{DeclareRobustCommand}
% doesn't mind redefinition, fortunately). This is based on the version
% in AMS-\TeX---the \LaTeXe{} version (|ltspace.dtx|) has \cs{leavevmode}
@@ -2281,8 +2282,7 @@
% more full columns,
% above the top of an article to leave space to paste up a previous
% article that has finished on the same page. This is a fall back to
-% accommodate the fact that multiple articles cannot yet be run together
-% easily with \LaTeXe.
+% accommodate the fact that multiple articles cannot be run together % easily.
%
% In addition, if the |secondcolstart| option was specified, do
% |\null\newpage| to move over. This is separate from |\PreTitleDrop|,
@@ -2295,16 +2295,16 @@
{\@articletitletrue\@r@maketitle}%
}
\def\@r@maketitle{\par
+ \iftubsecondcolstart \null\newpage\tubsecondcolstartextra \fi
\ifdim\PreTitleDrop > \z@
\loop
\ifdim \PreTitleDrop > \textheight
\vbox{}\vfil\eject
\advance\PreTitleDrop by -\textheight
\repeat
- \vbox to \PreTitleDrop{}
+ \vbox to \PreTitleDrop{\vfil}%
\global\PreTitleDrop=\z@
\fi
- \iftubsecondcolstart \null\newpage\fi
\begingroup
\setcounter{footnote}{0}
\global\@topnum\z@ % disallow floats above the title
@@ -2738,15 +2738,46 @@
% \end{macrocode}
%
% \begin{macrocode}
-\def\l@section#1#2{\addpenalty{\@secpenalty}%
+% |#1| is both the section number and title; |#2| is the page number.
+% Per Ulrike, the hook calls are for tagging, introduced with the
+% June 2023 \LaTeX.
+\def\l@section#1#2{%
+ \addpenalty{\@secpenalty}%
\addvspace{\TBtocsectionspace}%
\@tempdima 1.5em
\begingroup
- \parindent\z@ \rightskip\z@ % article style makes \rightskip > 0
+ \parindent\z@
+ \rightskip\z@ % article style makes \rightskip > 0
\parfillskip\z@
\TBtocsectionfont
- \leavevmode\advance\leftskip\@tempdima\hskip-\leftskip#1\nobreak\hfil
- \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \leavevmode
+ \advance\leftskip\@tempdima
+ \hskip-\leftskip
+ \ifx\UseHookWithArguments\undefined\else
+ \UseHookWithArguments{contentsline/text/before}{4}
+ {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
+ \fi
+ % don't worry if this cs is not defined, hence the \csname.
+ \csname contentsline@text@1@format\endcsname{#1}% number and title
+ \ifx\UseHookWithArguments\undefined\else
+ \UseHookWithArguments{contentsline/text/after}{4}
+ {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
+ \fi
+ \nobreak
+ \hfil
+ \nobreak
+ % page number
+ \hb@xt@\@pnumwidth{\hss
+ \ifx\UseHookWithArguments\undefined\else
+ \UseHookWithArguments{contentsline/page/before}{4}
+ {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
+ \fi
+ #2%
+ \ifx\UseHookWithArguments\undefined\else
+ \UseHookWithArguments{contentsline/page/after}{4}
+ {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
+ \fi
+ }\par
\endgroup}
% \end{macrocode}
%
@@ -2844,7 +2875,13 @@
% The name label comes from the moveable bit of the section argument;
% we subvert the \cs{@sect} and \cs{@ssect} commands (the latter
% deals with starred section commands) to grab the relevant argument.
+%
+% As of the June 2023 \LaTeX\ (or somewhat earlier, but this is good
+% enough), there are hooks that allow us to avoid redefinig
+% \cs{@sect} and \cs{@ssect}.
+%
% \begin{macrocode}
+\@ifl@t@r\fmtversion{2023-06-01}{}{%
\let\TB@@sect\@sect
\let\TB@@ssect\@ssect
\def\@sect#1#2#3#4#5#6[#7]#8{%
@@ -2855,6 +2892,7 @@
\def\@currentlabelname{#5}%
\TB@@ssect{#1}{#2}{#3}{#4}{#5}%
}
+} % LaTeX earlier than June 2023
% \end{macrocode}
%
% We output the name label as a second \cs{newlabel} command
@@ -2863,26 +2901,28 @@
% So we redefine \cs{label} to first call the standard \LaTeX\
% \cs{label} and then write our named label as |nr<label>|.
%
-% \begin{macrocode}
-\let\@savelatexlabel=\label % so save original LaTeX command
-%
-\def\label#1{% de
- \@savelatexlabel{#1}%
- \@bsphack
- \if@filesw
- \protected@write\@auxout{}%
- {\string\newlabel{nr@#1}{{\@currentlabel}{\@currentlabelname}}}%
- \fi
- \@esphack
+% Similarly, we only need this with pre-June 2023 \LaTeX.
+% With more recent LaTeX, define \@currentlabelname via hooks.
+% \begin{macrocode}
+\@ifl@t@r\fmtversion{2023-06-01}{%
+ \AddToHookWithArguments{cmd/@sect/before}{\def\@currentlabelname{#7}}%
+ \AddToHookWithArguments{cmd/@ssect/before}{\def\@currentlabelname{#5}}%
+}{%
+ \let\@savelatexlabel=\label % so save original LaTeX command
+ %
+ \def\label#1{%
+ \@savelatexlabel{#1}%
+ \@bsphack
+ \if@filesw
+ \protected@write\@auxout{}%
+ {\string\newlabel{nr@#1}{{\@currentlabel}{\@currentlabelname}}}%
+ \fi
+ \@esphack}
+ % in case there are no sectioning commands:
+ \let\@currentlabelname\@empty
}
% \end{macrocode}
%
-% Of course, in the case of a sufficiently mad author, there will be
-% no sectioning commands, so we need to
-% \begin{macrocode}
-\let\@currentlabelname\@empty
-% \end{macrocode}
-%
% Getting named references is then just like getting page references in
% the \LaTeX\ kernel (see |ltxref.dtx|).
%
@@ -2899,9 +2939,18 @@
%
% \begin{macrocode}
\AtBeginDocument{%
- \providecommand\nameref[1]{%
- \expandafter\@setref
- \csname r@nr@#1\endcsname\@secondoftwo{#1}%
+ \@ifl@t@r\fmtversion{2023-06-01}%
+ { % after June 2023, LaTeX stores the label name; use that.
+ \long\def\@thirdoffive#1#2#3#4#5{#3}
+ \providecommand\nameref[1]{%
+ \expandafter\@setref
+ \csname r@#1\endcsname\@thirdoffive{#1}}%
+ }
+ { % for earlier versions, still avoid overwriting \nameref per above.
+ % but if not otherwise defined, use the "nr" label defined by our \label.
+ \providecommand\nameref[1]{%
+ \expandafter\@setref
+ \csname r@nr@#1\endcsname\@secondoftwo{#1}}%
}%
}
% \end{macrocode}
@@ -3488,11 +3537,38 @@
\def\@oddhead{\MakeRegistrationMarks
\frenchspacing
\normalsize\csname normalshape\endcsname\rm \tubheadhook
- \rtitlex\qquad \midrtitle\hfil \rtitlenexttopage\quad \thepage}
+ \rtitlex\qquad \midrtitle\hfil \rtitlenexttopage\quad\thepage}
\def\@evenhead{\MakeRegistrationMarks
\frenchspacing
\normalsize\csname normalshape\endcsname\rm \tubheadhook
- \thepage \quad\rtitlenexttopage \hfil\midrtitle \qquad\rtitlex}
+ \thepage\quad\rtitlenexttopage \hfil\midrtitle \qquad\rtitlex}
+
+% Put a ? into the page number in all but a final run, so people
+% aren't tempted to cite it.
+%
+% We redefine |\thepage| so that the ? will also be used in page
+% references (in the text) and the toc. This is what's recommended by
+% the LaTeX developers: https://tex.stackexchange.com/questions/687258.
+% (Ulrike's example does this after loading hyperref, but doesn't seem
+% to matter?)
+\renewcommand\thepage{%
+ \ifnum\value{page}>900
+ % in CM, numerals are exactly .5em.
+ %
+ % The \texorpdfstring avoids the usual hyperref warning:
+ % Token not allowed in a PDF string ... removing `\@ifnextchar'
+ \texorpdfstring{\makebox[.5em][l]{\small ?}}{?}%
+ %
+ \textsl{\@arabic{\numexpr\value{page}-900\relax}}% e-tex
+ \else
+ \@arabic{\value{page}}%
+ \fi
+}
+% This custom page number format will break makeindex, etc., so we have
+% to tell about the format. Per Ulrike:
+% \usepackage{index}
+% \newcommand\specialthepage{\inteval{\value{page}-900}}
+% \newindex[specialthepage]*{default}{idx}{ind}{Index}
% can be used to reset the font, e.g., tb98kuester.
\def\tubheadhook{}
@@ -3745,6 +3821,7 @@
\def\thefootnote{}%
% no period, please, also no fnmark.
\def\@makefntext##1{##1}%
+ \def\Hy@Warning##1{}%
\footnotetext{\noindent #1#2}%
\endgroup
}
diff --git a/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls b/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls
index 5014f891f30..487cb2ca7d2 100644
--- a/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls
+++ b/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls
@@ -32,7 +32,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesClass {ltugboat}
- [2023-03-08 v2.29
+ [2023-07-03 v2.30
TUGboat journal class%
]
\newif\ifTBunicodeengine
@@ -48,19 +48,13 @@
\def\TBError{\ClassError{\@tugclass}}
\def\TBWarning{\ClassWarning{\@tugclass}}
\def\TBWarningNL{\ClassWarningNoLine{\@tugclass}}
-\DeclareOption{draft}{%
+\DeclareOption{draft}{% [draft], the default
+ % If the user loads hyperref, avoid passing on the global draft option
+ % (which would remove all links in the pdf).
+ \PassOptionsToPackage{final}{hyperref}
+ %
\AtEndOfClass{%
\setcounter{page}{901}%
- %
- % Put a question mark into the page number in draft mode.
- \let\tuborigthepage = \thepage
- \def\thepage{%
- \ifnum\value{page}>900
- \textsl{?\texorpdfstring{\,}{}\@arabic{\numexpr\the\c@page-900\relax}}%
- \else
- \arabic{page}%
- \fi}%
- %
\BlackBoxes
\def\MakeRegistrationMarks{}%
\PrelimDrafttrue
@@ -68,22 +62,21 @@
}
\newif\ifpreprint
-\def\preprint{\preprinttrue}
+\def\preprint{\preprinttrue} % [preprint], hardly used
\DeclareOption{preprint}{%
\preprinttrue
}
-\newif\iftubfinaloption % [final]
+\newif\iftubfinaloption % [final], manually inserted by us for processing
\DeclareOption{final}{%
\tubfinaloptiontrue
\AtEndOfClass{%
- \let\thepage=\tuborigthepage
- \NoBlackBoxes
% Insert draft date into the header even with [final], if we are not
% doing a production run. (tugboat.dates sets up page numbers
% above 900 in such pseudo-draft mode.) We use [final] in the first
- % place for this case because draft can change page layout, wrt
- % registration marks, etc.
+ % place for this case because draft vs. final can change page
+ % layout, wrt registration marks, etc. (Not good, but too painful to
+ % change at this late date.)
\ifnum\value{page}>900 \PrelimDrafttrue \else \PrelimDraftfalse \fi
\@tubrunningfull
}%
@@ -97,7 +90,7 @@
\pdfstringdefDisableCommands{%
\let\acro\relax
\let\origDash=\Dash \def\Dash{\texorpdfstring{\origDash}{--}}%
- % lots more could be added.
+ % lots more could/should be added.
}%
\fi
}
@@ -129,6 +122,7 @@
\DeclareOption{onecolumn}{\@tubtwocolumnfalse}
\newif\iftubsecondcolstart
\DeclareOption{secondcolstart}{\tubsecondcolstarttrue}
+\let\tubsecondcolstartextra\relax
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ExecuteOptions{draft,extralabel,numbersec,rawcite,runningminimal}
\ProcessOptions
@@ -208,7 +202,8 @@
^{\mbox{\fontsize\sf@size\z@
\selectfont #1}}}}
\def\tubline{\hbox to \hsize}
-\DeclareRobustCommand{\AllTeX}{(\La\kern-.075em)\kern-.075em\TeX}
+\DeclareRobustCommand{\AllTeX}{%
+ \texorpdfstring{(\La\kern-.075em)\kern-.075em\TeX}{(La)TeX}}
\def\AMS{American Mathematical Society}
\def\AmS{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox
{$\mathcal{M}$}\kern-.125em$\mathcal{S}$}
@@ -356,7 +351,7 @@
\def\TANGLE{\texttt{TANGLE}\@}
\def\TB{\textsl{The \TeX\-book}}
\def\TIFF{\acro{TIFF}}
-\def\TP{\textsl{\TeX}:\ \textsl{The Program}}
+\def\TP{\textsl{\TeX:\ 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}%
@@ -405,6 +400,7 @@
\def\VorTeX{V\kern-2.7\p@\lower.5ex\hbox{O\kern-1.4\p@ R}\kern-2.6\p@\TeX}
\def\XeT{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT\@}
\def\XML{\acro{XML}}
+\def\XMP{\acro{XMP}}
\def\WEB{\texttt{WEB}\@}
\def\WEAVE{\texttt{WEAVE}\@}
\def\WYSIWYG{\acro{WYSIWYG}}
@@ -453,10 +449,10 @@
\def\NoBlackBoxes{\overfullrule=\z@}
\def\newline{\hskip\z@\@plus\pagewd\break}
\def\tubsentencespace{\spacefactor=3000{}\space\ignorespaces}
-\DeclareRobustCommand{\tubdots}{%
+\DeclareRobustCommand{\tubdots}{\ifmmode\mathellipsis\else
.\kern\fontdimen3\font
.\kern\fontdimen3\font
- .\kern\fontdimen3\font}
+ .\kern\fontdimen3\font\fi}
\edef\allowhyphens{\noexpand\hyphenpenalty\the\hyphenpenalty\relax
\noexpand\exhyphenpenalty\the\exhyphenpenalty\relax}
\def\nohyphens{\hyphenpenalty\@M\exhyphenpenalty\@M}
@@ -1061,16 +1057,16 @@
{\@articletitletrue\@r@maketitle}%
}
\def\@r@maketitle{\par
+ \iftubsecondcolstart \null\newpage\tubsecondcolstartextra \fi
\ifdim\PreTitleDrop > \z@
\loop
\ifdim \PreTitleDrop > \textheight
\vbox{}\vfil\eject
\advance\PreTitleDrop by -\textheight
\repeat
- \vbox to \PreTitleDrop{}
+ \vbox to \PreTitleDrop{\vfil}%
\global\PreTitleDrop=\z@
\fi
- \iftubsecondcolstart \null\newpage\fi
\begingroup
\setcounter{footnote}{0}
\global\@topnum\z@ % disallow floats above the title
@@ -1291,15 +1287,43 @@
\string#2\space used instead}#2}
\def\TBtocsectionfont{\normalfont}
\newskip\TBtocsectionspace \TBtocsectionspace=1.0ex\@plus\p@
-\def\l@section#1#2{\addpenalty{\@secpenalty}%
+\def\l@section#1#2{%
+ \addpenalty{\@secpenalty}%
\addvspace{\TBtocsectionspace}%
\@tempdima 1.5em
\begingroup
- \parindent\z@ \rightskip\z@ % article style makes \rightskip > 0
+ \parindent\z@
+ \rightskip\z@ % article style makes \rightskip > 0
\parfillskip\z@
\TBtocsectionfont
- \leavevmode\advance\leftskip\@tempdima\hskip-\leftskip#1\nobreak\hfil
- \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \leavevmode
+ \advance\leftskip\@tempdima
+ \hskip-\leftskip
+ \ifx\UseHookWithArguments\undefined\else
+ \UseHookWithArguments{contentsline/text/before}{4}
+ {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
+ \fi
+ % don't worry if this cs is not defined, hence the \csname.
+ \csname contentsline@text@1@format\endcsname{#1}% number and title
+ \ifx\UseHookWithArguments\undefined\else
+ \UseHookWithArguments{contentsline/text/after}{4}
+ {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
+ \fi
+ \nobreak
+ \hfil
+ \nobreak
+ % page number
+ \hb@xt@\@pnumwidth{\hss
+ \ifx\UseHookWithArguments\undefined\else
+ \UseHookWithArguments{contentsline/page/before}{4}
+ {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
+ \fi
+ #2%
+ \ifx\UseHookWithArguments\undefined\else
+ \UseHookWithArguments{contentsline/page/after}{4}
+ {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
+ \fi
+ }\par
\endgroup}
\renewcommand{\appendix}{\par
\renewcommand{\thesection}{\@Alph\c@section}%
@@ -1329,6 +1353,7 @@
\textbf{?!?}%
}%
}
+\@ifl@t@r\fmtversion{2023-06-01}{}{%
\let\TB@@sect\@sect
\let\TB@@ssect\@ssect
\def\@sect#1#2#3#4#5#6[#7]#8{%
@@ -1339,21 +1364,37 @@
\def\@currentlabelname{#5}%
\TB@@ssect{#1}{#2}{#3}{#4}{#5}%
}
-\let\@savelatexlabel=\label % so save original LaTeX command
-\def\label#1{% de
- \@savelatexlabel{#1}%
- \@bsphack
- \if@filesw
- \protected@write\@auxout{}%
- {\string\newlabel{nr@#1}{{\@currentlabel}{\@currentlabelname}}}%
- \fi
- \@esphack
+} % LaTeX earlier than June 2023
+\@ifl@t@r\fmtversion{2023-06-01}{%
+ \AddToHookWithArguments{cmd/@sect/before}{\def\@currentlabelname{#7}}%
+ \AddToHookWithArguments{cmd/@ssect/before}{\def\@currentlabelname{#5}}%
+}{%
+ \let\@savelatexlabel=\label % so save original LaTeX command
+ %
+ \def\label#1{%
+ \@savelatexlabel{#1}%
+ \@bsphack
+ \if@filesw
+ \protected@write\@auxout{}%
+ {\string\newlabel{nr@#1}{{\@currentlabel}{\@currentlabelname}}}%
+ \fi
+ \@esphack}
+ % in case there are no sectioning commands:
+ \let\@currentlabelname\@empty
}
-\let\@currentlabelname\@empty
\AtBeginDocument{%
- \providecommand\nameref[1]{%
- \expandafter\@setref
- \csname r@nr@#1\endcsname\@secondoftwo{#1}%
+ \@ifl@t@r\fmtversion{2023-06-01}%
+ { % after June 2023, LaTeX stores the label name; use that.
+ \long\def\@thirdoffive#1#2#3#4#5{#3}
+ \providecommand\nameref[1]{%
+ \expandafter\@setref
+ \csname r@#1\endcsname\@thirdoffive{#1}}%
+ }
+ { % for earlier versions, still avoid overwriting \nameref per above.
+ % but if not otherwise defined, use the "nr" label defined by our \label.
+ \providecommand\nameref[1]{%
+ \expandafter\@setref
+ \csname r@nr@#1\endcsname\@secondoftwo{#1}}%
}%
}
\newdimen\@tubfullpageindent
@@ -1635,11 +1676,25 @@
\def\@oddhead{\MakeRegistrationMarks
\frenchspacing
\normalsize\csname normalshape\endcsname\rm \tubheadhook
- \rtitlex\qquad \midrtitle\hfil \rtitlenexttopage\quad \thepage}
+ \rtitlex\qquad \midrtitle\hfil \rtitlenexttopage\quad\thepage}
\def\@evenhead{\MakeRegistrationMarks
\frenchspacing
\normalsize\csname normalshape\endcsname\rm \tubheadhook
- \thepage \quad\rtitlenexttopage \hfil\midrtitle \qquad\rtitlex}
+ \thepage\quad\rtitlenexttopage \hfil\midrtitle \qquad\rtitlex}
+
+\renewcommand\thepage{%
+ \ifnum\value{page}>900
+ % in CM, numerals are exactly .5em.
+ %
+ % The \texorpdfstring avoids the usual hyperref warning:
+ % Token not allowed in a PDF string ... removing `\@ifnextchar'
+ \texorpdfstring{\makebox[.5em][l]{\small ?}}{?}%
+ %
+ \textsl{\@arabic{\numexpr\value{page}-900\relax}}% e-tex
+ \else
+ \@arabic{\value{page}}%
+ \fi
+}
\def\tubheadhook{}
@@ -1776,6 +1831,7 @@
\def\thefootnote{}%
% no period, please, also no fnmark.
\def\@makefntext##1{##1}%
+ \def\Hy@Warning##1{}%
\footnotetext{\noindent #1#2}%
\endgroup
}
diff --git a/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty b/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty
index ef48a7e6d9f..3d64ea5ce5d 100644
--- a/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty
+++ b/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty
@@ -31,7 +31,7 @@
%% extension .ins) which are part of the distribution.
%%
\ProvidesPackage{ltugboat}
- [2023-03-08 v2.29
+ [2023-07-03 v2.30
TUG compatibility package%
]
\@obsoletefile{ltugboat.cls}{ltugboat.sty}
diff --git a/Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty b/Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty
index edee9be67e2..63845f6b450 100644
--- a/Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty
+++ b/Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty
@@ -32,7 +32,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{ltugcomn}
- [2023-03-08 v2.29
+ [2023-07-03 v2.30
TUGboat `common macros' package%
]
\newif\ifTBunicodeengine
@@ -105,7 +105,8 @@
^{\mbox{\fontsize\sf@size\z@
\selectfont #1}}}}
\def\tubline{\hbox to \hsize}
-\DeclareRobustCommand{\AllTeX}{(\La\kern-.075em)\kern-.075em\TeX}
+\DeclareRobustCommand{\AllTeX}{%
+ \texorpdfstring{(\La\kern-.075em)\kern-.075em\TeX}{(La)TeX}}
\def\AMS{American Mathematical Society}
\def\AmS{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox
{$\mathcal{M}$}\kern-.125em$\mathcal{S}$}
@@ -253,7 +254,7 @@
\def\TANGLE{\texttt{TANGLE}\@}
\def\TB{\textsl{The \TeX\-book}}
\def\TIFF{\acro{TIFF}}
-\def\TP{\textsl{\TeX}:\ \textsl{The Program}}
+\def\TP{\textsl{\TeX:\ 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}%
@@ -302,6 +303,7 @@
\def\VorTeX{V\kern-2.7\p@\lower.5ex\hbox{O\kern-1.4\p@ R}\kern-2.6\p@\TeX}
\def\XeT{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT\@}
\def\XML{\acro{XML}}
+\def\XMP{\acro{XMP}}
\def\WEB{\texttt{WEB}\@}
\def\WEAVE{\texttt{WEAVE}\@}
\def\WYSIWYG{\acro{WYSIWYG}}
@@ -350,10 +352,10 @@
\def\NoBlackBoxes{\overfullrule=\z@}
\def\newline{\hskip\z@\@plus\pagewd\break}
\def\tubsentencespace{\spacefactor=3000{}\space\ignorespaces}
-\DeclareRobustCommand{\tubdots}{%
+\DeclareRobustCommand{\tubdots}{\ifmmode\mathellipsis\else
.\kern\fontdimen3\font
.\kern\fontdimen3\font
- .\kern\fontdimen3\font}
+ .\kern\fontdimen3\font\fi}
\edef\allowhyphens{\noexpand\hyphenpenalty\the\hyphenpenalty\relax
\noexpand\exhyphenpenalty\the\exhyphenpenalty\relax}
\def\nohyphens{\hyphenpenalty\@M\exhyphenpenalty\@M}
diff --git a/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls b/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls
index cf8814e0513..96c6a5d73bc 100644
--- a/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls
+++ b/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls
@@ -32,7 +32,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesClass {ltugproc}
- [2023-03-08 v2.29
+ [2023-07-03 v2.30
TUG conference proceedings class%
]
\def\@tugclass{ltugproc}
diff --git a/Master/texmf-dist/tex/latex/tugboat/ltugproc.sty b/Master/texmf-dist/tex/latex/tugboat/ltugproc.sty
index bb3b6d98676..66d7e77d4ab 100644
--- a/Master/texmf-dist/tex/latex/tugboat/ltugproc.sty
+++ b/Master/texmf-dist/tex/latex/tugboat/ltugproc.sty
@@ -31,7 +31,7 @@
%% extension .ins) which are part of the distribution.
%%
\ProvidesPackage{ltugproc}
- [2023-03-08 v2.29
+ [2023-07-03 v2.30
TUG compatibility package%
]
\@obsoletefile{ltugproc.cls}{ltugproc.sty}