summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/schwalbe-chess
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-02-17 23:11:17 +0000
committerKarl Berry <karl@freefriends.org>2015-02-17 23:11:17 +0000
commit460ad823d97bcad332e3db0b9c43d2723d250808 (patch)
tree7dc6a6dc4f15c50b83463f49be3b9b8e3f372dbc /Master/texmf-dist/source/latex/schwalbe-chess
parent29f590621e4729cf07be8eeae76b0eeb7bc945f3 (diff)
schwalbe-chess (17feb15)
git-svn-id: svn://tug.org/texlive/trunk@36309 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/schwalbe-chess')
-rw-r--r--Master/texmf-dist/source/latex/schwalbe-chess/schwalbe.dtx317
1 files changed, 217 insertions, 100 deletions
diff --git a/Master/texmf-dist/source/latex/schwalbe-chess/schwalbe.dtx b/Master/texmf-dist/source/latex/schwalbe-chess/schwalbe.dtx
index bf16f55e97a..50d260b897e 100644
--- a/Master/texmf-dist/source/latex/schwalbe-chess/schwalbe.dtx
+++ b/Master/texmf-dist/source/latex/schwalbe-chess/schwalbe.dtx
@@ -1,5 +1,5 @@
% \iffalse meta-comment
-%% File 'diagram.dtx'
+%% File 'schwalbe.dtx'
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version
@@ -13,9 +13,9 @@
%%
%%
% \fi
-% \def\fileversion{1.6.2}
-% \def\docdate{2015/01/11}
-% \CheckSum{1906}
+% \def\fileversion{v2.0}
+% \def\docdate{2015/02/17}
+% \CheckSum{1928}
% \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
@@ -30,6 +30,13 @@
% \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}
%
% \DoNotIndex{\@arabic,\def,\@idxitem,\@ifnextchar,\@ifstar,
% \@ne,\@ptsize,\ ,\advance,\AtEndOfPackage,\begin,\begingroup,
@@ -48,9 +55,12 @@
% \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
-% \hbox{\bfseries\itshape Die Schwalbe}\\{\large Version~\fileversion}}
+% \DieSchwalbe{}\\{\large Version~\fileversion}}
% \author{Stefan H\"oning\\Neuss}
% \date{\docdate}
%
@@ -58,7 +68,7 @@
%
% \begin{abstract}
% Diese Dokumentation beschreibt die \LaTeX-Class und \LaTeX-Style, die zum
-% Setzen der Zeitschrift {\bfseries\itshape Die Schwalbe} benutzt wird --- die
+% Setzen der Zeitschrift \DieSchwalbe{} benutzt wird --- die
% Mitglieder Zeitschrift der deutschen Vereinigung f"ur Problemschach.
%
% Die Schwalbe-Class hat die Aufgabe, die Seiteneinstellungen und Umgebungen
@@ -101,8 +111,8 @@
% Inhaltsverzeichnis erzeugt.
%
% \DescribeEnv{InformalEntscheid}
-% Die Preisberichte zu Informalturnieren der {\bfseries\itshape
-% Schwalbe} werden in die Umgebung \verb+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}
@@ -113,6 +123,18 @@
% 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
@@ -193,7 +215,7 @@
%
% \DescribeEnv{Entscheid}
% Die \verb+Entscheid+ Umgebung wird genutzt, um
-% Turnierentscheide zu allgemeinen Turnieren der Schwalbe, oder
+% 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
@@ -220,7 +242,7 @@
% \subsection{Diagrammgr"ossen}
% \DescribeMacro{\smalldia}
% \DescribeMacro{\normaldia}
-% In der Schwalbe werden normalerweise zwei verschiedene
+% 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
@@ -244,6 +266,7 @@
% 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}\\
@@ -257,13 +280,40 @@
% \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
-% \verb+\foto{<Breite>}{<Hoehe>}{<Bildunterschrift>}+ benutzt werden.
+% Um Freiraum f"ur ein Foto zu lassen kann der Befehl\newline
+% \verb+\foto{<Breite>}{<Hoehe>}{<Bildunterschrift>}+\newline
+% benutzt werden.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
@@ -276,7 +326,9 @@
%<*driver>
\documentclass[a4paper]{article}
\usepackage{doc}
-\usepackage{schwalbe}
+\RequirePackage{schwalbe}
+\RequirePackage[utf8]{inputenc}% fsRUS 140121
+\RequirePackage[ngerman]{babel}
\setlength{\hoffset}{-1in}
\setlength{\voffset}{-1in}
\setlength{\textwidth}{10cm}
@@ -290,21 +342,36 @@
%</driver>
% \end{macrocode}
%
-% \section{Die Implementierung der {\bfseries\itshape Schwalbe}-Class}
+% \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}[2015/01/11]
+\ProvidesClass{schwalbe}[2015/02/17]
\LoadClass[11pt]{article}
-\RequirePackage{schwalbe}
+\RequirePackage[12pt]{schwalbe}
+\RequirePackage[T2A,T1]{fontenc}% fsRUS 140121
+\RequirePackage[koi8-r,utf8]{inputenc}% fsRUS 140121
+\RequirePackage[ngerman,english,german]{babel}
\RequirePackage{ifthen}
+\RequirePackage{times}
+\RequirePackage{picinpar}
+\RequirePackage{multicol}
\RequirePackage{url}
% \end{macrocode}
%
-% Innerhalb der Schwalbe haben wir ein spezielles Seitenlayout.
+% 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}
+%
+% Innerhalb der \Schwalbe{} haben wir ein spezielles Seitenlayout.
% \begin{macrocode}
\hoffset-25mm
\voffset-25mm
@@ -326,6 +393,40 @@
\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
@@ -417,14 +518,65 @@
}{}
% \end{macrocode}
%
-% F"ur Informalturniere der Schwalbe gibt es eine besondere Umgebung, die die 3
+% 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}%
}{}
@@ -432,13 +584,9 @@
\stepcounter{@inhalt}%
\inhalt@label\relax%
% Weitere Einstellungen
- \def\@dia@numberx{%
- \if@special%
- \thediag\ %
- \else\ifdi@no%
- \if@sourcenr\the\sourcenr@tk\fi\ %
- \fi\fi%
- }%
+ \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}%
@@ -1401,6 +1549,13 @@
#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%
@@ -1413,67 +1568,33 @@
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}{1ex}{.3ex}{\normalfont\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}{.4ex}{.1ex}{\normalfont}}
%
+\InputIfFileExists{schwalbe.ext}{}{}%
+%
%</class>
% \end{macrocode}
%
-% \section{Die Implementierung des {\bfseries\itshape Schwalbe}-Style}
+% \section{Die Implementierung des \Schwalbe{}-Style}
% \begin{macrocode}
%<*style>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{schwalbe}[2015/01/11]
-% \AtBeginDocument{\normaldia}
-%
-\RequirePackage[T2A,T1]{fontenc}% fsRUS 140121
-\RequirePackage[koi8-r,utf-8]{inputenc}% fsRUS 140121
-\RequirePackage[ngerman,english,german]{babel}
-\RequirePackage{ifthen}
-\RequirePackage{diagram}
-\usepackage{times}
-\usepackage{picinpar}
-\usepackage{multicol}
-%-----------------------------------------------------------
-% Einige Trennhilfen
-\hyphenation{Patt-idee Da-men-op-fer nicht-ortho-doxe Grim-shaw}
-%
-%
-\advance\exhyphenpenalty by -10
-\tolerance2000\relax
-\emergencystretch15\p@
-%
-%-----------------------------------------------------------
-% 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.}
+\ProvidesPackage{schwalbe}[2015/02/17]
+% \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}
%
-% Schmuckzeilen
+% \begin{macrocode}
+\RequirePackage{diagram}
%
-\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}
-}%
% Wir definieren das Diagrammlayout ein wenig um
%
\newcommand{\rb}[1]{\raisebox{0.4ex}{#1}}
@@ -1481,44 +1602,40 @@
\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{%
- \font\chessfont=fselch16%
- \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}
+ \normalsize%
+ \diagramxii%
\setboardwidth%
}
\def\smalldia{%
- \font\chessfont=fselch12%
- \renewcommand*\authorfont{\small\bfseries}%
- \renewcommand*\cityfont{\small\itshape}%
- \renewcommand*\sourcefont{\small\slshape}%
- \renewcommand*\awardfont{\small}%
- \renewcommand*\dedicfont{\small\itshape}%
- \renewcommand*\stipfont{\small}%
- \renewcommand*\remfont{\small}%
- \renewcommand*\labelfont{\small\footnotesize}%
- \renewcommand*\cpd@boardfont{\small\footnotesize}%
+ \small%
+ \diagramx%
\setboardwidth%
}
-% Die Schwalbe wird in 11pt gesetzt, daher definieren wir die
-% entsprechene Option um:
-\renewcommand*{\diagramxi}{\normaldia}
+
\def\do@dia@job{%
\@write@sol\ifvmode\noindent\fi\unhbox\dia@box%
\sw@problem%
}
% \end{macrocode}
%
-% In der Schwalbe setzen wir keine akademischen Titel.
+% In der \Schwalbe{} setzen wir keine akademischen Titel.
% \begin{macrocode}
\setboolean{showacademictitle}{false}
+% \end{macrocode}
+%
+% \begin{macrocode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\inner@frame\z@%
\v@frame@dist\z@%