From 4db7e0ff0ac04738aa4e4bee8086ea218a450386 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 31 May 2022 19:44:55 +0000 Subject: schwalbe-chess (31may22) git-svn-id: svn://tug.org/texlive/trunk@63457 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/schwalbe-chess/README | 2 +- .../doc/latex/schwalbe-chess/schwalbe.pdf | Bin 221555 -> 230734 bytes .../source/latex/schwalbe-chess/schwalbe.dtx | 402 +++++++++++++++------ .../tex/latex/schwalbe-chess/schwalbe.cls | 152 ++++++-- .../tex/latex/schwalbe-chess/schwalbe.sty | 2 +- 5 files changed, 416 insertions(+), 142 deletions(-) diff --git a/Master/texmf-dist/doc/latex/schwalbe-chess/README b/Master/texmf-dist/doc/latex/schwalbe-chess/README index e4bd9605058..34562fb9430 100644 --- a/Master/texmf-dist/doc/latex/schwalbe-chess/README +++ b/Master/texmf-dist/doc/latex/schwalbe-chess/README @@ -1,5 +1,5 @@ schwalbe --- A package for typesetting chessproblems -Version v2.7 / Stefan Hoening 2012-2018 +Version v2.9 / Stefan Hoening 2012-2020 CONTENTS diff --git a/Master/texmf-dist/doc/latex/schwalbe-chess/schwalbe.pdf b/Master/texmf-dist/doc/latex/schwalbe-chess/schwalbe.pdf index 35cf6524fad..bc3f10ddbaf 100644 Binary files a/Master/texmf-dist/doc/latex/schwalbe-chess/schwalbe.pdf and b/Master/texmf-dist/doc/latex/schwalbe-chess/schwalbe.pdf differ diff --git a/Master/texmf-dist/source/latex/schwalbe-chess/schwalbe.dtx b/Master/texmf-dist/source/latex/schwalbe-chess/schwalbe.dtx index 0850bb8e046..62dbe69dccb 100644 --- a/Master/texmf-dist/source/latex/schwalbe-chess/schwalbe.dtx +++ b/Master/texmf-dist/source/latex/schwalbe-chess/schwalbe.dtx @@ -13,9 +13,9 @@ %% %% % \fi -% \def\fileversion{v2.7} -% \def\docdate{2019/12/28} -% \CheckSum{2122} +% \def\fileversion{v2.9} +% \def\docdate{2022/05/28} +% \CheckSum{2247} % \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 @@ -52,6 +52,13 @@ % 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.} +% \changes{v2.8}{27 December 2020}{Added code to generate file +% containing Loesung comands while generating diagrams within Urdrucke +% environment.\\ +% Added Loesung command to generate intro of a single problem within +% Loesungen environment.} +% \changes{v2.9}{28 May 2022}{Added code to simplify measuring size of +% articles.} % % \DoNotIndex{\@arabic,\def,\@idxitem,\@ifnextchar,\@ifstar, % \@ne,\@ptsize,\ ,\advance,\AtEndOfPackage,\begin,\begingroup, @@ -74,9 +81,9 @@ % \newcommand*{\Schwalbe}{\textbf{\textit{Schwalbe}}} % \newcommand*{\DieSchwalbe}{\hbox{\textbf{\textit{Die Schwalbe}}}} % -% \title{Der \LaTeX-Style f"ur die Problemschach-Zeitschrift +% \title{Der \LaTeX-Style für die Problemschach-Zeitschrift % \DieSchwalbe{}\\{\large Version~\fileversion}} -% \author{Stefan H\"oning\\Neuss} +% \author{Stefan Höning\\Neuss} % \date{\docdate} % % \maketitle @@ -84,11 +91,11 @@ % \begin{abstract} % Diese Dokumentation beschreibt die \LaTeX-Class und \LaTeX-Style, die zum % Setzen der Zeitschrift \DieSchwalbe{} benutzt wird --- die -% Mitgliederzeitschrift der deutschen Vereinigung f"ur Problemschach. +% Mitgliederzeitschrift der deutschen Vereinigung für Problemschach. % % Die Schwalbe-Class hat die Aufgabe, die Seiteneinstellungen und Umgebungen -% f"ur die Schwalbe zu definieren. Der Schwalbe-Style hat die Aufgaben, -% Layoutanpassungen bzgl.\ des \verb+diagram.sty+ vorzunhmen, mit dem die +% für die Schwalbe zu definieren. Der Schwalbe-Style hat die Aufgaben, +% Layoutanpassungen bzgl.\ des \verb+diagram.sty+ vorzunehmen, mit dem die % Problemschach-Diagramme erzeugt werden. % \end{abstract} % @@ -101,7 +108,7 @@ % Parameter in der angegebenen Reihenfolge: % % \begin{enumerate} -% \item der Band, zu dem das Heft geh"ort +% \item der Band, zu dem das Heft gehört % \item die Nummer des Heftes % \item der Monat des Erscheinens als Zahl % \item das Jahr des Erscheinens @@ -115,14 +122,14 @@ % \verb+\Heft{XXXIV}{299}{12}{2019}{361}+ % % \DescribeEnv{Editorial} -% Die \verb+Editorial+ Umgebung ben"otigt einen Parameter, der -% die "Uberschrift definiert. Als optionaler Parameter kann noch -% der Eintrag im Inhaltsverzeichnis festgelegt werden. L"asst man +% Die \verb+Editorial+ Umgebung benötigt einen Parameter, der +% die Überschrift definiert. Als optionaler Parameter kann noch +% der Eintrag im Inhaltsverzeichnis festgelegt werden. Lässt man % diesen weg, erscheint dort der Begriff {\bfseries Editorial}. % % \DescribeEnv{aktuell} -% Die \verb+aktuell+ Umgebung f"ur die {\bfseries Aktuellen Meldungen} kommt -% ohne parameter aus. Neben der "Uberschrift wird ein Eintrag im +% Die \verb+aktuell+ Umgebung für die {\bfseries Aktuellen Meldungen} kommt +% ohne parameter aus. Neben der Überschrift wird ein Eintrag im % Inhaltsverzeichnis erzeugt. % % \DescribeEnv{InformalEntscheid} @@ -135,7 +142,7 @@ % \item das Jahr, auf das sich der Entscheid bezieht % \item der Name des Preisrichters % \end{enumerate} -% Die Umgebung setzt automatisch die "Uberschrift und erzeugt +% Die Umgebung setzt automatisch die Überschrift und erzeugt % einen Eintrag im Inhaltsverzeichnis. % % Außerdem wird der Kopf bei Diagrammen anders ausgegeben: In der 1.~Zeile @@ -161,19 +168,19 @@ % dieser wird in der Form \verb+, /+ % angegeben. % \end{enumerate} -% Um die "Uberschrift des Aufsatzes zu setzen, gibt es die +% Um die Überschrift des Aufsatzes zu setzen, gibt es die % Umgebung \verb+Titel+. Die wesentliche Aufgabe dieser Umgebung -% ist es, passende Abst"ande zum vorherigen sowie zum +% ist es, passende Abstände zum vorherigen sowie zum % nachfolgenden Text zu erzeugen. % % \DescribeEnv{Urdrucke} -% Die Umgebung \verb+Urdrucke+ ben"otigt als Parameter die Nummer +% Die Umgebung \verb+Urdrucke+ benötigt als Parameter die Nummer % des ersten Urdrucks. % % \DescribeMacro{\Abteilung} % Innerhalb der Urdrucke gibt es den Befehl \verb+\Abteilung+, mit dem die % einzelnen Abteilungen innerhalb der Urdrucke eingeleitet werden. -% Der Befehl benötigt im Normalfall 5 Parameter: +% Der Befehl benötigt im 5 Parameter: % \begin{enumerate} % \item Name der Abteilung % \item Name der Referenz der ersten Problem der Abteilung @@ -184,17 +191,17 @@ % % % \DescribeMacro{\Abteilung*} -% Sollte in der Abteilung nur ein Urdruck erscheinen, muss man +% Sollte in einer Abteilung einma nur ein Urdruck erscheinen, muss man % \verb+\Abteilung*+ benutzen und die Referenz auf das letzte Problem % weglassen. % % \DescribeEnv{maerchenlexikon} % \DescribeMacro{\maerchenart} -% Im Vorspann der M"archenschachabteilung der Urdrucke werden die -% benutzten M"archenschachregeln erl"autert. Dies geschieht +% Im Vorspann der Märchenschachabteilung der Urdrucke werden die +% benutzten Märchenschachregeln erläutert. Dies geschieht % innerhalb der Umgebung \verb+maechenlexion+. Innerhalb dieser -% Umgebung werden alle M"archenarten mittels \verb+\maerchenart+ -% eingef"uhrt, die einen Parameter hat, mit dem die M"archenart +% Umgebung werden alle Märchenarten mittels \verb+\maerchenart+ +% eingeführt, die einen Parameter hat, mit dem die Märchenart % angegeben wird. % % \DescribeEnv{retrolexikon} @@ -214,7 +221,7 @@ % \end{enumerate} % % \DescribeMacro{\Abteilung} -% Innerhalb der L"osungen gibt es auch einen Befehl \verb+\Abteilung+ um die einzelnen Abteilungen einzuleiten. +% Innerhalb der Lösungen gibt es auch einen Befehl \verb+\Abteilung+ um die einzelnen Abteilungen einzuleiten. % Die Parameter für diesen Befehl lauten: % \begin{enumerate} % \item{Name der Abteilung} @@ -223,7 +230,7 @@ % \item{Name des Sachbearbeiters} % \end{enumerate} % -% \DescribeMacro{\Abteilung} +% \DescribeMacro{\Abteilung*} % Sollte einmal nur eine Aufgabe in der Abteilung vorhanden sein, benutzt man % \verb+\Abteilung*+, die die dann nur 3 Parameter erwartet. % @@ -240,14 +247,39 @@ % Bei der \verb+\Loeser*+ Form erscheint der Name auch an der Stelle im Text. % % \DescribeMacro{\ListeLoeserKuerzel} -% Gibt die aufgesammelten L"oserk"urzel und -namen aus. +% Gibt die aufgesammelten Löserkürzel und -namen aus. +% +% \DescribeMacro{\Loesung} +% \DescribeMacro{\Loesung*} +% Die Lösungsbesprechung zu einer Aufgabe wird mit dem Befehl +% \verb+\Loesung+ eingeleitet, der 3 Parameter benötigt: +% \begin{enumerate} +% \item{Nummer der Aufgabe} +% \item{Liste der Autoren} +% \item{Lösung der Aufgabe} +% \end{enumerate} +% Wird die Form ohne * verwendet, wird von der Aufgabe nur +% die Aufgabennummer und - in runden Klammern - die Liste der Autoren +% gesetzt. Der Punkt hinter der Klammer entfällt. Der Lösungstext +% aus dem 3. Parameter kann % dann allerding mittels \verb+\showsol+ +% ausgegeben werden. +% +% Bei der *-Form wird ein Punkt hinter die schließende Runde Klammer +% bei den Autoren gesetzt, und dann die Lösung ausgegeben. +% +% Diese \verb+\Loesung+ Kommandos für den Lösungsteil werden beim +% Kompilieren des Urdruckteils des entsprechenden Hefts automatisch in +% eine Datei geschrieben. Diese Datei wird den Sachbearbeitern für die +% Erstellung der Lösungsbesprechungen zur Verfügung gestellt. In der +% Regel müssen hier dann nur die Lösungen ergänzt werden - wenn diese +% nicht bereits bei den Urdrucken mit erfasst worden sind. % % \DescribeEnv{BuB} % Die \verb+BuB+ Umgebung setzt die {\bfseries Bemerkungen und % Berichtigungen} % % \DescribeEnv{turnierberichte} -% Innerhalb der Umgebung \verb+turnierberichte+ wird "uber +% Innerhalb der Umgebung \verb+turnierberichte+ wird über % Turniere z.\,B.\ aus anderen Zeitschriften berichtet. % % \DescribeEnv{Buecher} @@ -282,24 +314,24 @@ % Einleitende \verb+\begin{Turnierbericht}+ besitzt als Parameter % den Namen des Turniers und den Namen des Autors in der Form: % \verb+, +. Diese beiden Angaben werden -% automatisch ins Inhaltsverzeichnis "ubernommen. -% Der Titel des Turnierberichts ist wie bei Aufs"atzen in die +% automatisch ins Inhaltsverzeichnis übernommen. +% Der Titel des Turnierberichts ist wie bei Aufsätzen in die % Umgebung \verb+Titel+ einzubauen. % % \DescribeEnv{Entscheid} % Die \verb+Entscheid+ Umgebung wird genutzt, um % Turnierentscheide zu allgemeinen Turnieren der \Schwalbe{}, oder -% aber auch Nachtr"age oder entg"ultige Entscheide zu setzen. +% aber auch Nachträge oder entgültige Entscheide zu setzen. % Als Parameter wird an das einleitende \verb+\begin{Entscheid}+ % der Titel des Entscheids angegeben, der ins Inhaltsverzeichnis -% "ubernommen werden soll. Der eigentliche Titel muss --- wie bei +% übernommen werden soll. Der eigentliche Titel muss --- wie bei % verschiedenen anderen Umgebungen auch --- mittels der % \verb+Titel+ Umgebung gesetzt werden. % % % \DescribeEnv{Loeserliste} % Nach dem einleitenden \verb+\begin{Loeserliste}+ ist als -% Parameter das Jahr anzugeben, auf dass sich die L"oeserliste +% Parameter das Jahr anzugeben, auf dass sich die Löserliste % bezieht. % % \DescribeEnv{Turnierausschreibung} @@ -312,18 +344,18 @@ % % \section{Kleine Helferlein} % -% \subsection{Diagrammgr"ossen} +% \subsection{Diagrammgrössen} % \DescribeMacro{\smalldia} % \DescribeMacro{\normaldia} % In der \Schwalbe{} werden normalerweise zwei verschiedene -% Diagrammgr"ossen verwendet. Mittels \verb+\normaldia+ wird die -% Normalgr"osse eingestellt. Mittels \verb+\smalldia+ kann auf +% Diagrammgrössen verwendet. Mittels \verb+\normaldia+ wird die +% Normalgrösse eingestellt. Mittels \verb+\smalldia+ kann auf % kleinere Diagramme umgeschaltet werden --- von denen dann 4 -% St"uck in eine Zeile passen. Da die kleineren Diagramme +% Stück in eine Zeile passen. Da die kleineren Diagramme % normalerweise zu mehreren benutzt werden, kann dieser -% Befehl nat"urlich auch als Umgebung benutzt werden. +% Befehl natürlich auch als Umgebung benutzt werden. % -% \subsection{H"aufige Abk"urzungen} +% \subsection{Häufige Abkürzungen} % \DescribeMacro{\dh} % \DescribeMacro{\ua} % \DescribeMacro{\zB} @@ -332,20 +364,20 @@ % \DescribeMacro{\seedia} % \LaTeX\ intepretiert einen Punkt nach einem Kleinbuchstaben % normalerweise als Satzende. Als Folge davon ist der Abstand -% hinter diesem Punkt gr"osser als der normale Wortabstand. -% Insbesondere bei Abk"urzungen ist dies aber nicht -% gew"unscht. Besonders bei mehrgliedrigen Abk"urzungen sollte +% hinter diesem Punkt grösser als der normale Wortabstand. +% Insbesondere bei Abkürzungen ist dies aber nicht +% gewünscht. Besonders bei mehrgliedrigen Abkürzungen sollte % man sogar einen kleineren Abstand als den normalen Wortabstand -% zwischen den Gliedern der Abk"urzung w"ahlen. Daher definiert -% der Style Befehle f"ur einige H"aufig vorkommende Abk"urzungen: +% zwischen den Gliedern der Abkürzung wählen. Daher definiert +% der Style Befehle für einige Häufig vorkommende Abkürzungen: % % \medskip % \begin{tabular}{|l|l|l|} % \hline -% {\bfseries Befehl}&{\bfseries f"ur}&{\bfseries Bemerkungen}\\ +% {\bfseries Befehl}&{\bfseries für}&{\bfseries Bemerkungen}\\ % \hline -% \verb+\dh+&d.\,h.&enth"alt ein Leerzeichen am Ende\\ -% \verb+\ua+&u.\,a.&enth"alt ein Leerzeichen am Ende\\ +% \verb+\dh+&d.\,h.&enthält ein Leerzeichen am Ende\\ +% \verb+\ua+&u.\,a.&enthält ein Leerzeichen am Ende\\ % \verb+\zB+&z.\,B.&\\ % \verb+\su+&s.\,u.&\\ % \verb+\ep+&e.\,p.&\\ @@ -381,10 +413,10 @@ % % \subsection{Verschiedenes} % \DescribeMacro{\figline} -% Mittels \verb+\figline+ kann eine Zeile mit K"onigen ausgegeben +% Mittels \verb+\figline+ kann eine Zeile mit Königen ausgegeben % werden, die als Trenner zwischen 2 Abschnitten dient. % \DescribeMacro{\foto} -% Um Freiraum f"ur ein Foto zu lassen kann der Befehl\newline +% Um Freiraum für ein Foto zu lassen kann der Befehl\newline % \verb+\foto{}{}{}+\newline % benutzt werden. % @@ -397,18 +429,25 @@ % \DescribeMacro{\mal} % Als Kurzschreibweise für das $\times$ Symbol ist der Befehl \verb+\mal+ definiert. % +% \DescribeEnv{MeasureMode} +% \DescribeMacro{\MeasureNewpage} +% Um den Umfang der einzelnen Artikel einfacher Abschätzen zu können, +% füge ich vor jedem Artikel den Befehl \verb+\MeasureNewpage+ ein, +% der ein \verb+\newpage+ durchführt, wenn der Boolean +% \verb+MeasureMode+ gleich \verb+true+ ist. +% % \StopEventually{\PrintIndex\PrintChanges} % -% \section{Die Treiberdatei f"ur die Dokumentation} +% \section{Die Treiberdatei für die Dokumentation} % Der folgende Code erzeugt die Dokumentation. Da dies der erste % nicht auskommentierte Code in der Datei ist, kann die % Dokumentation einfach erzeugt werden, indem man diese Datei mit -% \LaTeXe\ "ubersetzt. +% \LaTeXe\ übersetzt. % \begin{macrocode} %<*driver> \documentclass[a4paper]{article} \usepackage{doc} -\RequirePackage{schwalbe} +% \LoadClass{schwalbe} \RequirePackage[utf8]{inputenc}% fsRUS 140121 \RequirePackage[ngerman]{babel} \setlength{\hoffset}{-1in} @@ -431,9 +470,10 @@ % \begin{macrocode} %<*class> \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{schwalbe}[2019/12/28] +\ProvidesClass{schwalbe}[2022/05/28] \LoadClass[11pt,a4paper]{article} \RequirePackage[12pt]{schwalbe}[2019/12/28] +\RequirePackage{cpdparse}[2020/12/27] \RequirePackage[T2A,T1]{fontenc}% fsRUS 140121 \RequirePackage[koi8-r,utf8]{inputenc}% fsRUS 140121 \RequirePackage[russian,german,english,ngerman]{babel} @@ -445,7 +485,6 @@ \RequirePackage{paralist} \RequirePackage{afterpage} \InputIfFileExists{schwalbe.ext}{}{}% -\RequirePackage{picinpar} % \end{macrocode} % % Ein paar Trennhilfen und Einstellungen zum Trennverhalten. @@ -487,7 +526,7 @@ \fi% } %----------------------------------------------------------- -% Ein paar Abk"urzungen: +% Ein paar Abkürzungen: % \def\dh{d.\,h.\ \ignorespaces} \def\ua{u.\,a.\ \ignorespaces} @@ -508,7 +547,7 @@ }} % %----------------------------------------------------------- -% Freiraum f"ur Fotos +% Freiraum für Fotos \def\foto#1#2#3{% \begin{minipage}[t]{#1} \hbox to #1{\hsize#1% @@ -538,12 +577,12 @@ } % \end{macrocode} % -% Im Titel sowie bei den Urdrucken und L"osungen werden die Namen der Monate benötigt. +% Im Titel sowie bei den Urdrucken und Lösungen 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% +\or Januar\or Februar\or März\or April\or Mai\or Juni\or Juli\or August\or September\or Oktober\or November\or Dezember\fi% }% % \end{macrocode} % @@ -575,12 +614,12 @@ %\input{intro}% \vskip5mm% \newcommand{\SchwalbeCopyright}% - {\textcopyright{} Schwalbe, deutsche Vereinigung für Problemschach #4}% + {\textcopyright{} #4 Schwalbe, deutsche Vereinigung für Problemschach e.\,V.}% } % \end{macrocode} % -% Eine Umgebung f"ur ein Editorial. Als optionaler Parameter kann die -% "Uberschrift im Text angegeben werden. Der andere Parameter wird f"ur den +% Eine Umgebung für ein Editorial. Als optionaler Parameter kann die +% Überschrift im Text angegeben werden. Der andere Parameter wird für den % Eintrag im Inhaltsverzeichnis benutzt. % \begin{macrocode} \newenvironment{Editorial}[2][Editorial]{% @@ -604,7 +643,7 @@ }{} % \end{macrocode} % -% Eine Umgebung f"ur {\itshape AKTUELLE MELDUNGEN}, die die "Uberschrift und +% Eine Umgebung für {\itshape AKTUELLE MELDUNGEN}, die die Überschrift und % den Eintrags ins Inhaltsverzeichnis erzeugt. % \begin{macrocode} \newenvironment{aktuell}{% @@ -627,10 +666,10 @@ }{} % \end{macrocode} % -% F"ur Informalturniere der \Schwalbe{} gibt es eine besondere Umgebung, die die 3 +% Für Informalturniere der \Schwalbe{} gibt es eine besondere Umgebung, die die 3 % Parameter {\itshape Abteilung}, {\itshape Jahr} und {\itshape Preisrichter} -% ben"otigt. Die normale Form der Umgebung erzeugt auch die "Uberschrift. -% Falls dies unterdr"uckt werden mu"s -- um z.\,B. die "Uberschrift speziell zu +% benötigt. Die normale Form der Umgebung erzeugt auch die Überschrift. +% Falls dies unterdrückt werden mu"s -- um z.\,B. die Überschrift speziell zu % formatieren, kann die {\bfseries Stern-Form} der Umgebung genutzt werden. % Daher findet die Auswertung der Parameter in den Kommandos % \verb+\x@InformalEntscheid+ und \verb+\y@InformalEntscheid+ statt. @@ -696,7 +735,7 @@ \let\orig@dia@above=\dia@above% \let\dia@above=\dia@above@InformalEntscheid% \setboolean{normaldiaabove}{false}% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \bgroup% \def\@tempb{\InformalEntscheid}% \def\@tempc{#1}% @@ -725,14 +764,15 @@ } % \end{macrocode} % -% Die Umgebung f"ur Aufs"atze. Die Parameter ({\itshape Titel} und {\itshape -% Autoren (mit Wohnorten)}) werden f"ur das Inhaltsverzeichnis verwendet. +% Die Umgebung für Aufsätze. Die Parameter ({\itshape Titel} und {\itshape +% Autoren (mit Wohnorten)}) werden für das Inhaltsverzeichnis verwendet. % \begin{macrocode} \newenvironment{Aufsatz}[2]{% + \diagnum{1}% \stepcounter{@inhalt}% \let\titel@ext\inhalt@label\relax% + \setcounter{footnote}{0}% \begingroup% - \setcounter{footnote}{0}% \def\@tempa{#1}% \def\@tempc{\aufsatz}% \def\@tempb{#2}% @@ -773,13 +813,38 @@ % % Innerhalb der Umgebung \verb+Urdrucke+ werden % die Diagramme immer zu dritt nebeneinander gesetzt - -% sofern dies pa"st. Au"serdem werden von jedem Diagramm +% sofern dies passt. Außerdem werden von jedem Diagramm % die Autoren sowie Diagramm und Seitennummern in die % Datei \jobname.inhalt geschrieben. % Zur Einleitung der einzelnen Abteilungen gibt es einen speziellen Befehl % \verb+\Abteilung+. % % \begin{macrocode} +\newwrite\@swfile@lsghead +\newcommand{\sw@openlsghead}{% + \immediate\openout\@swfile@lsghead=\jobname.lsgh\relax% +} +\newcommand{\sw@closelsghead}{% + \immediate\closeout\@swfile@lsghead% +} + +\AtBeginDocument{\sw@openlsghead} +\AtEndDocument{\sw@closelsghead} + +\newcommand{\sw@write@abteilung}[2]{% + \esol% + \bgroup% + \edef\@tempd{#1}% + \edef\@tempe{#2}% + \edef\@tempa{% + \immediate\write\@swfile@lsghead{% + \@nearverbatim\@tempd|% + \@nearverbatim\@tempe% + }% + }% + \expandafter\egroup\@tempa% + \bsol% +} \newcommand{\sw@urd@abteilung}{% \@ifstar% \@sw@urd@abteilung@one% @@ -789,11 +854,13 @@ \textbf{#1 (\ref{#2}): % Bearbeiter = #3% \url{#4}} + \sw@write@abteilung{*}{#2}% } \newcommand{\@sw@urd@abteilung}[5]{% \textbf{#1 (\ref{#2}-\ref{#3}): % Bearbeiter = #4% \url{#5}} + \sw@write@abteilung{#2}{#3}% } \newenvironment{Urdrucke}[1]{% \setboolean{showcity}{true}% @@ -804,7 +871,7 @@ \def\do@dia@job{% % Gebe das Diagramm aus \unhbox\dia@box% - % Erzeuge die Eintr"age f"ur das Inhaltsverzeichnis + % Erzeuge die Einträge für das Inhaltsverzeichnis \sw@problem% }% \ttitel@skip% @@ -854,7 +921,7 @@ \newcommand{\sw@loesungen}[2]{% \begingroup% \ttitel@skip% - \centerline{\Large\bfseries L\"osungen der Urdrucke aus Heft #1, #2}% + \centerline{\Large\bfseries Lösungen der Urdrucke aus Heft #1, #2}% \titel@skip% \stepcounter{@inhalt}% \inhalt@label\relax% @@ -903,8 +970,9 @@ } % \end{macrocode} % -% Innerhalb der einzelnen Abteilungen in den L"osungen werden die Namen und K"urzel der L"oser aufgesammelt, damit -% die Liste der L"oserk"urzel am Beginn der Lösungsbesprechungen angegeben werden kann. +% Innerhalb der einzelnen Abteilungen in den Lösungen werden die Namen +% und Kürzel der Löser aufgesammelt, damit die Liste der Löserkürzel +% am Beginn der Lösungsbesprechungen angegeben werden kann. % % \begin{macrocode} \newwrite\@cpdfile@loeserkuerzel @@ -936,14 +1004,61 @@ \InputIfFileExists{\jobname.llx}{}{}% \egroup% } +% \end{macrocode} +% +% Einzelne Lösungen innerhalb der Lösungsbesprechung sollen mit dem +% Befehl \verb+\Loesung+ eingeleitet werden. +% +% \begin{macrocode} +\newcounter{sw@loesung@author@count} +\newcounter{sw@loesung@author@index} +\def\sw@count@authors#1; {% + \stepcounter{sw@loesung@author@count}% + \cpd@parse@list% +} +\def\sw@display@author#1, #2; {% + \stepcounter{sw@loesung@author@index}% + \ifthenelse{\value{sw@loesung@author@index}=1}{% + % No separator before 1st author + }{% + \ifthenelse{\value{sw@loesung@author@index}=\value{sw@loesung@author@count}}{% + \ \& % + }{% + , % + }% + }% + #2 #1% + \cpd@parse@list% +} +\newcommand{\sw@loesung@authors}[1]{% +\setcounter{sw@loesung@author@count}{0}% +\let\cpd@parse@action=\sw@count@authors% +\cpd@parse@list#1; \relax% +\setcounter{sw@loesung@author@index}{0}% +\let\cpd@parse@action=\sw@display@author% +(\cpd@parse@list#1; \relax)% +} +\newcommand{\showsol}{} +\newcommand{\cpd@Loesung}[3]{% + \textbf{#1}\ \sw@loesung@authors{#2}% + \renewcommand{\showsol}{#3}% +} +\newcommand{\cpd@Loesung@star}[3]{% + \textbf{#1}\ \sw@loesung@authors{#2}\ #3% + \renewcommand{\showsol}{}% +} +\newcommand{\Loesung}{% + \@ifstar{\cpd@Loesung@star}{\cpd@Loesung}% +} + % \end{macrocode} % % -% Eine Umbegung f"ur die L"oserliste. +% Eine Umbegung für die Löserliste. % \begin{macrocode} \newenvironment{Loeserliste}[1]{% \ttitel@skip% - \centerline{\Large\bfseries L\"oserliste #1}% + \centerline{\Large\bfseries Löserliste #1}% \titel@skip% \stepcounter{@inhalt}% \inhalt@label\relax% @@ -961,26 +1076,26 @@ }{} % \end{macrocode} % -% Eine Zwischen"uberschrift f"ur {\itshape Sonderpunkte \& Dauerkonto}. +% Eine Zwischenüberschrift für {\itshape Sonderpunkte \& Dauerkonto}. % \begin{macrocode} \newcommand{\dauerkonto}[1]{% \ttitel@skip% - \centerline{\large\bfseries L\"oserliste: Sonderpunkte \& Dauerkonto #1}% + \centerline{\large\bfseries Löserliste: Sonderpunkte \& Dauerkonto #1}% \titel@skip% } % \end{macrocode} % -% Eine Zwischen"uberschrift f"ur den Preisbericht zum L\"osungswettbewerb. +% Eine Zwischenüberschrift für den Preisbericht zum Lösungswettbewerb. % \begin{macrocode} \newcommand{\loesungswettbewerb}[1]{ \ttitel@skip% - \centerline{\Large\bfseries Preisbericht zum L\"osungswettbewerb #1}% + \centerline{\Large\bfseries Preisbericht zum Lösungswettbewerb #1}% \titel@skip% } % \end{macrocode} % -% Die Umgebung f"ur {\bfseries Bemerkungen und Berichtigungen} erzeugt die -% "Uberschrift und den Eintrag ins Inhaltsverzeichnis. +% Die Umgebung für {\bfseries Bemerkungen und Berichtigungen} erzeugt die +% Überschrift und den Eintrag ins Inhaltsverzeichnis. % \begin{macrocode} \newenvironment{BuB}{% \ttitel@skip% @@ -1023,11 +1138,11 @@ \def\endUntertitel{\subtitel@subskip} % \end{macrocode} % -% Eine Umgebung f"ur Berichte ohne automatisch erstellte "Uberschrift. -% Der "ubergebene Wert wird in das Inhaltsverzeichnis "ubernommen. +% Eine Umgebung für Berichte ohne automatisch erstellte Überschrift. +% Der übergebene Wert wird in das Inhaltsverzeichnis übernommen. % \begin{macrocode} \newenvironment{Bericht}[1]{% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \let\titel@ext\inhalt@label\relax% \bgroup% @@ -1045,8 +1160,8 @@ }{} % \end{macrocode} % -% Eine Umgebung f"ur Gr"usse ohne automatisch erstellte "Uberschrift. -% Der "ubergebene Wert wird in das Inhaltsverzeichnis "ubernommen. +% Eine Umgebung für Grüsse ohne automatisch erstellte Überschrift. +% Der übergebene Wert wird in das Inhaltsverzeichnis übernommen. % \begin{macrocode} \newenvironment{Gruss}[1]{% % Eintrag im Inhaltsverzeichnis @@ -1067,8 +1182,8 @@ }{} % \end{macrocode} % -% Eine Umgebung f"ur Tagungsberichte ohne automatisch erstellte "Uberschrift. -% Der "ubergebene Wert wird in das Inhaltsverzeichnis "ubernommen. +% Eine Umgebung für Tagungsberichte ohne automatisch erstellte Überschrift. +% Der übergebene Wert wird in das Inhaltsverzeichnis übernommen. % \begin{macrocode} \newenvironment{Tagung}[1]{% % Eintrag im Inhaltsverzeichnis @@ -1090,12 +1205,12 @@ % \end{macrocode} % % Bei Turnierberichten wird nur ein Eintrag ins Inhaltsverzeichnis erzeugt. -% Die "Uberschrift muss in der Umgebung \verb+Titel+ gesetzt werden. +% Die Überschrift muss in der Umgebung \verb+Titel+ gesetzt werden. % \begin{macrocode} \newenvironment{Turnierbericht}[2]{% \stepcounter{@inhalt}% \let\titel@ext\inhalt@label\relax% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \bgroup% \def\@tempb{\Turnierbericht}% \def\@tempc{#1}% @@ -1113,7 +1228,7 @@ }{} % \end{macrocode} % -% Die Umbegung f"ur Berichte von Turnieren aus anderen Zeitschriften. +% Die Umbegung für Berichte von Turnieren aus anderen Zeitschriften. % \begin{macrocode} % Turnierberichte aus anderen Zeitschriften \newenvironment{turnierberichte}{% @@ -1143,10 +1258,10 @@ } % \end{macrocode} % -% Das {\itshape kleine M"archenschach-Lexikon} im Urdruckteil kann in mehrere +% Das {\itshape kleine Märchenschach-Lexikon} im Urdruckteil kann in mehrere % Abschnitte zerlegt werden, damit es besser auf die Seiten passt. Bei der % ersten \verb+maerchenlexikon+ Umgebung steht die Einleitung. Zwei -% M"archenarten werden mittels \verb+---+ voneinander getrennt. +% Märchenarten werden mittels \verb+---+ voneinander getrennt. % \begin{macrocode} \newcounter{@maerchenlexikon} \setcounter{@maerchenlexikon}{0} @@ -1162,7 +1277,7 @@ \newenvironment{maerchenlexikon}% {% \ifthenelse{\value{@maerchenlexikon}=0}{% - {\itshape Kleines M\"archenschach-Lexikon:} % + {\itshape Kleines Märchenschach-Lexikon:} % }{}% \setboolean{@first@lexikon@entry}{true}% \stepcounter{@maerchenlexikon}% @@ -1195,12 +1310,16 @@ % % Die Umbegung \verb+Entscheid+ erzeugt einen Eintrag ins Inhaltsverzeichnis. % Als Parameter ist der Name des Turnier anzugeben. -% Die "Uberschrift muss mittels der Umbebung \verb+Titel+ gesetzt werden. +% Die Überschrift muss mittels der Umbebung \verb+Titel+ gesetzt werden. % \begin{macrocode} \newenvironment{Entscheid}[1]{% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \let\titel@ext\inhalt@label\relax% + % Weitere Einstellungen + \let\orig@dia@above=\dia@above% + \let\dia@above=\dia@above@InformalEntscheid% + \setboolean{normaldiaabove}{false}% \bgroup% \def\@tempb{\Entscheid}% \def\@tempc{#1}% @@ -1251,7 +1370,7 @@ % 1. Autor(en) und % 2. Titel des Buches % anzugeben. Beide Angaben erscheinen Fettgedruckt am Beginn der -% Buchbesprechung und werden f"ur das Register "ubernommen. +% Buchbesprechung und werden für das Register übernommen. % % Schreiben der Autoren % @@ -1452,7 +1571,7 @@ \titel@skip% } %----------------------------------------------------------- -% 7) Personalia: Geburtstage und Sterbef"alle +% 7) Personalia: Geburtstage und Sterbefälle % Parameter: (Geburt) % 1. Name % 2. Alter @@ -1474,7 +1593,7 @@ \centerline{\Large\bfseries#1\ \ #2} \titel@skip% \fi% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -1498,7 +1617,7 @@ \centerline{#1} \titel@skip% \fi% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -1522,7 +1641,7 @@ \ttitel@skip% \hbox to \textwidth{\large\bfseries\uppercase{#1}\hfill#2}% \titel@skip% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -1542,7 +1661,7 @@ } % \def\y@Verstorben#1{% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -1560,7 +1679,7 @@ } % \def\Nachruf#1{% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -1613,16 +1732,16 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Es folgen ein paar Hilfskommandos und Initialsierungen %----------------------------------------------------------- -% 1. "Offnen der datei, die alle Eintr"age f"ur das -% Inhaltsverzeichnis enth"alt. +% 1. "Offnen der datei, die alle Einträge für das +% Inhaltsverzeichnis enthält. % \newwrite\sw@contents \immediate\openout\sw@contents=\jobname.inhalt\relax \newwrite\sw@problems \immediate\openout\sw@problems=\jobname.problems\relax %----------------------------------------------------------- -% 2. Abstand zu einer "Uberschrift und -% von einer "Uberschrift zum folgenden Text +% 2. Abstand zu einer Überschrift und +% von einer Überschrift zum folgenden Text % % \def\ttitel@skip{\vskip30\p@ plus \f@ur\p@\penalty-100} \def\ttitel@skip{\vskip24\p@ plus \f@ur\p@\goodbreak} @@ -1652,7 +1771,7 @@ % \newif\if@gemeinschaft \def\sw@problem{% - % Z"ahle die Autoren + % Zähle die Autoren \sw@count\z@% \let\@action=\sw@authorCount% \expandafter\l@@klist\the\aut@tk; \e@list% @@ -1695,7 +1814,7 @@ \l@@klist% } %----------------------------------------------------------- -% 5. Z"ahlen von Autoren +% 5. Zählen von Autoren % \newcount\sw@count \def\sw@authorCount#1; {% @@ -1703,7 +1822,7 @@ \l@@klist% } %----------------------------------------------------------- -% 6. F"ur das Schreiben in die inhaltsdatei ohne +% 6. Für das Schreiben in die inhaltsdatei ohne % Kommandos zu expandieren. \def\@meaning#1>{} \def\@nearverbatim{\expandafter\@meaning\meaning} @@ -1736,7 +1855,7 @@ :\/} #2}{#1}% } \def\ix@InformalEntscheid#1#2#3#4{\i@line{Entscheid im Informalturnier #2, Abteilung #1}{#4}} -\def\ix@Loesungen#1#2#3{\i@line{L\"osungen der Urdrucke aus Heft #1, #2}{#3}} +\def\ix@Loesungen#1#2#3{\i@line{Lösungen der Urdrucke aus Heft #1, #2}{#3}} \def\ix@turnierbericht#1#2#3{% \i@line{Entscheid im #1}{#3}% } @@ -1753,7 +1872,7 @@ \def\i@InformalEntscheid#1{\ix@InformalEntscheid#1} \def\i@urdrucke#1{\i@line{Urdrucke}{#1}} \def\i@Loesungen#1{\ix@Loesungen#1} -\def\i@Loeserliste#1{\i@line{L\"oserliste}{#1}} +\def\i@Loeserliste#1{\i@line{Löserliste}{#1}} \def\i@bub#1{\i@line{Bemerkungen und Berichtigungen}{#1}} \def\i@turniere#1{\i@line{Turnierberichte}{#1}} \def\i@buecher#1{\i@line{Buchbesprechungen}{#1}} @@ -1822,7 +1941,7 @@ \catcode`/=\active\relax\let/\sol@slash\relax\catcode`/=12% \def\bsol{\catcode`/=\active\relax} \def\esol{\catcode`/=12\relax} -\bsol +\AtBeginDocument{\bsol} \renewcommand{\cpd@begindiagram@hook}{\esol} \renewcommand{\cpd@enddiagram@hook}{\bsol} @@ -1833,6 +1952,57 @@ \renewcommand{\x}{:} \newcommand{\mal}{\mbox{\ifmmode\times\else$\times$\fi}} +% \end{macrocode} +% +% Das Makro \verb+\Ruler+ erzeugt ein Lineal mit einer $1/20$ +% Einteilung der Seitenhöhe. +% +% \begin{macrocode} +\newcommand{\Ruler}{% +\makebox{% +\setlength{\unitlength}{13mm} +\begin{picture}(1,20) +\put(0.4,-20){\line(0,1){20}} + +\multiput(0.4,-20)(0,2){11}{\line(1,0){0.4}} +\multiput(0.4,-19)(0,2){10}{\line(1,0){0.2}} +\put(0,-20){10} +\put(0,-18){9} +\put(0,-16){8} +\put(0,-14){7} +\put(0,-12){6} +\put(0,-10){5} +\put(0,-8){4} +\put(0,-6){3} +\put(0,-4){2} +\put(0,-2){1} +\end{picture} +}}% Ruler +% \end{macrocode} +% +% Das Makro \verb+\ShowRuler+ sorgt dafür, dass das mittels +% \verb+\Ruler+ erzeugte Lineal auf jeder Seite angezeigt wird. +% +% \begin{macrocode} +\newcommand{\ShowRuler}{% +\AddToHook{shipout/background}{\put(32mm,-46mm){\Ruler}}% +}% +% \end{macrocode} +% +% Wenn beim Übersetzen der \LaTeX-Datei in aktuellen Verzeichnis keine +% \verb+__finalpdf__.tex+ existiert, wird die Anzeige des +% Lineals mittels \verb+\ShowRuler+ aktiviert. Durch Anlegen der Datei +% kann das Einblenden des Lineals deaktiviert werden. +% +% \begin{macrocode} +\AtBeginDocument{\IfFileExists{__finalpdf__.tex}{}{\ShowRuler}} + +\newboolean{MeasureMode} +\setboolean{MeasureMode}{false} +\newcommand{\MeasureNewpage}{% + \ifthenelse{\boolean{MeasureMode}}{\newpage}{}% +} + % % % @@ -1857,7 +2027,7 @@ % \end{macrocode} % % \begin{macrocode} -\RequirePackage{diagram}[2019/12/28] +\RequirePackage{diagram}[2020/02/09] % % % Wir definieren das Diagrammlayout ein wenig um. @@ -1919,7 +2089,7 @@ PLEASE~REPRINT\hfill BITTE~NACHDRUCKEN\hfill PRIERE~DE~REIMPRIMER% }% } -% Definiere ein anderes Layout f"ur den Kopf eines Diagramms +% Definiere ein anderes Layout für den Kopf eines Diagramms % % \def\@dia@number{}% Die Diagrammnummer wird bei den Autoren gesetzt! diff --git a/Master/texmf-dist/tex/latex/schwalbe-chess/schwalbe.cls b/Master/texmf-dist/tex/latex/schwalbe-chess/schwalbe.cls index 1e62b103eb4..d98ac963e61 100644 --- a/Master/texmf-dist/tex/latex/schwalbe-chess/schwalbe.cls +++ b/Master/texmf-dist/tex/latex/schwalbe-chess/schwalbe.cls @@ -34,9 +34,10 @@ %% %% \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{schwalbe}[2019/12/28] +\ProvidesClass{schwalbe}[2022/05/28] \LoadClass[11pt,a4paper]{article} \RequirePackage[12pt]{schwalbe}[2019/12/28] +\RequirePackage{cpdparse}[2020/12/27] \RequirePackage[T2A,T1]{fontenc}% fsRUS 140121 \RequirePackage[koi8-r,utf8]{inputenc}% fsRUS 140121 \RequirePackage[russian,german,english,ngerman]{babel} @@ -48,7 +49,6 @@ \RequirePackage{paralist} \RequirePackage{afterpage} \InputIfFileExists{schwalbe.ext}{}{}% -\RequirePackage{picinpar} \hyphenation{Patt-idee Da-men-op-fer nicht-ortho-doxe Grim-shaw Rein-form} \advance\exhyphenpenalty by -10 @@ -111,7 +111,7 @@ } \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% +\or Januar\or Februar\or März\or April\or Mai\or Juni\or Juli\or August\or September\or Oktober\or November\or Dezember\fi% }% \newcounter{sw@issue}% \newcounter{sw@month}% @@ -137,7 +137,7 @@ %\input{intro}% \vskip5mm% \newcommand{\SchwalbeCopyright}% - {\textcopyright{} Schwalbe, deutsche Vereinigung für Problemschach #4}% + {\textcopyright{} #4 Schwalbe, deutsche Vereinigung für Problemschach e.\,V.}% } \newenvironment{Editorial}[2][Editorial]{% \ttitel@skip% @@ -230,7 +230,7 @@ \let\orig@dia@above=\dia@above% \let\dia@above=\dia@above@InformalEntscheid% \setboolean{normaldiaabove}{false}% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \bgroup% \def\@tempb{\InformalEntscheid}% \def\@tempc{#1}% @@ -258,10 +258,11 @@ \x@InformalEntscheid{#1}{#2}{#3}% } \newenvironment{Aufsatz}[2]{% + \diagnum{1}% \stepcounter{@inhalt}% \let\titel@ext\inhalt@label\relax% + \setcounter{footnote}{0}% \begingroup% - \setcounter{footnote}{0}% \def\@tempa{#1}% \def\@tempc{\aufsatz}% \def\@tempb{#2}% @@ -292,6 +293,31 @@ \sw@monat{\value{sw@loesungen@bis@monat}}% }% }% +\newwrite\@swfile@lsghead +\newcommand{\sw@openlsghead}{% + \immediate\openout\@swfile@lsghead=\jobname.lsgh\relax% +} +\newcommand{\sw@closelsghead}{% + \immediate\closeout\@swfile@lsghead% +} + +\AtBeginDocument{\sw@openlsghead} +\AtEndDocument{\sw@closelsghead} + +\newcommand{\sw@write@abteilung}[2]{% + \esol% + \bgroup% + \edef\@tempd{#1}% + \edef\@tempe{#2}% + \edef\@tempa{% + \immediate\write\@swfile@lsghead{% + \@nearverbatim\@tempd|% + \@nearverbatim\@tempe% + }% + }% + \expandafter\egroup\@tempa% + \bsol% +} \newcommand{\sw@urd@abteilung}{% \@ifstar% \@sw@urd@abteilung@one% @@ -301,11 +327,13 @@ \textbf{#1 (\ref{#2}): % Bearbeiter = #3% \url{#4}} + \sw@write@abteilung{*}{#2}% } \newcommand{\@sw@urd@abteilung}[5]{% \textbf{#1 (\ref{#2}-\ref{#3}): % Bearbeiter = #4% \url{#5}} + \sw@write@abteilung{#2}{#3}% } \newenvironment{Urdrucke}[1]{% \setboolean{showcity}{true}% @@ -316,7 +344,7 @@ \def\do@dia@job{% % Gebe das Diagramm aus \unhbox\dia@box% - % Erzeuge die Eintr"age f"ur das Inhaltsverzeichnis + % Erzeuge die Einträge für das Inhaltsverzeichnis \sw@problem% }% \ttitel@skip% @@ -351,7 +379,7 @@ \newcommand{\sw@loesungen}[2]{% \begingroup% \ttitel@skip% - \centerline{\Large\bfseries L\"osungen der Urdrucke aus Heft #1, #2}% + \centerline{\Large\bfseries Lösungen der Urdrucke aus Heft #1, #2}% \titel@skip% \stepcounter{@inhalt}% \inhalt@label\relax% @@ -427,9 +455,50 @@ \InputIfFileExists{\jobname.llx}{}{}% \egroup% } +\newcounter{sw@loesung@author@count} +\newcounter{sw@loesung@author@index} +\def\sw@count@authors#1; {% + \stepcounter{sw@loesung@author@count}% + \cpd@parse@list% +} +\def\sw@display@author#1, #2; {% + \stepcounter{sw@loesung@author@index}% + \ifthenelse{\value{sw@loesung@author@index}=1}{% + % No separator before 1st author + }{% + \ifthenelse{\value{sw@loesung@author@index}=\value{sw@loesung@author@count}}{% + \ \& % + }{% + , % + }% + }% + #2 #1% + \cpd@parse@list% +} +\newcommand{\sw@loesung@authors}[1]{% +\setcounter{sw@loesung@author@count}{0}% +\let\cpd@parse@action=\sw@count@authors% +\cpd@parse@list#1; \relax% +\setcounter{sw@loesung@author@index}{0}% +\let\cpd@parse@action=\sw@display@author% +(\cpd@parse@list#1; \relax)% +} +\newcommand{\showsol}{} +\newcommand{\cpd@Loesung}[3]{% + \textbf{#1}\ \sw@loesung@authors{#2}% + \renewcommand{\showsol}{#3}% +} +\newcommand{\cpd@Loesung@star}[3]{% + \textbf{#1}\ \sw@loesung@authors{#2}\ #3% + \renewcommand{\showsol}{}% +} +\newcommand{\Loesung}{% + \@ifstar{\cpd@Loesung@star}{\cpd@Loesung}% +} + \newenvironment{Loeserliste}[1]{% \ttitel@skip% - \centerline{\Large\bfseries L\"oserliste #1}% + \centerline{\Large\bfseries Löserliste #1}% \titel@skip% \stepcounter{@inhalt}% \inhalt@label\relax% @@ -447,12 +516,12 @@ }{} \newcommand{\dauerkonto}[1]{% \ttitel@skip% - \centerline{\large\bfseries L\"oserliste: Sonderpunkte \& Dauerkonto #1}% + \centerline{\large\bfseries Löserliste: Sonderpunkte \& Dauerkonto #1}% \titel@skip% } \newcommand{\loesungswettbewerb}[1]{ \ttitel@skip% - \centerline{\Large\bfseries Preisbericht zum L\"osungswettbewerb #1}% + \centerline{\Large\bfseries Preisbericht zum Lösungswettbewerb #1}% \titel@skip% } \newenvironment{BuB}{% @@ -489,7 +558,7 @@ \def\Untertitel{\subtitel@skip\centering} \def\endUntertitel{\subtitel@subskip} \newenvironment{Bericht}[1]{% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \let\titel@ext\inhalt@label\relax% \bgroup% @@ -542,7 +611,7 @@ \newenvironment{Turnierbericht}[2]{% \stepcounter{@inhalt}% \let\titel@ext\inhalt@label\relax% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \bgroup% \def\@tempb{\Turnierbericht}% \def\@tempc{#1}% @@ -596,7 +665,7 @@ \newenvironment{maerchenlexikon}% {% \ifthenelse{\value{@maerchenlexikon}=0}{% - {\itshape Kleines M\"archenschach-Lexikon:} % + {\itshape Kleines Märchenschach-Lexikon:} % }{}% \setboolean{@first@lexikon@entry}{true}% \stepcounter{@maerchenlexikon}% @@ -621,9 +690,13 @@ \stepcounter{@retrolexikon}% }{} \newenvironment{Entscheid}[1]{% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \let\titel@ext\inhalt@label\relax% + % Weitere Einstellungen + \let\orig@dia@above=\dia@above% + \let\dia@above=\dia@above@InformalEntscheid% + \setboolean{normaldiaabove}{false}% \bgroup% \def\@tempb{\Entscheid}% \def\@tempc{#1}% @@ -848,7 +921,7 @@ \centerline{\Large\bfseries#1\ \ #2} \titel@skip% \fi% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -872,7 +945,7 @@ \centerline{#1} \titel@skip% \fi% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -895,7 +968,7 @@ \ttitel@skip% \hbox to \textwidth{\large\bfseries\uppercase{#1}\hfill#2}% \titel@skip% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -914,7 +987,7 @@ \expandafter\egroup\@tempa% } \def\y@Verstorben#1{% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -931,7 +1004,7 @@ \expandafter\egroup\@tempa% } \def\Nachruf#1{% - % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + % Erzeuge den Eintrag für das Inhaltsverzeichnis \stepcounter{@inhalt}% \inhalt@label\relax% \bgroup% @@ -1002,7 +1075,7 @@ } \newif\if@gemeinschaft \def\sw@problem{% - % Z"ahle die Autoren + % Zähle die Autoren \sw@count\z@% \let\@action=\sw@authorCount% \expandafter\l@@klist\the\aut@tk; \e@list% @@ -1071,7 +1144,7 @@ :\/} #2}{#1}% } \def\ix@InformalEntscheid#1#2#3#4{\i@line{Entscheid im Informalturnier #2, Abteilung #1}{#4}} -\def\ix@Loesungen#1#2#3{\i@line{L\"osungen der Urdrucke aus Heft #1, #2}{#3}} +\def\ix@Loesungen#1#2#3{\i@line{Lösungen der Urdrucke aus Heft #1, #2}{#3}} \def\ix@turnierbericht#1#2#3{% \i@line{Entscheid im #1}{#3}% } @@ -1087,7 +1160,7 @@ \def\i@InformalEntscheid#1{\ix@InformalEntscheid#1} \def\i@urdrucke#1{\i@line{Urdrucke}{#1}} \def\i@Loesungen#1{\ix@Loesungen#1} -\def\i@Loeserliste#1{\i@line{L\"oserliste}{#1}} +\def\i@Loeserliste#1{\i@line{Löserliste}{#1}} \def\i@bub#1{\i@line{Bemerkungen und Berichtigungen}{#1}} \def\i@turniere#1{\i@line{Turnierberichte}{#1}} \def\i@buecher#1{\i@line{Buchbesprechungen}{#1}} @@ -1147,7 +1220,7 @@ \catcode`/=\active\relax\let/\sol@slash\relax\catcode`/=12% \def\bsol{\catcode`/=\active\relax} \def\esol{\catcode`/=12\relax} -\bsol +\AtBeginDocument{\bsol} \renewcommand{\cpd@begindiagram@hook}{\esol} \renewcommand{\cpd@enddiagram@hook}{\bsol} @@ -1157,6 +1230,37 @@ \renewcommand{\x}{:} \newcommand{\mal}{\mbox{\ifmmode\times\else$\times$\fi}} +\newcommand{\Ruler}{% +\makebox{% +\setlength{\unitlength}{13mm} +\begin{picture}(1,20) +\put(0.4,-20){\line(0,1){20}} + +\multiput(0.4,-20)(0,2){11}{\line(1,0){0.4}} +\multiput(0.4,-19)(0,2){10}{\line(1,0){0.2}} +\put(0,-20){10} +\put(0,-18){9} +\put(0,-16){8} +\put(0,-14){7} +\put(0,-12){6} +\put(0,-10){5} +\put(0,-8){4} +\put(0,-6){3} +\put(0,-4){2} +\put(0,-2){1} +\end{picture} +}}% Ruler +\newcommand{\ShowRuler}{% +\AddToHook{shipout/background}{\put(32mm,-46mm){\Ruler}}% +}% +\AtBeginDocument{\IfFileExists{__finalpdf__.tex}{}{\ShowRuler}} + +\newboolean{MeasureMode} +\setboolean{MeasureMode}{false} +\newcommand{\MeasureNewpage}{% + \ifthenelse{\boolean{MeasureMode}}{\newpage}{}% +} + \endinput %% %% End of file `schwalbe.cls'. diff --git a/Master/texmf-dist/tex/latex/schwalbe-chess/schwalbe.sty b/Master/texmf-dist/tex/latex/schwalbe-chess/schwalbe.sty index cd2153e3be3..ffa06263d4f 100644 --- a/Master/texmf-dist/tex/latex/schwalbe-chess/schwalbe.sty +++ b/Master/texmf-dist/tex/latex/schwalbe-chess/schwalbe.sty @@ -39,7 +39,7 @@ \DeclareOption{11pt}{\PassOptionsToPackage{11pt}{diagram}} \DeclareOption{12pt}{\PassOptionsToPackage{12pt}{diagram}} \ProcessOptions -\RequirePackage{diagram}[2019/12/28] +\RequirePackage{diagram}[2020/02/09] \newcommand{\rb}[1]{\raisebox{0.4ex}{#1}} \nocomputer \setboolean{piececounter}{true} -- cgit v1.2.3