texlive[65569] Master/texmf-dist: tugboat (17jan23)

commits+karl at tug.org commits+karl at tug.org
Tue Jan 17 22:04:14 CET 2023


Revision: 65569
          http://tug.org/svn/texlive?view=revision&revision=65569
Author:   karl
Date:     2023-01-17 22:04:14 +0100 (Tue, 17 Jan 2023)
Log Message:
-----------
tugboat (17jan23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst
    trunk/Master/texmf-dist/doc/latex/tugboat/NEWS
    trunk/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx
    trunk/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf
    trunk/Master/texmf-dist/doc/latex/tugboat/tugboat.pdf
    trunk/Master/texmf-dist/source/latex/tugboat/tugboat.dtx
    trunk/Master/texmf-dist/source/latex/tugboat/tugboat.ins
    trunk/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls
    trunk/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty
    trunk/Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty
    trunk/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls
    trunk/Master/texmf-dist/tex/latex/tugboat/ltugproc.sty

Modified: trunk/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/bibtex/bst/tugboat/tugboat.bst	2023-01-17 21:04:14 UTC (rev 65569)
@@ -1,4 +1,4 @@
-%%% $Id: tugboat.bst 410 2021-11-24 17:46:03Z karl $
+%%% $Id: tugboat.bst 457 2023-01-16 18:43:54Z karl $
 %%% TUGboat changes are public domain.
 %%% 
 %%% Modified for TUGboat from abbrvurl.bst:
@@ -13,8 +13,12 @@
 %%%   Output "Ph.D." rather than "PhD".
 %%%   Output "No." and "no." for number field.
 %%%   Omit spaces between author initials, like "A.B. Smith".
-%%%   Set urlintro="" and onlinestring="".
+%%%   Set urlintro="" and onlinestring="" to omit labels from output.
+%%%   Use \url instead of \href, so we don't require hyperref.
 %%%   Always use https://doi.org/ for the doi url; omit "doi:" from output.
+%%%   If doi or howpublished is present, omit url, since in practice
+%%%     they are usually all the same thing. Should check if
+%%%     howpublished is in fact a url, though.
 %%%   Truncate long author lists in format.names (max.names, trunc.num);
 %%%     omit "and" from author lists, per Oren P.
 %%%   Use \emph instead of \em so we get automatic italic corrections.
@@ -25,7 +29,6 @@
 %%%     "prebibitem" - material output before \bibitem, with newline appended
 %%%       (for example, section headings).
 %%%     "urlnewline" - force line break before url value;
-%%%     
 %%% --karl, originally created 24jul18.
 %%% 
 %%% Modification of BibTeX style file /usr/local/texlive/2009/texmf-dist/bibtex/bst/base/abbrv.bst
@@ -434,6 +437,7 @@
   if$
 }
 
+% emacs-page
 %%% 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:
@@ -871,7 +875,7 @@
   " \cite{" * crossref * "}" *
 }
 
-% urlbst...
+% emacs-page urlbst...
 % Functions for making hypertext links.
 % In all cases, the stack has (link-text href-url)
 %
@@ -887,10 +891,12 @@
   swap$ * quote$ * "> }" * swap$ *
   "\special {html:</a>}" *
 }
-% make hyperref specials
+% make hyperref specials. Use \url rather than \href so that we don't
+% require loading hyperref (ltugboat provides \url in all cases),
+% thus we ignore one of the arguments.
 FUNCTION {make.href.hyperref}
 { 
-  "\href{" swap$ * "}{\path{" * swap$ * "}}" *
+  "\url{" swap$ * "}" * swap$ pop$ 
 }
 FUNCTION {make.href}
 { hrefform #2 =
@@ -906,7 +912,7 @@
 % If inlinelinks is true, then format.url should be a no-op, since it's
 % (a) redundant, and (b) could end up as a link-within-a-link.
 % Likewise if the url is empty.
-% Likewise if doi is present, on the assumption that
+% Likewise if doi or howpublished is present, on the assumption that
 % url most likely redundantly specifies the same info as those fields; this
 % seems to be what people do in practice.
 FUNCTION {format.url}
@@ -945,17 +951,78 @@
   if$
 }
 
