From 7e18665e4aef9a8a3a8e42eac34504a9914b15cf Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Fri, 3 Jan 2020 03:00:55 +0000
Subject: CTAN sync 202001030300

---
 macros/latex/contrib/schwalbe-chess/schwalbe.dtx | 137 +++++++++++++++++------
 1 file changed, 103 insertions(+), 34 deletions(-)

(limited to 'macros/latex/contrib/schwalbe-chess/schwalbe.dtx')

diff --git a/macros/latex/contrib/schwalbe-chess/schwalbe.dtx b/macros/latex/contrib/schwalbe-chess/schwalbe.dtx
index eda9fc3fc9..0850bb8e04 100644
--- a/macros/latex/contrib/schwalbe-chess/schwalbe.dtx
+++ b/macros/latex/contrib/schwalbe-chess/schwalbe.dtx
@@ -13,9 +13,9 @@
 %%
 %%
 % \fi
-% \def\fileversion{v2.3}
-% \def\docdate{2018/12/20}
-% \CheckSum{2056}
+% \def\fileversion{v2.7}
+% \def\docdate{2019/12/28}
+% \CheckSum{2122}
 % \changes{v1.1}{03 June 2011}{Reflecting change in command
 % @writename inside diagram.sty}
 % \changes{v1.2}{01 July 2011}{Added parameter for Band to Heft
@@ -46,6 +46,12 @@
 % avoid problems when including further packages inside 'schwalbe.tex'.\\
 % Added Abteilung commands in Urdrucke- und Loesungen-environments.}
 % \changes{v2.3}{18 December 2018}{Added commands Loeser and LoeserListe to collect abbreviations of solvernames in different sections of Loesungen}
+% \changes{v2.4}{21 September 2019}{Changed parameter <monat> in Heft command to be numeric.\\
+% Added command LoesungenBis to calculate the month to send solutions.}
+% \changes{v2.5}{29 September 2019}{Changed Loesungen environment to calculate issue month and year of solutions from
+% values given in Heft command.}
+% \changes{v2.6}{16 October 2019}{Moved do@dia@job redefinition to schwalbe.cls.}
+% \changes{v2.7}{28 December 2019}{Used new begin/end diagram hook command to deactivate/activate solslash before/after diagrams.}
 %
 % \DoNotIndex{\@arabic,\def,\@idxitem,\@ifnextchar,\@ifstar,
 % \@ne,\@ptsize,\ ,\advance,\AtEndOfPackage,\begin,\begingroup,
@@ -97,16 +103,16 @@
 % \begin{enumerate}
 % \item der Band, zu dem das Heft geh"ort
 % \item die Nummer des Heftes
-% \item der Monat des Erscheinens
+% \item der Monat des Erscheinens als Zahl
 % \item das Jahr des Erscheinens
 % \item die Seitennummer der ersten Seite des Heftes
 % \end{enumerate}
 %
-% Das August Heft 2011, das die fortlaufende Nummer 250 hat und mit
-% der Seitenummmer 177 beginnt wird demzufolge folgendermassen
+% Das Dezember Heft 2019, das die fortlaufende Nummer 299 hat und mit
+% der Seitenummmer 361 beginnt wird demzufolge folgendermassen
 % eingeleitet:
 %
-% \verb+\Heft{XXX}{250}{August}{2011}{177}+
+% \verb+\Heft{XXXIV}{299}{12}{2019}{361}+
 %
 % \DescribeEnv{Editorial}
 % Die \verb+Editorial+ Umgebung ben"otigt einen Parameter, der
@@ -198,9 +204,10 @@
 % \verb+retroart+ erläutert.
 %
 % \DescribeEnv{Loesungen}
-% Die Umgebung \verb+Loesungen+, innerhalb der die
-% L"osungsbesprechungen beschrieben werden, ben"otigt 2
-% Parameter:
+% Von der \verb+Loesungen+ Umgebung, gibt es eine *-Form, die sonst keine weiteren Parameter erwartet.
+% Heftnummer, Monat und Jahr der Lösung werden in diesem Fall automatisch aus
+% den Angaben des aktuellen Hefts ermittelt (3 Hefte bzw. 6 Monate zurück).
+% Ohne * benötigt die Umgebung \verb+Loesungen+ 2  Parameter:
 % \begin{enumerate}
 % \item die Nummer des Hefts mit den Urdrucken
 % \item Monat und Jahr dieses Hefts
@@ -424,9 +431,9 @@
 %    \begin{macrocode}
 %<*class>
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{schwalbe}[2017/01/31]
+\ProvidesClass{schwalbe}[2019/12/28]
 \LoadClass[11pt,a4paper]{article}
-\RequirePackage[12pt]{schwalbe}
+\RequirePackage[12pt]{schwalbe}[2019/12/28]
 \RequirePackage[T2A,T1]{fontenc}% fsRUS 140121
 \RequirePackage[koi8-r,utf8]{inputenc}% fsRUS 140121
 \RequirePackage[russian,german,english,ngerman]{babel}
@@ -531,23 +538,37 @@
 }
 %    \end{macrocode}
 %
