texlive[72556] Master/texmf-dist: chess-problem-diagrams (15oct24)
commits+karl at tug.org
commits+karl at tug.org
Tue Oct 15 22:09:02 CEST 2024
Revision: 72556
https://tug.org/svn/texlive?view=revision&revision=72556
Author: karl
Date: 2024-10-15 22:09:02 +0200 (Tue, 15 Oct 2024)
Log Message:
-----------
chess-problem-diagrams (15oct24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/chess-problem-diagrams/README
trunk/Master/texmf-dist/doc/latex/chess-problem-diagrams/diagram.pdf
trunk/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.dtx
trunk/Master/texmf-dist/tex/latex/chess-problem-diagrams/diagram.sty
Modified: trunk/Master/texmf-dist/doc/latex/chess-problem-diagrams/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/chess-problem-diagrams/README 2024-10-15 20:08:49 UTC (rev 72555)
+++ trunk/Master/texmf-dist/doc/latex/chess-problem-diagrams/README 2024-10-15 20:09:02 UTC (rev 72556)
@@ -1,5 +1,5 @@
diagram --- A package for typesetting chessproblems
-Version v1.21 / Stefan Hoening 1994-2022
+Version v1.22 / Stefan Hoening 1994-2024
CONTENTS
Modified: trunk/Master/texmf-dist/doc/latex/chess-problem-diagrams/diagram.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.dtx 2024-10-15 20:08:49 UTC (rev 72555)
+++ trunk/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.dtx 2024-10-15 20:09:02 UTC (rev 72556)
@@ -13,9 +13,9 @@
%%
%%
% \fi
-% \def\fileversion{v1.21}
-% \def\docdate{2022/06/14}
-% \CheckSum{4577}
+% \def\fileversion{v1.22}
+% \def\docdate{2024/06/13}
+% \CheckSum{4611}
% \changes{v0.1}{15 Februar 2004}{First Version}
% \changes{v0.2}{23 Februar 2004}{Added the documentation for the
% {\itshape information collecting} macros which may be used
@@ -91,9 +91,15 @@
% \changes{v1.20}{13 June 2022}{Introduced two booleans to better
% control displaying diagram number globally and locally.\\
% Removed the old boolean 'di at no'.}
-% \changes{v1.21}{14 June 2022}{Impletemted issue: 03f/309:\\
+% \changes{v1.21}{14 June 2022}{Impletented issue: 03f/309:\\
% handle empty arguments in information collecting commands\\
% Fixed typo in @dia at fidealbum command.}
+% \changes{v1.22}{13 June 2024}{Fix empty argument detection.\\
+% Change ra and lra commands to allow for common prefix and suffix.\\
+% Added generic command insidediagram to allow e.g. footnotes inside
+% diagrams.\\
+% Fixed numbering when creating empty diagram numbering via
+% speciadiagram.}
%
% \DoNotIndex{\@arabic,\def,\@idxitem,\@ifnextchar,\@ifstar,
% \@ne,\@ptsize,\ ,\advance,\AtEndOfPackage,\begin,\begingroup,
@@ -237,8 +243,8 @@
% \item \DescribeMacro{\author}
% With the |\author| tag you specify one author or a list of authors.
% If you specify more than one author, you must separate them
-% with ";~". Normally an author is given as \explained{"sirname,
-% givenname"}. You may change the way, how the name is
+% with ``;~''. Normally an author is given as \explained{``sirname,
+% givenname''}. You may change the way, how the name is
% interpreted by \LaTeX\ using |\normalnames| and
% |\reversednames|. This \verb+\author+ command does only
% overwrite the default behaviour when used inside a diagram
@@ -252,7 +258,7 @@
% \item \DescribeMacro{\pieces}
% With |\pieces| you specify the position to be displayed on the
% board. For each kind of piece you may specify a list of fields.
-% Different lists of fields are separated by ",~". So the general
+% Different lists of fields are separated by ``,~''. So the general
% syntax for specifying the position of a specific piece
% is:\newline
% [color][piece]\{rotation of piece\}[list of squares];\newline
@@ -297,12 +303,12 @@
% may be used to specify the city and country, where the author
% or the authors live. I use this inside the original section of
% \Schwalbe. You should separate multiple cities (for multiple
-% authors) with ";~". There is also a boolean switch |showcity|,
+% authors) with ``;~''. There is also a boolean switch |showcity|,
% which contols, whether this information is displayed.
% \item \DescribeMacro{\specialdiagnum}
% May be used to suppress the default diagram numbering (which
% uses a counter) and instead directly providing a diagram
-% "number" which may be an arbritary text. This may also be used to
+% ``number'' which may be an arbritary text. This may also be used to
% suppress displaying a diagram number by providing an empty argument
% \verb+{}+.
% \item \DescribeMacro{\sourcenr}
@@ -334,10 +340,10 @@
% author of the problem.
% \item \DescribeMacro{\condition}\DescribeMacro{\cond}
% May be used to specify the fairy conditions of a problem.
-% Different conditions should be separated with ";~".
+% Different conditions should be separated with ``;~''.
% \item \DescribeMacro{\twins}
% May be used to specify the different twins of a problem.
-% Different twins should be separated with ";~".
+% Different twins should be separated with ``;~''.
% \item \DescribeMacro{\remark}\DescribeMacro{\rem}
% May be used to specify remarks to the problem. I typically use
% this to explain fairy pieces on the board. You may also use the
@@ -357,18 +363,18 @@
% \item \DescribeMacro{\judgement}
% May be used to describe the judgement given for a problem,
% e.\,g. when you are working on an award or when you are
-% selecting problems for a "best of \dots{}" book.
+% selecting problems for a ``best of \dots{}'' book.
% \item \DescribeMacro{\comment}
% May be used to specify some comment on the problem (e.\,g. the
% authors original comment.)
% \item \DescribeMacro{\themes}
% May be used to specify themes displayed in the problem.
-% Different themes should be separated with ",~". When creating a
+% Different themes should be separated with ``,~''. When creating a
% theme index, the themes will automatically be used to create
% the register.
% \item \DescribeMacro{\genre}
% May be used to specify genre of the problem.
-% Different genres should be separated with ",~".
+% Different genres should be separated with ``,~''.
% The values are intended to using \LaTeX\-import within the PDB.
% \end{itemize}
%
@@ -734,7 +740,7 @@
% You may remove single fields by using the |\nofields| or
% |\nosquares| command. Using this command does make sense for
% empty black fields only. This command expects a list of squares
-% separated by "',~"'. You may also use this command within a
+% separated by ``,~''. You may also use this command within a
% stereo- or space-diagram. In this case you must specify the
% fields the same way you do it inside the |\pieces| command.
%
@@ -748,7 +754,7 @@
% A more general form of lines within diagrams is possible by
% using the |\gridlines| command. You may specify a list of
% horizontal or vertical lines within the diagram. Different
-% lines should be separated by "',~"'. A single line must be
+% lines should be separated by ``,~''. A single line must be
% specified as:
%
% [plane](v or h)(x-coordinate)(y-coordinate)(length in squares)
@@ -755,7 +761,7 @@
%
% You must specify a plane in case of stereo- or space-chess
% only. For a vertical line starting at the lower left corner of
-% "'c2"' ending at the upper left corner of "'c8"' the command to
+% ``c2'' ending at the upper left corner of ``c8'' the command to
% use is: |\gridlines{v217}|\@. Concerning the coordinates and
% length specifications you should pay attention to put values
% greater 9 in curly braces \{ \}.
@@ -766,7 +772,7 @@
% is: \{Text\}(x-coordinate)(y-coordinate)
%
% Now an example how to use |\gridlines|, |\nofields| and
-% |\fieldtext| to create some "'{\itshape Letter-Board}"' with text
+% |\fieldtext| to create some ``{\itshape Letter-Board}'' with text
% inside.
%
% \bigskip
@@ -865,6 +871,7 @@
% \DescribeMacro{\nX}
% a neutral rotated equihopper
% \end{description}
+%
% \subsubsection{Other often used symbols}
% The style also defines commands for other symbols, which are
% often used within the declaration of twins or when writing a
@@ -887,12 +894,28 @@
% queen side castling
% \item[\x]
% \DescribeMacro{\x}
-% for "'takes"'
+% for ``takes''
% \item[\any]
% \DescribeMacro{\any}
-% for any move (you may not simply use a \any\ within your
+% for an arbitrary move (you must not simply use a \verb+~+ within your
% text because \TeX\ handles this as a protected space)
% \end{description}
+%
+% \DescribeEnv{arrowskip}
+% It is possible, to define a prefix and/or a suffix to use before and
+% after arrows - typically a common separating space. Per default
+% there is no such space. You may use the \verb+arrowskip+ environment
+% have a common prefix and suffix before and after arrows:
+%
+% \begin{verbatim}
+% \begin{arrowskip}{a\,}{\,b}
+% ...
+% \end{arrowskip}
+% \end{verbatim}
+%
+% ... will prefix arrows produced with |\ra| or |\lra| with \verb+a\,+
+% and suffix with \verb+\,b+.
+%
% \subsubsection{Internationalization}
% \DescribeMacro{\DefinePieces}
% This part is relevant for people who do not like the german
@@ -992,6 +1015,20 @@
% \verb+\renewcommand{\solpar}+ to provide another definition of
% \verb+\solpar+ in such situations.
%
+% \DescribeMacro{\insidediagram}
+% The problem information collected by some commands may be used in
+% different places (author names will be shown above the diagram and
+% at the beginning of solutions when output using \verb+\putsol+).
+% Therefore we need some special handling of e.g. footnotes, to avoid
+% creating the footnotemarks multiple times. Such commands should be
+% used within \verb+\insidediagram+ as shown by the following example:
+%
+% \begin{verbatim}
+% \begin{diagram}
+% \author{Else\insidediagram{\footnotemark}, Someone}
+% \end{diagram}
+% \end{verbatim}
+%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \section{The documentation driver}
@@ -1016,7 +1053,7 @@
% Specifies the preamble of our style file.
% \begin{macrocode}
%<*style>
-\ProvidesPackage{diagram}[2022/06/19]
+\ProvidesPackage{diagram}[2024/10/14]
% \end{macrocode}
%
% \begin{macro}{\DefaultDiagramSize}
@@ -1206,6 +1243,7 @@
\newtoks\condition at tk\condition at tk={\relax}
\newtoks\remark at tk\remark at tk={\relax}
\newtoks\piecedefs at tk\piecedefs at tk={\relax}
+\newtoks\@cpd at emptytest
% \end{macrocode}
%
% To remember, which information has been specified, we define
@@ -1264,7 +1302,7 @@
% \begin{macrocode}
\newwrite\s at lfd
\let\below at newline=\relax
-% These are used by the "old" board creating mechanism
+% These are used by the ``old'' board creating mechanism
\newcount\@lines
\newcount\@rows
\newcount\lines at max
@@ -1386,6 +1424,12 @@
\ignorespaces%
}
+
+\newboolean{@cpd at inside@diagram}
+\setboolean{@cpd at inside@diagram}{false}
+\newcommand{\insidediagram}[1]{%
+ \ifthenelse{\boolean{@cpd at inside@diagram}}{#1}{}%
+}
\def\enddiagram{%
\let\author=\orig at author%
\let\day=\orig at day%
@@ -1506,6 +1550,7 @@
}%
%
\global\setbox\dia at box=\hbox{\vbox{%
+ \setboolean{@cpd at inside@diagram}{true}%
\parindent\z@%
\parskip\z@%
\baselineskip11\p@\advance\baselineskip\dia at lineskip%
@@ -1541,6 +1586,7 @@
\dia at below%
}\hss}%
}%
+ \setboolean{@cpd at inside@diagram}{false}%
}}% End of \dia at box
\do at dia@job%
\cpd at enddiagram@hook%
@@ -1728,9 +1774,35 @@
\addtocounter{board at nr}{\m at ne}}
% \end{macrocode}
%
+% Now we define a couple of abbreviations and special symbols
+% often used when setting problem chess documents.
+%
% \begin{macro}{\ra}
% \begin{macro}{\lra}
% \begin{macro}{\rla}
+% \begin{macro}{arrowskip}
+% Arrows and specification of space (or something different)
+% before and after arrows.
+% \begin{macrocode}
+\newcommand{\@cpd at pre@arrow}{}
+\newcommand{\@cpd at post@arrow}{}
+\newcommand{\ra}{\@cpd at pre@arrow\mbox{$\rightarrow$}\@cpd at post@arrow}
+\newcommand{\lra}{\@cpd at pre@arrow\mbox{$\leftrightarrow$}\@cpd at post@arrow}
+\let\rla=\lra
+\newcommand*{\@cpd at prepost@arrow}[2]{%
+ \renewcommand*{\@cpd at pre@arrow}{#1}
+ \renewcommand*{\@cpd at post@arrow}{#2}
+}
+\newenvironment{arrowskip}{%
+ \@cpd at prepost@arrow%
+}{%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\x}
% \begin{macro}{\set}
% \begin{macro}{\OO}
@@ -1737,12 +1809,7 @@
% \begin{macro}{\OOO}
% \begin{macro}{\any}
% \begin{macro}{\further}
-% Now we define a couple of abbreviations and special symbols
-% often used when setting problem chess documents.
% \begin{macrocode}
-\def\ra{\mbox{$\rightarrow$}}
-\def\lra{\mbox{$\leftrightarrow$}}
-\let\rla=\lra
\newcommand{\x}{\mbox{\ifmmode\times\else$\times$\fi}}
\def\set{\kern -.05em\raise .1ex\hbox{*}}
\def\@O{0\raise.25ex\hbox{-}\kern -.1em\relax}
@@ -1757,9 +1824,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macrocode}
\def\spacelayout#1{\csname space@#1\endcsname}
@@ -1808,10 +1872,10 @@
}{%
\setboolean{@cpd at numbering@local}{true}%
\@specialtrue%
- \number at tk={#1}\@numbertrue%
- \def\thediag{#1}\def\@currentlabel{#1}%
- \ignorespaces%
}
+ \number at tk={#1}\@numbertrue%
+ \def\thediag{#1}\def\@currentlabel{#1}%
+ \ignorespaces%
}
% \end{macrocode}
%
@@ -1848,6 +1912,15 @@
% \end{macro}
%
% \begin{macrocode}
+\def\@cpd at warnIfEmpty#1#2{%
+ \begingroup%
+ \@cpd at emptytest={#1}%
+ \edef\@cpd at param{\the\@cpd at emptytest}%
+ \expandafter\endgroup%
+ \ifx\@cpd at param\@empty\relax%
+ \message{^^JWARNING: empty '#2' argument.^^J}%
+ \fi
+}
\def\city#1{%
\city at tk={#1}\@citytrue%
\ignorespaces%
@@ -1889,44 +1962,29 @@
\ignorespaces%
}
\def\award#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'award' argument.^^J}%
- }{%
- \award at tk={#1}\@awardtrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{award}%
+ \award at tk={#1}\@awardtrue%
+ \ignorespaces%
}
\def\version#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'version' argument.^^J}%
- }{%
- \version at tk={#1}\@versiontrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{version}%
+ \version at tk={#1}\@versiontrue%
+ \ignorespaces%
}
\def\after#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'after' argument.^^J}%
- }{%
- \after at tk={#1}\@aftertrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{after}%
+ \after at tk={#1}\@aftertrue%
+ \ignorespaces%
}
\def\correction#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
- }{%
- \correction at tk={#1}\@correctiontrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{correction}%
+ \correction at tk={#1}\@correctiontrue%
+ \ignorespaces%
}
\def\dedication#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
- }{%
- \dedic at tk={#1}\@dedicationtrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{dedication}%
+ \dedic at tk={#1}\@dedicationtrue%
+ \ignorespaces%
}
\def\fidealbum#1{%
\fidealbum at tk={#1}\@fidealbumtrue%
@@ -2569,7 +2627,7 @@
\parskip\tw@\p@%
{\bfseries%
\noindent\if at label\showlabel{\the\label at tk}\fi%
- \the\number at tk) %
+ \if at number\the\number at tk) \fi%
\ifauth at r%
\ifnormal at names%
\the\aut at tk%
Modified: trunk/Master/texmf-dist/tex/latex/chess-problem-diagrams/diagram.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/chess-problem-diagrams/diagram.sty 2024-10-15 20:08:49 UTC (rev 72555)
+++ trunk/Master/texmf-dist/tex/latex/chess-problem-diagrams/diagram.sty 2024-10-15 20:09:02 UTC (rev 72556)
@@ -36,7 +36,7 @@
%%
%%
-\ProvidesPackage{diagram}[2022/06/19]
+\ProvidesPackage{diagram}[2024/10/14]
\newcommand*{\DefaultDiagramSize}{}
\DeclareOption{10pt}{\renewcommand*{\DefaultDiagramSize}{\diagramx}}
\DeclareOption{11pt}{\renewcommand*{\DefaultDiagramSize}{\diagramxi}}
@@ -194,6 +194,7 @@
\newtoks\condition at tk\condition at tk={\relax}
\newtoks\remark at tk\remark at tk={\relax}
\newtoks\piecedefs at tk\piecedefs at tk={\relax}
+\newtoks\@cpd at emptytest
\newif\if at label\@labelfalse
\newif\if at number\@numberfalse
\newif\if at special\@specialfalse
@@ -328,6 +329,11 @@
\ignorespaces%
}
+\newboolean{@cpd at inside@diagram}
+\setboolean{@cpd at inside@diagram}{false}
+\newcommand{\insidediagram}[1]{%
+ \ifthenelse{\boolean{@cpd at inside@diagram}}{#1}{}%
+}
\def\enddiagram{%
\let\author=\orig at author%
\let\day=\orig at day%
@@ -448,6 +454,7 @@
}%
%
\global\setbox\dia at box=\hbox{\vbox{%
+ \setboolean{@cpd at inside@diagram}{true}%
\parindent\z@%
\parskip\z@%
\baselineskip11\p@\advance\baselineskip\dia at lineskip%
@@ -483,6 +490,7 @@
\dia at below%
}\hss}%
}%
+ \setboolean{@cpd at inside@diagram}{false}%
}}% End of \dia at box
\do at dia@job%
\cpd at enddiagram@hook%
@@ -619,9 +627,19 @@
\renewcommand*{\@dianumber at prefix}{#1}%
\setcounter{board at nr}{#2}%
\addtocounter{board at nr}{\m at ne}}
-\def\ra{\mbox{$\rightarrow$}}
-\def\lra{\mbox{$\leftrightarrow$}}
+\newcommand{\@cpd at pre@arrow}{}
+\newcommand{\@cpd at post@arrow}{}
+\newcommand{\ra}{\@cpd at pre@arrow\mbox{$\rightarrow$}\@cpd at post@arrow}
+\newcommand{\lra}{\@cpd at pre@arrow\mbox{$\leftrightarrow$}\@cpd at post@arrow}
\let\rla=\lra
+\newcommand*{\@cpd at prepost@arrow}[2]{%
+ \renewcommand*{\@cpd at pre@arrow}{#1}
+ \renewcommand*{\@cpd at post@arrow}{#2}
+}
+\newenvironment{arrowskip}{%
+ \@cpd at prepost@arrow%
+}{%
+}
\newcommand{\x}{\mbox{\ifmmode\times\else$\times$\fi}}
\def\set{\kern -.05em\raise .1ex\hbox{*}}
\def\@O{0\raise.25ex\hbox{-}\kern -.1em\relax}
@@ -652,10 +670,10 @@
}{%
\setboolean{@cpd at numbering@local}{true}%
\@specialtrue%
- \number at tk={#1}\@numbertrue%
- \def\thediag{#1}\def\@currentlabel{#1}%
- \ignorespaces%
}
+ \number at tk={#1}\@numbertrue%
+ \def\thediag{#1}\def\@currentlabel{#1}%
+ \ignorespaces%
}
\def\ds at label{%
\@ifstar{\ds at labelfalse\ds at xlabel}{\ds at labeltrue\ds at xlabel}%
@@ -668,6 +686,15 @@
\newcommand{\Dr}{\ds at academictitle{Dr.}}
\newcommand{\Prof}{\ds at academictitle{Prof.}}
\newcommand{\ProfDr}{\ds at academictitle{Prof.\,Dr.}}
+\def\@cpd at warnIfEmpty#1#2{%
+ \begingroup%
+ \@cpd at emptytest={#1}%
+ \edef\@cpd at param{\the\@cpd at emptytest}%
+ \expandafter\endgroup%
+ \ifx\@cpd at param\@empty\relax%
+ \message{^^JWARNING: empty '#2' argument.^^J}%
+ \fi
+}
\def\city#1{%
\city at tk={#1}\@citytrue%
\ignorespaces%
@@ -709,44 +736,29 @@
\ignorespaces%
}
\def\award#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'award' argument.^^J}%
- }{%
- \award at tk={#1}\@awardtrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{award}%
+ \award at tk={#1}\@awardtrue%
+ \ignorespaces%
}
\def\version#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'version' argument.^^J}%
- }{%
- \version at tk={#1}\@versiontrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{version}%
+ \version at tk={#1}\@versiontrue%
+ \ignorespaces%
}
\def\after#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'after' argument.^^J}%
- }{%
- \after at tk={#1}\@aftertrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{after}%
+ \after at tk={#1}\@aftertrue%
+ \ignorespaces%
}
\def\correction#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
- }{%
- \correction at tk={#1}\@correctiontrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{correction}%
+ \correction at tk={#1}\@correctiontrue%
+ \ignorespaces%
}
\def\dedication#1{%
- \ifthenelse{\equal{}{#1}}{%
- \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
- }{%
- \dedic at tk={#1}\@dedicationtrue%
- \ignorespaces%
- }%
+ \@cpd at warnIfEmpty{#1}{dedication}%
+ \dedic at tk={#1}\@dedicationtrue%
+ \ignorespaces%
}
\def\fidealbum#1{%
\fidealbum at tk={#1}\@fidealbumtrue%
@@ -1321,7 +1333,7 @@
\parskip\tw@\p@%
{\bfseries%
\noindent\if at label\showlabel{\the\label at tk}\fi%
- \the\number at tk) %
+ \if at number\the\number at tk) \fi%
\ifauth at r%
\ifnormal at names%
\the\aut at tk%
More information about the tex-live-commits
mailing list.