From 460ad823d97bcad332e3db0b9c43d2723d250808 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 17 Feb 2015 23:11:17 +0000 Subject: schwalbe-chess (17feb15) git-svn-id: svn://tug.org/texlive/trunk@36309 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/schwalbe-chess/schwalbe.dtx | 317 ++++++++++++++------- 1 file changed, 217 insertions(+), 100 deletions(-) (limited to 'Master/texmf-dist/source/latex/schwalbe-chess') 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{}{}{}+ benutzt werden. +% Um Freiraum f"ur ein Foto zu lassen kann der Befehl\newline +% \verb+\foto{}{}{}+\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 @@ % % \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}{}{}% +% % % \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@% -- cgit v1.2.3