diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/schwalbe-chess/schwalbe.dtx |
Initial commit
Diffstat (limited to 'macros/latex/contrib/schwalbe-chess/schwalbe.dtx')
-rw-r--r-- | macros/latex/contrib/schwalbe-chess/schwalbe.dtx | 1936 |
1 files changed, 1936 insertions, 0 deletions
diff --git a/macros/latex/contrib/schwalbe-chess/schwalbe.dtx b/macros/latex/contrib/schwalbe-chess/schwalbe.dtx new file mode 100644 index 0000000000..eda9fc3fc9 --- /dev/null +++ b/macros/latex/contrib/schwalbe-chess/schwalbe.dtx @@ -0,0 +1,1936 @@ +% \iffalse meta-comment +%% File 'schwalbe.dtx' +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version +%% 1.2 of this license or (at your option) any later version. +%% The latest version of this license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% +% \fi +% \def\fileversion{v2.3} +% \def\docdate{2018/12/20} +% \CheckSum{2056} +% \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 +% command.} +% \changes{v1.3}{30 April 2012}{Applied changes due to new +% commands in diagram.sty 1.6 to suppress display of cities and +% academic titles.} +% \changes{v1.4}{04 December 2012}{Split code into a class and a style file.} +% \changes{v1.5}{11 January 2013}{Added Environment WebSites for reports on chess problem websites.} +% \changes{v1.5.1}{13 March 2013}{Fixed issue with catcode=active for / in Inhalt.} +% \changes{v1.5.2}{23 July 2013}{Fixed issue with use of url-package.} +% \changes{v1.6}{10 January 2015}{Applied changes following diagram style changes for issue '03f/932'.} +% \changes{v1.6.1}{10 January 2015}{Added RequirePackage for fontenc and inputenc as requested by Thomas Brand.} +% \changes{v1.6.2}{11 January 2015}{Fixed order of languages to activate german by default.} +% \changes{v1.6.3}{26 January 2015}{Schwalbe style now forwards pt-size options to diagram.sty. Schwalbe.cls loads schwalbe.sty with 12pt.} +% \changes{v2.0}{17 February 2015}{issue 03f/61c:om: schwalbe: change usepackage to RequirePackage in class and style definition.\\ +% 03f/072:om: schwalbe: move RequirePackage to class for packages: fontenc, inputenc, babel, picinpar, multicol\\ +% 03f/407:om: schwalbe: Move hyphenation configuration to class\\ +% 03f/5f0:om: schwalbe.cls: add special dia@above handling within InformalEntscheid.\\ +% 03f/4dd:om: Behandlung von / dokumentieren\\ +% 03f/665:om: optionale schwalbe.ext Datei} +% \changes{v2.1}{22 December 2015}{issue 03f/79e:om: Added redefinition for command x in schwalbe.cls\\ +% Added paralist and afterpage to required packages.} +% \changes{v2.2}{30 July 2018}{03f/9a9:om: schwalbe.cls: add new command mal for mathmode times.\\ +% 03f/6c8:om: Add *-version of Buch-command.\\ +% Added environment retrolexikon.\\ +% Optional 'schwalbe.ext' file is included directly before picinpar.sty to +% 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} +% +% \DoNotIndex{\@arabic,\def,\@idxitem,\@ifnextchar,\@ifstar, +% \@ne,\@ptsize,\ ,\advance,\AtEndOfPackage,\begin,\begingroup, +% \bfseries,\bgroup,\boolean,\box,\char,\chardef,\closeout, +% \count,\csname,\DeclareOption,\DocInput,\documentclass, +% \egroup,\else,\end,\endcsname,\endgroup,\endinput,\errmessage, +% \exhyphenpenalty,\expandafter,\fi,\font,\fonddimen,\gdef,\global, +% \hangafter,\hangindent,\hbox,\hfill,\hrule,\hsize,\hskip,\hss,\if, +% \ifcase,\ifdim,\iffalse,\ifmmode,\ifnum,\ifodd,\ifthenelse, +% \ifvmode,\ifx,\immediate,\index,\input,\itshape,\kern,\label,\let, +% \llap,\long,\loop,\lower,\mbox,\medskip,\multiply,\newboolean,\newbox, +% \newcount,\newcounter,\newdimen,\newif,\newindex,\newline,\newtoks, +% \newwrite,\noexpand,\noindent,\openout,\OptionNotUsed,\or,\p@,\par, +% \parindent,\parskip,\penalty,\printindex,\ProcessOptions,\ProvidesFile, +% \ProvidesPackage,\raise,\RecordChanges,\ref,\refstepcounter,\relax, +% \repeat,\RequirePackage,\rmfamily,\setboolean,\setbox,\setlength, +% \the,\textwidth,\unhbox,\usepackage,\vbox,\vfil,\vrule,\vskip, +% \vss,\vtop,\wd,\write,\xdef,\z@,\",\&,\/} +% +% \newcommand*{\Schwalbe}{\textbf{\textit{Schwalbe}}} +% \newcommand*{\DieSchwalbe}{\hbox{\textbf{\textit{Die Schwalbe}}}} +% +% \title{Der \LaTeX-Style f"ur die Problemschach-Zeitschrift +% \DieSchwalbe{}\\{\large Version~\fileversion}} +% \author{Stefan H\"oning\\Neuss} +% \date{\docdate} +% +% \maketitle +% +% \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. +% +% 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 +% Problemschach-Diagramme erzeugt werden. +% \end{abstract} +% +% +% \section{Kommandos und Umgebungen zur Gliederung eines Hefts} +% +% \DescribeMacro{\Heft} +% Jedes Heft wird durch den Befehl +% \verb+\Heft+ eingeleitet. Der Befehl hat die folgenden vier +% Parameter in der angegebenen Reihenfolge: +% +% \begin{enumerate} +% \item der Band, zu dem das Heft geh"ort +% \item die Nummer des Heftes +% \item der Monat des Erscheinens +% \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 +% eingeleitet: +% +% \verb+\Heft{XXX}{250}{August}{2011}{177}+ +% +% \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 +% 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 +% Inhaltsverzeichnis erzeugt. +% +% \DescribeEnv{InformalEntscheid} +% Die Preisberichte zu Informalturnieren der +% \Schwalbe{} werden in die Umgebung \verb+InformalEntscheid+ +% eingebettet. Das einleitende \verb+\begin{InformalEntscheid}+ +% hat dabei 3 Parameter: +% \begin{enumerate} +% \item die Abteilung +% \item das Jahr, auf das sich der Entscheid bezieht +% \item der Name des Preisrichters +% \end{enumerate} +% Die Umgebung setzt automatisch die "Uberschrift und erzeugt +% einen Eintrag im Inhaltsverzeichnis. +% +% Außerdem wird der Kopf bei Diagrammen anders ausgegeben: In der 1.~Zeile +% steht die Auszeichnung (linksbündig) und die Aufgabennummer (rechtsbündig) -- +% wenn die Aufgabe aus einem Urdruckteil stammt. Sonst steht rechtsbündig die +% Heft-Nr (\verb+\issue+) und die Seitennr. (\verb+\pages+). +% +% Angaben wie Quelle, Monat und Jahr werden nicht ausgegeben. +% +% \DescribeMacro{normaldiaabove} +% Bei Vergleichsaufgaben ist dieses geänderte Anzeigeverhalten nicht gewünscht. +% Auf das normale Verhalten kann mittels \verb+\setboolean{normaldiaabove}{true}+ +% umgeschaltet werden. +% +% \DescribeEnv{Aufsatz} +% \DescribeEnv{Titel} +% Im Gegensatz zu den meisten anderen Umgebungen erzeugt die +% \verb+Aufsatz+ Umgebung nur den Eintrag im Inhaltsverzeichnis. +% Hierzu hat das einleitende \verb+\begin{Aufsatz}+ 2~Parameter: +% \begin{enumerate} +% \item den Titel des Aufsatzes +% \item den Namen des Autors mit Wohnort\newline +% dieser wird in der Form \verb+<Name>, <Vorname>/<Wohnort>+ +% angegeben. +% \end{enumerate} +% Um die "Uberschrift des Aufsatzes zu setzen, gibt es die +% Umgebung \verb+Titel+. Die wesentliche Aufgabe dieser Umgebung +% ist es, passende Abst"ande zum vorherigen sowie zum +% nachfolgenden Text zu erzeugen. +% +% \DescribeEnv{Urdrucke} +% Die Umgebung \verb+Urdrucke+ ben"otigt 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: +% \begin{enumerate} +% \item Name der Abteilung +% \item Name der Referenz der ersten Problem der Abteilung +% \item Name der Referenz der letzten Problem der Abteilung +% \item Name und Adresse des Sachbearbeiters --- inklusive notwendiger Zeilenumbrüche +% \item Emailadresse des Sachbearbeiters +% \end{enumerate} +% +% +% \DescribeMacro{\Abteilung*} +% Sollte in der Abteilung 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 +% 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 +% angegeben wird. +% +% \DescribeEnv{retrolexikon} +% \DescribeMacro{\retroart} +% Analog zum Märchenlexikon gibt es im Vorspann der Retros im Urdruckteil die +% Umgebung \verb+retrolexikon+. Einzelne Erklärungen werden mittels +% \verb+retroart+ erläutert. +% +% \DescribeEnv{Loesungen} +% Die Umgebung \verb+Loesungen+, innerhalb der die +% L"osungsbesprechungen beschrieben werden, ben"otigt 2 +% Parameter: +% \begin{enumerate} +% \item die Nummer des Hefts mit den Urdrucken +% \item Monat und Jahr dieses Hefts +% \end{enumerate} +% +% \DescribeMacro{\Abteilung} +% Innerhalb der L"osungen 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} +% \item{Nummer des ersten Problems der Abteilung} +% \item{Nummer des letzten Problems der Abteilung} +% \item{Name des Sachbearbeiters} +% \end{enumerate} +% +% \DescribeMacro{\Abteilung} +% Sollte einmal nur eine Aufgabe in der Abteilung vorhanden sein, benutzt man +% \verb+\Abteilung*+, die die dann nur 3 Parameter erwartet. +% +% \DescribeMacro{\Loeser} +% \DescribeMacro{\Loeser*} +% Innerhalb der Lösungen werden üblicherweise die Namen der kommentierenden Löser mit Kürzeln angegeben. +% Am Beginn der Lösungen erscheint ein Liste aller der Name und Kürzel aller kommentierenden Löser. +% Um die Kürzel und Namen innerhalb der Lösungen aufsammeln zu können, gibt es +% den Befehl \verb+\Loeser+, der 2 Parameter erwartet: +% \begin{enumerate} +% \item{Kürzel des Lösers} +% \item{Name des Lösers} +% \end{enumerate} +% 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. +% +% \DescribeEnv{BuB} +% Die \verb+BuB+ Umgebung setzt die {\bfseries Bemerkungen und +% Berichtigungen} +% +% \DescribeEnv{turnierberichte} +% Innerhalb der Umgebung \verb+turnierberichte+ wird "uber +% Turniere z.\,B.\ aus anderen Zeitschriften berichtet. +% +% \DescribeEnv{Buecher} +% \DescribeMacro{\Buch} +% Buchbesprechungen werden innerhalb der Umgebung \verb+Buecher+ +% wiedergegeben. Dabei wird jedes Buch durch den Befehl +% \verb+\Buch+ begonnen. Im Normalfall sind anschließend 2 Parameter anzugeben, +% die dann entsprechend in der Text übernommen wird. +% \begin{enumerate} +% \item die Autoren des Buches; mehrere Autoren sind durch +% \verb+;+ voneinander zu trennen. +% \item der Titel des Buches +% \end{enumerate} +% Wenn man eine besondere Schreibweise für Titel und/oder Autoren verwenden +% will, muss die \verb+*+-Form des Befehls verwendet werden: \verb+\Buch*+ +% Hier entfallen dann die beider Paramater. +% +% \DescribeEnv{WebSites} +% \DescribeMacro{\WebSite} +% Besprechungen von Web-Sites werden innerhalb der Umgebung \verb+WebSites+ +% gesetzt. Dabei wird jede einzelne Web-Site durch den Befehl \verb+WebSite+ +% begonnen, bei dem als Parameter die {\bfseries URL} der Web-Site anzugeben +% ist. +% +% \DescribeEnv{Briefkasten} +% Die Umgebung \verb+Briefkasten+ wird gelegentlich genutzt um +% Autoren auf Fehler in Ihren eingesandten Aufgaben hinzuweisen. +% +% \DescribeEnv{Turnierbericht} +% Turnierberichte (und -entscheide) zu allgemeinen Turnieren +% werden in der \verb+Turnierbericht+ Umgebung gesetzt. Das +% Einleitende \verb+\begin{Turnierbericht}+ besitzt als Parameter +% den Namen des Turniers und den Namen des Autors in der Form: +% \verb+<Nachname>, <Vorname>+. Diese beiden Angaben werden +% automatisch ins Inhaltsverzeichnis "ubernommen. +% Der Titel des Turnierberichts ist wie bei Aufs"atzen 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. +% 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 +% 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 +% bezieht. +% +% \DescribeEnv{Turnierausschreibung} +% +% \DescribeEnv{Nachruf} +% +% \DescribeEnv{dauerkonto} +% +% \DescribeEnv{loesungswettbewerb} +% +% \section{Kleine Helferlein} +% +% \subsection{Diagrammgr"ossen} +% \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 +% kleinere Diagramme umgeschaltet werden --- von denen dann 4 +% St"uck in eine Zeile passen. Da die kleineren Diagramme +% normalerweise zu mehreren benutzt werden, kann dieser +% Befehl nat"urlich auch als Umgebung benutzt werden. +% +% \subsection{H"aufige Abk"urzungen} +% \DescribeMacro{\dh} +% \DescribeMacro{\ua} +% \DescribeMacro{\zB} +% \DescribeMacro{\su} +% \DescribeMacro{\ep} +% \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 +% 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: +% +% \medskip +% \begin{tabular}{|l|l|l|} +% \hline +% {\bfseries Befehl}&{\bfseries f"ur}&{\bfseries Bemerkungen}\\ +% \hline +% \verb+\dh+&d.\,h.&enth"alt ein Leerzeichen am Ende\\ +% \verb+\ua+&u.\,a.&enth"alt ein Leerzeichen am Ende\\ +% \verb+\zB+&z.\,B.&\\ +% \verb+\su+&s.\,u.&\\ +% \verb+\ep+&e.\,p.&\\ +% \verb+\seedia+&s.\,Diagr.&\\ +% \hline +% \end{tabular} +% +% \subsection{Der Schrägstrich /} +% Innerhalb von Lösungen werden unterschiedliche mögliche Züge häufig durch / +% voneinander getrennt. Ohne Hilfe können diese Zeilen von \LaTeX{} nicht +% getrennt werden. Ein Zwischenraum ist an diesen Stellen aber auch nicht +% gewünscht. Daher wird der / zum Befehl gemacht, der +% \begin{enumerate} +% \item einen Umbruch hinter dem / erlaubt und +% \item einen dehnbaren Abstand vor und hinter dem / einfügt, so dass beim +% Umbrechen einer zu kurzen Zeile kleine Abstände vor und hinter den +% Schrägstrichen auf einer Zeile verteilt werden +% \end{enumerate} +% \DescribeMacro{\bsol} +% \DescribeMacro{\esol} +% Dieses Verhalten wird automatisch am Anfang des Hefts eingeschaltet. Soll +% dies einmal abgestellt werden, so kann dies mit \verb+\esol+ geschehen. Man +% sollte das aber anschließend mit \verb+\bsol+ wieder aktivieren. +% +% \subsection{Ergänzungen} +% Die \verb+schwalbe.cls+ erfährt immer wieder kleine Änderungen, meist in Form +% von Ergänzungen, die dann nach einer Weile in eine neue Version einfließen. +% Um zu vermeiden, diese Ergänzungen immer in eine Version einzubauen, die nur +% lokal vorhanden ist, wird innerhalb der \verb+schwalbe.cls+ eine Datei +% \verb+schwalbe.ext+ eingelesen, falls diese vorhanden ist. In dieser Datei, +% die nicht mit ausgeliefert wird, werden dann die Ergänzungen bis zur nächsten +% Veröffentlichung einer neuen Version der \verb+schwalbe.cls+ gesammelt. +% +% \subsection{Verschiedenes} +% \DescribeMacro{\figline} +% Mittels \verb+\figline+ kann eine Zeile mit K"onigen ausgegeben +% werden, die als Trenner zwischen 2 Abschnitten dient. +% \DescribeMacro{\foto} +% Um Freiraum f"ur ein Foto zu lassen kann der Befehl\newline +% \verb+\foto{<Breite>}{<Hoehe>}{<Bildunterschrift>}+\newline +% benutzt werden. +% +% \DescribeMacro{\x} +% Der \textit{diagram-style} definiert das Makro \verb+\x+, das in der Notation +% von Lösungen benutzt werden kann um das Symbol $\times$ für Schlagfälle zu +% erzeugen. In \textit{feenschach} wird dies auch benutzt, in der Schwalbe +% notieren wir einen Schlagfall mittels eines Doppelpunkt. Daher wird der +% Befehl für die Schwalbe umdefiniert. +% \DescribeMacro{\mal} +% Als Kurzschreibweise für das $\times$ Symbol ist der Befehl \verb+\mal+ definiert. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Die Treiberdatei f"ur 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. +% \begin{macrocode} +%<*driver> +\documentclass[a4paper]{article} +\usepackage{doc} +\RequirePackage{schwalbe} +\RequirePackage[utf8]{inputenc}% fsRUS 140121 +\RequirePackage[ngerman]{babel} +\setlength{\hoffset}{-1in} +\setlength{\voffset}{-1in} +\setlength{\textwidth}{10cm} +\setlength{\oddsidemargin}{65mm} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} +\DocInput{schwalbe.dtx} +\end{document} +%</driver> +% \end{macrocode} +% +% \section{Die Implementierung der \Schwalbe{}-Class} +% +% Die \verb+schwalbe+-Class beruht auf der \verb+article+-Class und verwendet logischerweise die Einstellungen des +% \verb+schwalbe.sty+. +% \begin{macrocode} +%<*class> +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{schwalbe}[2017/01/31] +\LoadClass[11pt,a4paper]{article} +\RequirePackage[12pt]{schwalbe} +\RequirePackage[T2A,T1]{fontenc}% fsRUS 140121 +\RequirePackage[koi8-r,utf8]{inputenc}% fsRUS 140121 +\RequirePackage[russian,german,english,ngerman]{babel} +\RequirePackage{eurosym} +\RequirePackage{ifthen} +\RequirePackage{times} +\RequirePackage{multicol} +\RequirePackage{url} +\RequirePackage{paralist} +\RequirePackage{afterpage} +\InputIfFileExists{schwalbe.ext}{}{}% +\RequirePackage{picinpar} +% \end{macrocode} +% +% Ein paar Trennhilfen und Einstellungen zum Trennverhalten. +% \begin{macrocode} +\hyphenation{Patt-idee Da-men-op-fer nicht-ortho-doxe Grim-shaw Rein-form} + + +\advance\exhyphenpenalty by -10 +\tolerance2000\relax +\emergencystretch15\p@ +% \end{macrocode} +% +% Für URLs etc. benutzen wir als Font Inconsolata +% \begin{macrocode} +\renewcommand*{\ttdefault}{zi4}% +\def\zifour@spc{\hyphenchar\font=\m@ne} +% \end{macrocode} +% +% Innerhalb der \Schwalbe{} haben wir ein spezielles Seitenlayout. +% \begin{macrocode} +\hoffset-1in +\voffset-1in +\textheight26cm +\textwidth157mm +\oddsidemargin22.5mm +\topmargin19mm +\headheight0cm +\headsep0cm +% \footheight14pt +\footskip10mm +\parindent0mm +\parskip1ex plus 1ex minus .5ex +\def\@oddhead{} +\def\@oddfoot{% + \ifodd\c@page% + \hbox to \textwidth{\hfill\thepage}% + \else% + \hbox to \textwidth{\thepage\hfill}% + \fi% +} +%----------------------------------------------------------- +% Ein paar Abk"urzungen: +% +\def\dh{d.\,h.\ \ignorespaces} +\def\ua{u.\,a.\ \ignorespaces} +\def\zB{z.\,B.\ignorespaces} +\def\su{s.\,u.\ignorespaces} +\def\ep{e.\,p.\ignorespaces} +\def\seedia{s.\,Diagr.} +% +%----------------------------------------------------------- +% +% Schmuckzeilen +% +\def\figline{% +\centerline{% +\wK \wK \wK \wK \wK \wK \wK \wK \wK \wK \wK \wK \wK % +\wK \wK \wK \wK \wK \wK \wK \wK \wK \wK \wK \wK \wK % +\wK \wK \wK \wK \wK \wK \wK \wK \wK \wK \wK \wK \wK % +}} +% +%----------------------------------------------------------- +% Freiraum f"ur Fotos +\def\foto#1#2#3{% + \begin{minipage}[t]{#1} + \hbox to #1{\hsize#1% + \vtop to #2{% + \noindent\hbox{}\vfill\hbox{}% + }% + }% + \par% + #3% + \end{minipage} +}% +% \end{macrocode} +% +% Wir wollen Fussnoten noch lesbar haben. Daher uebernehmen wir +% die \verb+\footnotesize+ definition wie bei 12pt. +% \begin{macrocode} +\renewcommand\footnotesize{% + \@setfontsize\footnotesize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +% \end{macrocode} +% +% Der Befehl \verb+\Heft+ leitet jedes Heft ein. Damit werden +% Band, Heftnummer, Monat, Jahr und erste Seitennummer des Heftes +% spezifiziert. +% \begin{macrocode} +\newcommand{\Heft}[5]{% + \def\heft@band{#1}% + \def\heft@nr{#2}% + \def\heft@monat{#3}% + \def\heft@year{#4}% + \setcounter{page}{#5}% + \hbox to \textwidth{\vbox to 60mm{\vfill}\hfill}% + \hbox to \textwidth{% + {\large\bfseries HEFT~#2}% + \hfill% + {\large\bfseries BAND #1}% + \hfill% + {\large\bfseries #3~#4}% + }% + \vskip2mm% + \hrule width \textwidth height 1\p@% + %\input{intro}% + \vskip5mm% + \newcommand{\SchwalbeCopyright}% + {\textcopyright{} Schwalbe, deutsche Vereinigung für Problemschach #4}% +} +% \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 +% Eintrag im Inhaltsverzeichnis benutzt. +% \begin{macrocode} +\newenvironment{Editorial}[2][Editorial]{% + \ttitel@skip% + \centerline{\Large\bfseries #1}% + \titel@skip% + \stepcounter{@inhalt}% + \inhalt@label\relax% + \begingroup% + \def\@tempa{#2}% + \def\@tempb{\editorial}% + \edef\@tempc{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempa}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\endgroup\@tempc% +}{} +% \end{macrocode} +% +% Eine Umgebung f"ur {\itshape AKTUELLE MELDUNGEN}, die die "Uberschrift und +% den Eintrags ins Inhaltsverzeichnis erzeugt. +% \begin{macrocode} +\newenvironment{aktuell}{% + \ttitel@skip% + \centerline{\Large\itshape AKTUELLE MELDUNGEN} + \titel@skip% + \stepcounter{@inhalt}% + \inhalt@label\relax% + % Eintrag im Inhaltsverzeichnis + \bgroup% + \def\@tempb{\aktuell}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{} +% \end{macrocode} +% +% F"ur 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 +% 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. +% +% Außerdem wird innerhalb von der Umgebung ein etwas anderes Diagramm-Layout +% eingestellt, bei dem in der 1. Zeile die Auszeichnung (\verb+\award+) und die +% Aufgabennummer (\verb+\sourcenr+) angezeigt werden. +% +% Informationen wie die Quelle werden hier unterdrückt. +% +% \begin{macrocode} +\newcommand{\@dia@award@InformalEntscheid}{% + \above@newline% + \bgroup% + \authorfont\the\award@tk\hfill% + \if@sourcenr\relax% + \the\sourcenr@tk% + \else\if@issue% + Heft~\the\issue@tk% + \if@pages% + , S.~\the\pages@tk% + \fi% + \else% + \if@special\relax% + \thediag% + \fi + \fi\fi% + \egroup% +} +\newcommand{\@dia@authors@InformalEntscheid}{% + \ifauth@r% + \ifnormal@names% + \def\@dianame{\@normalname}% + \fi% + \@firstfalse% + \let\@action=\@dia@writename% Parse the list of authors + \@parseTokenlist\aut@tk;% + \fi% +} +\newboolean{normaldiaabove} +\setboolean{normaldiaabove}{true} +\newcommand{\dia@above@InformalEntscheid}{% + \ifthenelse{\boolean{normaldiaabove}}{% + \orig@dia@above% + }{% + \setboolean{above@newline}{false}% + \@dia@award@InformalEntscheid% + \@dia@authors@InformalEntscheid% + \@dia@after% + \@dia@version% + \@dia@correction% + \@dia@dedic% + \@dia@fidealbum% + }% +} +\newenvironment{InformalEntscheid}{% + \@ifstar{\x@InformalEntscheid}{\y@InformalEntscheid}% +}{} +\newcommand{\x@InformalEntscheid}[3]{% + \stepcounter{@inhalt}% + \inhalt@label\relax% + % Weitere Einstellungen + \let\orig@dia@above=\dia@above% + \let\dia@above=\dia@above@InformalEntscheid% + \setboolean{normaldiaabove}{false}% + % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + \bgroup% + \def\@tempb{\InformalEntscheid}% + \def\@tempc{#1}% + \def\@tempd{#2}% + \def\@tempe{#3}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\@tempd}% + {\@nearverbatim\@tempe}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +} +\newcommand{\y@InformalEntscheid}[3]{% + \ttitel@skip% + \vbox{% + \centerline{\Large\bfseries Entscheid im Informalturnier #2 der Schwalbe}% + \centerline{\bfseries Abteilung: #1\hskip1cm Preisrichter: #3}% + }% + \titel@skip% + \x@InformalEntscheid{#1}{#2}{#3}% +} +% \end{macrocode} +% +% Die Umgebung f"ur Aufs"atze. Die Parameter ({\itshape Titel} und {\itshape +% Autoren (mit Wohnorten)}) werden f"ur das Inhaltsverzeichnis verwendet. +% \begin{macrocode} +\newenvironment{Aufsatz}[2]{% + \stepcounter{@inhalt}% + \let\titel@ext\inhalt@label\relax% + \begingroup% + \setcounter{footnote}{0}% + \def\@tempa{#1}% + \def\@tempc{\aufsatz}% + \def\@tempb{#2}% + \edef\@tempd{% + \write\sw@contents{% + \@nearverbatim\@tempc{% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + {\@nearverbatim\@tempa}% + {\@nearverbatim\@tempb}% + }% + }% + }% + \expandafter\endgroup\@tempd% +}{} +% \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 +% 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} +\newcommand{\sw@urd@abteilung}{% + \@ifstar% + \@sw@urd@abteilung@one% + \@sw@urd@abteilung% +} +\newcommand{\@sw@urd@abteilung@one}[4]{% + \textbf{#1 (\ref{#2}): % + Bearbeiter = #3% + \url{#4}} +} +\newcommand{\@sw@urd@abteilung}[5]{% + \textbf{#1 (\ref{#2}-\ref{#3}): % + Bearbeiter = #4% + \url{#5}} +} +\newenvironment{Urdrucke}[1]{% + \setboolean{showcity}{true}% + \nocomputer% + \diagnumbering{arabic}% + \diagnum{#1}% + \@urdrucktrue% + \def\do@dia@job{% + % Gebe das Diagramm aus + \unhbox\dia@box% + % Erzeuge die Eintr"age f"ur das Inhaltsverzeichnis + \sw@problem% + }% + \ttitel@skip% + \centerline{\Large\bfseries Urdrucke}% + \titel@skip% + \stepcounter{@inhalt}% + \inhalt@label\relax% + \let\Abteilung=\sw@urd@abteilung% + % Eintrag im Inhaltsverzeichnis + \bgroup% + \def\@tempb{\Urdrucke}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{} +% \end{macrocode} +% +% Die Umgebung f"ur L"osungen ben"otigt 2 Parameter: +% \begin{enumerate} +% \item die Nummer des Heftes mit den Urdrucken +% \item Monat und Jahr +% \end{enumerate} +% Innerhalb der Umgebung gibt es einen speziellen Befehl, um die +% Abteilungen einzuleiten. +% \begin{macrocode} +\newcommand{\sw@lsg@abteilung}{% + \@ifstar% + \@sw@lsg@abteilung@one% + \@sw@lsg@abteilung% +} +\newcommand{\@sw@lsg@abteilung@one}[3]{% + \textbf{#1 Nr. #2} (Bearbeiter = #3)% +} +\newcommand{\@sw@lsg@abteilung}[4]{% + \textbf{#1 Nr. #2-#3} (Bearbeiter = #4)% +} +\newenvironment{Loesungen}[2]{% + \begingroup% + \ttitel@skip% + \centerline{\Large\bfseries L\"osungen der Urdrucke aus Heft #1, #2}% + \titel@skip% + \stepcounter{@inhalt}% + \inhalt@label\relax% + \let\Abteilung=\sw@lsg@abteilung% + \let\Loeser=\cpd@save@Loeser% + % Eintrag im Inhaltsverzeichnis + \bgroup% + \def\@tempb{\Loesungen}% + \def\@tempc{#1}% + \def\@tempd{#2}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\@tempd}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% + \parskip.5ex plus 2ex% + \catcode`/=\active% +}{% + \catcode`/=12% + \endgroup% +} +% \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. +% +% \begin{macrocode} +\newwrite\@cpdfile@loeserkuerzel +\AtBeginDocument{\immediate\openout\@cpdfile@loeserkuerzel=\jobname.ll} +\AtEndDocument{\immediate\closeout\@cpdfile@loeserkuerzel} + +\newcommand{\x@cpd@saveloeser}[2]{% + \immediate\write\@cpdfile@loeserkuerzel{\unexpanded{#1:#2}} +} +\newcommand{\y@cpd@saveloeser}[2]{% + \x@cpd@saveloeser{#1}{#2}% + {#2}% +} +\newcommand{\cpd@save@Loeser}{% + \@ifstar{\y@cpd@saveloeser}{\x@cpd@saveloeser}% +} + +\newboolean{@cpd@first@loeser} + +\newcommand{\cpd@display@loeser}[2]{% + \ifthenelse{\boolean{@cpd@first@loeser}}{\setboolean{@cpd@first@loeser}{false}}{, }% + #2 (#1)% +} + +\newcommand{\ListeLoeserKuerzel}{% + \bgroup% + \setboolean{@cpd@first@loeser}{true}% + \let\Loeser=\cpd@display@loeser% + \InputIfFileExists{\jobname.llx}{}{}% + \egroup% +} +% \end{macrocode} +% +% +% Eine Umbegung f"ur die L"oserliste. +% \begin{macrocode} +\newenvironment{Loeserliste}[1]{% + \ttitel@skip% + \centerline{\Large\bfseries L\"oserliste #1}% + \titel@skip% + \stepcounter{@inhalt}% + \inhalt@label\relax% + % Eintrag im Inhaltsverzeichnis + \bgroup% + \def\@tempb{\Loeserliste}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{} +% \end{macrocode} +% +% Eine Zwischen"uberschrift f"ur {\itshape Sonderpunkte \& Dauerkonto}. +% \begin{macrocode} +\newcommand{\dauerkonto}[1]{% + \ttitel@skip% + \centerline{\large\bfseries L\"oserliste: Sonderpunkte \& Dauerkonto #1}% + \titel@skip% +} +% \end{macrocode} +% +% Eine Zwischen"uberschrift f"ur den Preisbericht zum L\"osungswettbewerb. +% \begin{macrocode} +\newcommand{\loesungswettbewerb}[1]{ + \ttitel@skip% + \centerline{\Large\bfseries Preisbericht zum L\"osungswettbewerb #1}% + \titel@skip% +} +% \end{macrocode} +% +% Die Umgebung f"ur {\bfseries Bemerkungen und Berichtigungen} erzeugt die +% "Uberschrift und den Eintrag ins Inhaltsverzeichnis. +% \begin{macrocode} +\newenvironment{BuB}{% + \ttitel@skip% + \centerline{\Large\bfseries Bemerkungen und Berichtigungen}% + \titel@skip% + \stepcounter{@inhalt}% + \inhalt@label\relax% + \bsol% + % Eintrag im Inhaltsverzeichnis + \bgroup% + \def\@tempb{\bub}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{\esol} +% +\newcommand{\Briefkasten}{% + \titel@skip% + {\large\bfseries Briefkasten}% + \hskip1em% +} +% \end{macrocode} +% +% Die folgenden werden benutzt im Titel zu setzen und ggfs\@. entsprechende +% \verb+\label+ zu registrieren. +% \begin{macrocode} +\let\titel@ext\relax +\newcounter{@inhalt} +\setcounter{@inhalt}{0} +\def\the@inhalt{\@arabic\c@@inhalt} +\def\inhalt@label{\label{inhalt\@nameuse{the@inhalt}}} +\def\Titel{\ttitel@skip\centering\addtolength{\baselineskip}{4pt}} +\def\endTitel{\titel@skip\titel@ext} +\def\Untertitel{\subtitel@skip\centering} +\def\endUntertitel{\subtitel@subskip} +% \end{macrocode} +% +% Eine Umgebung f"ur Berichte ohne automatisch erstellte "Uberschrift. +% Der "ubergebene Wert wird in das Inhaltsverzeichnis "ubernommen. +% \begin{macrocode} +\newenvironment{Bericht}[1]{% + % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + \stepcounter{@inhalt}% + \let\titel@ext\inhalt@label\relax% + \bgroup% + \def\@tempb{\Bericht}% + \def\@tempc{#1}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{} +% \end{macrocode} +% +% Eine Umgebung f"ur Gr"usse ohne automatisch erstellte "Uberschrift. +% Der "ubergebene Wert wird in das Inhaltsverzeichnis "ubernommen. +% \begin{macrocode} +\newenvironment{Gruss}[1]{% + % Eintrag im Inhaltsverzeichnis + \stepcounter{@inhalt}% + \let\titel@ext\inhalt@label\relax% + \bgroup% + \def\@tempb{\Bericht}% + \def\@tempc{#1}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{} +% \end{macrocode} +% +% Eine Umgebung f"ur Tagungsberichte ohne automatisch erstellte "Uberschrift. +% Der "ubergebene Wert wird in das Inhaltsverzeichnis "ubernommen. +% \begin{macrocode} +\newenvironment{Tagung}[1]{% + % Eintrag im Inhaltsverzeichnis + \stepcounter{@inhalt}% + \let\titel@ext\inhalt@label\relax% + \bgroup% + \def\@tempb{\Bericht}% + \def\@tempc{#1}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{} +% \end{macrocode} +% +% Bei Turnierberichten wird nur ein Eintrag ins Inhaltsverzeichnis erzeugt. +% Die "Uberschrift 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 + \bgroup% + \def\@tempb{\Turnierbericht}% + \def\@tempc{#1}% + \def\@tempd{#2}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\@tempd}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{} +% \end{macrocode} +% +% Die Umbegung f"ur Berichte von Turnieren aus anderen Zeitschriften. +% \begin{macrocode} +% Turnierberichte aus anderen Zeitschriften +\newenvironment{turnierberichte}{% + \ttitel@skip% + \vbox{\centering\Large\bfseries Turnierberichte}% + \titel@skip% + \stepcounter{@inhalt}% + \inhalt@label\relax% + \nodiagnumbering% + % Eintrag im Inhaltsverzeichnis + \bgroup% + \def\@tempb{\Turnierberichte}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{} +% +\newcommand{\turnier}[1]{% + \vskip\tw@\p@% + {\large\bfseries#1}% + \par% +} +% \end{macrocode} +% +% Das {\itshape kleine M"archenschach-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. +% \begin{macrocode} +\newcounter{@maerchenlexikon} +\setcounter{@maerchenlexikon}{0} +\newboolean{@first@lexikon@entry} +\newcommand{\maerchenart}[1]{% + \ifthenelse{\boolean{@first@lexikon@entry}}{% + \setboolean{@first@lexikon@entry}{false}% + }{% + --- % + }% + {\itshape #1:} \ignorespaces% +} +\newenvironment{maerchenlexikon}% +{% + \ifthenelse{\value{@maerchenlexikon}=0}{% + {\itshape Kleines M\"archenschach-Lexikon:} % + }{}% + \setboolean{@first@lexikon@entry}{true}% + \stepcounter{@maerchenlexikon}% +}{} +% \end{macrocode} +% +% Analog zum Märchenlexikon gibt es das \textit{Retrolexikon}. +% +% \begin{macrocode} +\newcounter{@retrolexikon} +\setcounter{@retrolexikon}{0} +\newboolean{@first@retrolexikon@entry} +\newcommand{\retroart}[1]{% + \ifthenelse{\boolean{@first@retrolexikon@entry}}{% + \setboolean{@first@retrolexikon@entry}{false}% + }{% + --- % + }% + \emph{#1:} \ignorespaces% +} +\newenvironment{retrolexikon}% +{% + \ifthenelse{\value{@retrolexikon}=0}{% + {\itshape Kleines Retro-Lexikon:} % + }{}% + \setboolean{@first@retrolexikon@entry}{true}% + \stepcounter{@retrolexikon}% +}{} +% \end{macrocode} +% +% 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. +% \begin{macrocode} +\newenvironment{Entscheid}[1]{% + % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + \stepcounter{@inhalt}% + \let\titel@ext\inhalt@label\relax% + \bgroup% + \def\@tempb{\Entscheid}% + \def\@tempc{#1}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +}{} +% \end{macrocode} +% +% Buchbesprechungen werden in die entsprechende Umgebung gesetzt. +% \begin{macrocode} +\newboolean{@firstbook} +\setboolean{@firstbook}{true} +\newcounter{@buecher} +\setcounter{@buecher}{0} +\newenvironment{Buecher}{% + \ttitel@skip% + \centerline{\Large\bfseries \ifthenelse{\value{@buecher}=1}{Buchbesprechung}{Buchbesprechungen}}% + \titel@skip% + \setboolean{@firstbook}{true}% + \stepcounter{@inhalt}% + \inhalt@label\relax% + % Eintrag im Inhaltsverzeichnis + \bgroup% + \ifthenelse{\value{@buecher}=1}{\def\@tempb{\Buch}}{\def\@tempb{\Buecher}}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% + \setcounter{@buecher}{0}% +}{% + \immediate\write\@auxout{\string\setcounter{@buecher}{\arabic{@buecher}}}% +} +% \end{macrocode} +% +% Mit dem Befehl \verb+\Buch+ soll jedes Buch beginnen. Als Parameter +% sind: +% 1. Autor(en) und +% 2. Titel des Buches +% anzugeben. Beide Angaben erscheinen Fettgedruckt am Beginn der +% Buchbesprechung und werden f"ur das Register "ubernommen. +% +% Schreiben der Autoren +% +% \begin{macrocode} +\def\@book@authors#1; {% + \if@notfirst% + , % + \else% + \noindent% + \@notfirsttrue% + \fi% + \@fullname#1; % + \l@@klist% +} +% +\newcommand{\Buch}{% + \@ifstar{\@Buch}{\x@Buch}% +} +\newcommand{\@Buch}{% + \ifthenelse{\boolean{@firstbook}}{% + \titel@skip% + \setboolean{@firstbook}{false}% + }{% + \par% + }% + \stepcounter{@buecher}% +} +\newcommand{\x@Buch}[2]{% + \@Buch% + \bgroup% + \bfseries% + \ifx\relax#1\else% + \@notfirstfalse + \let\@action\@book@authors% + \l@@klist#1; \e@list% + : % + \fi% + \itshape #2\ \ignorespaces% + \egroup% +} +% \end{macrocode} +% +% Besprechungen von Web-Sites. +% \begin{macrocode} +\newboolean{@firstwebsite} +\setboolean{@firstwebsite}{true} +\newcounter{@websites} +\setcounter{@websites}{0} +\newenvironment{WebSites}{% + \ttitel@skip% + \centerline{\Large\bfseries \ifthenelse{\value{@websites}=1}{Web-Site Besprechung}{Web-Site Besprechungen}}% + \titel@skip% + \setboolean{@firstwebsite}{true}% + \stepcounter{@inhalt}% + \inhalt@label\relax% + % Eintrag im Inhaltsverzeichnis + \bgroup% + \ifthenelse{\value{@websites}=1}{\def\@tempb{\WebSite}}{\def\@tempb{\WebSites}}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% + \setcounter{@websites}{0}% +}{% + \immediate\write\@auxout{\string\setcounter{@websites}{\arabic{@websites}}}% +} +\newcommand{\WebSite}[1]{% + \ifthenelse{\boolean{@firstwebsite}}{% + \titel@skip% + \setboolean{@firstwebsite}{false}% + }{% + \par% + }% + \stepcounter{@websites}% + {\bfseries#1}% +} +% \end{macrocode} +% \begin{macrocode} +%----------------------------------------------------------- +% 5) Ausschreibungen von Turnieren +% Parameter: +% 1. Titel des Turniers +% oder (mit *) +% 1. Titel des Turniers +% 2. Untertitel (z. B. Ort und Datum) +% +\def\aTurnier{% + \@ifstar{\x@Turnier}{\y@Turnier}% +} +\def\TurnierAusschreibung#1{% + \stepcounter{@inhalt}% + \inhalt@label\relax% + % Eintrag im Inhaltsverzeichnis + \bgroup% + \def\@tempb{\TurnierAusschreibung}% + \def\@tempc{#1}% + \edef\@tempa{ + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +} +% +\def\x@Turnier#1#2{% + \ttitel@skip% + \vbox{% + \centering% + {\large\bfseries\uppercase{#1}}\\[3mm] + {\bfseries#2}% + }% + \titel@skip% +} +% +\def\y@Turnier#1{% + \ttitel@skip% + \vbox{% + \centering% + \large\bfseries\uppercase{#1}% + }% + \titel@skip% +} +% +\def\bTurnier{% + \@ifstar{\by@turnier}{\bx@turnier}% +} +% +\def\sw@turnier{% +} +% +\def\bx@turnier#1#2{% + \ttitel@skip% + \vbox{% + \centering% + {\Large\bfseries#1}\\ + \bgroup% + \bfseries% + \@firsttrue% + \let\@action=\sw@author% + \l@@klist#2; \e@list% + \egroup% + }% + \titel@skip% + \diagnum{1}% +} +% +\def\by@turnier#1{% + \ttitel@skip% + \vbox{% + \centering + {\Large\bfseries#1} + }% + \titel@skip% + \diagnum{1}% +} +% +\def\eEntscheid{% + \@ifstar{\i@eEntscheid}{\ii@eEntscheid}% +} +% +\def\i@eEntscheid#1{% + \ttitel@skip% + \vbox{% + \centering + \Large\bfseries#1% + }% + \titel@skip% +} +% +\def\ii@eEntscheid#1#2{% + \ttitel@skip% + \vbox{% + \centering% + \Large\bfseries#1\\ + \large\bfseries#2% + }% + \stepcounter{@inhalt}% + \inhalt@label\relax% + \bgroup% + \def\@tempb{\Bericht}% + \def\@tempc{#1}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% + \titel@skip% +} +%----------------------------------------------------------- +% 7) Personalia: Geburtstage und Sterbef"alle +% Parameter: (Geburt) +% 1. Name +% 2. Alter +% Parameter: (Verstorben) +% 1. Name +% 2. Daten +% +\newif\if@title\@titletrue +\def\Geburtstag{% + \@ifnextchar *{\@@Geburtstag}{\@Geburtstag}% +} +\def\@@Geburtstag#1{\@titlefalse\@Geburtstag}% +\def\@Geburtstag{% + \@ifnextchar [{\y@Geburtstag}{\x@Geburtstag}% +} +\def\x@Geburtstag#1#2{% + \if@title% + \ttitel@skip% + \centerline{\Large\bfseries#1\ \ #2} + \titel@skip% + \fi% + % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + \stepcounter{@inhalt}% + \inhalt@label\relax% + \bgroup% + \def\@tempb{\Geburtstag}% + \def\@tempc{#1}% + \def\@tempd{#2}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\@tempd}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +} +\def\y@Geburtstag[#1]#2#3{% + \if@title% + \ttitel@skip% + \centerline{#1} + \titel@skip% + \fi% + % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + \stepcounter{@inhalt}% + \inhalt@label\relax% + \bgroup% + \def\@tempb{\Geburtstag}% + \def\@tempc{#2}% + \def\@tempd{#3}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\@tempd}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +} +% +\def\Verstorben{\@ifstar{\y@Verstorben}{\x@Verstorben}} +\def\x@Verstorben#1#2{% + \ttitel@skip% + \hbox to \textwidth{\large\bfseries\uppercase{#1}\hfill#2}% + \titel@skip% + % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + \stepcounter{@inhalt}% + \inhalt@label\relax% + \bgroup% + \def\@tempb{\Verstorben}% + \def\@tempc{#1}% + \def\@tempd{#2}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\@tempd}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +} +% +\def\y@Verstorben#1{% + % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + \stepcounter{@inhalt}% + \inhalt@label\relax% + \bgroup% + \def\@tempb{\Verstorben}% + \def\@tempc{#1}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +} +% +\def\Nachruf#1{% + % Erzeuge den Eintrag f\"ur das Inhaltsverzeichnis + \stepcounter{@inhalt}% + \inhalt@label\relax% + \bgroup% + \def\@tempb{\Verstorben}% + \def\@tempc{#1}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nearverbatim\pageref{inhalt\@nameuse{the@inhalt}}}% + }% + }% + }% + \expandafter\egroup\@tempa% +} +% +%----------------------------------------------------------- +% 9) Einladungen zu Tagungen u. Turnieren +\def\Einladung{% + \@ifnextchar[{\@@Einladung}{\@Einladung}% +} +\def\@Einladung#1{% + \ttitel@skip% + \vbox{% + \centering% + \Large\bfseries{#1}% + }% + \titel@skip% +} +\def\@@Einladung[#1]#2{% + \ttitel@skip% + \vbox{% + \centering% + \Large\bfseries{#2}% + }% + \titel@skip% + \bgroup% + \def\@tempb{\Einladung}% + \def\@tempc{#1}% + \edef\@tempa{% + \write\sw@contents{% + \@nearverbatim\@tempb{% + {\@nearverbatim\@tempc}% + {\@nameuse{thepage}}% + }% + }% + }% + \expandafter\egroup\@tempa% +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Es folgen ein paar Hilfskommandos und Initialsierungen +%----------------------------------------------------------- +% 1. "Offnen der datei, die alle Eintr"age f"ur das +% Inhaltsverzeichnis enth"alt. +% +\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 +% +% \def\ttitel@skip{\vskip30\p@ plus \f@ur\p@\penalty-100} +\def\ttitel@skip{\vskip24\p@ plus \f@ur\p@\goodbreak} +\def\titel@skip{\nopagebreak\vskip\tw@\p@} +\def\subtitel@skip{\vskip10\p@ plus \f@ur\p@ minus \f@ur\p@ \penalty-100} +\def\subtitel@subskip{\nopagebreak\vskip\@ne\p@} +%----------------------------------------------------------- +% 3. Setzen von Autoren eines Aufsatzes +% +\def\sw@author#1; {% + \sw@writeauthor#1;% + \l@@klist% +} +% +\def\sw@writeauthor#1, #2/#3;{% + \if@first% + von~% + \@firstfalse% + \else% + \ \&\ % + \fi% + #2~#1, #3% +} +%----------------------------------------------------------- +% 4. Schreiben der Autoren von Urdrucken in das +% Inhaltsverzeichnis +% +\newif\if@gemeinschaft +\def\sw@problem{% + % Z"ahle die Autoren + \sw@count\z@% + \let\@action=\sw@authorCount% + \expandafter\l@@klist\the\aut@tk; \e@list% + \ifnum\sw@count>\@ne% + \@gemeinschafttrue% + \else% + \@gemeinschaftfalse% + \fi% + \bgroup% + \let\@action=\sw@problemAuthor% + \expandafter\l@@klist\the\aut@tk; \e@list% + \egroup% +} +% Schreiben eines einzelnen Autors in das Inhaltsverzeichnis +% +\def\sw@problemAuthor#1; {% + \bgroup% + \def\@tempc{\problem}% + \def\@tempb{#1}% + \edef\@tempa{% + \write\sw@problems{% + \@nearverbatim\@tempc{% + {\@nameuse{thepage}}% + \if@special% + {\@nearverbatim\thediag}% + \else% + {\thediag}% + \fi% + {\@nearverbatim\@tempb}% + {\if@urdruck\else n\fi\if@gemeinschaft g\fi}% + }% + }% + }% + \expandafter\egroup\@tempa% + \l@@klist% +} +%----------------------------------------------------------- +% 5. Z"ahlen von Autoren +% +\newcount\sw@count +\def\sw@authorCount#1; {% + \advance\sw@count\@ne% + \l@@klist% +} +%----------------------------------------------------------- +% 6. F"ur das Schreiben in die inhaltsdatei ohne +% Kommandos zu expandieren. +\def\@meaning#1>{} +\def\@nearverbatim{\expandafter\@meaning\meaning} +%----------------------------------------------------------- +\def\i@line#1#2{#1 \hrulefill\ #2\newline} +%----------------------------------------------------------- +% Setzen von Autoren im Inhaltsverzeichnis +% +\def\iw@author#1; {% + \iw@writeauthor#1;% + \l@@klist% +} +% +\def\iw@writeauthor#1, #2/#3;{% + \if@first% + \@firstfalse% + \else% + , \ % + \fi% + #2~#1% +} +%----------------------------------------------------------- +\def\ix@Geburtstag#1#2#3{\i@line{#1\ \ #2}{#3}} +\def\ix@aufsatz#1#2#3{% + \i@line{{\itshape % + \@firsttrue% + \let\@action\iw@author\relax% + \aut@tk={#3}% + \@parseTokenlist\aut@tk;% + :\/} #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@turnierbericht#1#2#3{% + \i@line{Entscheid im #1}{#3}% +} +\def\ix@bericht#1#2{\i@line{#1}{#2}} +\def\ix@einladung#1#2{\i@line{#1}{#2}} +\def\ix@verstorben#1#2{\i@line{#1}{#2}} +\def\ix@entscheid#1#2{\i@line{#1}{#2}} +\def\ix@editorial#1#2{\i@line{#1}{#2}} +\def\ix@ausschreibung#1#2{\i@line{#1}{#2}} +%----------------------------------------------------------- +\def\i@Geburtstag#1{\ix@Geburtstag#1} +\def\i@aufsatz#1{\ix@aufsatz#1} +\def\i@aktuell#1{\i@line{Aktuelle Meldungen}{#1}} +\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@bub#1{\i@line{Bemerkungen und Berichtigungen}{#1}} +\def\i@turniere#1{\i@line{Turnierberichte}{#1}} +\def\i@buecher#1{\i@line{Buchbesprechungen}{#1}} +\def\i@buch#1{\i@line{Buchbesprechung}{#1}} +\def\i@websites#1{\i@line{Web-Site Besprechungen}{#1}} +\def\i@website#1{\i@line{Web-Site Besprechung}{#1}} +\def\i@turnierbericht#1{\ix@turnierbericht#1} +\def\i@bericht#1{\ix@bericht#1} +\def\i@einladung#1{\ix@einladung#1} +\def\i@verstorben#1{\ix@verstorben#1} +\def\i@entscheid#1{\ix@entscheid#1} +\def\i@editorial#1{\ix@editorial#1} +\def\i@TurnierAusschreibung#1{\ix@ausschreibung#1} +%----------------------------------------------------------- +\def\Inhalt{% + \centerline{\bfseries INHALT}% + \vspace{-.5mm} + \begingroup% + \esol% + \let\Geburtstag=\i@Geburtstag% + \let\aufsatz=\i@aufsatz% + \let\aktuell=\i@aktuell% + \let\InformalEntscheid=\i@InformalEntscheid% + \let\Urdrucke=\i@urdrucke% + \let\Loesungen=\i@Loesungen% + \let\Loeserliste=\i@Loeserliste% + \let\bub=\i@bub% + \let\Turnierberichte=\i@turniere% + \let\Turnierbericht=\i@turnierbericht% + \let\Bericht=\i@bericht% + \let\Einladung=\i@einladung% + \let\Buecher=\i@buecher% + \let\Buch=\i@buch% + \let\WebSites=\i@websites% + \let\WebSite=\i@website% + \let\Verstorben=\i@verstorben% + \let\Entscheid=\i@entscheid% + \let\editorial=\i@editorial% + \let\TurnierAusschreibung=\i@TurnierAusschreibung% + \immediate\closeout\sw@contents\relax% + \input\jobname.inhalt% + \noindent\hbox{}\endgroup% +} +%----------------------------------------------------------- +\def\i@author#1, #2; {\if@first\@firstfalse\else, \fi#2~#1\l@@klist} + +\def\aufsatz#1#2#3{% + \bgroup + \itshape + \@firsttrue + \let\@action=\i@author + \l@@klist#3; \e@list% + : % + \egroup + #2% + \hrulefill\ #1\newline +} +% \end{macrocode} +% +% Innerhalb von Lösungen werden mehrere Zugmöglichkeiten häufig durch einen / +% voneinander getrennt. \verb+\sol@slash+ definiert einen Schrägstrich, +% an dem die Zeile umgebrochen werden kann. Dieser Befehl wird dann für das +% 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{\section}{\@startsection{section}{1}{\z@}{2ex}{.5ex}{\normalfont\large\bfseries}} +\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}{1ex}{.3ex}{\normalfont\bfseries}} +\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}{.4ex}{.1ex}{\normalfont}} + +\renewcommand{\x}{:} +\newcommand{\mal}{\mbox{\ifmmode\times\else$\times$\fi}} +% +% +%</class> +% \end{macrocode} +% +% \section{Die Implementierung des \Schwalbe{}-Style} +% \begin{macrocode} +%<*style> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{schwalbe}[2017/01/31] +% \end{macrocode} +% +% Der \textit{Schwalbe-Style} ist eine Erweiterung des +% \textit{diagram-style}. Daher sollten die Optionen +% \textit{10pt}, \textit{11pt} und \textit{12pt} an den +% \textit{diagram-style} durchgereicht werden. +% \begin{macrocode} +\DeclareOption{10pt}{\PassOptionsToPackage{10pt}{diagram}} +\DeclareOption{11pt}{\PassOptionsToPackage{11pt}{diagram}} +\DeclareOption{12pt}{\PassOptionsToPackage{12pt}{diagram}} +\ProcessOptions +% \end{macrocode} +% +% \begin{macrocode} +\RequirePackage{diagram} +% +% +% Wir definieren das Diagrammlayout ein wenig um +% +\newcommand{\rb}[1]{\raisebox{0.4ex}{#1}} +\nocomputer +\setboolean{piececounter}{true} +\diagcenter +\setmonthstyle{Roman} + +\renewcommand*\authorfont{\bfseries} +\renewcommand*\cityfont{\itshape} +\renewcommand*\sourcefont{\slshape} +\renewcommand*\awardfont{} +\renewcommand*\dedicfont{\itshape} +\renewcommand*\stipfont{} +\renewcommand*\remfont{} +\renewcommand*\labelfont{\footnotesize} +\renewcommand*\cpd@boardfont{\footnotesize} + +\def\normaldia{% + \normalsize% + \diagramxii% + \setboardwidth% +} +\def\smalldia{% + \small% + \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. +% \begin{macrocode} +\setboolean{showacademictitle}{false} +% \end{macrocode} +% +% \begin{macrocode} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\inner@frame\z@% +\v@frame@dist\z@% +\h@frame@dist\z@% +\setboardwidth +\newif\if@first% +\newif\if@urdruck\@urdruckfalse +\def\urdruck{\@urdrucktrue} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Absaetze in window Umgebungen +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\windowpar}{% + \newline\hbox{\vbox to \parskip{\vss}}\newline% +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Einige deutsche Schreibweisen +\let\bel=\any +\let\ferner=\further +\newcommand\reprint{% + \hbox to \textwidth{\bfseries% + PLEASE~REPRINT\hfill BITTE~NACHDRUCKEN\hfill PRIERE~DE~REIMPRIMER% + }% +} +% Definiere ein anderes Layout f"ur den Kopf eines Diagramms +% +% +\def\@dia@number{}% Die Diagrammnummer wird bei den Autoren gesetzt! +% +\def\@dia@numberx{% + \if@special% + \thediag% + \else\ifdi@no% + \thediag% + \fi\fi% +} +% +\def\@dia@authors{% + \ifauth@r% + \ifnormal@names% + \def\@dianame{\@normalname}% + \fi% + \@firsttrue% + \let\@action=\@dia@writename% Parse the list of authors + \@parseTokenlist\aut@tk;% + \else% + \above@newline + {\authorfont\@dia@numberx}% + \fi% +} +% +\def\@dia@writename#1; {% + \above@newline + \if@first% + \@firstfalse% + \setbox\@test@box=\hbox{% + \authorfont% + \@dia@numberx\ % + \@dianame#1; % + }% + \@test@dimen=\wd\@test@box% + \ifdim\@test@dimen>\board@width\relax% + \noindent\hbox to\board@width{\authorfont\@dia@numberx\hfill}\above@newline% + \setbox\@test@box=\hbox{\authorfont\@dianame#1; }% + \@test@dimen=\wd\@test@box% + \ifdim\@test@dimen>\board@width\relax% + \noindent\hbox to\board@width{\authorfont\@dianame#1; \hss}% + \else% + {\authorfont\@dianame#1; }% + \fi% + \else% + {\authorfont\@dia@numberx\hfill\@dianame#1; }% + \fi% + \else% + % Changed to get the resulting names centered. + \hbox to\board@width{\hss\authorfont\@dianame#1; \hss}% + \fi% + \l@@klist% +} +% +\def\@figurine@number{{\authorfont\thediag\ }} +%----------------------------------------------------------- +% +% \def\newsl{\char`/\hskip\slskip\discretionary{}{}{}} +% \catcode`/=\active\let/\newsl\catcode`/=12 +% +\newlength{\helplength}% +\newlength{\boardskip}% +\newlength{\double@boardwidth}% + +\def\doublediagram#1{% + \def\dia@above{\if@special\else% + \setlength{\helplength}{\textwidth}% + \addtolength{\helplength}{-3\board@width}% + \setlength{\boardskip}{.5\helplength}% + \setlength{\double@boardwidth}{2\board@width}% + \addtolength{\double@boardwidth}{\boardskip}% + \begin{minipage}[b]{\double@boardwidth}% + #1% + \end{minipage}% + \fi}% +} + + +%</style> +% \end{macrocode} +% +% \Finale |