diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkbib.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkbib.dtx | 486 |
1 files changed, 357 insertions, 129 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx b/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx index 892bfb75b78..b62604c1261 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkbib.dtx @@ -1,8 +1,8 @@ -% \CheckSum{144} +% \CheckSum{306} % \iffalse meta-comment % ====================================================================== % scrkbib.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkbib.dtx -% Copyright (c) Markus Kohm, 2002-2007 +% Copyright (c) Markus Kohm, 2002-2008 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. @@ -58,7 +58,7 @@ %%% From File: scrkbib.dtx %<*driver> % \fi -\ProvidesFile{scrkbib.dtx}[2006/03/28 v2.95 KOMA-Script (bibliography)] +\ProvidesFile{scrkbib.dtx}[2008/10/16 v3.00 KOMA-Script (bibliography)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -101,94 +101,256 @@ % \iffalse %<*option> % \fi -% -% \subsection{Optionen für das Literaturverzeichnis} -% -% \begin{option}{openbib} -% \changes{v2.3g}{1996/01/14}{\cs{if@openbib} (\cs{@openbibtrue}, -% \cs{@openbibfalse}) entfernt} -% \changes{v2.3g}{1996/01/14}{Definition der openbib Option neu -% implementiert} -% \begin{macro}{\@openbib@code} -% \begin{macro}{\newblock} -% Mit dieser Option kann eine alternative Darstellung der -% Literatureinträge aktiviert werden. Dabei fügt \cs{newblock} keinen -% horizontalen Abstand mehr ein, sondern beginnt einen neuen Absatz -% (in Form einer neuen Zeile). +% \subsection{Anweisungen, die für die Optionen benötigt werden} +% +% Einige Anweisungen werden über Optionen verändert. Dazu müssen sie aber +% bereits vor der Abarbeitung der Optionen definiert sein. +% +% \subsubsection{Literaturverzeichnisstile} +% +% \begin{macro}{\newbibstyle} +% \changes{v2.98c}{2008/02/15}{Neu} +% Neue Literaturverzeichnisstile müssen mit dieser Anweisung definiert werden, +% wenn sie von der Fehlermeldung korrekt angezeigt werden sollen. Das erste, +% optionale Argument ist der Name eines Elternstils. Das zweite +% Argument ist der Name des Stils. Das dritte Argument ist Code für den +% Stil. Darin sollten normalerweise Umdefinierungen für \cs{@openbib@code}, +% \cs{newblock}, \cs{bib@beginhook}, \cs{bib@endhook} enthalten sein. Die +% genannten Makros werden am Anfang des Stils zurückgesetzt. Danach wird der +% Elternstil geladen und dann die eigenen Definitionen. % \begin{macrocode} -%<*!scrlettr> -\DeclareOption{openbib}{% - \AtEndOfPackage{% - \renewcommand*\@openbib@code{% - \advance\leftmargin\bibindent - \itemindent -\bibindent - \listparindent \itemindent - \parsep \z@ +\newcommand{\newbibstyle}[3][]{% + \scr@ifundefinedorrelax{scr@bibstyle@#2}{% + \scr@ifundefinedorrelax{scr@bibstyle@#1}{% + \ClassError{\KOMAClassName}{% + parent bibliography style `#1' does not exist}{% + You've told me to define the new bibliography style `#2'\MessageBreak + to be a child of bibliography style `#1', but bibliography + style\MessageBreak + `#1' does not exist.\MessageBreak + You have to remove the parent declaration or use an existing parent! + See the KOMA-Script manual for more information.% + }% + }{% + \@namedef{scr@bibstyle@#2}{% + \let\@openbib@code\@empty + \let\newblock\@empty + \let\bib@beginhook\@empty + \let\bib@endhook\@empty + \csname scr@bibstyle@#1\endcsname + #3% + }% + \g@addto@macro\scr@bibstylelist{, `#2'}% + }% + }{% + \ClassError{\KOMAClassName}{bibliography style `#2' already exists}{% + You've told me to define the new bibliography style `#2',\MessageBreak + but this style already exists.\MessageBreak + You have to use another bibliography style name.\MessageBreak + See the KOMA-Script manual for more information.% }% - \renewcommand*\newblock{\par}% }% } -%</!scrlettr> % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{option} +% \begin{macro}{\scr@bibstyle@} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Nur ein Dummy, wenn kein Elternstil existiert. +% \begin{macrocode} +\newcommand*{\scr@bibstyle@}{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bib@beginhook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% \begin{macro}{\bib@endhook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Die beiden Haken, wie sie durch den Literaturverzeichnisstil vorgegeben +% werden. +% \begin{macrocode} +\newcommand*{\bib@beginhook}{} +\newcommand*{\bib@endhook}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\scr@bibstylelist} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Liste der mit \cs{newbibstyle} definierten und daher bekannten +% Literaturverzeichnisstile. +% \begin{macro}{\@openbib@code} +% \changes{v2.3g}{1996/01/14}{Neu (intern)} +% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} +% Code, der am Anfang des Literaturverzeichnisses ausgeführt wird und +% normalerweise ursprünglich für die \texttt{openbib}-Funktionalität verwendet +% wurde. Inzwischen wird er für die komplette Stilauswahl verwendet. +% \begin{macro}{\newblock} +% \changes{v2.3g}{1996/01/14}{Grundeinstellung geändert} +% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} +% \begin{macrocode} +\newcommand*{\scr@bibstylelist}{\@gobble} +\newcommand*{\@openbib@code}{} +\newcommand*{\newblock}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\scr@bibstyle@openstyle} +% \changes{v2.98c}{2008/02/15}{Neu (intern)}% +% Vordefiniert sind zwei Stile. Mit dem Bibliographystil \texttt{openstyle} +% kann eine alternative Darstellung der Literatureinträge aktiviert +% werden. Dabei fügt \cs{newblock} keinen horizontalen Abstand mehr ein, +% sondern beginnt einen neuen Absatz (in Form einer neuen Zeile). +% \begin{macro}{\scr@bibstyle@oldstyle} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% Der Stil \texttt{oldstyle} entspricht hingegen der Voreinstellung. +% \begin{macrocode} +\newbibstyle{openstyle}{% + \renewcommand*{\@openbib@code}{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand*{\newblock}{\par}% +} +\newbibstyle{oldstyle}{% + \renewcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em}% +} +\scr@bibstyle@oldstyle +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} % % -% \begin{option}{bibtotoc} -% \changes{v2.3h}{1995/01/21}{neue Option} -% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} -% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} -% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} -% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die -% thebibliography-Umgebung verschoben} -% \begin{option}{bibtotocnumbered} -% \changes{v2.3h}{1995/01/21}{neue Option} -% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} -% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} -% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} +% \subsubsection{Überschrift des Literaturverzeichnisses} +% +% \begin{macro}{\bib@heading} +% \changes{v2.3h}{1995/01/21}{neu (intern)} +% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt} % \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird % verwendet} -% \changes{v2.7i}{2001/05/17}{\cs{chapter} statt \cs{addchap}} % \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die -% thebibliography-Umgebung verschoben} -% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} -% Die Option \texttt{bibtotoc} sorgt dafür, dass das -% Literaturverzeichnis im Inhaltsverzeichnis aufgeführt wird. -% Demgegenüber erweitert die Option \texttt{bibtotocnumbered} zu einem -% normalen Kapitel einschließlich Nummerierung. -% \begin{macro}{\bib@heading} +% \texttt{thebibliography}-Umgebung verschoben} +% \changes{v2.98c}{2008/02/15}{wird nun früher definiert} +% Befehl zum Setzen der Überschrift des Literaturverzeichnisses. % \begin{macrocode} -\DeclareOption{bibtotoc}{% - \AtEndOfClass{% - \renewcommand*\bib@heading{% -%<*article> - \addsec{\refname}% - \@mkboth{\refname}{\refname}% +\newcommand*\bib@heading{% +%<*article> + \section*{\refname}% + \@mkboth{\refname}{\refname}% %</article> %<*book|report> - \addchap{\bibname}% - \@mkboth{\bibname}{\bibname}% + \chapter*{\bibname}% + \@mkboth{\bibname}{\bibname}% %</book|report> - }% - }% } -\DeclareOption{bibtotocnumbered}{% - \AtEndOfClass{% - \renewcommand*\bib@heading{% +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{Optionen für das Literaturverzeichnis} +% +% \begin{option}{bibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% Dies ist der Generalschlüssel für alle Optionen, die das +% Literaturverzeichnis betreffen. Neu ist, dass verschiedene Stile +% definiert werden können. Desweiteren kann man \texttt{totoc} und +% \texttt{totocnumbered} wieder mit \texttt{nottotoc} aufgeben. +% \begin{macrocode} +\KOMA@key{bibliography}{% + \scr@ifundefinedorrelax{scr@bibstyle@#1}{% + \let\FamilyElseValues\scr@bibstylelist + \KOMA@set@ncmdkey{bibliography}{@tempa}{% + {notoc}{0},{nottotoc}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1},% + {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},% + {numberedtoc}{2}% + }{#1}% + \ifcase \@tempa\relax + \renewcommand*\bib@heading{% +%<*article> + \section*{\refname}% + \@mkboth{\refname}{\refname}% +%</article> +%<*book|report> + \chapter*{\bibname}% + \@mkboth{\bibname}{\bibname}% +%</book|report> + }% + \or% totoc + \renewcommand*\bib@heading{% %<*article> - \section{\refname}% - \@mkboth{\sectionmarkformat \refname}{\sectionmarkformat \refname}% + \addsec{\refname}% + \@mkboth{\refname}{\refname}% %</article> %<*book|report> - \chapter{\bibname}% - \@mkboth{\chaptermarkformat \bibname}{\chaptermarkformat \bibname}% + \addchap{\bibname}% + \@mkboth{\bibname}{\bibname}% %</book|report> - }% + }% + \or% numbered + \renewcommand*\bib@heading{% +%<*article> + \section{\refname}% + \@mkboth{\sectionmarkformat \refname}{\sectionmarkformat \refname}% +%</article> +%<*book|report> + \chapter{\bibname}% + \@mkboth{\chaptermarkformat \bibname}{\chaptermarkformat \bibname}% +%</book|report> + } + \fi + }{% + \csname scr@bibstyle@#1\endcsname }% } % \end{macrocode} -% \end{macro} +% \end{option} +% +% \begin{option}{openbib} +% \changes{v2.3g}{1996/01/14}{\cs{if@openbib} (\cs{@openbibtrue}, +% \cs{@openbibfalse}) entfernt} +% \changes{v2.3g}{1996/01/14}{Definition der openbib Option neu +% implementiert} +% \changes{v2.98c}{2008/02/15}{obsolete} +% Mit dieser Option kann eine alternative Darstellung der +% Literatureinträge aktiviert werden. Dabei fügt \cs{newblock} keinen +% horizontalen Abstand mehr ein, sondern beginnt einen neuen Absatz +% (in Form einer neuen Zeile). +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\ClassInfoNoLine]{openbib}{bibliography=openstyle} +% \end{macrocode} +% \end{option} +% +% \begin{option}{bibtotoc} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} +% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} +% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} +% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die +% thebibliography-Umgebung verschoben} +% \changes{v2.98c}{2008/02/15}{obsolete} +% \begin{option}{bibtotocnumbered} +% \changes{v2.3h}{1995/01/21}{neue Option} +% \changes{v2.6b}{2000/05/26}{\cs{@mkboth} eingefügt} +% \changes{v2.6c}{2000/06/10}{\cs{bibpreamble} eingefügt} +% \changes{v2.7}{2001/01/03}{Klammerung korrigiert} +% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird +% verwendet} +% \changes{v2.7i}{2001/05/17}{\cs{chapter} statt \cs{addchap}} +% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die +% thebibliography-Umgebung verschoben} +% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel} +% \changes{v2.98c}{2008/02/15}{obsolete} +% Die Option \texttt{bibtotoc} sorgt dafür, dass das +% Literaturverzeichnis im Inhaltsverzeichnis aufgeführt wird. +% Demgegenüber erweitert die Option \texttt{bibtotocnumbered} zu einem +% normalen Kapitel einschließlich Nummerierung. +% \begin{macrocode} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{bibtotoc}{bibliography=totoc} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{bibtotocnumbered}{% + bibliography=totocnumbered} +% \end{macrocode} % \end{option} % \end{option} % @@ -244,28 +406,6 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\bib@heading} -% \changes{v2.3h}{1995/01/21}{neu (intern)} -% \changes{v2.6c}{2000/06/10}{die Präambel wird gesetzt} -% \changes{v2.7b}{2001/01/05}{\cs{setchapterpreamble} wird -% verwendet} -% \changes{v2.7j}{2001/06/27}{Setzen der Präambel in die -% \texttt{thebibliography}-Umgebung verschoben} -% Befehl zum Setzen der Überschrift des Literaturverzeichnisses. -% \begin{macrocode} -\newcommand*\bib@heading{% -%<*article> - \section*{\refname}% - \@mkboth{\refname}{\refname}% -%</article> -%<*book|report> - \chapter*{\bibname}% - \@mkboth{\bibname}{\bibname}% -%</book|report> -} -% \end{macrocode} -% \end{macro} -% % \begin{Length}{bibindent} % Der Einzug der Einträge bei \texttt{openbib}. Voreingestellt sind % 1,5\,em. @@ -275,29 +415,52 @@ % \end{macrocode} % \end{Length} % -% \begin{environment}{thebibliography} -% \changes{v2.2a}{1995/02/01}{in \textsf{scrartcl} \cs{bibname} -% vollständig durch \cs{refname} ersetzt} -% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{bib@heading}} -% \changes{v2.8q}{2002/01/10}{Erkennung und gesonderte Behandlung -% leerer Präambeln} -% \changes{v2.9o}{2003/03/06}{Vergleich \cs{bibpreamble} mit \cs{@empty} -% korrigiert} +% \begin{environment}{thebibliography} +% \changes{v2.2a}{1995/02/01}{in \textsf{scrartcl} \cs{bibname} +% vollständig durch \cs{refname} ersetzt} +% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{bib@heading}} +% \changes{v2.8q}{2002/01/10}{Erkennung und gesonderte Behandlung +% leerer Präambeln} +% \changes{v2.9o}{2003/03/06}{Vergleich \cs{bibpreamble} mit \cs{@empty} +% korrigiert} +% \changes{v2.98c}{2008/02/15}{Neue Haken \cs{bib@before@hook} und +% \cs{bib@after@hook} eingefügt} % Nun werden noch die Umgebung für das Literaturverzeichnis und der % Befehl für die einzelnen Einträge definiert. % \begin{macrocode} \newenvironment{thebibliography}[1]{% -%<*book|report> - \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else - \setchapterpreamble{\bibpreamble}% - \fi\fi + \if@bib@break@ + \bib@beginhook + \else +%<*book|report> + \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else + \setchapterpreamble{\bibpreamble}% + \fi\fi %</book|report> - \bib@heading + \bib@heading %<*article> - \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else - \noindent\bibpreamble\par\nobreak - \fi\fi + \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else + \noindent\bibpreamble\par\nobreak + \fi\fi %</article> + \bib@beginhook + \bib@before@hook + \fi +% \end{macrocode} +% \begin{macro}{\BreakBibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% An dieser Stelle wird \cs{BreakBibliography} passend umdefiniert. +% \begin{macrocode} + \renewcommand{\BreakBibliography}[1]{% + \@bib@break + \end{thebibliography}% + \begingroup ##1\endgroup + \begin{thebibliography}{#1} + }% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +% Hier geht es jetzt mit \texttt{thebibliography} weiter. \list{% \@biblabel{\@arabic\c@enumiv}% }{% @@ -305,40 +468,105 @@ \leftmargin\labelwidth \advance\leftmargin\labelsep \@openbib@code - \usecounter{enumiv}% + \if@bib@break@ + \edef\@tempa{% + \noexpand\usecounter{enumiv}% + \noexpand\setcounter{enumiv}{\the\c@enumiv}% + }\@tempa + \no@bib@break + \else + \usecounter{enumiv}% + \fi \let\p@enumiv\@empty \renewcommand*\theenumiv{\@arabic\c@enumiv}% }% \sloppy\clubpenalty4000 \widowpenalty4000 \sfcode`\.=\@m }{% - \def\@noitemerr{% - \@latex@warning{Empty `thebibliography' environment}% - }% + \if@bib@break@ + \def\@noitemerr{% + \@latex@warning{% + \string\BreakBibliography\space at begin of `thebibliography' + environment\MessageBreak + or following \string\BreakBibliography}% + }% + \else + \def\@noitemerr{% + \@latex@warning{% + Empty `thebibliography' environment or + \string\BreakBibliography\MessageBreak + before end of `thebibliography' environment}% + }% + \fi \endlist + \if@bib@break@ + \else + \bib@after@hook + \let\bib@before@hook\@empty + \let\bib@after@hook\@empty + \fi + \bib@endhook } % \end{macrocode} -% \end{environment} -% -% \begin{macro}{\newblock} -% \changes{v2.3g}{1996/01/14}{Grundeinstellung geändert} -% Makro für den nächsten Bereich innerhalb eines Eintrags. +% \begin{macro}{\if@bib@break@} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macro}{\no@bib@break} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macro}{\@bib@break} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% Dieser Hilfsschalter arbeitet immer global! % \begin{macrocode} -\newcommand*\newblock{\hskip .11em\@plus.33em\@minus.07em} +\newif\if@bib@break@ +\newcommand{\no@bib@break}{\global\let\if@bib@break@\iffalse} +\newcommand*{\@bib@break}{\global\let\if@bib@break@\iftrue} % \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@openbib@code} -% \changes{v2.3g}{1996/01/14}{neues Makro} -% Code, der am Anfang des Literaturverzeichnisses ausgeführt wird und -% normalerweise für die \texttt{openbib}-Funktionalität verwendet -% wird. +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\bib@before@hook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} +% \begin{macro}{\bib@after@hook} +% \changes{v2.98c}{2008/02/15}{Neu (intern)} % \begin{macrocode} -\let\@openbib@code\@empty +\newcommand*{\bib@before@hook}{} +\newcommand*{\bib@after@hook}{} % \end{macrocode} -% \end{macro} -% -% +% \end{macro} +% \end{macro} +% \end{environment} +% +% \begin{macro}{\BreakBibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% Diese Anweisung unterbricht normalerweise das Literaturverzeichnis für ein +% paar eigene Anweisungen (z. B. Unterüberschriften). Wenn jedoch nicht das +% \KOMAScript-Literaturverzeichnis verwendet wird, dann gibt es eine Warnung +% aus. +% \begin{macrocode} +\newcommand{\BreakBibliography}[1]{% + \ClassWarning{\KOMAClassName}{% + You've used \string\BreakBibliography\space either outside of\MessageBreak + the bibliography or `thebibliography' was redefined\MessageBreak + incompatible, e.g., using a bibliography package.\MessageBreak + \string\BreakBibliography\space ignored% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AfterBibliographyPreamble} +% \changes{v2.98c}{2008/02/15}{Neu} +% \begin{macro}{\AtEndBibliography} +% \changes{v2.98c}{2008/02/15}{Neu} +% Zwei neue Anweisungen, um am Anfang des Literaturverzeichnisses, nach +% Überschrift und Präambel, und am Ende des Literaturverzeichnisses, nach +% Abschluss der Liste, Code einschleusen zu können. Das funktioniert natürlich +% nur so lange, wie keine Paket verwendet wird, das die Umgebung umdefiniert. +% \begin{macrocode} +\newcommand{\AfterBibliographyPreamble}{\g@addto@macro\bib@before@hook} +\newcommand{\AtEndBibliography}{\g@addto@macro\bib@after@hook} +% \end{macrocode} +% \end{macro} +% \end{macro} % % \iffalse %</body> |