-FUNCTION {format.doi}
-{ doi empty$
+FUNCTION {format.pubmed}
+{ pubmed empty$
     { "" }
-    { doiprefix doi * doiurl doi * make.href }
+    { pubmedprefix pubmed * pubmedurl pubmed * make.href }
   if$
 }
 
-FUNCTION {format.pubmed}
-{ pubmed empty$
+% The original definition, left here for comparison.
+%FUNCTION {format.doi.orig}
+%{ doi empty$
+%    { "" }
+%    { doiprefix doi * doiurl doi * make.href }
+%  if$
+%}
+
+% For the doi, sometimes people write doi = "10.x/y"
+% and sometimes they write doi ="https://doi.org/10.x/y".
+% So we check if the doi string starts with https://doi.org
+% (aka the doiurl variable), and only add it if needed.
+% 
+% This code is from https://tex.stackexchange.com/questions/119237
+% (thank you, mafp).
+% 
+% The "X Y contains" function checks if string Y is contained in X.
+% Although we only need to check if Y is at the beginning of X,
+% it makes no practical difference, so just use it as-is.
+% 
+INTEGERS { strl }
+FUNCTION { string.length }
+{
+  #1 'strl :=
+  {duplicate$ duplicate$ #1 strl substring$ = not}
+    { strl #1 + 'strl :=}
+  while$
+  pop$ strl
+}
+
+INTEGERS {find.length search.start search.end done}
+STRINGS  {find.string find.pattern}
+FUNCTION {contains}
+{
+  'find.pattern :=
+  'find.string :=
+  find.pattern string.length 'find.length :=
+  #1 'search.start :=
+  find.string string.length find.length - #2 + 'search.end :=
+  #0 'done :=
+  { search.start search.end < }
+  {
+    find.string search.start find.length substring$ find.pattern =
+      { 
+        #1 'done :=
+        search.end 'search.start :=%% stop searching
+      }
+      { #1 search.start + 'search.start := }
+    if$
+  }
+  while$
+  done
+}
+
+FUNCTION {format.doi}
+{ doi empty$
     { "" }
-    { pubmedprefix pubmed * pubmedurl pubmed * make.href }
+    { doiprefix doi *
+      doi doiurl contains
+        { "" }
+        { doiurl }
+      if$
+      doi *
+      make.href
+    }
   if$
 }
 
@@ -1035,6 +1102,7 @@
   if$
 }
 
+% emacs-page
 % Webpage entry type.
 % Title and url fields required;
 % author, note, year, month, and lastchecked fields optional
@@ -1428,9 +1496,9 @@
   new.block
   format.title "title" output.check
   format.version output
-  format.date.direct "date" output.check
+  format.date.direct output
   new.block
-  note "note" output.check
+  note output
   fin.entry
 }
 
@@ -1505,6 +1573,8 @@
 
 EXECUTE {init.and.check.trunc.consts}   % from trunc-auth.bst
 
+% emacs-page
+
 FUNCTION {sortify}
 { purify$
   "l" change.case$

Modified: trunk/Master/texmf-dist/doc/latex/tugboat/NEWS
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tugboat/NEWS	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/doc/latex/tugboat/NEWS	2023-01-17 21:04:14 UTC (rev 65569)
@@ -1,7 +1,22 @@
-$Id: NEWS 424 2022-05-19 22:45:08Z karl $
+$Id: NEWS 458 2023-01-16 18:44:30Z karl $
 This file records noteworthy changes.  This file is public domain.
 
+-----------------
+2.28 (2023-01-16):
+
 ltugboat.cls:
+- \tburl: new name for \tbsurl, should work in all cases.
+          \def\tburl{\url} to keep using \url in the document body.
+- \titleref: command to typeset a book (etc.) title (slanted + \frenchspacing).
+- \tubdots: command for a normally-spaced ellipsis, not the squashed
+  Unicode character provided by most fonts.
+- \raggedleft: TUB's redefinition should not work with tabularray.
+
+tugboat.bst: use \url instead of \href, to avoid requiring hyperref.
+
+-----------------
+2.27 (2022-05-19):
+ltugboat.cls:
 - \tbsurlfootnote, \tbhurlfootnote: typeset urls in ragged-right
   footnotes of their own.
 - \tubsentencespace: force a sentence-ending space, e.g., after a
@@ -8,7 +23,7 @@
   post-sentence \cite.
 - \tubjustifiedpar: undo ragged-right or other, restoring normal
   paragraph settings.
-- \eTeX: use \boldsymbol if available.
+- \eTeX: use \boldsymbol if available for this logo.
 
 -----------------
 2.26 (2021-10-12):

Modified: trunk/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/doc/latex/tugboat/ltubguid.ltx	2023-01-17 21:04:14 UTC (rev 65569)
@@ -1,7 +1,7 @@
-% $Id: ltubguid.ltx 424 2022-05-19 22:45:08Z karl $
+% $Id: ltubguid.ltx 458 2023-01-16 18:44:30Z karl $
 % ltubguid.ltx - documentation for ltugboat classes.
 % 
-% Copyright 1994-2022 TeX Users Group.
+% Copyright 1994-2023 TeX Users Group.
 % 
 % This file is part of the tugboat package.
 % 
@@ -721,27 +721,26 @@
 prefer to omit a leading \texttt{http://} or \texttt{https://}. But for
 the link to actually work in the output \PDF\ or \HTML, the protocol is
 required (or it appears to be a local filesystem path). Therefore the
-\texttt{ltugboat} class provides (as of version 2.23, released
-March~2020) commands \cs{tbsurl} for \texttt{https} and \cs{tbhurl} for
-\texttt{http}.\footnote{They are wrappers around \cs{hyper at linkurl}, and
-are due to Ulrike Fischer.
+\texttt{ltugboat} class provides (as of version 2.28, released
+January~2023) the command \cs{tburl} for this. Related commands
+\cs{tbsurl} for \texttt{https} and \cs{tbhurl} for \texttt{http} were
+defined in version~2.23 (March~2020).\footnote{All these commands are
+wrappers around \cs{hyper at linkurl}, and are due to Ulrike Fischer.
 \url{https://github.com/latex3/hyperref/issues/125}\raggedright}
 
-For example, \verb|\tbsurl{tug.org}| typesets the text
-`\texttt{tug.org}' (with the usual url line breaks) as a link to
+For example, the commands \verb|\tburl{tug.org}| and
+\verb|\tburl{https://tug.org}| both typeset the text `\texttt{tug.org}'
+(with the usual url line breaks possible) as a link to
 \url{https://tug.org}.
 
-Similarly, \verb|\tbhurl{example.org}| typesets the text
-`\texttt{example.org}' as a link to \url{http://example.org}.
+Similarly, \verb|\tburl{http://example.org}| typesets the text
+`\texttt{example.org}' as a link to \url{http://example.org}, for the
+(unusual nowadays) case when \url{http} is required.
 
-The correct protocol can be explicitly specified, and will also be
-stripped for display. That is, \verb|\tbsurl{https://tug.org}| also
-works. This can be particularly useful for bibliographies. However, an
-incorrect protocol (\texttt{http} with \cs{tbsurl} or the converse) will
-not be stripped, and will generate an invalid url. That's ok because
-such an inconsistent specification cannot be handled reliably.
+As shown, the correct protocol can be explicitly specified, and will be
+stripped for display.
 
-\cs{tbsurl} and \cs{tbhurl} only add the protocol and make live links if
+\cs{tburl} and related add the protocol and make live links if
 \texttt{hyperref} is loaded. Without \texttt{hyperref}, they are merely
 synonyms for \cs{url}. This is ok, and we still request that the
 protocol not be included; if live links are not being produced in the
@@ -748,12 +747,15 @@
 output, the printed url without the protocol suffices. (When a user
 copies/pastes url text into a browser, it will normally work.)
 
-Two shortcut macros: \cs{tbsfootnoteurl} and \cs{tbhfootnoteurl} make a
-ragged-right footnote with the respective \cs{tbXurl} command. We
-recognize that sometimes the best option is to put urls in footnotes.
-However, when it's sensible, writing them as either parentheticals in
-the main text or in bibliography entries is preferred, to ease page breaking.
+In order to keep using \cs{url} in a document body, we suggest
+\verb|\def\url{\tburl}|.
 
+The shortcut macro \cs{tburlfootnote} makes a ragged-right footnote
+using \cs{tburl} command. We recognize that when writing url references,
+sometimes the best option is to put urls in footnotes. However, when
+it's sensible, we prefer to have them as either parentheticals in the
+main text or in bibliography entries, to ease page breaking.
+
 For \texttt{ftp}, \texttt{rsync}, and other protocols, it is best to
 always include them explicitly and use \cs{url}:\\
 \verb|\url{ftp://tug.org}|,\\ \verb|\url{rsync://tug.org}|, etc.
@@ -786,10 +788,17 @@
 \bibliography{yourbibfile}
 \end{verbatim}
 
-If you don't have \verb|tugboat.bst|, which was released in 2018, it's
-fine to use \pkgname{plain} or \pkgname{abbrv}. If you do have it,
-though, you may enjoy the following small but useful features:
+If you use \BibTeX, feel free to take advantage of the accumulated
+bibliography of \TUB{} itself
+(\url{mirror.ctan.org/info/biblio/tugboat.bib} on \CTAN, also in \TeX\
+Live, etc.), and the other compilations by Nelson Beebe in that same
+directory.
 
+If you don't have \verb|tugboat.bst| (our \BibTeX\ style file), which
+was released in 2018, it's fine to use \pkgname{plain} or
+\pkgname{abbrv}. If you do have it, though, you may enjoy the following
+small but useful features:
+
 \begin{itemize}
 \item It is based on \pkgname{abbrvurl.bst} (see \url{ctan.org/pkg/urlbst}),
 
@@ -822,21 +831,20 @@
 the package of the same name, \url{ctan.org/pkg/ctanbib}).
 
 \item For completeness only: \verb|tugboat.bst| provides editor-intended
-fields \textsf{newpage} to force a page break after the current item,
-\textsf{urlnewline} to force a line break before the \textsf{url} value,
-and \textsf{journaltie} to output a tie instead of space after the
-\textsf{journal} value. As editors, we've found that these presentation
+fields \textsf{journaltie} to output a tie instead of space after the \textsf{journal} value,
+\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{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.
 
 \end{itemize}
 
-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.
-
 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
+\texttt{.bib} files, including the last one in an entry. That makes for
 one less thing to worry about when changing fields around in the source.
 
 Bibliographies can be difficult to typeset at the best of times.
@@ -850,9 +858,18 @@
 \end{verbatim}
 as the present article does, to often achieve somewhat better results.
 
-A last note for references: for \TUB\ issues, please use the format
+Multiple citations: when citing more than one item, please include them
+in a single \cs{cite} command, as in \verb|\cite{foo,bar}|. Also, please
+ensure that the result is in numerical order, so if \texttt{foo} ends up
+as reference `[2]' and \texttt{bar} as `[1]', use \verb|\cite{bar,foo}|.
+
+One more note on references: for \TUB\ issues, please use the format
 \textsl{volno\,:\,issno}, e.g., ``\TUB\ 32:1'' for volume~32, number~1.
 
+By the way, if anyone would like to volunteer to implement a \BibLaTeX\
+style with the same features and output as our \BibTeX\ style, we would
+be grateful.
+
 \subsection{Non-recommended bibliography facilities}
 
 The preceding gives the bibliography recommendations for current \TUB\

Modified: trunk/Master/texmf-dist/doc/latex/tugboat/ltubguid.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tugboat/tugboat.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/tugboat/tugboat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tugboat/tugboat.dtx	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/source/latex/tugboat/tugboat.dtx	2023-01-17 21:04:14 UTC (rev 65569)
@@ -1,8 +1,8 @@
 % \iffalse (this is a meta-comment (so they say))
-% $Id: tugboat.dtx 424 2022-05-19 22:45:08Z karl $
+% $Id: tugboat.dtx 459 2023-01-16 21:05:37Z karl $
 % tugboat.dtx - main source for LaTeX TUGboat classes.
 %
-% Copyright 1994-2022 TeX Users Group.
+% Copyright 1994-2023 TeX Users Group.
 %
 % This file is part of the tugboat package.
 %
@@ -28,7 +28,7 @@
 %<ltugboatsty>\ProvidesPackage{ltugboat}
 %<ltugprocsty>\ProvidesPackage{ltugproc}
 %<ltugcomn>   \ProvidesPackage{ltugcomn}
-                   [2022-05-19 v2.27
+                   [2023-01-16 v2.28
 %<ltugboatcls>                       TUGboat journal class%
 %<ltugproccls>                       TUG conference proceedings class%
 %<ltugboatsty|ltugprocsty>           TUG compatibility package%
@@ -240,7 +240,8 @@
 % |\revtitle|&   with one argument, title of \ldots \\
 % |\revpubinfo|& with one argument, other info pertaining to \ldots \\
 % |\endreviewitem|& end data for item being reviewed\\
-% |\booktitle|&  with one argument, format book title as straight text\\
+% |\titleref|&   with one argument, format title as straight text
+%                (slanted, frenchspacing) \\
 % |\Input|&      |\input| with some other bookkeeping for
 %                case where multiple articles are put together\\
 % |\TBremark|&   reminder to \TUB{} editorial staff\\
@@ -268,6 +269,22 @@
 %
 % \subsection{Setup and options}
 %
+% Occasionally we need to do different things when running under
+% traditional (pdf)latex or a native Unicode engine. Since we don't need
+% any fancier distinctions, instead of reading the |iftex| or another
+% package, do the test directly.
+% 
+%    \begin{macrocode}
+%<*common>
+\newif\ifTBunicodeengine
+\ifx\Umathchardef\@thisisundefined % not (xetex|luatex)
+  \TBunicodeenginefalse
+\else
+  \TBunicodeenginetrue
+\fi
+%</common>
+%    \end{macrocode}
+%
 % Check for reloading.  Hmmm\dots  Does this happen with \LaTeXe\
 % classes?  Probably, in fact, as well that it doesn't, since the
 % \cs{tugstyinit} referenced here doesn't exist; however, it's
@@ -298,7 +315,7 @@
 \def\TBWarningNL{\ClassWarningNoLine{\@tugclass}}
 %    \end{macrocode}
 %
-% |draft| vs.\ |preprint| vs.\ |final|.
+% Class options: |draft| vs.\ |preprint| vs.\ |final|.
 %
 %    \begin{macrocode}
 \DeclareOption{draft}{%
@@ -508,12 +525,16 @@
 % later\dots
 %
 %    \begin{macrocode}
-\def\EdNoteFont{\fontfamily{cmr}\fontseries{m}\fontshape{ui}%
-          \selectfont}
+\ifTBunicodeengine
+  % there is no "LM unslanted" in OpenType, so use the standard cmu
+  % scaled for the current text size. Not worth more effort.
+  \def\EdNoteFont{\font\ednotefont = cmu10 at 1em }
+\else % traditional engine:
+  \def\EdNoteFont{\fontfamily{cmr}\fontseries{m}\fontshape{ui}\selectfont}
+\fi
 %</ltugboatcls>
 %    \end{macrocode}
 %
-%
 % If Ulrik Vieth's |mflogo.sty| is around, we'll use it.  Otherwise
 % (pro tem, at least) we'll warn the user and define the absolute
 % minimum of machinery that \TUB{} requires (that which was used
@@ -652,6 +673,11 @@
 % probably doesn't need to be\dots  What's more, it doesn't appear in
 % the mythical 2.09 version of the package.)
 %
+% We end up wanting this fairly often, and \LaTeX\ removed \cs{line}.
+%    \begin{macrocode}
+\def\tubline{\hbox to \hsize}
+%    \end{macrocode}
+% 
 % \subsection{Abbreviations and logos}
 % \label{abbr-logo}
 %
@@ -825,6 +851,7 @@
 \def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}\TeX}
 \def\pdflatex{pdf\-\LaTeX}% dtk-logos
 \def\pdftex{pdf\-\TeX}% dtk-logos
+\def\pdfTeX{\pdftex}
 \def\PDF{\acro{PDF}}
 \def\PGF{\acro{PGF}}
 \def\PHP{\acro{PHP}}
@@ -859,10 +886,24 @@
 \def\TeXworks{\TeX\kern-.07em works}
 \def\TeXXeT{\TeX-{}-\XeT}
 \def\TFM{\acro{TFM}}
-\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
+\ifTBunicodeengine
+  \AtBeginDocument{% in case a different font is loaded
+    % \iffontchar is from e-TeX; safe to use under Unicode engines.
+    \iffontchar\font"1EBF
+      \def\TBecircacute{\char"1EBF }%
+    \else
+      \def\TBecircacute{\^e\llap{\raise 0.5ex\hbox{\'{}}}}%
+    \fi
+    \def\Thanh{H\`an~Th\TBecircacute~Th\`anh}%
+  }%
+\else % non-Unicode engine, use our traditional definition.
+  \def\Thanh{H\`an~Th\^e\llap{\raise 0.5ex\hbox{\'{}}}~Th\`anh}
+  % We could also go the other direction, and always use the Unicode
+  % character, after:
+  % \ifdefined\DeclareUnicodeCharacter
+  %   \DeclareUnicodeCharacter{1EBF}{\^e\llap{\raise 0.5ex\hbox{\'{}}}}
+  % \fi
+  % but let's make the smaller change.
 \fi
 \def\TikZ{Ti{\em k}Z}
 \def\ttn{\textsl{TTN}\@}
@@ -967,6 +1008,16 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% Latin Modern and many other fonts irritatingly make the Unicode
+% 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}{%
+   .\kern\fontdimen3\font
+   .\kern\fontdimen3\font
+   .\kern\fontdimen3\font}
+%
 % \begin{macro}{\allowhyphens}
 % Hyphen control: first, we save (via \cs{edef}) the hyphenpenalties in
 % \cs{allowhyphens}.  This allows us to permit hyphens temporarily in
@@ -1128,21 +1179,26 @@
 % skips, etc.
 %    \begin{macrocode}
 \def\raggedright{%
-  \nohyphens
-  \rightskip=\raggedskip\@plus\raggedstretch \raggedspaces
+  \nohyphens \raggedspaces
+  \rightskip=\raggedskip\@plus\raggedstretch
   \parfillskip=\raggedparfill
 }
 \def\raggedleft{%
-  \nohyphens
-  \leftskip=\raggedskip\@plus\raggedstretch \raggedspaces
+  \nohyphens \raggedspaces
+  \leftskip=\raggedskip\@plus\raggedstretch
   \parfillskip=\z at skip
+  \let\\ \@centercr % else tabulararray fails,
+                    % https://github.com/lvjr/tabularray/issues/348
 }
 \def\raggedcenter{%
-  \nohyphens
+  \nohyphens \raggedspaces
   \leftskip=\raggedskip\@plus\raggedstretch
-  \rightskip=\leftskip \raggedspaces
-  \parindent=\z@ \parfillskip=\z at skip
+  \rightskip=\leftskip
+  \parindent=\z@
+  \parfillskip=\z at skip
 }
+%
+% Undo |\raggedspaces|.
 \def\normalspaces{\spaceskip\z at skip \xspaceskip\z at skip}
 %    \end{macrocode}
 % \end{macro}
@@ -1218,12 +1274,19 @@
 %
 % Use \tt rather than \texttt because italic typewriter is just too ugly,
 % and upright works well enough in both italic and bold contexts.
-\DeclareRobustCommand{\cs}[1]{{\tt \char`\\#1}}
+% Would be nice to change catcode of _ for LaTeX3.
+\DeclareRobustCommand{\cs}[1]{\texorpdfstring
+  {{\tt \char`\\#1}}%
+  {\textbackslash #1}%
+}
 %
 % This command was defined much later than the others around here, so
 % let's not conflict with any existing definitions that might be out there.
 % Don't allow hyphenations or other line breaks.
-\DeclareRobustCommand{\tubbraced}[1]{\mbox{\texttt{\char`\{#1\char`\}}}}
+\DeclareRobustCommand{\tubbraced}[1]{\texorpdfstring
+  {\mbox{\texttt{\char`\{#1\char`\}}}}%
+  {\textbraceleft #1\textbraceright}%
+}
 %
 % Well, just the \begin part.  Never seen it used.
 \DeclareRobustCommand{\env}[1]{\cs{begin}\tubbraced{#1}}
@@ -1242,6 +1305,7 @@
 % \cs{tbhurl}\tubbraced{foo}  produces \texttt{http://foo}.
 \AtBeginDocument{%
 \ifx\hyper at normalise\undefined
+  \def\tburl{\url}%
   \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
@@ -1249,24 +1313,40 @@
   % This hyperref hook-in is due to Ulrike Fischer.
   % \url{https://github.com/latex3/hyperref/issues/125}.
   % \tb[sh]url@ are defined next.
+  \DeclareRobustCommand*{\tburl}{\tbsurl}%
   \DeclareRobustCommand*{\tbsurl}{\hyper at normalise\tbsurl@}%
   \DeclareRobustCommand*{\tbhurl}{\hyper at normalise\tbhurl@}
 \fi
 }
 %
-% Outside \AtBeginDocument, back at the top level of the dtx,
+% Outside \AtBeginDocument, back at the top level of the dtx, we
 % turn on expl syntax for the main definitions of \tb[sh]url.  We want
 % to auto-remove an explicit protocol in case it
-% was given. Only the correct protocol is removed, the incorrect
-% protocol (\verb|\tbsurl{http://}|) generates an invalid link.  That's ok
-% because the link wouldn't work anyway.
+% was given.
+% 
+% Only the correct protocol is removed; if \verb|http://| is
+% given to \cs{tbsurl}, it is used (and printed) as-is. This is useful
+% so we can do \verb|\let\url\tbsurl| when printing bibliographies.
+% 
+% Giving \verb|https://| to \cs{tbhurl}, on the other hand, generates an
+% invalid link; in practice there's no use for that so we don't bother
+% to check for it.
+% 
 \ExplSyntaxOn
 \def\tbsurl@#1  % https
  {
    \str_set:Nn\l_tmpa_str{#1}
-   \str_remove_once:Nn\l_tmpa_str{https://}   
-   \expandafter\hyper at linkurl\expandafter{\expandafter\Hurl\expandafter
-                                            {\l_tmpa_str}}{https://\l_tmpa_str}
+   \str_if_in:NnTF \l_tmpa_str {http://}
+    { 
+      \expandafter\hyper at linkurl
+       \expandafter{\expandafter\Hurl\expandafter{\l_tmpa_str}}{\l_tmpa_str}
+    }
+    {
+      \str_remove_once:Nn\l_tmpa_str{https://}
+      \expandafter\hyper at linkurl
+        \expandafter{\expandafter\Hurl\expandafter{\l_tmpa_str}}
+                                                          {https://\l_tmpa_str}
+    }
  }
 \def\tbhurl@#1  % http
  {
@@ -1279,6 +1359,7 @@
 %
 % Now let's use those macros for putting a url into a simple
 % ragged-right footnote.
+\def\tburlfootnote{\tbsurlfootnote}
 \def\tbsurlfootnote#1{\footnote{\raggedright\tbsurl{#1}}}
 \def\tbhurlfootnote#1{\footnote{\raggedright\tbhurl{#1}}}
 %
@@ -1373,10 +1454,11 @@
   \therevauth\therevtitle\therevpubinfo\endgraf}%
   \vskip\medskipamount
 }
-\def\booktitle#1{{\slshape\frenchspacing#1\/}}
+\def\titleref#1{{\slshape\frenchspacing#1\/}}
+\let\booktitle=\titleref % older name
 %    \end{macrocode}
 %
-%  \subsection{Dates, volume and issue numbers, etc.}
+% \subsection{Dates, volume and issue numbers, etc.}
 %
 % Dates and other items which identify the volume and issue.
 % \cs{issueseqno} is a sequential issue number starting from the
@@ -1584,7 +1666,7 @@
 \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 Ja-pa-nese Karls-ruhe
+  Hara-lam-bous Jac-kow-ski Ja-pa-nese Karls-ruhe Lua-Meta
   Mac-OS Ma-la-ya-lam Math-Sci-Net
   Net-BSD Open-BSD Open-Office
   Pak-i-stan Pfa-Edit Post-Script Rich-ard Skoup South-all
@@ -1624,12 +1706,12 @@
 %    \end{macrocode}
 % \subsection{Page dimensions, glue, penalties, etc.}
 %    \begin{macrocode}
-\textheight 54pc
-\textwidth 39pc
-\columnsep 1.5pc
-\columnwidth 18.75pc
+\textheight 54pc     % 648pt = 645.58bp = 8.97in
+\textwidth 39pc      % 468pt = 466.25bp = 6.48in
+\columnsep 1.5pc     %  18pt =  17.93bp =  .249in
+\columnwidth 18.75pc % 225pt = 224.16bp = 3.11in
 \hfuzz 1pt
-\parindent \normalparindent
+\parindent \normalparindent % 20pt
 \parskip \z@ % \@plus\p@
 \leftmargini 2em
 \leftmarginv .5em
@@ -1636,7 +1718,7 @@
 \leftmarginvi .5em
 \oddsidemargin \z@
 \evensidemargin \z@
-\topmargin -2.5pc
+\topmargin -2.5pc   % 30pt = 29.89bp = .415in
 \headheight 12\p@
 \headsep 20\p@
 \marginparwidth 48\p@
@@ -1646,7 +1728,7 @@
 \parsep=3\p@\@plus\p@\@minus\p@
 \itemsep=\parsep
 %
-% The width of one column plus gutter (=243pt) is useful sometimes.
+% The width of one column plus gutter (=243pt =242.09bp) is useful sometimes.
 \newdimen\tubcolwidthandgutter
   \tubcolwidthandgutter=\columnwidth
   \advance\tubcolwidthandgutter by \columnsep
@@ -2504,22 +2586,28 @@
 %
 % \subsection{Section headings}
 %
-%  Redefine style of section headings to match plain \TUB.
-%  Negative beforeskip suppresses following parindent.  (So
-%  negate the stretch and shrink too).
+% Redefine style of section headings to match plain \TUB.
+% Negative beforeskip suppresses following parindent.  (So
+% negate the stretch and shrink too).
 %
-%  These macros are called \cs{*head} in the plain styles.
+% These macros are called \cs{*head} in the plain styles.
 %
-%  Relaying via \cs{TB at startsection} detects inappropriate use of
-%  \cs{section*}.  Of course, if (when) \emph{we} use it, we need to
-%  avoid that relaying; this can be done by \cs{let}ting
-%  \cs{TB at startsection} to \cs{TB at safe@startsection}, within a group.
+% Relaying via \cs{TB at startsection} detects inappropriate use of
+% \cs{section*}.  Of course, if (when) \emph{we} use it, we need to
+% avoid that relaying; this can be done by \cs{let}ting
+% \cs{TB at startsection} to \cs{TB at safe@startsection}, within a group.
 %
 % First the version for use in the default case, when class option
 % \textsc{numbersec} is in effect.
+% 
+% The \cs{tubsecfmt} macro defines our standard formatting for section
+% titles: ragged right, french spacing, no hyphenation.
+% The \cs{tubsechook} macro allows overriding the defaults.
 %
 %    \begin{macrocode}
 \def\tubsechook{}
+\def\tubsecfmt{\normalsize\bf\raggedright\frenchspacing\nohyphens\tubsechook}
+%
 \if at numbersec
   \def\section{\TB at startsection{{section}%
                                 1%
@@ -2526,19 +2614,19 @@
                                 \z@
                                 {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                 {4\p@}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\subsection{\TB at startsection{{subsection}%
                                    2%
                                    \z@
                                    {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                    {4\p@}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\subsubsection{\TB at startsection{{subsubsection}%
                                       3%
                                       \z@
                                       {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                       {4\p@}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\paragraph{\TB at startsection{{paragraph}%
                                   4%
                                   \z@
@@ -2559,7 +2647,7 @@
                                 \z@
                                 {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                 {4\p@}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\subsection{\TB at nolimelabel
                   \TB at startsection{{subsection}%
                                    2%
@@ -2566,7 +2654,7 @@
                                    \z@
                                    {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                    {-0.5em\@plus-\fontdimen3\font}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\subsubsection{\TB at nolimelabel
                      \TB at startsection{{subsubsection}%
                                       3%
@@ -2573,7 +2661,7 @@
                                       \parindent
                                       {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                       {-0.5em\@plus-\fontdimen3\font}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
 \fi
 %    \end{macrocode}
 %
@@ -2866,7 +2954,7 @@
 %    \end{macrocode}
 %
 % Also use \cs{tubcaptionfonts} for the caption
-% labels, and put the label (e.g., ``Figure 1'') in bold.
+% labels, and put the label (e.g., ``Figure~1'') in bold.
 % If the \texttt{listings} package is being used, bold for its
 % label too; this \cs{def} is too early, but maybe listings will
 % play nice later.
@@ -2925,10 +3013,10 @@
 \def\@listii{%
   \leftmargin\leftmarginii
   \labelwidth=\leftmarginii \advance\labelwidth-\labelsep
-  \topsep=2\p@\@plus\p@\@minus\p@
-  \parsep=\p@\@plus\p@\@minus\p@
-  \itemsep=\parsep
-  \listparindent=1em
+  \topsep=2\p@\@plus\p@\@minus\p@ % space between first item and preceding
+  \parsep=\p@\@plus\p@\@minus\p@ 
+  \itemsep=\parsep                % space between successive items
+  \listparindent=1em              % indentation of subsequent paragraphs
   }
 
 \def\@listiii{%

Modified: trunk/Master/texmf-dist/source/latex/tugboat/tugboat.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/tugboat/tugboat.ins	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/source/latex/tugboat/tugboat.ins	2023-01-17 21:04:14 UTC (rev 65569)
@@ -1,10 +1,10 @@
-% $Id: tugboat.ins 376 2021-06-27 16:27:44Z karl $
+% $Id: tugboat.ins 458 2023-01-16 18:44:30Z karl $
 % tugboat.ins
 %% This file will generate fast loadable files and documentation
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright 1994-2021 TeX Users Group.
+%% Copyright 1994-2023 TeX Users Group.
 %% 
 %% This file is part of the tugboat package.
 %% 
@@ -38,7 +38,7 @@
 
 This is a generated file.
 
-Copyright 1994-2021 TeX Users Group.
+Copyright 1994-2023 TeX Users Group.
 
 It may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/tex/latex/tugboat/ltugboat.cls	2023-01-17 21:04:14 UTC (rev 65569)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 1994-2021 TeX Users Group.
+%% Copyright 1994-2023 TeX Users Group.
 %% 
 %% It may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3
@@ -32,9 +32,15 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[1994/12/01]
 \ProvidesClass  {ltugboat}
-                   [2022-05-19 v2.27
+                   [2023-01-16 v2.28
                        TUGboat journal class%
                    ]
+\newif\ifTBunicodeengine
+\ifx\Umathchardef\@thisisundefined % not (xetex|luatex)
+  \TBunicodeenginefalse
+\else
+  \TBunicodeenginetrue
+\fi
 \csname tugstyloaded@\endcsname
 \def\tugstyloaded@{\tugstyinit\endinput}
 \providecommand{\@tugclass}{ltugboat}
@@ -131,8 +137,13 @@
          \fontsize\@xviipt\stbaselineskip\selectfont}
 \def\tensl{\fontseries{m}\fontshape{sl}\fontsize\@xpt\@xiipt
           \selectfont}
-\def\EdNoteFont{\fontfamily{cmr}\fontseries{m}\fontshape{ui}%
-          \selectfont}
+\ifTBunicodeengine
+  % there is no "LM unslanted" in OpenType, so use the standard cmu
+  % scaled for the current text size. Not worth more effort.
+  \def\EdNoteFont{\font\ednotefont = cmu10 at 1em }
+\else % traditional engine:
+  \def\EdNoteFont{\fontfamily{cmr}\fontseries{m}\fontshape{ui}\selectfont}
+\fi
 \IfFileExists{mflogo.sty}%
   {\RequirePackage{mflogo}}%
  {\TBWarning
@@ -196,6 +207,7 @@
 \providecommand\textsuperscript[1]{\ensuremath{\m at th
                                      ^{\mbox{\fontsize\sf at size\z@
                                          \selectfont #1}}}}
+\def\tubline{\hbox to \hsize}
 \DeclareRobustCommand{\AllTeX}{(\La\kern-.075em)\kern-.075em\TeX}
 \def\AMS{American Mathematical Society}
 \def\AmS{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox
@@ -319,6 +331,7 @@
 \def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}\TeX}
 \def\pdflatex{pdf\-\LaTeX}% dtk-logos
 \def\pdftex{pdf\-\TeX}% dtk-logos
+\def\pdfTeX{\pdftex}
 \def\PDF{\acro{PDF}}
 \def\PGF{\acro{PGF}}
 \def\PHP{\acro{PHP}}
@@ -353,10 +366,24 @@
 \def\TeXworks{\TeX\kern-.07em works}
 \def\TeXXeT{\TeX-{}-\XeT}
 \def\TFM{\acro{TFM}}
-\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
+\ifTBunicodeengine
+  \AtBeginDocument{% in case a different font is loaded
+    % \iffontchar is from e-TeX; safe to use under Unicode engines.
+    \iffontchar\font"1EBF
+      \def\TBecircacute{\char"1EBF }%
+    \else
+      \def\TBecircacute{\^e\llap{\raise 0.5ex\hbox{\'{}}}}%
+    \fi
+    \def\Thanh{H\`an~Th\TBecircacute~Th\`anh}%
+  }%
+\else % non-Unicode engine, use our traditional definition.
+  \def\Thanh{H\`an~Th\^e\llap{\raise 0.5ex\hbox{\'{}}}~Th\`anh}
+  % We could also go the other direction, and always use the Unicode
+  % character, after:
+  % \ifdefined\DeclareUnicodeCharacter
+  %   \DeclareUnicodeCharacter{1EBF}{\^e\llap{\raise 0.5ex\hbox{\'{}}}}
+  % \fi
+  % but let's make the smaller change.
 \fi
 \def\TikZ{Ti{\em k}Z}
 \def\ttn{\textsl{TTN}\@}
@@ -426,6 +453,10 @@
 \def\NoBlackBoxes{\overfullrule=\z@}
 \def\newline{\hskip\z@\@plus\pagewd\break}
 \def\tubsentencespace{\spacefactor=3000{}\space\ignorespaces}
+\DeclareRobustCommand{\tubdots}{%
+   .\kern\fontdimen3\font
+   .\kern\fontdimen3\font
+   .\kern\fontdimen3\font}
 \edef\allowhyphens{\noexpand\hyphenpenalty\the\hyphenpenalty\relax
   \noexpand\exhyphenpenalty\the\exhyphenpenalty\relax}
 \def\nohyphens{\hyphenpenalty\@M\exhyphenpenalty\@M}
@@ -476,20 +507,23 @@
 \newskip\raggedparfill  \raggedparfill=\z@\@plus 1fil
 \def\raggedspaces{\spaceskip=.3333em \relax \xspaceskip=.5em \relax }
 \def\raggedright{%
-  \nohyphens
-  \rightskip=\raggedskip\@plus\raggedstretch \raggedspaces
+  \nohyphens \raggedspaces
+  \rightskip=\raggedskip\@plus\raggedstretch
   \parfillskip=\raggedparfill
 }
 \def\raggedleft{%
-  \nohyphens
-  \leftskip=\raggedskip\@plus\raggedstretch \raggedspaces
+  \nohyphens \raggedspaces
+  \leftskip=\raggedskip\@plus\raggedstretch
   \parfillskip=\z at skip
+  \let\\ \@centercr % else tabulararray fails,
+                    % https://github.com/lvjr/tabularray/issues/348
 }
 \def\raggedcenter{%
-  \nohyphens
+  \nohyphens \raggedspaces
   \leftskip=\raggedskip\@plus\raggedstretch
-  \rightskip=\leftskip \raggedspaces
-  \parindent=\z@ \parfillskip=\z at skip
+  \rightskip=\leftskip
+  \parindent=\z@
+  \parfillskip=\z at skip
 }
 \def\normalspaces{\spaceskip\z at skip \xspaceskip\z at skip}
 \def\tubjustifiedpar{\rightskip=0pt \parfillskip=0pt plus1fil
@@ -523,12 +557,19 @@
   {\it #1\/}% no typewriter italics, please
   \ensuremath{\rangle}%
 }
-\DeclareRobustCommand{\cs}[1]{{\tt \char`\\#1}}
-\DeclareRobustCommand{\tubbraced}[1]{\mbox{\texttt{\char`\{#1\char`\}}}}
+\DeclareRobustCommand{\cs}[1]{\texorpdfstring
+  {{\tt \char`\\#1}}%
+  {\textbackslash #1}%
+}
+\DeclareRobustCommand{\tubbraced}[1]{\texorpdfstring
+  {\mbox{\texttt{\char`\{#1\char`\}}}}%
+  {\textbraceleft #1\textbraceright}%
+}
 \DeclareRobustCommand{\env}[1]{\cs{begin}\tubbraced{#1}}
 \DeclareRobustCommand{\thinskip}{\hskip 0.16667em\relax}
 \AtBeginDocument{%
 \ifx\hyper at normalise\undefined
+  \def\tburl{\url}%
   \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
@@ -536,6 +577,7 @@
   % This hyperref hook-in is due to Ulrike Fischer.
   % \url{https://github.com/latex3/hyperref/issues/125}.
   % \tb[sh]url@ are defined next.
+  \DeclareRobustCommand*{\tburl}{\tbsurl}%
   \DeclareRobustCommand*{\tbsurl}{\hyper at normalise\tbsurl@}%
   \DeclareRobustCommand*{\tbhurl}{\hyper at normalise\tbhurl@}
 \fi
@@ -544,9 +586,17 @@
 \def\tbsurl@#1  % https
  {
    \str_set:Nn\l_tmpa_str{#1}
-   \str_remove_once:Nn\l_tmpa_str{https://}
-   \expandafter\hyper at linkurl\expandafter{\expandafter\Hurl\expandafter
-                                            {\l_tmpa_str}}{https://\l_tmpa_str}
+   \str_if_in:NnTF \l_tmpa_str {http://}
+    {
+      \expandafter\hyper at linkurl
+       \expandafter{\expandafter\Hurl\expandafter{\l_tmpa_str}}{\l_tmpa_str}
+    }
+    {
+      \str_remove_once:Nn\l_tmpa_str{https://}
+      \expandafter\hyper at linkurl
+        \expandafter{\expandafter\Hurl\expandafter{\l_tmpa_str}}
+                                                          {https://\l_tmpa_str}
+    }
  }
 \def\tbhurl@#1  % http
  {
@@ -556,6 +606,7 @@
                                             {\l_tmpa_str}}{http://\l_tmpa_str}
  }
 \ExplSyntaxOff
+\def\tburlfootnote{\tbsurlfootnote}
 \def\tbsurlfootnote#1{\footnote{\raggedright\tbsurl{#1}}}
 \def\tbhurlfootnote#1{\footnote{\raggedright\tbhurl{#1}}}
 \DeclareRobustCommand{\!}{\ifmmode\mskip-\thinmuskip \else\kern-0.16667em \fi}
@@ -615,7 +666,8 @@
   \therevauth\therevtitle\therevpubinfo\endgraf}%
   \vskip\medskipamount
 }
-\def\booktitle#1{{\slshape\frenchspacing#1\/}}
+\def\titleref#1{{\slshape\frenchspacing#1\/}}
+\let\booktitle=\titleref % older name
 \newcount\issueseqno \issueseqno=-1
 \def\v at lx{\gdef\volx{Volume~\volno~(\volyr), No.~\issno}}
 \def\volyr{}
@@ -707,7 +759,7 @@
 \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 Ja-pa-nese Karls-ruhe
+  Hara-lam-bous Jac-kow-ski Ja-pa-nese Karls-ruhe Lua-Meta
   Mac-OS Ma-la-ya-lam Math-Sci-Net
   Net-BSD Open-BSD Open-Office
   Pak-i-stan Pfa-Edit Post-Script Rich-ard Skoup South-all
@@ -741,12 +793,12 @@
 }
 \fi
 \PrelimDrafttrue
-\textheight 54pc
-\textwidth 39pc
-\columnsep 1.5pc
-\columnwidth 18.75pc
+\textheight 54pc     % 648pt = 645.58bp = 8.97in
+\textwidth 39pc      % 468pt = 466.25bp = 6.48in
+\columnsep 1.5pc     %  18pt =  17.93bp =  .249in
+\columnwidth 18.75pc % 225pt = 224.16bp = 3.11in
 \hfuzz 1pt
-\parindent \normalparindent
+\parindent \normalparindent % 20pt
 \parskip \z@ % \@plus\p@
 \leftmargini 2em
 \leftmarginv .5em
@@ -753,7 +805,7 @@
 \leftmarginvi .5em
 \oddsidemargin \z@
 \evensidemargin \z@
-\topmargin -2.5pc
+\topmargin -2.5pc   % 30pt = 29.89bp = .415in
 \headheight 12\p@
 \headsep 20\p@
 \marginparwidth 48\p@
@@ -1166,6 +1218,7 @@
   \end{center}
   \vspace{.5\baselineskip}}
 \def\tubsechook{}
+\def\tubsecfmt{\normalsize\bf\raggedright\frenchspacing\nohyphens\tubsechook}
 \if at numbersec
   \def\section{\TB at startsection{{section}%
                                 1%
@@ -1172,19 +1225,19 @@
                                 \z@
                                 {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                 {4\p@}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\subsection{\TB at startsection{{subsection}%
                                    2%
                                    \z@
                                    {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                    {4\p@}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\subsubsection{\TB at startsection{{subsubsection}%
                                       3%
                                       \z@
                                       {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                       {4\p@}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\paragraph{\TB at startsection{{paragraph}%
                                   4%
                                   \z@
@@ -1199,7 +1252,7 @@
                                 \z@
                                 {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                 {4\p@}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\subsection{\TB at nolimelabel
                   \TB at startsection{{subsection}%
                                    2%
@@ -1206,7 +1259,7 @@
                                    \z@
                                    {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                    {-0.5em\@plus-\fontdimen3\font}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
   \def\subsubsection{\TB at nolimelabel
                      \TB at startsection{{subsubsection}%
                                       3%
@@ -1213,7 +1266,7 @@
                                       \parindent
                                       {-8\p@ \@plus-2\p@ \@minus-2\p@}%
                                       {-0.5em\@plus-\fontdimen3\font}%
-          {\normalsize\bf\raggedright\hyphenpenalty\@M\tubsechook}}}
+          {\tubsecfmt}}}
 \fi
 \def\TB at startsection#1{\@startsection#1}%
 \def\TB at safe@startsection#1{\@startsection#1}
@@ -1357,10 +1410,10 @@
 \def\@listii{%
   \leftmargin\leftmarginii
   \labelwidth=\leftmarginii \advance\labelwidth-\labelsep
-  \topsep=2\p@\@plus\p@\@minus\p@
+  \topsep=2\p@\@plus\p@\@minus\p@ % space between first item and preceding
   \parsep=\p@\@plus\p@\@minus\p@
-  \itemsep=\parsep
-  \listparindent=1em
+  \itemsep=\parsep                % space between successive items
+  \listparindent=1em              % indentation of subsequent paragraphs
   }
 
 \def\@listiii{%

Modified: trunk/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/tex/latex/tugboat/ltugboat.sty	2023-01-17 21:04:14 UTC (rev 65569)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 1994-2021 TeX Users Group.
+%% Copyright 1994-2023 TeX Users Group.
 %% 
 %% It may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3
@@ -31,7 +31,7 @@
 %% extension .ins) which are part of the distribution.
 %% 
 \ProvidesPackage{ltugboat}
-                   [2022-05-19 v2.27
+                   [2023-01-16 v2.28
            TUG compatibility package%
                    ]
 \@obsoletefile{ltugboat.cls}{ltugboat.sty}

Modified: trunk/Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/tex/latex/tugboat/ltugcomn.sty	2023-01-17 21:04:14 UTC (rev 65569)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 1994-2021 TeX Users Group.
+%% Copyright 1994-2023 TeX Users Group.
 %% 
 %% It may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3
@@ -32,9 +32,15 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[1994/12/01]
    \ProvidesPackage{ltugcomn}
-                   [2022-05-19 v2.27
+                   [2023-01-16 v2.28
                           TUGboat `common macros' package%
                    ]
+\newif\ifTBunicodeengine
+\ifx\Umathchardef\@thisisundefined % not (xetex|luatex)
+  \TBunicodeenginefalse
+\else
+  \TBunicodeenginetrue
+\fi
 \IfFileExists{mflogo.sty}%
   {\RequirePackage{mflogo}}%
   {\PackageWarning{ltugcomn}
@@ -98,6 +104,7 @@
 \providecommand\textsuperscript[1]{\ensuremath{\m at th
                                      ^{\mbox{\fontsize\sf at size\z@
                                          \selectfont #1}}}}
+\def\tubline{\hbox to \hsize}
 \DeclareRobustCommand{\AllTeX}{(\La\kern-.075em)\kern-.075em\TeX}
 \def\AMS{American Mathematical Society}
 \def\AmS{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox
@@ -221,6 +228,7 @@
 \def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}\TeX}
 \def\pdflatex{pdf\-\LaTeX}% dtk-logos
 \def\pdftex{pdf\-\TeX}% dtk-logos
+\def\pdfTeX{\pdftex}
 \def\PDF{\acro{PDF}}
 \def\PGF{\acro{PGF}}
 \def\PHP{\acro{PHP}}
@@ -255,10 +263,24 @@
 \def\TeXworks{\TeX\kern-.07em works}
 \def\TeXXeT{\TeX-{}-\XeT}
 \def\TFM{\acro{TFM}}
-\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
+\ifTBunicodeengine
+  \AtBeginDocument{% in case a different font is loaded
+    % \iffontchar is from e-TeX; safe to use under Unicode engines.
+    \iffontchar\font"1EBF
+      \def\TBecircacute{\char"1EBF }%
+    \else
+      \def\TBecircacute{\^e\llap{\raise 0.5ex\hbox{\'{}}}}%
+    \fi
+    \def\Thanh{H\`an~Th\TBecircacute~Th\`anh}%
+  }%
+\else % non-Unicode engine, use our traditional definition.
+  \def\Thanh{H\`an~Th\^e\llap{\raise 0.5ex\hbox{\'{}}}~Th\`anh}
+  % We could also go the other direction, and always use the Unicode
+  % character, after:
+  % \ifdefined\DeclareUnicodeCharacter
+  %   \DeclareUnicodeCharacter{1EBF}{\^e\llap{\raise 0.5ex\hbox{\'{}}}}
+  % \fi
+  % but let's make the smaller change.
 \fi
 \def\TikZ{Ti{\em k}Z}
 \def\ttn{\textsl{TTN}\@}
@@ -328,6 +350,10 @@
 \def\NoBlackBoxes{\overfullrule=\z@}
 \def\newline{\hskip\z@\@plus\pagewd\break}
 \def\tubsentencespace{\spacefactor=3000{}\space\ignorespaces}
+\DeclareRobustCommand{\tubdots}{%
+   .\kern\fontdimen3\font
+   .\kern\fontdimen3\font
+   .\kern\fontdimen3\font}
 \edef\allowhyphens{\noexpand\hyphenpenalty\the\hyphenpenalty\relax
   \noexpand\exhyphenpenalty\the\exhyphenpenalty\relax}
 \def\nohyphens{\hyphenpenalty\@M\exhyphenpenalty\@M}
@@ -378,20 +404,23 @@
 \newskip\raggedparfill  \raggedparfill=\z@\@plus 1fil
 \def\raggedspaces{\spaceskip=.3333em \relax \xspaceskip=.5em \relax }
 \def\raggedright{%
-  \nohyphens
-  \rightskip=\raggedskip\@plus\raggedstretch \raggedspaces
+  \nohyphens \raggedspaces
+  \rightskip=\raggedskip\@plus\raggedstretch
   \parfillskip=\raggedparfill
 }
 \def\raggedleft{%
-  \nohyphens
-  \leftskip=\raggedskip\@plus\raggedstretch \raggedspaces
+  \nohyphens \raggedspaces
+  \leftskip=\raggedskip\@plus\raggedstretch
   \parfillskip=\z at skip
+  \let\\ \@centercr % else tabulararray fails,
+                    % https://github.com/lvjr/tabularray/issues/348
 }
 \def\raggedcenter{%
-  \nohyphens
+  \nohyphens \raggedspaces
   \leftskip=\raggedskip\@plus\raggedstretch
-  \rightskip=\leftskip \raggedspaces
-  \parindent=\z@ \parfillskip=\z at skip
+  \rightskip=\leftskip
+  \parindent=\z@
+  \parfillskip=\z at skip
 }
 \def\normalspaces{\spaceskip\z at skip \xspaceskip\z at skip}
 \def\tubjustifiedpar{\rightskip=0pt \parfillskip=0pt plus1fil
@@ -425,12 +454,19 @@
   {\it #1\/}% no typewriter italics, please
   \ensuremath{\rangle}%
 }
-\DeclareRobustCommand{\cs}[1]{{\tt \char`\\#1}}
-\DeclareRobustCommand{\tubbraced}[1]{\mbox{\texttt{\char`\{#1\char`\}}}}
+\DeclareRobustCommand{\cs}[1]{\texorpdfstring
+  {{\tt \char`\\#1}}%
+  {\textbackslash #1}%
+}
+\DeclareRobustCommand{\tubbraced}[1]{\texorpdfstring
+  {\mbox{\texttt{\char`\{#1\char`\}}}}%
+  {\textbraceleft #1\textbraceright}%
+}
 \DeclareRobustCommand{\env}[1]{\cs{begin}\tubbraced{#1}}
 \DeclareRobustCommand{\thinskip}{\hskip 0.16667em\relax}
 \AtBeginDocument{%
 \ifx\hyper at normalise\undefined
+  \def\tburl{\url}%
   \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
@@ -438,6 +474,7 @@
   % This hyperref hook-in is due to Ulrike Fischer.
   % \url{https://github.com/latex3/hyperref/issues/125}.
   % \tb[sh]url@ are defined next.
+  \DeclareRobustCommand*{\tburl}{\tbsurl}%
   \DeclareRobustCommand*{\tbsurl}{\hyper at normalise\tbsurl@}%
   \DeclareRobustCommand*{\tbhurl}{\hyper at normalise\tbhurl@}
 \fi
@@ -446,9 +483,17 @@
 \def\tbsurl@#1  % https
  {
    \str_set:Nn\l_tmpa_str{#1}
-   \str_remove_once:Nn\l_tmpa_str{https://}
-   \expandafter\hyper at linkurl\expandafter{\expandafter\Hurl\expandafter
-                                            {\l_tmpa_str}}{https://\l_tmpa_str}
+   \str_if_in:NnTF \l_tmpa_str {http://}
+    {
+      \expandafter\hyper at linkurl
+       \expandafter{\expandafter\Hurl\expandafter{\l_tmpa_str}}{\l_tmpa_str}
+    }
+    {
+      \str_remove_once:Nn\l_tmpa_str{https://}
+      \expandafter\hyper at linkurl
+        \expandafter{\expandafter\Hurl\expandafter{\l_tmpa_str}}
+                                                          {https://\l_tmpa_str}
+    }
  }
 \def\tbhurl@#1  % http
  {
@@ -458,6 +503,7 @@
                                             {\l_tmpa_str}}{http://\l_tmpa_str}
  }
 \ExplSyntaxOff
+\def\tburlfootnote{\tbsurlfootnote}
 \def\tbsurlfootnote#1{\footnote{\raggedright\tbsurl{#1}}}
 \def\tbhurlfootnote#1{\footnote{\raggedright\tbhurl{#1}}}
 \DeclareRobustCommand{\!}{\ifmmode\mskip-\thinmuskip \else\kern-0.16667em \fi}
@@ -517,7 +563,8 @@
   \therevauth\therevtitle\therevpubinfo\endgraf}%
   \vskip\medskipamount
 }
-\def\booktitle#1{{\slshape\frenchspacing#1\/}}
+\def\titleref#1{{\slshape\frenchspacing#1\/}}
+\let\booktitle=\titleref % older name
 \newcount\issueseqno \issueseqno=-1
 \def\v at lx{\gdef\volx{Volume~\volno~(\volyr), No.~\issno}}
 \def\volyr{}
@@ -609,7 +656,7 @@
 \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 Ja-pa-nese Karls-ruhe
+  Hara-lam-bous Jac-kow-ski Ja-pa-nese Karls-ruhe Lua-Meta
   Mac-OS Ma-la-ya-lam Math-Sci-Net
   Net-BSD Open-BSD Open-Office
   Pak-i-stan Pfa-Edit Post-Script Rich-ard Skoup South-all

Modified: trunk/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/tex/latex/tugboat/ltugproc.cls	2023-01-17 21:04:14 UTC (rev 65569)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 1994-2021 TeX Users Group.
+%% Copyright 1994-2023 TeX Users Group.
 %% 
 %% It may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3
@@ -32,7 +32,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[1994/12/01]
 \ProvidesClass  {ltugproc}
-                   [2022-05-19 v2.27
+                   [2023-01-16 v2.28
                        TUG conference proceedings class%
                    ]
 \def\@tugclass{ltugproc}

Modified: trunk/Master/texmf-dist/tex/latex/tugboat/ltugproc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tugboat/ltugproc.sty	2023-01-17 21:03:56 UTC (rev 65568)
+++ trunk/Master/texmf-dist/tex/latex/tugboat/ltugproc.sty	2023-01-17 21:04:14 UTC (rev 65569)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 1994-2021 TeX Users Group.
+%% Copyright 1994-2023 TeX Users Group.
 %% 
 %% It may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3
@@ -31,7 +31,7 @@
 %% extension .ins) which are part of the distribution.
 %% 
 \ProvidesPackage{ltugproc}
-                   [2022-05-19 v2.27
+                   [2023-01-16 v2.28
            TUG compatibility package%
                    ]
 \@obsoletefile{ltugproc.cls}{ltugproc.sty}



More information about the tex-live-commits mailing list.