summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-06-23 20:55:46 +0000
committerKarl Berry <karl@freefriends.org>2022-06-23 20:55:46 +0000
commit9ceaa67f544de7896b043e5ea753b0a9a3a2eda2 (patch)
tree2440ed08363644157895cdb95ff61193bc8311f6 /Master/texmf-dist/source/latex
parent9c66efeecfcda608dc42a60f2e0543bcf337b6b3 (diff)
chess-problem-diagrams (23jun22)
git-svn-id: svn://tug.org/texlive/trunk@63704 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.dtx189
-rw-r--r--Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.ins1
2 files changed, 138 insertions, 52 deletions
diff --git a/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.dtx b/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.dtx
index 249d14058b5..883588b3917 100644
--- a/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.dtx
+++ b/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.dtx
@@ -13,9 +13,9 @@
%%
%%
% \fi
-% \def\fileversion{v1.15}
-% \def\docdate{2019/12/28}
-% \CheckSum{4545}
+% \def\fileversion{v1.21}
+% \def\docdate{2022/06/14}
+% \CheckSum{4577}
% \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
@@ -76,6 +76,24 @@
% \changes{v1.14}{02 September 2019}{Fixed issue with stereo- and space-diagrams.}
% \changes{v1.15}{28 December 2019}{Fixed frame issue with stereo- and space-diagrams.\\
% Added hook commands for begin/end diagram.}
+% \changes{v1.16}{09 February 2020}{Fixed date display issue in
+% figurine environment.\\
+% Added hook commands to figurine environment.\\
+% Fixed documentation bug: separation character in themes command is
+% comma not semicolon.\\
+% command diagnumbering fixed: boolean is changed to true globally.}
+% \changes{v1.17}{27 December 2020}{Added generation of cpdparse.sty
+% containing generic command for parsing lists.}
+% \changes{v1.18}{04 February 2021}{03f/0be:om: Typo: above@newlne\\
+% 03f/035:om: solnamestype has no effect}
+% \changes{v1.19}{04 March 2021}{Minor fix in cl@arsol\\
+% Added (empty) command gerne.}
+% \changes{v1.20}{13 June 2022}{Introduced two booleans to better
+% control displaying diagram number globally and locally.\\
+% Removed the old boolean 'di@no'.}
+% \changes{v1.21}{14 June 2022}{Impletemted issue: 03f/309:\\
+% handle empty arguments in information collecting commands\\
+% Fixed typo in @dia@fidealbum command.}
%
% \DoNotIndex{\@arabic,\def,\@idxitem,\@ifnextchar,\@ifstar,
% \@ne,\@ptsize,\ ,\advance,\AtEndOfPackage,\begin,\begingroup,
@@ -284,7 +302,9 @@
% \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.
+% "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}
% May be used to specify the number which was used for the
% problem inside an originals section.
@@ -343,11 +363,22 @@
% 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 ",~".
+% The values are intended to using \LaTeX\-import within the PDB.
% \end{itemize}
%
+% When providing an empty argument to commands \verb+\award+,
+% \verb+\after+, \verb+\dedic+, \verb+\correction+ and \verb+\version+
+% only a warning is issued to the logfile. In previous
+% versions of \verb+diagram.sty+ using empty arguments with the
+% mentioned commands produced empty lines above the diagram.
+%
+%
% There are some commands which not only collect information but
% normally direct result in a change of the diagram. These are:
%
@@ -526,7 +557,7 @@
% need smaller or larger boards. This can be achieved by
% specifying the rows and columns as an optional parameter to the
% |\begin{diagram}| environment. You first have to specify the
-% lines and then the rows as the following examples shows.
+% columns and then the rows as the following examples shows.
%
% \bigskip
% \begin{diagram}[17x11]
@@ -644,13 +675,13 @@
% \DescribeMacro{\noframe}
% \DescribeMacro{\noinnerframe}
% To stylize a cylindric board one typically does not show parts
-% of the frame. When using |\verticalcylinder| the horizontal
+% of the frame. When using |\verticalcylinder|\, the horizontal
% lines of the outer frame will not be drawn.
-% |\horizontalcylinder| suppresses the drawing of the vertical
-% lines of the outer frame. Using |\noframe| completely supresses
-% the outer frame. |\noinnerframe| suppresses the innerframe.
+% |\horizontalcylinder|\, suppresses the drawing of the vertical
+% lines of the outer frame. Using |\noframe|\, completely supresses
+% the outer frame. |\noinnerframe|\, suppresses the innerframe.
% In case of stereo- or space-chess-diagrams |\verticalcylinder|,
-% |\horizontalcylinder| and |\noframe| suppresses the inner
+% |\horizontalcylinder|\, and |\noframe|\, suppresses the inner
% frame.
%
% \subsection{Change the coloring of the fields}
@@ -985,7 +1016,7 @@
% Specifies the preamble of our style file.
% \begin{macrocode}
%<*style>
-\ProvidesPackage{diagram}[2019/12/28]
+\ProvidesPackage{diagram}[2022/06/19]
% \end{macrocode}
%
% \begin{macro}{\DefaultDiagramSize}
@@ -1043,7 +1074,9 @@
\newif\ifspace@vertical
\def\spacehorizontal{\space@verticalfalse}
-\newif\ifdi@no
+% \newif\ifdi@no
+\newboolean{@cpd@numbering@global}
+\newboolean{@cpd@numbering@local}
\newcounter{board@nr}
\renewcommand{\theboard@nr}{\thediag}
% \newif\iffigcnt
@@ -1278,6 +1311,7 @@
% \end{macro}
% \end{macro}
%
+%
% \begin{macro}{\diagram}
% \begin{macro}{\@diagram}
% Defines the code executed in |\begin{diagram}|. In case no
@@ -1550,6 +1584,7 @@
\let\month=\ds@month%
\let\year=\ds@year%
\let\label=\ds@label%
+ \cpd@begindiagram@hook%
}
\def\endfigurine{%
@@ -1578,6 +1613,7 @@
\fi%
%
\@show@figurine%
+ \cpd@enddiagram@hook%
\endgroup%
}
%
@@ -1727,10 +1763,15 @@
%
% \begin{macrocode}
\def\spacelayout#1{\csname space@#1\endcsname}
-\def\nodiagnumbering{\global\di@nofalse}
+\def\nodiagnumbering{%
+ % \global\di@nofalse
+ \setboolean{@cpd@numbering@global}{false}
+}
\newcommand*{\@dianumber@prefix}{}
\def\diagnumbering#1{%
- \di@notrue\diagnum{\@ne}%
+ \setboolean{@cpd@numbering@global}{true}%
+ % \global\di@notrue%
+ \diagnum{\@ne}%
\gdef\thediag{\@dianumber@prefix\csname @#1\endcsname\c@board@nr}%
}
% \end{macrocode}
@@ -1761,9 +1802,16 @@
%
% \begin{macrocode}
\def\specialdiagnum#1{%
- \@specialtrue%
- \number@tk={#1}\@numbertrue\def\thediag{#1}\def\@currentlabel{#1}%
- \ignorespaces%
+ \ifthenelse{\equal{}{#1}}{%
+ % We disable displaying the diagram number
+ \setboolean{@cpd@numbering@local}{false}%
+ }{%
+ \setboolean{@cpd@numbering@local}{true}%
+ \@specialtrue%
+ \number@tk={#1}\@numbertrue%
+ \def\thediag{#1}\def\@currentlabel{#1}%
+ \ignorespaces%
+ }
}
% \end{macrocode}
%
@@ -1841,24 +1889,44 @@
\ignorespaces%
}
\def\award#1{%
- \award@tk={#1}\@awardtrue%
- \ignorespaces%
+ \ifthenelse{\equal{}{#1}}{%
+ \message{^^JWARNING: ignoring empty 'award' argument.^^J}%
+ }{%
+ \award@tk={#1}\@awardtrue%
+ \ignorespaces%
+ }%
}
\def\version#1{%
- \version@tk={#1}\@versiontrue%
- \ignorespaces%
+ \ifthenelse{\equal{}{#1}}{%
+ \message{^^JWARNING: ignoring empty 'version' argument.^^J}%
+ }{%
+ \version@tk={#1}\@versiontrue%
+ \ignorespaces%
+ }%
}
\def\after#1{%
- \after@tk={#1}\@aftertrue%
- \ignorespaces%
+ \ifthenelse{\equal{}{#1}}{%
+ \message{^^JWARNING: ignoring empty 'after' argument.^^J}%
+ }{%
+ \after@tk={#1}\@aftertrue%
+ \ignorespaces%
+ }%
}
\def\correction#1{%
- \correction@tk={#1}\@correctiontrue%
- \ignorespaces%
+ \ifthenelse{\equal{}{#1}}{%
+ \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
+ }{%
+ \correction@tk={#1}\@correctiontrue%
+ \ignorespaces%
+ }%
}
\def\dedication#1{%
- \dedic@tk={#1}\@dedicationtrue%
- \ignorespaces%
+ \ifthenelse{\equal{}{#1}}{%
+ \message{^^JWARNING: ignoring empty 'correction' argument.^^J}%
+ }{%
+ \dedic@tk={#1}\@dedicationtrue%
+ \ignorespaces%
+ }%
}
\def\fidealbum#1{%
\fidealbum@tk={#1}\@fidealbumtrue%
@@ -1968,6 +2036,9 @@
\theme@tk={#1}\@themetrue%
\ignorespaces%
}
+\def\genre#1{%
+ \relax% Currently not used within diagram.sty
+}
\long\def\comment#1{%
\comment@tk={#1}\@commenttrue%
\ignorespaces%
@@ -2173,7 +2244,10 @@
% single paragraph.
% \begin{macrocode}
\def\@dia@number{%
- \ifdi@no\above@newline{\authorfont\thediag}\fi%
+ %\ifdi@no\above@newline{\authorfont\thediag}\fi%
+ \ifthenelse{\boolean{@cpd@numbering@local}}{%
+ \above@newline{\authorfont\thediag}%
+ }{}%
}
% \end{macrocode}
% \end{macro}
@@ -2313,7 +2387,7 @@
\def\@dia@fidealbum{%
\if@fidealbum%
- \above@newlne%
+ \above@newline%
{\expandafter\@show@album\the\fidealbum@tk;}%
\fi%
}
@@ -2579,26 +2653,7 @@
\sourcefont%
\if@sourcenr\the\sourcenr@tk\ \fi%
\the\source@tk%
- \if@year%
- \ \ %
- \if@day%
- \ifnum\from@month>\z@%
- \the\day@tk.%
- \write@month\from@month%
- \ifnum\to@month>\z@%
- -\write@month\to@month%
- \fi%
- .%
- \fi%
- \else%
- \write@month\the\from@month%
- \ifnum\to@month>\z@%
- -\write@month\the\to@month%
- \fi%
- /%
- \fi%
- \the\year@tk%
- \fi%
+ \if@date\ \ \fi\@dia@date%
\if@issue , \the\issue@tk\fi%
\if@pages , \the\pages@tk\fi%
\fi}%
@@ -2681,7 +2736,7 @@
}
\def\@months#1-#2;{\from@month=#1\to@month=#2\@datetrue}
\def\@dia@writename#1; {\above@newline{\authorfont\@dianame#1; }\l@@klist}
-\def\@sol@writename#1; {\sep@names\@dianame#1; \l@@klist}
+\def\@sol@writename#1; {\sep@names\@solname#1; \l@@klist}
\def\name@sep{,\ }
\def\sep@names{\if@notfirst\name@sep\else\@notfirsttrue\fi}
\def\@checkshort#1/#2#3;{%
@@ -2720,7 +2775,7 @@
\def\@normalname#1; {#1}
\def\space@vertical{\space@verticaltrue}
\def\space@horizontal{\space@verticalfalse}
-\def\cl@arsol{\immediate\openout\s@lfd=\jobname.sol}
+\def\cl@arsol{\immediate\openout\s@lfd=\jobname.sol\relax}
\def\getc@lor#1{%
\if#1\ds@white%
\help@a\z@\global%
@@ -3032,6 +3087,11 @@
\def\@set@label#1;{\ifds@label\label{#1}\fi}
\def\init@vars{%
\global\s@lufalse
+ \ifthenelse{\boolean{@cpd@numbering@global}}{%
+ \setboolean{@cpd@numbering@local}{true}%
+ }{%
+ \setboolean{@cpd@numbering@local}{false}%
+ }%
\setboolean{cpd@checkPieceCounts}{false}%
\setcounter{cpd@defWhitePieces}{\z@}%
\setcounter{cpd@defBlackPieces}{\z@}%
@@ -3574,4 +3634,29 @@
%</style>
% \end{macrocode}
%
+% \section{The implementation of cpdparse.sty}
+%
+% The following contains the style file \emph{cpdparse.sty}, which
+% implements generic parsing of lists.
+%
+% \begin{macrocode}
+%<*cpdparse>
+\ProvidesPackage{cpdparse}[2020/12/27]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\cpd@parse@list{\futurelet\cpd@parse@lookahead\cpd@parse@check}
+\def\cpd@parse@check{%
+ \ifx\cpd@parse@lookahead\relax\relax%
+ \let\cpd@parse@next=\relax%
+ \else%
+ \let\cpd@parse@next=\cpd@parse@action%
+ \fi%
+ \cpd@parse@next%
+}
+% \end{macrocode}
+%
+%</cpdparse>
+%
+%
% \Finale
diff --git a/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.ins b/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.ins
index 0c2928c9feb..8bfba54fe7e 100644
--- a/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.ins
+++ b/Master/texmf-dist/source/latex/chess-problem-diagrams/diagram.ins
@@ -2,5 +2,6 @@
\askforoverwritefalse
\generate{%
\file{diagram.sty}{\from{diagram.dtx}{style}}%
+ \file{cpdparse.sty}{\from{diagram.dtx}{cpdparse}}%
}
\endbatchfile