+% Im Titel sowie bei den Urdrucken und L"osungen werden die Namen der Monate benötigt.
+%
+%    \begin{macrocode}
+\newcommand{\sw@monat}[1]{%
+\ifcase#1\relax%
+\or Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or Juli\or August\or September\or Oktober\or November\or Dezember\fi%
+}%
+%    \end{macrocode}
+%
 % Der Befehl \verb+\Heft+ leitet jedes Heft ein. Damit werden
 % Band, Heftnummer, Monat, Jahr und erste Seitennummer des Heftes 
 % spezifiziert.
 %    \begin{macrocode}
+\newcounter{sw@issue}%
+\newcounter{sw@month}%
+\newcounter{sw@year}%
 \newcommand{\Heft}[5]{%
    \def\heft@band{#1}%
-   \def\heft@nr{#2}%    
-   \def\heft@monat{#3}%
-   \def\heft@year{#4}%
+   \setcounter{sw@issue}{#2}%
+   \setcounter{sw@month}{#3}%
+   \setcounter{sw@year}{#4}%
    \setcounter{page}{#5}%
    \hbox to \textwidth{\vbox to 60mm{\vfill}\hfill}%
    \hbox to \textwidth{%
-      {\large\bfseries HEFT~#2}%
+      {\large\bfseries%
+      HEFT~#2%
       \hfill%
-      {\large\bfseries BAND #1}%
+      BAND #1%
       \hfill%
-      {\large\bfseries #3~#4}%
+      \sw@monat{\value{sw@month}}~#4%
+      }%
    }%
    \vskip2mm%
    \hrule width \textwidth height 1\p@%
@@ -728,6 +749,28 @@
 }{}
 %    \end{macrocode}
 %
+% Das Kommando \verb+\LoesungenBis+ gibt den Monat (und ggfs. das Jahr) aus, bis zu dem Lösungen einzusenden sind.
+%
+%    \begin{macrocode}
+\newcounter{sw@loesungen@bis@monat}
+\newcounter{sw@loesungen@bis@jahr}
+%
+\newcommand{\LoesungenBis}{%
+   \setcounter{sw@loesungen@bis@monat}{\value{sw@month}}%
+   \setcounter{sw@loesungen@bis@jahr}{\value{sw@year}}%
+   \addtocounter{sw@loesungen@bis@monat}{3}%
+   \ifthenelse{\value{sw@loesungen@bis@monat} > 12}%
+      {%
+         \addtocounter{sw@loesungen@bis@monat}{-12}%
+         \addtocounter{sw@loesungen@bis@jahr}{1}%
+         \sw@monat{\value{sw@loesungen@bis@monat}}\ \arabic{sw@loesungen@bis@jahr}%
+      }%
+      {%
+         \sw@monat{\value{sw@loesungen@bis@monat}}%
+      }%
+}%
+%    \end{macrocode}
+%
 % Innerhalb der Umgebung \verb+Urdrucke+ werden
 % die Diagramme immer zu dritt nebeneinander gesetzt -
 % sofern dies pa"st. Au"serdem werden von jedem Diagramm
@@ -784,7 +827,12 @@
 }{}
 %    \end{macrocode}
 %
-% Die Umgebung f"ur L"osungen ben"otigt 2 Parameter:
+% Von der Umbgebung für Lösungen gibt es 2 Varianten:
+% \begin{itemize}
+% \item gefolgt von einem Stern werden Heft, Monat und Jahr automatisch gesetzt.
+% \item ohne Stern werden 2 Parameter benötigt:
+% \end{itemize}
+%
 % \begin{enumerate}
 % \item die Nummer des Heftes mit den Urdrucken
 % \item Monat und Jahr
@@ -803,8 +851,8 @@
 \newcommand{\@sw@lsg@abteilung}[4]{%
     \textbf{#1 Nr. #2-#3} (Bearbeiter = #4)%
 }
-\newenvironment{Loesungen}[2]{%
-    \begingroup%
+\newcommand{\sw@loesungen}[2]{%
+   \begingroup%
    \ttitel@skip%
    \centerline{\Large\bfseries L\"osungen der Urdrucke aus Heft #1, #2}%
    \titel@skip%
@@ -820,8 +868,8 @@
         \edef\@tempa{
             \write\sw@contents{%
             \@nearverbatim\@tempb{%
-                    {\@nearverbatim\@tempc}%
-                    {\@nearverbatim\@tempd}%
+                    {\@tempc}%
+                    {\@tempd}%
                 {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}%
                 }%
             }%
@@ -829,6 +877,26 @@
     \expandafter\egroup\@tempa%
    \parskip.5ex plus 2ex%
    \catcode`/=\active%
+}
+\newcounter{sw@loesungen@aus@heft}
+\newcounter{sw@loesungen@aus@monat}
+\newcounter{sw@loesungen@aus@jahr}
+\newcommand{\sw@loesungen@star}{%
+   \setcounter{sw@loesungen@aus@heft}{\value{sw@issue}}%
+   \addtocounter{sw@loesungen@aus@heft}{-3}%
+   \setcounter{sw@loesungen@aus@jahr}{\value{sw@year}}%
+   \setcounter{sw@loesungen@aus@monat}{\value{sw@month}}%
+   \addtocounter{sw@loesungen@aus@monat}{-6}%
+   \ifthenelse{\value{sw@loesungen@aus@monat} < 1}%
+   {%
+      \addtocounter{sw@loesungen@aus@monat}{12}%
+      \addtocounter{sw@loesungen@aus@jahr}{-1}%
+   }{}%
+   \sw@loesungen{\arabic{sw@loesungen@aus@heft}}{\sw@monat{\value{sw@loesungen@aus@monat}} \arabic{sw@loesungen@aus@jahr}}%
+}
+
+\newenvironment{Loesungen}{%
+   \@ifstar{\sw@loesungen@star}{\sw@loesungen}%
 }{%
    \catcode`/=12%
     \endgroup%
@@ -941,7 +1009,7 @@
 }
 %    \end{macrocode}
 %
-% Die folgenden werden benutzt im Titel zu setzen und ggfs\@. entsprechende
+% Die folgenden werden benutzt um Titel zu setzen und ggfs\@. entsprechende
 % \verb+\label+ zu registrieren.
 %    \begin{macrocode}
 \let\titel@ext\relax
@@ -1598,6 +1666,11 @@
         \expandafter\l@@klist\the\aut@tk; \e@list%
     \egroup%
 }
+% Wenn das Diagramm ausgegeben wird, sollen auch die Informationen ausgegeben werden.
+\def\do@dia@job{%
+   \@write@sol\ifvmode\noindent\fi\unhbox\dia@box%
+   \sw@problem%
+}
 % Schreiben eines einzelnen Autors in das Inhaltsverzeichnis
 %
 \def\sw@problemAuthor#1; {%
@@ -1746,12 +1819,13 @@
 % Zeichen / aktiviert.
 %    \begin{macrocode}
 \def\sol@slash{\nobreak\hskip\z@ plus 2\p@\char`/\hskip\z@ plus 2\p@\discretionary{}{}{}}
-%
 \catcode`/=\active\relax\let/\sol@slash\relax\catcode`/=12%
-%
 \def\bsol{\catcode`/=\active\relax}
 \def\esol{\catcode`/=12\relax}
 \bsol
+\renewcommand{\cpd@begindiagram@hook}{\esol}
+\renewcommand{\cpd@enddiagram@hook}{\bsol}
+
 
 \renewcommand{\section}{\@startsection{section}{1}{\z@}{2ex}{.5ex}{\normalfont\large\bfseries}}
 \renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}{1ex}{.3ex}{\normalfont\bfseries}}
@@ -1768,7 +1842,7 @@
 %    \begin{macrocode}
 %<*style>
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{schwalbe}[2017/01/31]
+\ProvidesPackage{schwalbe}[2019/12/28]
 %    \end{macrocode}
 %
 % Der \textit{Schwalbe-Style} ist eine Erweiterung des
@@ -1783,10 +1857,10 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\RequirePackage{diagram}
+\RequirePackage{diagram}[2019/12/28]
 %
 %
-% Wir definieren das Diagrammlayout ein wenig um
+% Wir definieren das Diagrammlayout ein wenig um.
 %
 \newcommand{\rb}[1]{\raisebox{0.4ex}{#1}}
 \nocomputer
@@ -1814,11 +1888,6 @@
    \diagramx%
    \setboardwidth%
 }
-
-\def\do@dia@job{%
-   \@write@sol\ifvmode\noindent\fi\unhbox\dia@box%
-   \sw@problem%
-}
 %    \end{macrocode}
 %
 % In der \Schwalbe{} setzen wir keine akademischen Titel.
-- 
cgit v1.2.3

