From 9ab6cd6e1acc331b86f1a497026cb07261634c08 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 15 Nov 2020 22:21:52 +0000 Subject: tugboat (15nov20) git-svn-id: svn://tug.org/texlive/trunk@56942 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst | 180 +++++++++++++++------ Master/texmf-dist/doc/latex/tugboat/NEWS | 14 ++ Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx | 101 +++++++----- Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf | Bin 330289 -> 337563 bytes Master/texmf-dist/doc/latex/tugboat/manifest.txt | 3 +- Master/texmf-dist/doc/latex/tugboat/tugboat.pdf | Bin 462486 -> 464400 bytes Master/texmf-dist/source/latex/tugboat/tugboat.dtx | 173 ++++++++++++++------ Master/texmf-dist/tex/latex/tugboat/ltugboat.cls | 100 ++++++++---- Master/texmf-dist/tex/latex/tugboat/ltugboat.sty | 2 +- Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty | 37 +++-- Master/texmf-dist/tex/latex/tugboat/ltugproc.cls | 2 +- Master/texmf-dist/tex/latex/tugboat/ltugproc.sty | 2 +- 12 files changed, 420 insertions(+), 194 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/tugboat/NEWS diff --git a/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst b/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst index 57831f4832d..d5ed32280ff 100644 --- a/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst +++ b/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst @@ -1,13 +1,19 @@ -%%% $Id: tugboat.bst 271 2020-01-13 19:13:12Z karl $ +%%% $Id: tugboat.bst 314 2020-11-15 02:06:03Z karl $ %%% TUGboat changes are public domain. %%% %%% Modified for TUGboat from abbrvurl.bst: %%% Abbreviate "page(s)" to "p(p).", %%% "volume" to "vol.", %%% "editor(s)" to "ed(s)". -%%% Set urlintro="". %%% Output "Ph.D." rather than "PhD". -%%% Reduce long author lists in format.names per Mico Loretan. +%%% Output "No." and "no." for number field. +%%% Set urlintro="". +%%% Always use https://doi.org/ for the doi url, and omit doi: prefix +%%% (incomplete: doi urls not linked correctly). +%%% Omit spaces between author initials, like "A.B. Smith". +%%% Truncate long author lists in format.names (max.names, trunc.num) +%%% and omit "and" from author lists, per Oren P. +%%% New field bookauthor for @incollection and @inproceedings. %%% New fields for editors: %%% "newpage" - force page break after entry; %%% "urlnewline" - force line break before url value; @@ -37,6 +43,7 @@ ENTRY { address author + bookauthor booktitle chapter edition @@ -97,7 +104,7 @@ FUNCTION {init.urlbst.variables} "[link]" 'linktextstring := % dummy link text; typically "[link]" "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref "arXiv:" 'eprintprefix := % text prefix printed before eprint ref; typically "arXiv:" - "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI + "https://doi.org/" 'doiurl := % prefix to make URL from DOI "doi:" 'doiprefix := % text prefix printed before DOI ref; typically "doi:" "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED "PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref; typically "PMID:" @@ -222,7 +229,7 @@ FUNCTION {possibly.setup.inlinelink} hrefform #1 = % hypertex { "\special {html: }{" * 'openinlinelink := "\special {html:}" 'closeinlinelink := } - { "\newline\href {" swap$ * "} {" * 'openinlinelink := % hrefform=#2 -- hyperref + { "\href {" swap$ * "} {" * 'openinlinelink := % hrefform=#2 -- hyperref % the space between "} {" matters: a URL of just the right length can cause "\% newline em" "}" 'closeinlinelink := } if$ @@ -392,44 +399,88 @@ FUNCTION {emphasize} if$ } -INTEGERS { nameptr namesleft numnames } +%%% from trunc-auth.bst: +%%% There are two constants that allow for the truncation of a list of author +%%% (or editor) names -- max.names and trunc.num. And here's how they work: +%%% If there are max.names of fewer in the list, there is no truncation; but +%%% if there are more than max.names, the list is truncated at the trunc.num +%%% name, which is replaced by trunc.string (such as "et~al.", and names later +%%% in the list are omitted). There's also a sanity check, making sure that: +%%% 2 <= trunc.num <= max.names + 1 + +INTEGERS { max.names trunc.num } + +STRINGS { trunc.string sort.trunc.string } % the two truncation-string versions + +FUNCTION {init.and.check.trunc.consts} % from trunc-auth.bst, +{ #3 'max.names := % the two relevant integer constants + #3 'trunc.num := + "et~al." 'trunc.string := % and string constants for printing + "et al" 'sort.trunc.string := % and sorting + trunc.num #2 < + { "trunc.num=" trunc.num int.to.str$ * " but should be at least 2" * + warning$ + } + 'skip$ + if$ + trunc.num max.names #1 + > + { "trunc.num=" trunc.num int.to.str$ * + " should be at most max.names + 1 = " * max.names #1 + int.to.str$ * + warning$ + } + 'skip$ + if$ +} + +INTEGERS { nameptr numnames } + +INTEGERS { finalnamenum } % from trunc-auth.bst -FUNCTION {format.names} +FUNCTION {format.names} % from trunc-auth.bst { 's := - #1 'nameptr := + #0 'nameptr := s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := - nameptr #1 > - % following lines implement printing only 2 author names (+ "et al.") - % whenever there are more than 4 authors. Thanks Mico. - % https://tex.stackexchange.com/questions/26575 - { nameptr #2 - #1 + = - numnames #3 - > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > - { ", " * t * } - { numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { " et~al." * } - { " and " * t * } + numnames max.names > % from trunc-auth.bst + { trunc.num 'finalnamenum := } % truncate in this case + { numnames 'finalnamenum := } + if$ + { nameptr finalnamenum < } + { nameptr #1 + 'nameptr := + % original line: + %s nameptr "{f{.}.~}{vv~}{ll}{, jj}" format.name$ 't := + % + % But we want to avoid the space that BibTeX usually inserts + % between the abbreviations of the tokens, so we get "A.B." + % instead of "A. B.". + % + % So, the "f{.}.~~" here says that, for the first name part (say + % "Alex B.") output the abbreviation for the first token ("A"), a + % period ("."), the abbreviation for the second token ("B"), and + % another period ("."), omitting the normal intertoken space, + % as discussed at the very end of btxhak. + % + % The final ~~ forces a tilde in the output, since we never want a + % line break between the initials and the last name. + % + s nameptr "{f{.}.~~}{vv~}{ll}{, jj}" format.name$ 't := + % + nameptr #1 = + 't + { ", " * % comma but no "and" before final name + nameptr finalnamenum < + { t * } + { numnames max.names > + { trunc.string * } + { t "others" = + { "et~al." * } + { t * } + if$ + } if$ } if$ } - 't if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := } while$ } @@ -453,6 +504,20 @@ FUNCTION {format.editors} if$ } +% if editor is non-empty, format it. +% else if bookauthor is non-empty, format it. +% else nothing. +FUNCTION {format.editors.bookauthors} +{ editor empty$ + { bookauthor empty$ + { "" } + { bookauthor format.names } + if$ + } + { format.editors } + if$ +} + FUNCTION {format.title} { title empty$ { "" } @@ -539,8 +604,8 @@ FUNCTION {format.number.series} { number empty$ { series field.or.null } { output.state mid.sentence = - { "number" } - { "Number" } + { "no." } + { "No." } if$ number tie.or.space.connect series empty$ @@ -635,12 +700,17 @@ FUNCTION {format.chapter.pages} if$ } +% handle possible bookauthor. +% original line: { "In " format.editors * ", " * booktitle emphasize * } + FUNCTION {format.in.ed.booktitle} { booktitle empty$ { "" } { editor empty$ + bookauthor empty$ + and { "In~" booktitle emphasize * } - { "In " format.editors * ", " * booktitle emphasize * } + { "In " booktitle emphasize * ", " format.editors.bookauthors * * } if$ } if$ @@ -777,7 +847,7 @@ FUNCTION {make.href.hypertex} % make hyperref specials FUNCTION {make.href.hyperref} { - "\newline\href {" swap$ * "} {\path{" * swap$ * "}}" * + "\href{" swap$ * "}{\path{" * swap$ * "}}" * } FUNCTION {make.href} { hrefform #2 = @@ -820,7 +890,7 @@ FUNCTION {format.eprint} FUNCTION {format.doi} { doi empty$ { "" } - { doiprefix doi * doiurl doi * make.href } + { doi doiurl make.href } if$ } @@ -1336,6 +1406,8 @@ MACRO {tcs} {"Theoretical Comput. Sci."} READ +EXECUTE {init.and.check.trunc.consts} % from trunc-auth.bst + FUNCTION {sortify} { purify$ "l" change.case$ @@ -1352,24 +1424,34 @@ FUNCTION {chop.word} if$ } -FUNCTION {sort.format.names} +FUNCTION {sort.format.names} % from trunc-auth.bst { 's := - #1 'nameptr := + #0 'nameptr := "" s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > + numnames max.names > % from trunc-auth.bst + { trunc.num 'finalnamenum := } % truncate in this case + { numnames 'finalnamenum := } + if$ + { nameptr finalnamenum < } + { nameptr #1 + 'nameptr := + nameptr #1 > { " " * } 'skip$ if$ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := - nameptr numnames = t "others" = and - { "et al" * } + nameptr finalnamenum < { t sortify * } + { numnames max.names > + { sort.trunc.string * } + { t "others" = + { "et al" * } + { t sortify * } + if$ + } + if$ + } if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := } while$ } diff --git a/Master/texmf-dist/doc/latex/tugboat/NEWS b/Master/texmf-dist/doc/latex/tugboat/NEWS new file mode 100644 index 00000000000..a640030d7b8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tugboat/NEWS @@ -0,0 +1,14 @@ +$Id: NEWS 314 2020-11-15 02:06:03Z karl $ +This file records noteworthy changes. This file is public domain. + +2.24 (2020-11-14): + +ltugboat.cls: +- new hyphenation exceptions: Ja-pa-nese, Pak-i-stan. +- new abbrevations: \macOS, \OpTeX. + +tugboat.bst: +- new field bookauthor for @incollection and @inproceedings. +- generalize truncation of author names with new code from + Oren Patashnik, using integers max.names and trunc.num + to control operation. diff --git a/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx b/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx index db9f183dac0..4c7ea0b25eb 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 274 2020-03-12 16:47:21Z karl $ +% $Id: ltubguid.ltx 313 2020-11-15 01:52:20Z karl $ % ltubguid.ltx - documentation for ltugboat classes. % % Copyright 1994-2020 TeX Users Group. @@ -38,25 +38,26 @@ @Misc{pkg:fancyvrb, author = {Timothy Van Zandt and others}, title = {The {\textsf{fancyvrb}} package}, - howpublished = {\url{ctan.org/pkg/fancyvrb}}, + url = {ctan.org/pkg/fancyvrb}, } @Misc{pkg:listings, author = {Carsten Heinz and others}, title = {The {\textsf{listings}} package}, - howpublished = {\url{ctan.org/pkg/listings}}, + url = {ctan.org/pkg/listings}, } @Misc{Arseneau:url:1996, author = {Donald Arseneau}, title = {The {\textsf{url}} package}, - howpublished = {\url{ctan.org/pkg/url}}, + url = {ctan.org/pkg/url}, + urlnewline = 1, } @Misc{Rahtz:hyperref:1997, author = {Sebastian Rahtz and Heiko Oberdiek and others}, title = {The {\textsf{hyperref}} package}, - howpublished = {\url{ctan.org/pkg/hyperref}}, + url = {ctan.org/pkg/hyperref}, } @Book{Lamport:1994, @@ -68,15 +69,17 @@ } @Misc{Schoepf:verbatim:1996, - author = {Rainer Sch{\umlaut{o}}pf}, + author = {Rainer Sch{\"{o}}pf}, title = {The {\textsf{verbatim}} package}, - howpublished = {\url{ctan.org/pkg/verbatim}}, + url = {ctan.org/pkg/verbatim}, + urlnewline = 1, } @Misc{Vieth:mflogo:1995, author = {Ulrik Vieth}, title = {The {\textsf{mflogo}} package}, - howpublished = {\url{ctan.org/pkg/mflogo}}, + url = {ctan.org/pkg/mflogo}, + urlnewline = 1, } @Article{Whitney:TB10-3-378, @@ -88,7 +91,7 @@ volume = {10}, number = {3}, pages = {378--385}, - note = {\url{ctan.org/pkg/tugboat-plain}}, + url = {ctan.org/pkg/tugboat-plain}, } \end{filecontents} @@ -184,10 +187,6 @@ } \makeatother % -% To use umlauts in a bibliography entry in BibTeX 0.99, we have to -% use a certain amount of subterfuge... -\let\umlaut\" -% %%%%%%%%%%%%%%%% \begin{document} %%%%%%%%%%%%%%%% @@ -262,8 +261,7 @@ and one/two-side options). \item[final] Set up for the final copy of a paper: page numbering to come from elsewhere, no cropmarks. \item[harvardcite] Specify Harvard-style citation (not - recommended in general; see section~\ref{sec:biblio}); see - section~\ref{sec:biblio}. + recommended in general; see section~\ref{sec:biblio}. \item[noextralabel] Don't use the extra label-distinguishing mark in the body of the reference; see section~\ref{sec:biblio}. \item[nonumber] Sections are not numbered; section heading @@ -315,17 +313,26 @@ relies on the section numbers to indicate where the divisions lie in the hierarchy. If you use \cs{paragraph}, consider ending the paragraph label with a period; sometimes it is helpful, sometimes not. -Reference may, however, be made to the `title' of divisions of the -paper, whether they are numbered or not. The \cs{nameref} command -(which uses the technique developed for the \textsf{hyperref} package +For references to numbered sections, our style is to always use the word +`Section' in the text, e.g.,\\ +\verb|Section~\ref{sec:whatever}|\\ +without worrying about whether it is technically a sub(sub)section. +It's also ok to use the section sign~\S{}, if that suits the material +better. + +Reference can also be made to the `title' of divisions of the paper, +whether they are numbered or not. The \cs{nameref} command (which uses +the technique developed for the \textsf{hyperref} package \cite{Rahtz:hyperref:1997}) permits such references; for example, the present section was introduced by: \begin{verbatim}[\small] - \section{Divisions of the paper} - \label{sec:divs-paper} +\section{Divisions of the paper} +\label{sec:divs-paper} \end{verbatim} and the command \verb|\nameref{sec:divs-paper}| produces -`\nameref{sec:divs-paper}'. +`\nameref{sec:divs-paper}'. However, as you can see here, reusing the +literal text of section titles often results in awkward results. We +recommend numbered references in general. \subsection{Abstracts} @@ -336,6 +343,8 @@ title is `Abstract'. The \envname{longabstract} environment typesets its body in small text, and separates the abstract from the rest of the paper with a decorative line; this is rarely used. +Please write an abstract, however short. + \subsection{Appendices} A paper may have appendices, which can be expressed in exactly the same @@ -526,7 +535,7 @@ as \pkgname{verbatim}~\cite{Schoepf:verbatim:1996}, If you use the \pkgname{listings} package, please specify: \begin{verbatim}[\small] -\lstset{columns=flexible, keepspaces=true, +\lstset{columns=fullflexible, keepspaces=true, commentstyle=\slshape, basicstyle=\ttfamily\small} \lstdefinestyle{inline} @@ -535,8 +544,10 @@ If you use the \pkgname{listings} package, please specify: Explanations: \begin{itemize} -\item \texttt{columns=flexible}: -The other values for the \verb|columns| option don't work well in \TUB. +\item \texttt{columns=fullflexible}: +The other values for the \verb|columns| option don't work well in \TUB; +we want the program text to be typeset normally, not forcibly aligned +into large character cells. \item \texttt{keepspaces=true}: However, having flexible columns makes spaces in the input not @@ -694,13 +705,13 @@ urls, etc.; it is being used throughout the present paper (not least in the bibliography), either on its own or via \texttt{hyperref}. Although not necessarily recommended in all cases, many additional -packages are commonly used. To mention a few: \texttt{microtype} can -help reduce overfull boxes (and improve appearance); sometimes it may be -preferable to use the Latin Modern fonts via \texttt{lmodern}; -\texttt{iftex} provides tests for the \TeX\ engine being run; -\texttt{texosquery} provides operating system information; and -\texttt{hyperref} supports live and internal hyperlinks, outlines, and +packages are commonly used. To mention a few: +\begin{description} +\item[microtype] can help reduce overfull boxes and improve appearance; +\item[lmodern] use the Latin Modern fonts, sometimes preferable; +\item[hyperref] supports live and internal hyperlinks, outlines, and many other features. +\end{description} \section{Typesetting urls} \label{sec:urls} @@ -774,16 +785,20 @@ though, you may enjoy the following small but useful features: \item and thus supports \textsf{url} and \textsf{doi} fields, among others. Please use \textsf{url} instead of putting urls in the \textsf{note} field, where possible. Also, please don't bother to -include ``url access date'' information for \TUB; we find that extraneous. +include ``access date'' information for \TUB; we find that extraneous. \item The \textsf{url} field is ignored if either the \textsf{howpublished} or \textsf{doi} field is present. In practice we observe that people put the same information in all those fields, and we don't want to typeset redundant information. -\item Has even more abbreviations than \textsf{abbrv}, such as +\item Does even more abbreviating than \textsf{abbrv}, such as printing only two author names (plus ``et~al.'')\ if there are more than -four authors (thanks to Mico Loretan). +four authors (thanks to Mico Loretan and Oren Patashnik). + +\item New field \textsf{bookauthor} for the \textsf{@incollection} and +\textsf{@inproceedings} allows for citing a part, written by author~X, +of a publication written by author~Y, and not just edited by~Y. \item Defines an \textsf{@online} entry type as an alias for \textsf{@misc}. @@ -801,13 +816,16 @@ If you use \BibTeX, feel free to take advantage of the accumulated bibliography of \TUB{} itself (\url{info/tugboat.bib} on \CTAN), and the other compilations by Nelson Beebe in that same directory. -Bibliographies provide further problems because they're notoriously -difficult to typeset at the best of times. \LaTeX{} sets \cs{sloppy} -when typesetting the bibliography, but this often leads to unpleasant -output in the narrow columns typical of \TUB{}. The author can control -the typesetting using the command \cs{SetBibJustification}. The classes -set \cs{sloppy}, by default (just like \LaTeX{}), but the author may -(for example) say: +By the way, we recommending using commas to terminate all fields in +\texttt{.bib} files, including the last one in an entry. That makes it +one less thing to worry about when changing fields around in the source. + +Bibliographies can be difficult to typeset at the best of times. +\LaTeX{} sets \cs{sloppy} when typesetting the bibliography, but this +typically leads to unpleasant output with \TUB's narrow columns. The +author can specify typesetting parameters using the command +\cs{SetBibJustification}. The classes remain \cs{sloppy} by default, but +the author may (for example) say: \begin{verbatim} \SetBibJustification{\raggedright} \end{verbatim} @@ -816,7 +834,7 @@ as the present article does, to often achieve somewhat better results. A last note for references: for \TUB\ issues, please use the format \textsl{volno\,:\,issno}, e.g., ``\TUB\ 32:1'' for volume~32, number~1. -\section{Non-recommended bibliography facilities} +\subsection{Non-recommended bibliography facilities} The preceding gives the bibliography recommendations for current \TUB\ articles. If, for whatever reason, you do not wish to follow those @@ -923,6 +941,7 @@ different (as discussed in section~\ref{sec:syntax}); arguments are (almost always) enclosed in braces instead of the various forms provided by the `plain' macros. +\newpage \SetBibJustification{\raggedright} \bibliographystyle{tugboat} \bibliography{tubguide} diff --git a/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf b/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf index a1f67a5e135..fcca6943fbc 100644 Binary files a/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf and b/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf differ diff --git a/Master/texmf-dist/doc/latex/tugboat/manifest.txt b/Master/texmf-dist/doc/latex/tugboat/manifest.txt index b4613f77c61..f132d39bec5 100644 --- a/Master/texmf-dist/doc/latex/tugboat/manifest.txt +++ b/Master/texmf-dist/doc/latex/tugboat/manifest.txt @@ -1,10 +1,9 @@ -$Id: manifest.txt 205 2018-09-06 17:28:53Z karl $ +$Id: manifest.txt 315 2020-11-15 02:07:34Z karl $ List of files in the tugboat LaTeX package covered by the LPPL: ltubguid.ltx ltubguid.pdf ltugbib.bst -tugboat.bst tugboat.dtx tugboat.pdf tugboat.ins diff --git a/Master/texmf-dist/doc/latex/tugboat/tugboat.pdf b/Master/texmf-dist/doc/latex/tugboat/tugboat.pdf index 30bd7e3eb92..0c9ae5b29a1 100644 Binary files a/Master/texmf-dist/doc/latex/tugboat/tugboat.pdf and b/Master/texmf-dist/doc/latex/tugboat/tugboat.pdf differ diff --git a/Master/texmf-dist/source/latex/tugboat/tugboat.dtx b/Master/texmf-dist/source/latex/tugboat/tugboat.dtx index 6ed75cece11..12e7dc63977 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 274 2020-03-12 16:47:21Z karl $ +% $Id: tugboat.dtx 314 2020-11-15 02:06:03Z karl $ % tugboat.dtx - main source for LaTeX TUGboat classes. % % Copyright 1994-2020 TeX Users Group. @@ -28,7 +28,7 @@ %\ProvidesPackage{ltugboat} %\ProvidesPackage{ltugproc} % \ProvidesPackage{ltugcomn} - [2020-03-12 v2.23 + [2020-11-14 v2.24 % TUGboat journal class% % TUG conference proceedings class% % TUG compatibility package% @@ -152,6 +152,7 @@ % |\JoT|& The Joy of \TeX\\ % |\LaTeX|&\\ % |\LyX|&\\ +% |\macOS|& mac OS\\ % |\MacOSX|& Mac OS X\\ % |\MathML|&\\ % |\Mc|& M with raised c\\ @@ -338,8 +339,6 @@ % |draft| vs.\ |preprint| vs.\ |final|. % % \begin{macrocode} -\newif\ifpreprint -\def\preprint{\preprinttrue} \DeclareOption{draft}{% \AtEndOfClass{% \setcounter{page}{901}% @@ -358,10 +357,16 @@ \PrelimDrafttrue }% } + +\newif\ifpreprint +\def\preprint{\preprinttrue} \DeclareOption{preprint}{% \preprinttrue } + +\newif\iftubfinaloption % [final] \DeclareOption{final}{% + \tubfinaloptiontrue \AtEndOfClass{% \let\thepage=\tuborigthepage \NoBlackBoxes @@ -372,7 +377,7 @@ % registration marks, etc. \ifnum\value{page}>900 \PrelimDrafttrue \else \PrelimDraftfalse \fi \@tubrunningfull - }% + }% } % \end{macrocode} % @@ -471,6 +476,17 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\ifsecondcolstart} +% 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. +% +% \begin{macrocode} +\newif\iftubsecondcolstart +\DeclareOption{secondcolstart}{\tubsecondcolstarttrue} +% \end{macrocode} +% \end{macro} +% % Any other options, we pass on to |article.cls| before we load it: % % \begin{macrocode} @@ -785,12 +801,14 @@ \def\MkIV{Mk\acro{IV}} \let\TB@@mp\mp \DeclareRobustCommand{\mp}{\ifmmode\TB@@mp\else MetaPost\fi} +\def\mtex{T\kern-.1667em\lower.424ex\hbox{\^E}\kern-.125emX\@} % % In order that the \cs{OMEGA} command will switch to using the TS1 % variant of the capital Omega character if \texttt{textcomp.sty} is % loaded, we define it in terms of the \cs{textohm} command. Note % that this requires us to interpose a level of indirection, rather % than to use \cs{let}\dots +% Revised definition of \cs{NTS} based on that used by Phil Taylor. % % \begin{macrocode} \DeclareRobustCommand{\NTG}{\acro{NTG}} @@ -803,9 +821,8 @@ \DeclareRobustCommand{\OOXML}{\acro{OOXML}} \DeclareRobustCommand{\OTF}{\acro{OTF}} \DeclareRobustCommand{\OTP}{\OMEGA\acro{TP}} -\def\mtex{T\kern-.1667em\lower.424ex\hbox{\^E}\kern-.125emX\@} +\DeclareRobustCommand{\OpTeX}{Op\kern-.05em\TeX} % \end{macrocode} -% Revised definition of \cs{NTS} based on that used by Phil Taylor. % \begin{macrocode} \def\Pas{Pascal} \def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}MF\@} @@ -854,8 +871,7 @@ \def\TikZ{Ti{\em k}Z} \def\ttn{\textsl{TTN}\@} \def\TTN{\textsl{\TeX{} and TUG News}} -\let\texttub\textsl % redefined in other situations -\def\TUB{\texttub{TUGboat}} +\def\TUB{\texttub{TUGboat}}\def\texttub{\textsl} % redefined in some situations \def\TUG{\TeX\ \UG} \def\tug{\acro{TUG}} \def\UG{Users Group} @@ -881,7 +897,7 @@ % \begin{macrocode} \def\tubreflect#1{% \@ifundefined{reflectbox}{% - \TBerror{A graphics package must be loaded for \string\XeTeX}% + \TBError{A graphics package must be loaded for \string\XeTeX}% }{% \ifdim \fontdimen1\font>0pt \raise 1.75ex \hbox{\kern.1em\rotatebox{180}{#1}}\kern-.1em @@ -1051,9 +1067,10 @@ \advance\minutes by-\time \global\multiply\minutes by-1 } \SetTime -\def\now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes} +\def\now{\ifnum\hours<10 0\fi\number\hours:% + \ifnum\minutes<10 0\fi\number\minutes} \def\Now{\today\ \now} -\newif\ifPrelimDraft +\newif\ifPrelimDraft % [draft] or [preprint] or pageno>900 \def\midrtitle{} % center of running heads \def\rtitlenexttopage{\ifPrelimDraft \textsl{\small draft: \Now}\fi} % \end{macrocode} @@ -1196,6 +1213,7 @@ \ifx\hyper@normalise\undefined \def\tbsurl{\url}% no hyperref, so just \url is fine. \def\tbhurl{\url}% + \ifx\url\undefined \let\url\texttt \fi % er, make sure \url is defined \else % This hyperref hook-in is due to Ulrike Fischer. % \url{https://github.com/latex3/hyperref/issues/125}. @@ -1209,11 +1227,15 @@ % Make \! work in text mode. \DeclareRobustCommand{\!}{\ifmmode\mskip-\thinmuskip \else\kern-0.16667em \fi} % -% Half a thinspace. +% Half a thinspace, positive and negative. \DeclareRobustCommand{\tubthinnerspace} {\ifmmode\mskip.5\thinmuskip \else\kern0.08333em \fi} \DeclareRobustCommand{\tubthinnerspaceneg} {\ifmmode\mskip-.5\thinmuskip \else\kern-0.08333em \fi} +% +% Half a smallskip. +\DeclareRobustCommand{\tubsmallerskip} + {\vskip 1.5pt plus .75pt minus .75pt\relax} % % \end{macrocode} % @@ -1293,7 +1315,7 @@ \therevauth\therevtitle\therevpubinfo\endgraf}% \vskip\medskipamount } -\def\booktitle#1{{\slshape#1\/}} +\def\booktitle#1{{\slshape\frenchspacing#1\/}} % \end{macrocode} % % \subsection{Dates, volume and issue numbers, etc.} @@ -1313,38 +1335,35 @@ % % For production, these are set in a separate file, % |tugboat.dates|, which is issue-specific. -% -% \begin{description} -% \item[\emph{Comment:}] I would like to make the code read a file -% |tugboat.dates| in the current directory or its parent. -% This is easy except under `odd' operating systems ({\small VMS} is -% an example that springs to mind, {\small RISC}os may be even -% worse) whose syntax is out of the ordinary. -% \end{description} -% +% % \begin{macrocode} -\newcount\issueseqno \issueseqno=-1 +\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}% +\def\vol#1, #2.{% + \gdef\volno{#1}% + \gdef\issno{#2}% \setbox\TestBox=\hbox{\volyr}% \ifdim \wd\TestBox > .2em \v@lx \fi } -\def\issyear #1.{\gdef\issdt{#1}\gdef\volyr{#1}% +\def\issyear#1.{% + \gdef\issdt{#1}\gdef\volyr{#1}% \gdef\bigissdt{#1}% \setbox\TestBox=\hbox{\volno}% \ifdim \wd\TestBox > .2em \v@lx \fi } -\def\issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}% +\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 } +% The \vol command must be invoked precisely like this, including spaces. +% Since we are the only ones who write it, we can be strict. \vol 0, 0. \issdate Thermidor, 9999. % \end{macrocode} % -% (The curious should know that \emph{Thermidor} was one of the French -% revolutionary month names\dots) +% (The curious may like to know that \emph{Thermidor} was one of the French +% revolutionary month names.) % % For \LaTeX{} use, define a version of the issue declaration that can % take or leave the old plain syntax @@ -1507,10 +1526,10 @@ \ifx\tubomithyphenations\@thisisundefined \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 + Hara-lam-bous Jac-kow-ski Ja-pa-nese Karls-ruhe Mac-OS Ma-la-ya-lam Math-Sci-Net Net-BSD Open-BSD Open-Office - Pfa-Edit Post-Script Rich-ard Skoup South-all + Pak-i-stan Pfa-Edit Post-Script Rich-ard Skoup South-all Vieth VM-ware Win-Edt acro-nym acro-nyms analy-sis ap-pen-di-ces ap-pen-dix asyn-chro-nous bib-lio-graph-i-cal bit-map bit-mapped bit-maps buf-fer buf-fers bool-ean @@ -1569,6 +1588,11 @@ \parsep=3\p@\@plus\p@\@minus\p@ \itemsep=\parsep % +% The width of one column plus gutter (=243pt) is useful sometimes. +\newdimen\tubcolwidthandgutter + \tubcolwidthandgutter=\columnwidth + \advance\tubcolwidthandgutter by \columnsep +% % Ordinarily we typeset in two columns, but the onecolumn option % goes to one. In which case we want to center the text block on an % 8.5in width, given the default 72.27pt offset with margins of zero. @@ -2105,11 +2129,17 @@ % author or other title. In this case, the command flushes out the % latest \cs{sectitle} (or whatever) but does nothing else. % -% Provide machinery to skip extra space, even one or more full columns, +% Provide machinery (|\PreTitleDrop| to skip extra space, even one or +% 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. +% +% In addition, if the |secondcolstart| option was specified, do +% |\null\newpage| to move over. This is separate from |\PreTitleDrop|, +% for no particular reason. +% % \begin{macrocode} \newif\if@articletitle \def\maketitle{\@ifstar @@ -2126,6 +2156,7 @@ \vbox to \PreTitleDrop{} \global\PreTitleDrop=\z@ \fi + \iftubsecondcolstart \null\newpage\fi \begingroup \setcounter{footnote}{0} \global\@topnum\z@ % disallow floats above the title @@ -2428,31 +2459,32 @@ % \textsc{numbersec} is in effect. % % \begin{macrocode} +\def\tubsechook{} \if@numbersec \def\section{\TB@startsection{{section}% 1% \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {4\p@}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\subsection{\TB@startsection{{subsection}% 2% \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {4\p@}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\subsubsection{\TB@startsection{{subsubsection}% 3% \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {4\p@}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\paragraph{\TB@startsection{{paragraph}% 4% \z@ {4\p@ \@plus1\p@ \@minus1\p@}% {-1em}% - {\normalsize\bf}}} + {\normalsize\bf\tubsechook}}} % \end{macrocode} % % Now the version if class option \textsc{nonumber} is in effect, @@ -2467,27 +2499,27 @@ \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {4\p@}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\subsection{\TB@nolimelabel \TB@startsection{{subsection}% 2% \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {-0.5em\@plus-\fontdimen3\font}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\subsubsection{\TB@nolimelabel \TB@startsection{{subsubsection}% 3% \parindent {-8\p@ \@plus-2\p@ \@minus-2\p@}% {-0.5em\@plus-\fontdimen3\font}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \fi % \end{macrocode} % % \cs{TB@startsection} used to warn about \verb"*" versions of sectioning % commands when numbering wasn't in effect. But that eventually seemed -% a useless complaint, since it can be usefule to switch back and forth between +% a useless complaint, since it can be useful to switch back and forth between % numbered and unnumbered can be useful during article development. % So now \cs{TB@startsection} is just a synonym for \cs{@startsection}. % @@ -2722,7 +2754,7 @@ % \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 @@ -2745,7 +2777,7 @@ \fi \noindent \tubmakecaptionbox{#1}{#2}\par}% \else - % fits on one line; use the hbox, centered. Do not reset its glue. + % fits on one line; use the hbox, usually centered. Do not reset its glue. \global\@minipagefalse \hb@xt@\hsize{\tubcaptionleftglue\box\@tempboxa\hfil}% \fi @@ -3261,7 +3293,7 @@ \def\botregister{\tbotregister} % \end{macrocode} % -% \subsection{Running heads} +% \subsection{Running headers and footers} % % \begin{macrocode} \def\rtitlex{\def\texttub##1{{\normalsize\textrm{##1}}}\TUB, \volx} @@ -3297,21 +3329,23 @@ \def\@oddfoot{% make line break commands produce a normal space \def\\{\unskip\ \ignorespaces}% \let\newline=\\% - \frenchspacing - \hfil\rhTitle} - \def\@evenfoot{\frenchspacing \let\thanks\@gobble \tubrunningauthor\hfil} + \tubtypesetdoi + \frenchspacing\hfil\rhTitle} + \def\@evenfoot{% + \let\thanks\@gobble + \tubtypesetdoi + \frenchspacing\tubrunningauthor\hfil} } % empty footer. \def\@tubrunningminimal{% - \def\@oddfoot{\hfil}% - \def\@evenfoot{\hfil}% + \def\@oddfoot{\tubtypesetdoi\hfil}% + \def\@evenfoot{\tubtypesetdoi\hfil}% } % empty footer and header. \def\@tubrunningoff{% - \def\@oddfoot{\hfil}% - \def\@evenfoot{\hfil}% + \@tubrunningminimal \def\@oddhead{\hfil}% \def\@evenhead{\hfil}% } @@ -3320,6 +3354,43 @@ \pagestyle{headings} % \end{macrocode} % +% 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|. +% +% 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. +% +% But don't do any of this yet. Maybe for 42:1. +% +% \begin{macrocode} +% +\def\tubdoiprefix{10.47397/tb} % the number crossref assigned us +% +\def\notyettubtypesetdoi{\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 + doi.org/\tubdoiprefix/\volno-\issno/\jobname}% + \scriptsize + \vskip\baselineskip + \iftubsecondcolstart \moveright \tubcolwidthandgutter \fi + \rlap{\expandafter\tbsurl\expandafter{\thedoi}}% + \vss + }% + \global\let\tubtypesetdoi\@empty % only do it once, no matter what. +\fi} +% +\def\tubtypesetdoi{} +% +% \end{macrocode} +% +% % \subsection{Output routine} % Modified to alter |\brokenpenalty| across columns % diff --git a/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls b/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls index 230e76ec22e..383c9dc1f40 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} - [2020-03-12 v2.23 + [2020-11-14 v2.24 TUGboat journal class% ] \csname tugstyloaded@\endcsname @@ -42,8 +42,6 @@ \def\TBError{\ClassError{\@tugclass}} \def\TBWarning{\ClassWarning{\@tugclass}} \def\TBWarningNL{\ClassWarningNoLine{\@tugclass}} -\newif\ifpreprint -\def\preprint{\preprinttrue} \DeclareOption{draft}{% \AtEndOfClass{% \setcounter{page}{901}% @@ -62,10 +60,16 @@ \PrelimDrafttrue }% } + +\newif\ifpreprint +\def\preprint{\preprinttrue} \DeclareOption{preprint}{% \preprinttrue } + +\newif\iftubfinaloption % [final] \DeclareOption{final}{% + \tubfinaloptiontrue \AtEndOfClass{% \let\thepage=\tuborigthepage \NoBlackBoxes @@ -76,7 +80,7 @@ % registration marks, etc. \ifnum\value{page}>900 \PrelimDrafttrue \else \PrelimDraftfalse \fi \@tubrunningfull - }% + }% } \AtBeginDocument{% \ifx\undefined\texorpdfstring @@ -105,6 +109,8 @@ \DeclareOption{runningfull}{\AtEndOfClass{\@tubrunningfull}} \newif\if@tubtwocolumn \@tubtwocolumntrue \DeclareOption{onecolumn}{\@tubtwocolumnfalse} +\newif\iftubsecondcolstart +\DeclareOption{secondcolstart}{\tubsecondcolstarttrue} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ExecuteOptions{draft,extralabel,numbersec,rawcite,runningminimal} \ProcessOptions @@ -271,6 +277,7 @@ \def\MkIV{Mk\acro{IV}} \let\TB@@mp\mp \DeclareRobustCommand{\mp}{\ifmmode\TB@@mp\else MetaPost\fi} +\def\mtex{T\kern-.1667em\lower.424ex\hbox{\^E}\kern-.125emX\@} \DeclareRobustCommand{\NTG}{\acro{NTG}} \DeclareRobustCommand{\NTS}{\ensuremath{\mathcal{N}\mkern-4mu \raisebox{-0.5ex}{$\mathcal{T}$}\mkern-2mu \mathcal{S}}} @@ -281,7 +288,7 @@ \DeclareRobustCommand{\OOXML}{\acro{OOXML}} \DeclareRobustCommand{\OTF}{\acro{OTF}} \DeclareRobustCommand{\OTP}{\OMEGA\acro{TP}} -\def\mtex{T\kern-.1667em\lower.424ex\hbox{\^E}\kern-.125emX\@} +\DeclareRobustCommand{\OpTeX}{Op\kern-.05em\TeX} \def\Pas{Pascal} \def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}MF\@} \def\PCTeX{PC\thinspace\TeX} @@ -329,8 +336,7 @@ \def\TikZ{Ti{\em k}Z} \def\ttn{\textsl{TTN}\@} \def\TTN{\textsl{\TeX{} and TUG News}} -\let\texttub\textsl % redefined in other situations -\def\TUB{\texttub{TUGboat}} +\def\TUB{\texttub{TUGboat}}\def\texttub{\textsl} % redefined in some situations \def\TUG{\TeX\ \UG} \def\tug{\acro{TUG}} \def\UG{Users Group} @@ -345,7 +351,7 @@ \def\WYSIWYG{\acro{WYSIWYG}} \def\tubreflect#1{% \@ifundefined{reflectbox}{% - \TBerror{A graphics package must be loaded for \string\XeTeX}% + \TBError{A graphics package must be loaded for \string\XeTeX}% }{% \ifdim \fontdimen1\font>0pt \raise 1.75ex \hbox{\kern.1em\rotatebox{180}{#1}}\kern-.1em @@ -425,9 +431,10 @@ \advance\minutes by-\time \global\multiply\minutes by-1 } \SetTime -\def\now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes} +\def\now{\ifnum\hours<10 0\fi\number\hours:% + \ifnum\minutes<10 0\fi\number\minutes} \def\Now{\today\ \now} -\newif\ifPrelimDraft +\newif\ifPrelimDraft % [draft] or [preprint] or pageno>900 \def\midrtitle{} % center of running heads \def\rtitlenexttopage{\ifPrelimDraft \textsl{\small draft: \Now}\fi} \newdimen\raggedskip \raggedskip=\z@ @@ -488,6 +495,7 @@ \ifx\hyper@normalise\undefined \def\tbsurl{\url}% no hyperref, so just \url is fine. \def\tbhurl{\url}% + \ifx\url\undefined \let\url\texttt \fi % er, make sure \url is defined \else % This hyperref hook-in is due to Ulrike Fischer. % \url{https://github.com/latex3/hyperref/issues/125}. @@ -502,6 +510,8 @@ {\ifmmode\mskip.5\thinmuskip \else\kern0.08333em \fi} \DeclareRobustCommand{\tubthinnerspaceneg} {\ifmmode\mskip-.5\thinmuskip \else\kern-0.08333em \fi} +\DeclareRobustCommand{\tubsmallerskip} + {\vskip 1.5pt plus .75pt minus .75pt\relax} \def\endash{--} \def\emdash{\endash-} \def\d@sh#1#2{\unskip#1\thinskip#2\thinskip\ignorespaces} @@ -552,20 +562,23 @@ \therevauth\therevtitle\therevpubinfo\endgraf}% \vskip\medskipamount } -\def\booktitle#1{{\slshape#1\/}} -\newcount\issueseqno \issueseqno=-1 +\def\booktitle#1{{\slshape\frenchspacing#1\/}} +\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}% +\def\vol#1, #2.{% + \gdef\volno{#1}% + \gdef\issno{#2}% \setbox\TestBox=\hbox{\volyr}% \ifdim \wd\TestBox > .2em \v@lx \fi } -\def\issyear #1.{\gdef\issdt{#1}\gdef\volyr{#1}% +\def\issyear#1.{% + \gdef\issdt{#1}\gdef\volyr{#1}% \gdef\bigissdt{#1}% \setbox\TestBox=\hbox{\volno}% \ifdim \wd\TestBox > .2em \v@lx \fi } -\def\issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}% +\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 } @@ -641,10 +654,10 @@ \ifx\tubomithyphenations\@thisisundefined \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 + Hara-lam-bous Jac-kow-ski Ja-pa-nese Karls-ruhe Mac-OS Ma-la-ya-lam Math-Sci-Net Net-BSD Open-BSD Open-Office - Pfa-Edit Post-Script Rich-ard Skoup South-all + Pak-i-stan Pfa-Edit Post-Script Rich-ard Skoup South-all Vieth VM-ware Win-Edt acro-nym acro-nyms analy-sis ap-pen-di-ces ap-pen-dix asyn-chro-nous bib-lio-graph-i-cal bit-map bit-mapped bit-maps buf-fer buf-fers bool-ean @@ -696,6 +709,9 @@ \topsep=3\p@\@plus\p@\@minus\p@ \parsep=3\p@\@plus\p@\@minus\p@ \itemsep=\parsep +\newdimen\tubcolwidthandgutter + \tubcolwidthandgutter=\columnwidth + \advance\tubcolwidthandgutter by \columnsep \if@tubtwocolumn \twocolumn \else \onecolumn \textwidth=34pc @@ -943,6 +959,7 @@ \vbox to \PreTitleDrop{} \global\PreTitleDrop=\z@ \fi + \iftubsecondcolstart \null\newpage\fi \begingroup \setcounter{footnote}{0} \global\@topnum\z@ % disallow floats above the title @@ -1095,31 +1112,32 @@ {$--*--$} \end{center} \vspace{.5\baselineskip}} +\def\tubsechook{} \if@numbersec \def\section{\TB@startsection{{section}% 1% \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {4\p@}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\subsection{\TB@startsection{{subsection}% 2% \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {4\p@}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\subsubsection{\TB@startsection{{subsubsection}% 3% \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {4\p@}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\paragraph{\TB@startsection{{paragraph}% 4% \z@ {4\p@ \@plus1\p@ \@minus1\p@}% {-1em}% - {\normalsize\bf}}} + {\normalsize\bf\tubsechook}}} \else \setcounter{secnumdepth}{0} \def\section{\TB@nolimelabel @@ -1128,21 +1146,21 @@ \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {4\p@}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\subsection{\TB@nolimelabel \TB@startsection{{subsection}% 2% \z@ {-8\p@ \@plus-2\p@ \@minus-2\p@}% {-0.5em\@plus-\fontdimen3\font}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \def\subsubsection{\TB@nolimelabel \TB@startsection{{subsubsection}% 3% \parindent {-8\p@ \@plus-2\p@ \@minus-2\p@}% {-0.5em\@plus-\fontdimen3\font}% - {\normalsize\bf\raggedright\hyphenpenalty=\@M}}} + {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}} \fi \def\TB@startsection#1{\@startsection#1}% \def\TB@safe@startsection#1{\@startsection#1} @@ -1240,7 +1258,7 @@ \fi \noindent \tubmakecaptionbox{#1}{#2}\par}% \else - % fits on one line; use the hbox, centered. Do not reset its glue. + % fits on one line; use the hbox, usually centered. Do not reset its glue. \global\@minipagefalse \hb@xt@\hsize{\tubcaptionleftglue\box\@tempboxa\hfil}% \fi @@ -1514,25 +1532,41 @@ \def\@oddfoot{% make line break commands produce a normal space \def\\{\unskip\ \ignorespaces}% \let\newline=\\% - \frenchspacing - \hfil\rhTitle} - \def\@evenfoot{\frenchspacing \let\thanks\@gobble \tubrunningauthor\hfil} + \tubtypesetdoi + \frenchspacing\hfil\rhTitle} + \def\@evenfoot{% + \let\thanks\@gobble + \tubtypesetdoi + \frenchspacing\tubrunningauthor\hfil} } \def\@tubrunningminimal{% - \def\@oddfoot{\hfil}% - \def\@evenfoot{\hfil}% + \def\@oddfoot{\tubtypesetdoi\hfil}% + \def\@evenfoot{\tubtypesetdoi\hfil}% } \def\@tubrunningoff{% - \def\@oddfoot{\hfil}% - \def\@evenfoot{\hfil}% + \@tubrunningminimal \def\@oddhead{\hfil}% \def\@evenhead{\hfil}% } \def\ps@headings{} \pagestyle{headings} +\def\tubdoiprefix{10.47397/tb} % the number crossref assigned us +\def\notyettubtypesetdoi{\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 + doi.org/\tubdoiprefix/\volno-\issno/\jobname}% + \scriptsize + \vskip\baselineskip + \iftubsecondcolstart \moveright \tubcolwidthandgutter \fi + \rlap{\expandafter\tbsurl\expandafter{\thedoi}}% + \vss + }% + \global\let\tubtypesetdoi\@empty % only do it once, no matter what. +\fi} +\def\tubtypesetdoi{} \def\@outputdblcol{\if@firstcolumn \global\@firstcolumnfalse \global\setbox\@leftcolumn\box\@outputbox \global\brokenpenalty10000 diff --git a/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty b/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty index f1d8140d85c..f136398d1cf 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} - [2020-03-12 v2.23 + [2020-11-14 v2.24 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 84e21f4ba31..cf444ddeea9 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} - [2020-03-12 v2.23 + [2020-11-14 v2.24 TUGboat `common macros' package% ] \IfFileExists{mflogo.sty}% @@ -191,6 +191,7 @@ \def\MkIV{Mk\acro{IV}} \let\TB@@mp\mp \DeclareRobustCommand{\mp}{\ifmmode\TB@@mp\else MetaPost\fi} +\def\mtex{T\kern-.1667em\lower.424ex\hbox{\^E}\kern-.125emX\@} \DeclareRobustCommand{\NTG}{\acro{NTG}} \DeclareRobustCommand{\NTS}{\ensuremath{\mathcal{N}\mkern-4mu \raisebox{-0.5ex}{$\mathcal{T}$}\mkern-2mu \mathcal{S}}} @@ -201,7 +202,7 @@ \DeclareRobustCommand{\OOXML}{\acro{OOXML}} \DeclareRobustCommand{\OTF}{\acro{OTF}} \DeclareRobustCommand{\OTP}{\OMEGA\acro{TP}} -\def\mtex{T\kern-.1667em\lower.424ex\hbox{\^E}\kern-.125emX\@} +\DeclareRobustCommand{\OpTeX}{Op\kern-.05em\TeX} \def\Pas{Pascal} \def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}MF\@} \def\PCTeX{PC\thinspace\TeX} @@ -249,8 +250,7 @@ \def\TikZ{Ti{\em k}Z} \def\ttn{\textsl{TTN}\@} \def\TTN{\textsl{\TeX{} and TUG News}} -\let\texttub\textsl % redefined in other situations -\def\TUB{\texttub{TUGboat}} +\def\TUB{\texttub{TUGboat}}\def\texttub{\textsl} % redefined in some situations \def\TUG{\TeX\ \UG} \def\tug{\acro{TUG}} \def\UG{Users Group} @@ -265,7 +265,7 @@ \def\WYSIWYG{\acro{WYSIWYG}} \def\tubreflect#1{% \@ifundefined{reflectbox}{% - \TBerror{A graphics package must be loaded for \string\XeTeX}% + \TBError{A graphics package must be loaded for \string\XeTeX}% }{% \ifdim \fontdimen1\font>0pt \raise 1.75ex \hbox{\kern.1em\rotatebox{180}{#1}}\kern-.1em @@ -345,9 +345,10 @@ \advance\minutes by-\time \global\multiply\minutes by-1 } \SetTime -\def\now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes} +\def\now{\ifnum\hours<10 0\fi\number\hours:% + \ifnum\minutes<10 0\fi\number\minutes} \def\Now{\today\ \now} -\newif\ifPrelimDraft +\newif\ifPrelimDraft % [draft] or [preprint] or pageno>900 \def\midrtitle{} % center of running heads \def\rtitlenexttopage{\ifPrelimDraft \textsl{\small draft: \Now}\fi} \newdimen\raggedskip \raggedskip=\z@ @@ -408,6 +409,7 @@ \ifx\hyper@normalise\undefined \def\tbsurl{\url}% no hyperref, so just \url is fine. \def\tbhurl{\url}% + \ifx\url\undefined \let\url\texttt \fi % er, make sure \url is defined \else % This hyperref hook-in is due to Ulrike Fischer. % \url{https://github.com/latex3/hyperref/issues/125}. @@ -422,6 +424,8 @@ {\ifmmode\mskip.5\thinmuskip \else\kern0.08333em \fi} \DeclareRobustCommand{\tubthinnerspaceneg} {\ifmmode\mskip-.5\thinmuskip \else\kern-0.08333em \fi} +\DeclareRobustCommand{\tubsmallerskip} + {\vskip 1.5pt plus .75pt minus .75pt\relax} \def\endash{--} \def\emdash{\endash-} \def\d@sh#1#2{\unskip#1\thinskip#2\thinskip\ignorespaces} @@ -472,20 +476,23 @@ \therevauth\therevtitle\therevpubinfo\endgraf}% \vskip\medskipamount } -\def\booktitle#1{{\slshape#1\/}} -\newcount\issueseqno \issueseqno=-1 +\def\booktitle#1{{\slshape\frenchspacing#1\/}} +\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}% +\def\vol#1, #2.{% + \gdef\volno{#1}% + \gdef\issno{#2}% \setbox\TestBox=\hbox{\volyr}% \ifdim \wd\TestBox > .2em \v@lx \fi } -\def\issyear #1.{\gdef\issdt{#1}\gdef\volyr{#1}% +\def\issyear#1.{% + \gdef\issdt{#1}\gdef\volyr{#1}% \gdef\bigissdt{#1}% \setbox\TestBox=\hbox{\volno}% \ifdim \wd\TestBox > .2em \v@lx \fi } -\def\issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}% +\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 } @@ -561,10 +568,10 @@ \ifx\tubomithyphenations\@thisisundefined \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 + Hara-lam-bous Jac-kow-ski Ja-pa-nese Karls-ruhe Mac-OS Ma-la-ya-lam Math-Sci-Net Net-BSD Open-BSD Open-Office - Pfa-Edit Post-Script Rich-ard Skoup South-all + Pak-i-stan Pfa-Edit Post-Script Rich-ard Skoup South-all Vieth VM-ware Win-Edt acro-nym acro-nyms analy-sis ap-pen-di-ces ap-pen-dix asyn-chro-nous bib-lio-graph-i-cal bit-map bit-mapped bit-maps buf-fer buf-fers bool-ean diff --git a/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls b/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls index dd096e6cc19..c05f93b0f5a 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} - [2020-03-12 v2.23 + [2020-11-14 v2.24 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 14a2ea2fa58..a5a265a02f1 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} - [2020-03-12 v2.23 + [2020-11-14 v2.24 TUG compatibility package% ] \@obsoletefile{ltugproc.cls}{ltugproc.sty} -- cgit v1.2.3