% \iffalse meta comment % % bgteubner class bundle % % bgteucls.dtx % Copyright 2003--2005 Harald Harders % % This program may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your opinion) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 1999/12/01 or later. % % Additional conditions to the license: % % If you modify a renamed copy of the files `bgteubner.cls' or % `bgteucls.dtx', you have to preserve some information in the % PDF /Creator entry. The following data have to remain: % - The name `bgteubner.cls', % - a hint that this class has been developed for the `Teubner % Verlag, Wiesbaden, Germany'. % % This program consists of all files listed in manifest.txt. % % \section{Gemeinsame Daten} % % \begin{macrocode} %\NeedsTeXFormat{LaTeX2e} %\ProvidesClass{bgteubner} %\ProvidesFile{bgteuversion.tex} %\ProvidesFile{cdcover.tex} %\ProvidesFile{bgteucls.dtx} % [2005/04/16 v1.35 B. G. Teubner Verlag] % \end{macrocode} % %<*driver> \documentclass[english,ngerman,a4paper]{ltxdoc} \usepackage{babel} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage{numprint} \usepackage[num]{isodate} \usepackage{longtable} \newlength{\tempdima}% \makeatletter \renewenvironment{table}[1][]{% \@float{table}[#1]% \centering% \setlength{\tempdima}{\abovecaptionskip}% \setlength{\abovecaptionskip}{\belowcaptionskip}% \setlength{\belowcaptionskip}{\tempdima}% }{% \end@float } \makeatother \EnableCrossrefs \CodelineIndex \DoNotIndex{\',\.,\@M,\@@input,\@Alph,\@alph,\@addtoreset,\@arabic} \DoNotIndex{\@badmath,\@centercr,\@cite} \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} \DoNotIndex{\@input,\@ixpt,\@m,\@minus,\@mkboth} \DoNotIndex{\@ne,\@nil,\@nomath,\@plus,\roman,\@set@topoint} \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} \DoNotIndex{\advance,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} \DoNotIndex{\bullet,\MessageBreak} \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} \DoNotIndex{\fbox,\csname,\endcsname,\def,\edef,\empty,\ ,\@tempa} \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} \DoNotIndex{\input,\@tempb,\n} \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} \DoNotIndex{\NeedsTeXFormat,\newdimen} \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} \DoNotIndex{\refstepcounter,\relax,\renewcommand} \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily} \DoNotIndex{\secdef,\selectfont,\setbox,\setcounter,\setlength} \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} \DoNotIndex{\viipt,\vipt,\vskip,\vspace} \DoNotIndex{\wd,\xiipt,\year,\z@} \DoNotIndex{\string,\",\def,\newcommand,\renewcommand,\DeclareRobustCommand} \DoNotIndex{\DeclareMathOperator,\multiput,\put,\value,\thispagestyle} \DoNotIndex{\tiny,\footnotesize,\small,\normalfont,\large,\Large,\LARGE} \DoNotIndex{\huge,\Huge,\RequirePackageWithOptions,\write} \DoNotIndex{\textheight,\textwidth} \CodelineNumbered \RecordChanges \CheckSum{4830} \input{bgteuversion} \GetFileInfo{bgteuversion.tex} \begin{document} \title{Die \texttt{bgteubner}"=Dokumentklasse\thanks{Diese Datei hat die Versionsnummer \fileversion\ mit der letzten Änderung am \filedate.}} \author{Harald Harders\\\texttt{h.harders@tu-bs.de}} \date{Dateidatum \filedate, übersetzt am \today} \DocInput{bgteucls.dtx} \end{document} % % \fi % % \maketitle % \begin{abstract} % \noindent % Diese Dokumentklasse bietet die notwendige Umgebung für Bücher des % B.\,G.\ Teubner Verlags. % Ihre Verwendung wird in einem gesonderten Dokument, das unter den % Namen \verb|bgteubner-17x24-times.pdf| bzw.\ % \verb|bgteubner-17x24-cm.pdf| verfügbar ist, beschrieben. % Hier wird nur die Implementierung erläutert. % \end{abstract} % % \tableofcontents % % \section*{Copyright (in der englischen Originalformulierung)} % % Copyright 2003--2005 Harald Harders. % % This program may be distributed and/or modified under the % conditions of the \LaTeX\ Project Public License, either version~1.3 % of this license or (at your opinion) any later version. % The latest version of this license is in % \begin{verbatim} %http://www.latex-project.org/lppl.txt\end{verbatim} % and version~1.3 or later is part of all distributions of \LaTeX\ % version 1999/12/01 or later. % % Additional conditions to the license: % % If you modify a renamed copy of the files ``|bgteubner.cls|'' or % ``|bgteucls.dtx|'', you have to preserve some information in the % PDF |/Creator| entry. The following data have to remain: % \begin{itemize} % \item The name ``|bgteubner.cls|'', % \item a hint that this class has been developed for the ``Teubner % Verlag, Wiesbaden, Germany''. % \end{itemize} % % This program consists of all files listed in |manifest.txt|. % % \StopEventually{\PrintChanges \PrintIndex} % % \changes{1.35}{2005/04/16}{Allow to number \cs{paragraph} and % \cs{subparagraph}}% % \changes{1.33}{2004/11/19}{Avoiod to use the \texttt{calc} package % since it causes problems with many other packages}% % \changes{1.14}{2003/12/17}{Avoid usage of \cs{bgteubnerfileversion} % and \cs{bgteubnerfiledate}}% % \changes{1.10}{2003/10/30}{Einige Meldungen in englisch}% % \changes{1.10}{2003/10/30}{Alle eingerückten Umgebungen mit % geringerem Einzug}% % % \section{Bekannte Probleme} % % \begin{itemize} % \item Vertikal spacings in |important|, |important*|, % |longimportant|, and |longimportant*| environments is not % optimal. When using environments as |align|, |example|, % |subexercise| at the begin or end of the environment, unwanted, % additional space is added. I don't know how to solve this % problem. % \end{itemize} % % \section{Dateikopf} % % \begin{macrocode} %<*class> \typeout{^^J^^JDokumentklasse zum Erstellen von Buechern fuer den B. G. Teubner Verlag, Wiesbaden.}% \typeout{Erstellt im Auftrag des Teubner Verlags von}% \typeout{Harald Harders (h.harders@tu-bs.de).^^J}% \typeout{Beachten Sie die Dokumentation in den unterschiedlichen Versionen:}% \typeout{\space\space bgteubner-17x24-times.pdf\space\space Times, 17cm x 24cm,}% \typeout{\space\space bgteubner-17x24-cm.pdf\space\space\space\space\space European Computer Modern, 17cm x 24cm,}% \typeout{\space\space bgteubner-a5-times.pdf\space\space\space\space\space Times, DIN-A 5,}% \typeout{\space\space bgteubner-a5-cm.pdf\space\space\space\space\space \space\space\space European Computer Modern, DIN-A 5.}% \typeout{^^JDocument class to produce books for the B. G. Teubner Verlag, Wiesbaden, Germany.}% \typeout{Made by Harald Harders (h.harders@tu-bs.de).}% \typeout{Documentation is available in German only.^^J^^J}% % \end{macrocode} % % \section{Fehler statt Warnung bei alten Paketen} % % Weil fast alle Nutzer Warnungen nicht beachten, soll bei alten % Paketen ein Fehler statt einer Warnung ausgegeben werden. % Diese Warnung wird im Befehl \cs{@onefilewithoptions} erzeugt. % Bei Paketen, die der Autor selbst lädt, soll wieder nur eine Warnung % erzeugt werden. % % \begin{macro}{\@onefilewithoptions} % Den Originalbefehl sichern und am Ende der Klasse wieder % restaurieren. % \begin{macrocode} \newcommand\hhcls@onefilewithoptions{} \let\hhcls@onefilewithoptions\@onefilewithoptions \AtEndOfClass{\let\@onefilewithoptions\hhcls@onefilewithoptions} % \end{macrocode} % Die Definition von \cs{@onefilewithoptions} aus |latex.ltx|, nur mit % einem Fehler statt einer Warnung. % \begin{macrocode} \def\@onefilewithoptions#1[#2][#3]#4{% \@pushfilename \xdef\@currname{#1}% \global\let\@currext#4% \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty \let\CurrentOption\@empty \@reset@ptions \makeatletter \def\reserved@a{% \@ifl@aded\@currext{#1}% {\@if@ptions\@currext{#1}{#2}{}% {\@latex@error {Option clash for \@cls@pkg\space #1}% {The package #1 has already been loaded with options:\MessageBreak \space\space[\@ptionlist{#1.\@currext}]\MessageBreak There has now been an attempt to load it with options\MessageBreak \space\space[#2]\MessageBreak Adding the global options:\MessageBreak \space\space \@ptionlist{#1.\@currext},#2\MessageBreak to your \noexpand\documentclass declaration may fix this.% \MessageBreak Try typing \space \space to proceed.}}}% {\@pass@ptions\@currext{#2}{#1}% \global\expandafter \let\csname ver@\@currname.\@currext\endcsname\@empty \InputIfFileExists {\@currname.\@currext}% {}% {\@missingfileerror\@currname\@currext}% \let\@unprocessedoptions\@@unprocessedoptions \csname\@currname.\@currext-h@@k\endcsname \expandafter\let\csname\@currname.\@currext-h@@k\endcsname \@undefined \@unprocessedoptions} \@ifl@ter\@currext{#1}{#3}{}% {\@latex@error {You have requested,\on@line, version\MessageBreak `#3' of \@cls@pkg\space #1,\MessageBreak but only version\MessageBreak `\csname ver@#1.\@currext\endcsname'\MessageBreak is available}{% The bgteubner class is more restrictive with old packages than^^J% standard LaTeX. Please update the specified package. New^^J% packages may be downloaded from CTAN, e.g., ftp://ftp.dante.de.}}% \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi \@popfilename \@reset@ptions}% \reserved@a} % \end{macrocode} % \end{macro} % % \section{Global festgelegte Klassenoptionen} % % Weiterreichen der notwendigen Optionen an die Dokumentklasse % |scrbook|, die als Basis für die |bgteubner|"=Klasse dient. % % Einstellen der Größen für Kapitel"= und Abschnittsüberschriften: % \begin{macrocode} \PassOptionsToClass{smallheadings}{scrbook} % \end{macrocode} % Literaturverzeichnis, Stichwortverzeichnis, Abbildungs"= und % Tabellenverzeichnis erscheinen im Inhaltsverzeichnis: % \begin{macrocode} \PassOptionsToClass{bibtotoc,idxtotoc,liststotoc}{scrbook} % \end{macrocode} % Formeln linksbündig mit Einzug: % \begin{macrocode} \PassOptionsToClass{fleqn}{scrbook} \PassOptionsToPackage{fleqn}{amsmath} % \end{macrocode} % \changes{1.10}{2003/10/30}{Integralgrenzen ober- und unterhalb des % Symbols}% % Grenzen an Integralen in abgesetzten Formeln ober- und unterhalb des % Symbols. % \begin{macrocode} \PassOptionsToPackage{intlimits}{amsmath} % \end{macrocode} % Kapitel"= und Abschnittsnummern ohne Punkt am Ende: % \begin{macrocode} \PassOptionsToClass{pointlessnumbers}{scrbook} % \end{macrocode} % Leere Seiten sollen ganz leer sein, auch keine Seitenzahl: % \begin{macrocode} \PassOptionsToClass{cleardoubleempty}{scrbook} % \end{macrocode} % Keine Linie unter dem Kolumnentitel: % \begin{macrocode} \PassOptionsToClass{headnosepline}{scrbook} % \end{macrocode} % Kein Präfix vor Kapitelnummern im Anhang: % \begin{macrocode} \PassOptionsToClass{noappendixprefix}{scrbook} % \end{macrocode} % Tabellen erhalten Über"= anstatt Unterschriften: % \begin{macrocode} \PassOptionsToClass{tablecaptionabove}{scrbook} % \end{macrocode} % Optionen an Typearea weiterreichen. Kolumnentitel ist in Satzspiegel % enthalten. % \begin{macrocode} \PassOptionsToPackage{pagesize,headinclude}{typearea} % \end{macrocode} % % \section{Optionale Parameter beim Aufruf der \texttt{bgteubner}"=Klasse} % % Definition von möglichen Optionen, die vom Benutzer angegeben werden % können. % % \subsection{Globale Einstellungen des Buchlayouts} % % Wahl der Seitengröße: % \begin{macrocode} \newif\ifhhcls@dinafuenf \DeclareOption{a5paper}{\hhcls@dinafuenftrue} \DeclareOption{a5}{\hhcls@dinafuenftrue} \DeclareOption{17x24paper}{\hhcls@dinafuenffalse} \DeclareOption{17x24}{\hhcls@dinafuenffalse} % \end{macrocode} % \changes{1.20}{2004/03/07}{Allow Y\,\&\,Y MathTime to be used}% % Schriftfamilie wählen: % \begin{macrocode} \newif\ifhhcls@times \newif\ifhhcls@mathtime \DeclareOption{times}{\hhcls@timestrue} \DeclareOption{mathtime}{\hhcls@timestrue\hhcls@mathtimetrue} \DeclareOption{cm}{\hhcls@timesfalse} % \end{macrocode} % Kolumnentitel außen oder innen auf den Seiten? % \begin{macrocode} \newif\ifhhcls@headingoutside \DeclareOption{headingoutside}{\hhcls@headingoutsidetrue} \DeclareOption{headinginside}{\hhcls@headingoutsidefalse} % \end{macrocode} % Inhaltsverzeichnis einrücken? % \begin{macrocode} \newif\ifhhcls@tocindent \DeclareOption{tocindent}{\hhcls@tocindenttrue} \DeclareOption{tocleft}{\hhcls@tocindentfalse} % \end{macrocode} % Vektoren normal, fett oder unterstrichen? % \begin{macrocode} \DeclareOption{arrowvec}{\PassOptionsToPackage{arrow}{hhtensor}} \DeclareOption{boldvec}{\PassOptionsToPackage{bold}{hhtensor}} \DeclareOption{ulinevec}{\PassOptionsToPackage{uline}{hhtensor}} % \end{macrocode} % Soll es grau hinterlegte Boxen für wichtige Formeln geben? % \begin{macrocode} \newif\ifhhcls@greybox \DeclareOption{greybox}{\hhcls@greyboxtrue} \DeclareOption{graybox}{\hhcls@greyboxtrue} % \end{macrocode} % \changes{1.10}{2003/10/30}{Schriftgröße in theoremartigen Umgebungen % einstellbar}% % Schriftgröße in theoremartigen Umgebungen: % \begin{macrocode} \newif\ifhhcls@theoremsmall \DeclareOption{smalltheorem}{\hhcls@theoremsmalltrue} \DeclareOption{normaltheorem}{\hhcls@theoremsmallfalse} % \end{macrocode} % % \subsection{Entwurfsstadium} % % \changes{1.10}{2003/10/30}{Layoutraster entfernt}% % Angabe des Übersetzungsdatums in der Fußzeile und Markierung von % überfüllten Zeilen für Entwurfskontrollen: % \begin{macrocode} \newif\ifhhcls@entwurf \newif\ifhhcls@titlepage \DeclareOption{draft}{\hhcls@entwurftrue\hhcls@titlepagetrue} \DeclareOption{titlepage}{\hhcls@titlepagetrue} % \end{macrocode} % \changes{1.30}{2004/04/10}{Ignore class option `epsfigures'}% % The option |epsfigures| that enabled to include eps figures for dvi % output is not necessary anymore. % \begin{macrocode} %\newif\ifhhcls@epsfigures %\hhcls@epsfiguresfalse %\DeclareOption{epsfigures}{\hhcls@epsfigurestrue} \DeclareOption{epsfigures}{% \ifpdf \ClassWarning{bgteubner}{Class option `epsfigures' ignored for pdf output}% \else \ClassWarning{bgteubner}{Class option `epsfigures' ignored for dvi output. eps figures are now included without this option}% \fi } % \end{macrocode} % % \subsection{Aufgaben und Lösungen} % % Fügt die Aufgaben, die mit der Umgebung |aufgabe| erzeugt wurden, in % das Inhaltsverzeichnis ein: % \begin{macrocode} \newif\if@exercisetotoc \DeclareOption{exercisetotoc}{\@exercisetotoctrue} % \end{macrocode} % Fügt die Aufgaben und Lösungen, die mit den Umgebungen |exercise|, % bzw.\ |answer| erzeugt wurden, in das Inhaltsverzeichnis ein: % \begin{macrocode} \newif\if@answertotoc \DeclareOption{answertotoc}{\@exercisetotoctrue\@answertotoctrue} % \end{macrocode} % % \subsection{Defaulteinstellungen und Ausführen der Klassenoptionen} % % Defaulteinstellungen: % \begin{macrocode} \ExecuteOptions{times,headingoutside,17x24,tocindent,normaltheorem} % \end{macrocode} % Optionen ausführen: % \begin{macrocode} \ProcessOptions\relax % \end{macrocode} % Schriftgröße 10\,pt: % \begin{macrocode} \PassOptionsToClass{10pt}{scrbook} % \end{macrocode} % % \section{Laden der Klasse und der Pakete} % % Die |scrbook|"=Klasse laden. % Es muss eine Version vom angegebenen Datum oder neuer sein, da % ältere Versionen noch nicht alle notwendigen Funktionen unterstützen. % \begin{macrocode} \LoadClass{scrbook}[2003/04/22] % \end{macrocode} % Warnung bei der Änderung der Schrift für die Kopf- und Fußzeile % ausschalten. % \begin{macrocode} \let\scr@fnt@wrn@pagehead=\@undefined \let\scr@fnt@wrn@pagefoot=\@undefined % \end{macrocode} % Bugs in \LaTeXe\ beheben: % \begin{macrocode} \RequirePackage{fixltx2e}[2000/09/24] % \end{macrocode} % Weitere Zeichen im Mathe"= und im Textmodus: % \begin{macrocode} \RequirePackage{wasysym}[2003/05/31] % \end{macrocode} % Die Integralzeichen von wasysym wieder löschen, damit % \verb|amsmath.sty| sie wieder vernünftig definieren kann. % This has to be done before the first call of the |amsmath| package since % it will be loaded only once. % \changes{1.34}{2005/01/07}{Remove \texttt{wasysym} integrals before % \texttt{amsmath} is loaded}% % \begin{macrocode} \let\iint=\@undefined \let\iiint=\@undefined \let\iiiint=\@undefined % \end{macrocode} % Erweiterte Mathematikbefehle: % \begin{macrocode} \RequirePackage{amsmath}[2000/07/18] \RequirePackage{amsfonts}[2001/10/25] \RequirePackage{amssymb}[2002/01/22] % \end{macrocode} % Pakete, die gutes Tabellenlayout erlauben: % \begin{macrocode} \RequirePackage{booktabs}[2003/03/28] \RequirePackage{array}[1998/05/13] \RequirePackage{longtable}[2000/10/22] % \end{macrocode} % T1"=Schriftkodierung. Führt zu besserer Silbentrennung und erlaubt % die Verwendung einiger zusätzlicher Schriftschnitte und "~größen. % \begin{macrocode} \RequirePackage[T1]{fontenc}[2001/06/05] % \end{macrocode} % \changes{1.20}{2004/03/07}{Allow Y\,\&\,Y MathTime to be used}% % \changes{1.30}{2004/04/10}{Use bold instead of bold extended with Times}% % Times ist als Schrift gewählt: % \begin{macrocode} \ifhhcls@times \ifhhcls@mathtime \RequirePackage[slantedgreek,mtbold]{mathtime}[1999/03/29] \else \RequirePackage[slantedGreek]{mathptmx}[2003/03/02] \fi \RequirePackage[scaled=0.92]{helvet}[2003/03/02] \RequirePackage{courier}[2003/03/02] \renewcommand\bfdefault{b} % \end{macrocode} % Dummybefehl definieren, um Übersetzungsfehler zu vermeiden. % \begin{macrocode} \newcommand\newstylenums{} % \end{macrocode} % \cs{,} im Mathemodus restaurieren. % \begin{macrocode} \thinmuskip=3mu % \end{macrocode} % Computer Modern ist gewählt: % \begin{macrocode} \else % \end{macrocode} % \changes{1.06}{2003/10/12}{Paket \texttt{hfoldsty} statt % \texttt{hfo} laden}% % Minuskelziffern (\oldstylenums{0123456789}) im Textmodus. Verwendung % des Pakets |hfoldsty.sty|, das ein besseres Kerning als |eco.sty| % für die französischen Anführungszeichen hat. % \begin{macrocode} \RequirePackage[origtt]{hfoldsty}[2003/10/12] % \end{macrocode} % \changes{1.04}{2003/09/23}{Rücksetzen der Schreibmaschinenschrift % auf Original nicht mehr nötig}% % Bei Schreibmaschinenschrift (Monospaced) dennoch keine % Minuskelziffern und keine Ligaturen (nicht mehr nötig mit der neuen % |hfoldsty|"=Version). % \begin{macrocode} \fi % \end{macrocode} % \changes{1.20}{2004/03/07}{Generate warning in case of using % \cs{oldstylenums}}% % Der Befehl \cs{oldstylenums} ist in jedem Fall Quatsch: % \begin{macrocode} \renewcommand*\oldstylenums{% \ClassWarning{bgteubner}{\string\oldstylenums\space is ignored}% } % \end{macrocode} % \changes{1.20}{2004/03/07}{Rearrange \texttt{textcomp} and % \texttt{mathcomp}}% % \changes{1.20}{2004/03/07}{Switch \texttt{mathcomp} glyphs to the % same font as text is}% % Additional glyphs in math and in text mode. % |mathcomp| has to be loaded after switching to the text fonts, i.e., % |mathptmx| etc. % \begin{macrocode} \RequirePackage{textcomp}[2001/06/05] \RequirePackage[rmdefault]{mathcomp}[2001/01/07] \ifhhcls@times % \end{macrocode} % \changes{1.20}{2004/03/07}{Substitute Text and Math Companion % symbols by using \texttt{ptmxcomp.sty}}% % Many Text and Math Companion symbols have to be replaced or % corrected. % \begin{macrocode} \RequirePackage{ptmxcomp}[2004/03/07] % \end{macrocode} % \changes{1.20}{2004/03/07}{Warning for not existing bold math}% % \changes{1.30}{2004/04/10}{Error rather than a warning for using not % existing bold math}% % If using Times without MathTime, bold math is undefined. Redefine % \cs{boldmath} to generate a warning. % \begin{macrocode} \ifhhcls@mathtime \else \renewcommand*\boldmath{% \ClassError{bgteubner}{With the base font Times, bold math is undefined\MessageBreak (when not using MathTime math extensions)}{% Avoid using bold math or buy the MathTime and MathTimePlus fonts by Y\&Y.}% } \fi \fi % \end{macrocode} % Teilbilder mit Nummerierung a, b, c\dots: % \begin{macrocode} \RequirePackage[hang,RaggedRight]{hhsubfigure}[2003/09/14] % \end{macrocode} % Trennungen teilweise auch im Flattersatz ermöglichen: % \begin{macrocode} \RequirePackage{ragged2e}[2003/01/26] % \end{macrocode} % Integralzeichen usw.\ in mehr Größen, ist bei der Verwendung von % \verb|mathptmx| nicht nötig: % \begin{macrocode} \ifhhcls@times \else \RequirePackage{exscale}[1997/06/16] \fi % \end{macrocode} % Befehle zum Einbinden von Grafiken: % \begin{macrocode} \RequirePackage{graphicx}[1999/02/16] % \end{macrocode} % Falls graue Kästen zugelassen sind, muss auch Farbe ins Spiel % kommen. Aus Konsistenzgründen wird das Paket immer geladen. % \begin{macrocode} \RequirePackage{color}[1999/02/16] % \end{macrocode} % Ebenso für lange Kisten. % \begin{macrocode} \RequirePackage{framed}[2003/07/19] % \end{macrocode} % Tensorbefehle: % \begin{macrocode} \RequirePackage{hhtensor}[2003/10/09] % \end{macrocode} % Befehle zur Erzeugung eines Stichwortverzeichnisses: % \begin{macrocode} \RequirePackage{makeidx}[2000/03/29] % \end{macrocode} % Kompakte Aufzählungen: % \begin{macrocode} \RequirePackage{mdwlist}[1996/05/02] \RequirePackage{paralist}[2002/03/18] % \end{macrocode} % \changes{1.03}{2003/09/18}{\texttt{ifthen}-Paket explizit laden}% % Das \verb|ifthen|"=Paket explizit laden. % \begin{macrocode} \RequirePackage{ifthen}[2001/05/26] % \end{macrocode} % Herausfinden, ob PDF oder DVI erzeugt wird: % \begin{macrocode} \RequirePackage{ifpdf}[2001/06/14] % \end{macrocode} % \changes{1.20}{2004/03/07}{Redeclare uppercase Greek letters for % MathTime font}% % Normalerweise schreibt \LaTeX\ große griechische Buchstaben im % mathematischen Modus aufrecht, was aber im mathematischen Satz % inkonsistent ist. % Das Paket |fixmath| behebt dieses Problem. % Dadurch wird aber auch das große Delta $\Delta$ kursiv % gedruckt. % Wenn es als Differenz verwendet wird, soll es aufrecht sein. % Dies wird durch Verwendung von \cs{D} ($\Delta$) erreicht. % % With |mathptmx|, |fixmath| is not necessary. % With |mathtime|, the letters have to be redefined ``by hand''. % \begin{macrocode} \ifhhcls@times \ifhhcls@mathtime \DeclareMathSymbol\Gamma {\mathalpha}{letters}{0} \DeclareMathSymbol\Delta {\mathalpha}{letters}{1} \DeclareMathSymbol\Theta {\mathalpha}{letters}{2} \DeclareMathSymbol\Lambda {\mathalpha}{letters}{3} \DeclareMathSymbol\Xi {\mathalpha}{letters}{4} \DeclareMathSymbol\Pi {\mathalpha}{letters}{5} \DeclareMathSymbol\Sigma {\mathalpha}{letters}{6} \DeclareMathSymbol\Upsilon {\mathalpha}{letters}{7} \DeclareMathSymbol\Phi {\mathalpha}{letters}{8} \DeclareMathSymbol\Psi {\mathalpha}{letters}{9} \DeclareMathSymbol\Omega {\mathalpha}{letters}{10} \DeclareMathSymbol\upGamma {\mathord}{letters}{48} \DeclareMathSymbol\upDelta {\mathord}{letters}{49} \DeclareMathSymbol\upTheta {\mathord}{letters}{50} \DeclareMathSymbol\upLambda {\mathord}{letters}{51} \DeclareMathSymbol\upXi {\mathord}{letters}{52} \DeclareMathSymbol\upPi {\mathord}{letters}{53} \DeclareMathSymbol\upSigma {\mathord}{letters}{54} \DeclareMathSymbol\upUpsilon{\mathord}{letters}{55} \DeclareMathSymbol\upPhi {\mathord}{letters}{56} \DeclareMathSymbol\upPsi {\mathord}{letters}{57} \DeclareMathSymbol\upOmega {\mathord}{letters}{127} \fi \else \RequirePackage{fixmath}[2000/04/11] \fi % \end{macrocode} % Internationale Unterstützung laden. % Es muss eine Version vom angegebenen Datum oder neuer sein, % da ältere Versionen |\frenchspacing| noch nicht im deutschen Text % eingeschaltet haben. % \begin{macrocode} \RequirePackage{babel}[2001/03/01] % \end{macrocode} % Zeilenabstand in der |advanced|"=Umgebung erhöhen: % \begin{macrocode} \RequirePackage{setspace}[2000/12/01] % \end{macrocode} % Paket für relative Schriftgrößenveränderungen laden. % \begin{macrocode} \RequirePackage{relsize}[1999/11/01] % \end{macrocode} % \changes{1.03}{2003/09/18}{\texttt{slantsc} bei Times nicht laden}% % Paket für kursive Kapitälchen. % Allerdings nur, wenn European Computer Modern verwendet wird, weil % für Times keine kursiven Kapitälchen zur Verfügung stehen, sonst % einen Ersatzbefehl für \cs{noscshape} definieren. % Dieser schaltet allerdings von Kapitälchen immer auf aufrechte % Schrift um, da es ja nur aufrechte Kapitälchen gibt. % \begin{macrocode} \ifhhcls@times \DeclareRobustCommand\noscshape{% \not@math@alphabet\noscshape\relax \ifthenelse{\equal{\f@shape}{\scdefault}}{% \fontshape\updefault }{% }% \selectfont } \else \RequirePackage{slantsc}[2003/09/17] \fi % \end{macrocode} % \changes{1.06}{2003/10/12}{Paket \texttt{ginpenc} statt % \texttt{hhinputenc} laden}% % Einen Befehl definieren, der den Eingabezeichensatz bestimmt. % Das wird gemacht, da Babel ansonsten die Standarddefinitionen für % Umlaute (|\"a| usw.) verwendet. % Das Paket setzt diese für deutsche Sprache auf |"a| usw., % wodurch Makeindex eine korrekte Sortierung erreicht: % \begin{macrocode} \RequirePackage{ginpenc}[2003/09/29] % \end{macrocode} % Warnungen ganz am Ende der Logdatei ausgeben: % \begin{macrocode} \RequirePackage{warning}[2001/08/17] % \end{macrocode} % Verbieten, die Umgebungen |eqnarray|, |eqnarray*| und |$$| zu % verwenden: % \begin{macrocode} \RequirePackage[all]{onlyamsmath}[2001/10/04] % \end{macrocode} % Zahlen automatisch nach jeweils drei Stellen sperren und automatisch % Exponentialteile sowie korrekte Dezimalzeichen erzeugen: % \begin{macrocode} \RequirePackage[sepfour]{numprint}[2003/09/18] % \end{macrocode} % Kolumnentitel umstellen können: % \begin{macrocode} \RequirePackage{scrpage2}[2002/11/01] % \end{macrocode} % Internationale Unterstützung für Literaturverzeichnisse: % \begin{macrocode} \RequirePackage[fixlanguage]{babelbib}[2003/07/28] % \end{macrocode} % Warnung für Fußnoten, die umbrochen werden, ausgeben: % \begin{macrocode} \RequirePackage{fnbreak}[2003/04/03] % \end{macrocode} % \changes{1.05}{2003/09/25}{Ältere \texttt{subfloat}"=Version % erlaubt, die Unterschiede sind nur marginal}% % Mehrere Fließumgebungen mit der gleichen Nummer erlauben: % \begin{macrocode} \RequirePackage[countmax]{subfloat}[2002/12/16] % \end{macrocode} % Für die Verzeichnisse wird |multicol| benötigt. % \begin{macrocode} \RequirePackage{multicol}[2000/07/10] % \end{macrocode} % Optischen Randausgleich aktivieren. % \begin{macrocode} \RequirePackage[activate]{pdfcprot}[2002/02/27] % \end{macrocode} % % \section{Prüfen, ob \textsc{pdf}\LaTeX\ verwendet wird} % % \changes{1.30}{2004/04/10}{Test if \textsc{pdf}\LaTeX\ is used}% % Test if \textsc{pdf}\LaTeX\ is used. % \begin{macrocode} \ifpdftex{}{% \ClassError{bgteubner}{Ordinary latex used to compile this document.\MessageBreak Please use pdflatex. If you need dvi output\MessageBreak use pdflatex and include `\string\pdfoutput=0' as first line\MessageBreak of your document}{The execution of latex is stopped immediately.}% \stop } % \end{macrocode} % \changes{1.30}{2004/04/10}{Do not redefine \cs{includegraphics}}% % Print a warning if dvi output is used. % \begin{macrocode} \ifpdf \else \addglobalwarning{% \ClassWarningNoLine{bgteubner}{% Output format is DVI, not PDF.\MessageBreak If possible, use PDF output}% }% \fi % \end{macrocode} % \begin{macro}{\iftimes} % \begin{macro}{\ifmathtime} % \changes{1.20}{2004/03/07}{Command to test on MathTime}% % Befehl definieren, der sagt, ob Times oder MathTime verwendet wird. % If MathTime is used, both, \cs{iftimes} and \cs{ifmathtime} are % true. % \begin{macrocode} \newcommand\iftimes[2]{\ifhhcls@times #1\else #2\fi} \newcommand\ifmathtime[2]{% \ifhhcls@times \ifhhcls@mathtime #1% \else% #2% \fi \else #2% \fi } % \end{macrocode} % \end{macro} % \end{macro} % \changes{1.12}{2003/11/13}{Problem with \texttt{float.sty} solved}% % Da das |float|"=Paket erwartet, dass der Befehl % \cs{float@addtolists} noch nicht definiert ist. % Mit diesem Trick wird der Befehl vor dem Laden des Pakets gelöscht % und danach wieder vervollständigt. % \begin{macrocode} \BeforePackage{float}{% \newcommand*\hhcls@float@addtolists{}% \let\hhcls@float@addtolists=\float@addtolists \let\float@addtolists=\undefined} \AfterPackage{float}{% \let\hhclsflt@float@addtolists=\float@addtolists \renewcommand\float@addtolists[1]{% \hhclsflt@float@addtolists{#1}% \hhcls@float@addtolists{#1}% }% % \end{macrocode} % \begin{macro}{\listof} % \changes{1.12}{2003/11/13}{Lists for new floats get the same layout % as other lists, using \texttt{float.sty}}% % Redefine the \cs{listof} command in order to get the same layout as % other lists. % \begin{macrocode} \renewcommand*\listof[2]{% \begingroup% \@ifundefined{ext@#1}{% \float@error{#1}% }{% \@namedef{l@#1}{\@dottedtocline{1}{0em}{2.9em}}% \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \float@listhead{#2}% \small \setlength{\parskip}{\z@}% \@starttoc{\@nameuse{ext@#1}}% \if@restonecol\twocolumn\fi }% \endgroup }% % \end{macrocode} % \end{macro} % \changes{1.12}{2003/11/13}{Redeclare captions of user-defined floats % when using \texttt{float.sty}}% % Use the same style for the captions of user-defined floats. % \begin{macrocode} \floatstyle{komabelow} } % \end{macrocode} % % \section{Das Aussehen des Dokuments gestalten} % % \subsection{Papiergröße einstellen} % % \begin{macro}{\paperwidth} % \begin{macro}{\paperheight} % Papiergröße, Satzspiegel und Bindungskorrektur einstellen: % \begin{macrocode} \ifhhcls@dinafuenf \setlength{\paperwidth}{148mm} \setlength{\paperheight}{210mm} \areaset[7mm]{115mm}{174mm} \else \setlength{\paperwidth}{170mm} \setlength{\paperheight}{240mm} \areaset[7mm]{135mm}{200mm} \fi % \end{macrocode} % Befehl definieren, der sagt, ob DIN-A\,5 verwendet wird: % \begin{macrocode} \newcommand\ifafive[2]{\ifhhcls@dinafuenf #1\else #2\fi} % \end{macrocode} % \end{macro} % \end{macro} % Der \cs{areaset}"=Befehl erzeugt Texthöhen, die nicht unbedingt % einem Vielfachen des Zeilenabstandes betragen. % Das wird hier korrigiert. % Die Zeilenzahl wird gerundet, wobei die Grenze zum Aufrunden bei 0,4 % statt normalerweise 0,5 liegt. % Es funktioniert so, dass solange \cs{baselineskip} zu % \cs{textheight} addiert wird, bis es größer als der alte Wert minus % 0,6\cs{baselineskip} ist. % \begin{macrocode} \begingroup \newdimen\gammel \gammel=\textheight \advance\gammel by -0.6\baselineskip \textheight0mm \@whiledim\textheight<\gammel \do{\global\advance\textheight by \baselineskip} \endgroup % \end{macrocode} % Daten nochmal ausgeben (kopiert aus typearea.sty). % \begin{macrocode} \ClassInfo{bgteubner}{% These are the values describing the layout:\MessageBreak BCOR\space=\space\the\ta@bcor\MessageBreak \string\paperwidth\space\space\space\space\space\space=% \space\the\paperwidth\MessageBreak \space\string\textwidth\space\space\space\space\space\space=% \space\the\textwidth\MessageBreak \space\string\evensidemargin\space=% \space\the\evensidemargin\MessageBreak \space\string\oddsidemargin\space\space=% \space\the\oddsidemargin\MessageBreak \string\paperheight\space\space\space\space\space=% \space\the\paperheight\MessageBreak \space\string\textheight\space\space\space\space\space=% \space\the\textheight\MessageBreak \space\string\topmargin\space\space\space\space\space\space=% \space\the\topmargin\MessageBreak \space\string\headheight\space\space\space\space\space=% \space\the\headheight\MessageBreak \space\string\headsep\space\space\space\space\space\space\space\space=% \space\the\headsep\MessageBreak \space\string\topskip\space\space\space\space\space\space\space\space=% \space\the\topskip\MessageBreak \space\string\footskip\space\space\space\space\space\space\space=% \space\the\footskip\MessageBreak \space\string\baselineskip\space\space\space=% \space\the\baselineskip\MessageBreak } % \end{macrocode} % % \subsection{Umbrucheinstellungen und Abstände} % % Schusterjungen und Hurensöhne: % \begin{macrocode} \clubpenalty=100 \widowpenalty=400 % \end{macrocode} % Nur eine Zeile über abgesetzten Formeln (Standard: 50) % \begin{macrocode} \displaywidowpenalty=50 % \end{macrocode} % Seitenumbruch in Trennung (Standard: 100) % \begin{macrocode} \brokenpenalty=400 % \end{macrocode} % Strafe in Textformeln nach Relation (Standard: 500) % \begin{macrocode} \relpenalty=700 % \end{macrocode} % Strafe in Textformeln nach binären Operatoren (+,-,...) (Standard: 700) % \begin{macrocode} \binoppenalty=2000 % \end{macrocode} % \begin{macro}{\parindent} % Absatzeinzug auf den Zeilenabstand setzen: % \begin{macrocode} \setlength{\parindent}{\baselineskip} % \end{macrocode} % \end{macro} % \begin{macro}{\frenchspacing} % \changes{1.02}{2003/09/17}{In allen englischen Dialekten % \cs{frenchspacing} verwenden}% % Auch in englischen Texten kein zusätzlicher Abstand nach % Satzendezeichen. % \begin{macrocode} \addto\extrasamerican{\frenchspacing}% \addto\noextrasamerican{\nonfrenchspacing}% \addto\extrasbritish{\frenchspacing}% \addto\noextrasbritish{\nonfrenchspacing}% \addto\extrasbritish{\frenchspacing}% \addto\noextrasbritish{\nonfrenchspacing}% \addto\extrascanadian{\frenchspacing}% \addto\noextrascanadian{\nonfrenchspacing}% \addto\extrasUKenglish{\frenchspacing}% \addto\noextrasUKenglish{\nonfrenchspacing}% \addto\extrasUSenglish{\frenchspacing}% \addto\noextrasUSenglish{\nonfrenchspacing}% % \end{macrocode} % \end{macro} % % \subsection{Kapitel- und Abschnittsüberschriften formatieren} % % Für jede Ebene eine Länge definieren: % \begin{macrocode} \newlength{\hhcls@chapterindent}% \newlength{\hhcls@sectionindent}% \newlength{\hhcls@subsectionindent}% \newlength{\hhcls@subsubsectionindent}% \newlength{\hhcls@paragraphindent}% \newlength{\hhcls@subparagraphindent}% % \end{macrocode} % Für die Kapitelüberschrift den Einzug festlegen. % Vor |\begin{document}| kann das durch den Nutzer noch verändert % werden (sollte aber nicht). % \begin{macrocode} \setlength{\hhcls@chapterindent}{3.9199em}% % \end{macrocode} % Am |\begin{document}| den Einzug für die anderen Ebenen kopieren: % \begin{macrocode} \AtBeginDocument{% \setlength{\hhcls@sectionindent}{\hhcls@chapterindent}% \setlength{\hhcls@subsectionindent}{\hhcls@chapterindent}% \setlength{\hhcls@subsubsectionindent}{\hhcls@chapterindent}% \setlength{\hhcls@paragraphindent}{\hhcls@chapterindent}% \setlength{\hhcls@subparagraphindent}{\hhcls@chapterindent}% } % \end{macrocode} % Schriftart der Kapitel- und Abschnittsüberschriften, mathematische % Zeichen werden passend fett gedruckt, falls nicht Vektoren und % Matrizen fett ausgezeichnet werden. % \begin{macrocode} \setkomafont{sectioning}{\normalcolor\normalfont\bfseries \iftensor@bold\else\mathversion{bold}\fi} % \end{macrocode} % \begin{macro}{\chapterformat} % Formatierung der Kapitelüberschriften mit dem oben angegebenen % Einzug. Die Zahl wird in eine Box fester breite linksbündig % geschrieben: % \begin{macrocode} \renewcommand*\chapterformat{% \makebox[\hhcls@chapterindent][l]{% \chapappifchapterprefix{\ }\thechapter\autodot}} % \end{macrocode} % \end{macro} % % \begin{macro}{\othersectionlevelsformat} % Formatierung der Abschnittsüberschriften mit dem oben angegebenen % Einzug sowie mit definierbaren Pre"= und Postfixen für die % Abschnittsnummer. % Die Pre- und Postfixe werden normalerweise nur für andere % Überschriften wie z.\,B.\ für Beispiele, Aufgaben oder Lösungen % benötigt. % Die allgemeine Deklaration ist aber am einfachsten und praktischsten: % \begin{macrocode} \DeclareRobustCommand*\othersectionlevelsformat[1]{% \makebox[\csname hhcls@#1indent\endcsname][l]{% \csname prefix#1\endcsname\csname the#1\endcsname\autodot \csname postfix#1\endcsname}} % \end{macrocode} % \end{macro} % \begin{macro}{\prefixsection} % \begin{macro}{\prefixsubsection} % \begin{macro}{\prefixsubsubsection} % \begin{macro}{\prefixparagraph} % \begin{macro}{\prefixsubparagraph} % Definition leerer Prefixe zu den Überschriften. % Das wäre nicht notwendig, da das Konstrukt mit |\csname| und % |\endcsname| unbekannte Befehle ignoriert. % Die Definition macht den Code aber sauberer. % \begin{macrocode} \def\prefixsection{}% \def\prefixsubsection{}% \def\prefixsubsubsection{}% \def\prefixparagraph{}% \def\prefixsubparagraph{}% % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \subsection{Inhaltsverzeichnis} % % Einzüge im Inhaltsverzeichnis festlegen: % \begin{macrocode} \ifhhcls@tocindent \newlength{\hhcls@tocindentlength} \settowidth{\hhcls@tocindentlength}{0.} \renewcommand*\l@section{% \@dottedtocline{1}{1\hhcls@tocindentlength}{2.3em}} \renewcommand*\l@subsection{% \@dottedtocline{2}{2\hhcls@tocindentlength}{3.2em}} \renewcommand*\l@subsubsection{% \@dottedtocline{3}{3\hhcls@tocindentlength}{4.1em}} \renewcommand*\l@paragraph{% \@dottedtocline{4}{4\hhcls@tocindentlength}{5.0em}} \renewcommand*\l@subparagraph{% \@dottedtocline{5}{5\hhcls@tocindentlength}{5.9em}} \else \renewcommand*\l@section{\@dottedtocline{1}{0em}{2.3em}} \renewcommand*\l@subsection{\@dottedtocline{2}{0em}{3.2em}} \renewcommand*\l@subsubsection{\@dottedtocline{3}{0em}{4.1em}} \renewcommand*\l@paragraph{\@dottedtocline{4}{0em}{5.0em}} \renewcommand*\l@subparagraph{\@dottedtocline{5}{0em}{5.9em}} \fi % \end{macrocode} % % \subsection{Anhang} % % \begin{macro}{\appendixmore} % Falls Mediävalziffern verwendet werden, sollen die Anhangsbuchstaben % etwas kleiner gedruckt werden. % Außerdem automatische Erzeugung der Überschrift \emph{Anhang} am % Anfang des Anhangs. % \changes{1.32}{2004/08/19}{Move \cs{ifhhcls@times} outside % definition of \cs{appendixmore}}% % \begin{macrocode} \ifhhcls@times \def\appendixmore{% \addpart{\appendixname}% } \else \def\appendixmore{% \renewcommand*\thechapter{\textsc{\@alph\c@chapter}}% \addpart{\appendixname}% } \fi % \end{macrocode} % \end{macro} % % \subsection{Description-Umgebung} % % Schriftart für description-Umgebung: % \begin{macrocode} \setkomafont{descriptionlabel}{\normalcolor\normalfont\rmfamily\bfseries \iftensor@bold\else\mathversion{bold}\fi} % \end{macrocode} % \begin{macro}{\headfont} % % \subsection{Kolumnentitel} % % Schriftart für die Kolumnentitel festlegen (nicht kursiv): % \changes{1.32}{2004/08/19}{Remove \cs{rmfamily} from pagehead since % \cs{normalfont} does that already}% % \begin{macrocode} \setkomafont{pagehead}{\normalfont\normalcolor\small} % \end{macrocode} % \end{macro} % Kolumnentitel formatieren: % \begin{macrocode} \pagestyle{scrheadings} \renewcommand*\partpagestyle{empty} \renewcommand*\chapterpagestyle{empty} \renewcommand*\indexpagestyle{empty} \clearscrheadfoot \ifhhcls@headingoutside \rohead[\pagemark]{\headmark\makebox[\hhcls@chapterindent][r]{\pagemark}} \lehead[\pagemark]{\makebox[\hhcls@chapterindent][l]{\pagemark}\headmark} \else \ohead[\pagemark]{\pagemark} \ihead{\headmark} \fi % \end{macrocode} % % \subsection{Guillemets als Anführungszeichen} % % \begin{macro}{\flqq} % \begin{macro}{\frqq} % \begin{macro}{\flq} % \begin{macro}{\frq} % \changes{1.30}{2004/04/10}{Redefine quotation marks to allow math % mode and kerning}% % Redefine quotation marks in order to allow kerning (fix bug in % babel.sty). % \begin{macrocode} \ProvideTextCommand{\flqq}{T1}{% \textormath{\guillemotleft}{\mbox{\guillemotleft}}} \ProvideTextCommand{\flqq}{OT1}{% \textormath{\guillemotleft}{\mbox{\guillemotleft}}} \ProvideTextCommandDefault{\flqq}{\UseTextSymbol{OT1}\flqq} \ProvideTextCommand{\frqq}{T1}{% \textormath{\guillemotright}{\mbox{\guillemotright}}} \ProvideTextCommand{\frqq}{OT1}{% \textormath{\guillemotright}{\mbox{\guillemotright}}} \ProvideTextCommandDefault{\frqq}{\UseTextSymbol{OT1}\frqq} \ProvideTextCommand{\flq}{T1}{% \textormath{\guilsinglleft}{\mbox{\guilsinglleft}}} \ProvideTextCommand{\flq}{OT1}{% \textormath{\guilsinglleft}{\mbox{\guilsinglleft}}} \ProvideTextCommandDefault{\flq}{\UseTextSymbol{OT1}\flq} \ProvideTextCommand{\frq}{T1}{% \textormath{\guilsinglright}{\mbox{\guilsinglright}}} \ProvideTextCommand{\frq}{OT1}{% \textormath{\guilsinglright}{\mbox{\guilsinglright}}} \ProvideTextCommandDefault{\frq}{\UseTextSymbol{OT1}\frq} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \begin{macro}{\glqq} % \begin{macro}{\grqq} % \begin{macro}{\glq} % \begin{macro}{\grq} % Französische Anführungsstriche als Anführungszeichen verwenden. % \begin{macrocode} \let\glqq=\frqq \let\grqq=\flqq \let\glq=\frq \let\grq=\flq % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \section{Literaturverweise} % % \begin{environment}{thebibliography} % Flattersatz im Literaturverzeichnis und kleine Schrift: % \begin{macrocode} \renewenvironment{thebibliography}[1]{% \setchapterpreamble{\bibpreamble}% \bib@heading% \list{\@biblabel{\@arabic\c@enumiv}}{% \settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \@openbib@code \usecounter{enumiv}% \let\p@enumiv\@empty \renewcommand*\theenumiv{\@arabic\c@enumiv}% }% \sloppy\clubpenalty4000\widowpenalty4000% \setlength\RaggedRightRightskip{\z@\@plus 6em}% \small\RaggedRight \sfcode`\.=\@m }{ \def\@noitemerr {\@latex@warning{Empty `thebibliography' environment}}% \endlist } % \end{macrocode} % \end{environment} % Im Literaturverzeichnis die Blöcke nur durch ein einfaches % Leerzeichen trennen. % Dadurch wird das weite Auseinanderziehen verhindert. % \begin{macrocode} \renewcommand*\newblock{\ } % \end{macrocode} % \begin{macro}{\@bibitem} % \begin{macro}{\@lbibitem} % Literaturangaben sollen in Majuskelziffern geschrieben werden: % \begin{macrocode} \def\@bibitem#1{\stepcounter{\@listctr}% \item[{[\newstylenums{\the\value{\@listctr}}]}]\if@filesw \immediate\write\@auxout {\string\bibcite{#1}{% \string\newstylenums{\the\value{\@listctr}}}}\fi\ignorespaces} \def\@lbibitem[#1]#2{\item[\@biblabel{\newstylenums{#1}}\hfill]\if@filesw {\let\protect\noexpand \immediate\write\@auxout{% \string\bibcite{#2}{\protect\newstylenums{#1}}}}\fi\ignorespaces} % \end{macrocode} % \end{macro} % \end{macro} % % Literaturverweise nicht umbrechbar: % \begin{macrocode} \def\@citex[#1]#2{% \let\@citea\@empty \@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{,\,}% \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}% \G@refundefinedtrue \@latex@warning {Citation `\@citeb' on page \thepage \space undefined}}% {\hbox{\csname b@\@citeb\endcsname}}}}{#1}% } % \end{macrocode} % \begin{macro}{\btxISBN} % \begin{macro}{\btxISSN} % Die Zeichenketten ISBN und ISSN etwas kleiner schreiben: % \begin{macrocode} \renewcommand\btxISBN{\acro{ISBN}} \renewcommand\btxISSN{\acro{ISSN}} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\printISBN} % \changes{1.10}{2003/10/30}{Umbruch in ISBN verhindern}% % \begin{macrocode} \ifhhcls@times % \end{macrocode} % Umbruch verhindern für Times: % \begin{macrocode} \newcommand\printISBN[1]{\mbox{#1}} \else % \end{macrocode} % Falls Mediävalziffern verwendet werden, Ausgabe der ISBN mit % verkleinertem X und verhindertem Umbruch: % \begin{macrocode} \newcommand\printISBN[1]{% \mbox{\expandafter\hhcls@printISBN#1\@empty\@empty}% } % \end{macrocode} % \end{macro} % Drucken eines "`X"' in einer ISBN, in Kapitälchen. % \begin{macrocode} \newcommand\hhcls@printISBNx[1]{\acro{#1}} % \end{macrocode} % Dieser Befehl durchsucht die ISBN nach ``x'' oder ``X'' und druckt % diese gesondert: % \begin{macrocode} \def\hhcls@printISBN#1#2\@empty{% \begingroup \edef\hhcls@argeins{#1}% \edef\hhcls@argzwei{#2}% \def\hhcls@argX{X}% \def\hhcls@argx{x}% \ifx\hhcls@argeins\hhcls@argX \hhcls@printISBNx{#1}% \else \ifx\hhcls@argeins\hhcls@argx \hhcls@printISBNx{#1}% \else #1% \fi \fi \ifx\hhcls@argzwei\@empty \else \hhcls@printISBN#2\@empty \fi \endgroup } \fi % \end{macrocode} % \changes{1.10}{2003/10/30}{ISSN formatieren}% % In der Bibliographie umschalten: % \begin{macrocode} \setbibliographyfont{ISBN}{\printISBN} \setbibliographyfont{ISSN}{\printISBN} % \end{macrocode} % % \section{Tabellen} % % Irgendein Spaltentyp mit Ausrichtung am Dezimalzeichen: % \begin{macrocode} \newcolumntype{d}[1]{D{.}{,}{#1}} % \end{macrocode} % % \section{Fließumgebungen} % % \subsection{Platzierung} % % Bilder und Tabellen nur oben auf der Seite oder auf gesonderten Seiten: % \begin{macrocode} \renewcommand\fps@figure{tp} \renewcommand\fps@table{tp} % \end{macrocode} % % \begin{macro}{\floatpagefraction} % Fließumgebungen erst auf eine eigene Seite packen, wenn sie % mindestens 75\,\%\ der Seite in Anspruch nehmen: % \begin{macrocode} \renewcommand{\floatpagefraction}{0.75} % Default: 0.5 % \end{macrocode} % \end{macro} % \begin{macro}{\topfraction} % Bildplatzierung oben bis 75\,\%\ der Seite zulassen: % \begin{macrocode} \renewcommand{\topfraction}{0.75} % Default: 0.7 % \end{macrocode} % \end{macro} % \begin{macro}{\bottomfraction} % Bildplatzierung unten bis 35\,\%\ der Seite zulassen: % \begin{macrocode} \renewcommand{\bottomfraction}{0.35} % Default: 0.3 % \end{macrocode} % \end{macro} % \begin{macro}{\textfraction} % Textanteil muss mindestens 20\,\%\ betragen: % \begin{macrocode} \renewcommand{\textfraction}{0.2} % Default: 0.2 % \end{macrocode} % \end{macro} % Höchstens zwei Bilder oben: % \begin{macrocode} \setcounter{topnumber}{2} % Default: 2 % \end{macrocode} % Höchstens ein Bild unten: % \begin{macrocode} \setcounter{bottomnumber}{1} % Default: 1 % \end{macrocode} % Höchstens drei Bilder insgesamt: % \begin{macrocode} \setcounter{totalnumber}{3} % Default: 3 % \end{macrocode} % % \subsection{Bugfix für Platzierung im Text} % % Fließumgebungen verhindern eine Silbentrennung im folgenden Wort. % Diese Definition behebt das Problem % (von Heiko Oberdiek, oberdiek@uni-freiburg.de): % \begin{macrocode} \g@addto@macro\end@float{% \ifnum\@floatpenalty<\z@ \ifnum\@floatpenalty<-\@Mii \else \ifhmode \if@ignore \penalty\@M \hskip\z@skip \fi \fi \fi \fi } % \end{macrocode} % % \subsection{Abstände} % % Abstand zwischen zwei Fließumgebungen: % \begin{macrocode} \setlength\floatsep{18\p@ \@plus 10\p@ \@minus 2\p@} % \end{macrocode} % Abstand zwischen einer Fließumgebung und dem Text: % \begin{macrocode} \setlength\textfloatsep{14\p@ \@plus 20\p@ \@minus 4\p@} % \end{macrocode} % Abstände auf Fließumgebungsseiten: % \begin{macrocode} \setlength\@fptop{0\p@ \@plus 1fil} \setlength\@fpsep{18\p@ \@plus 1fil} \setlength\@fpbot{0\p@ \@plus 2fil} % \end{macrocode} % % \subsection{Bildunter"= und Tabellenüberschriften} % % Hängender Einzug: % \begin{macrocode} \setcaphanging % \end{macrocode} % Schriftart für Bildunterschriften: % \begin{macrocode} \setkomafont{caption}{\normalfont\normalcolor\small\RaggedRight} % \end{macrocode} % \begin{macro}{\germanfigurename} % Definition eines Befehls, der den Namen der Bildunterschriften ändert: % \begin{macrocode} \newcommand*\germanfigurename[1]{\gdef\hhcls@germanfigurename{#1}} % \end{macrocode} % \end{macro} % Setzen der Bildunterschriften auf "`Bild"': % \begin{macrocode} \germanfigurename{Bild} % \end{macrocode} % Dem Paket |babel.sty| erzählen, dass für die deutsche Sprache immer % |\hhcls@germanfigurename| als Bildunterschrift dienen soll: % \begin{macrocode} \addto\captionsgerman{\renewcommand*\figurename{\hhcls@germanfigurename}}% \addto\captionsngerman{\renewcommand*\figurename{\hhcls@germanfigurename}}% \addto\captionsaustrian{\renewcommand*\figurename{\hhcls@germanfigurename}}% \addto\captionsnaustrian{\renewcommand*\figurename{\hhcls@germanfigurename}}% % \end{macrocode} % % \subsection{Schriftart in Bildern} % % Schriftbefehle einrichten, die in der Art von KOMA"=Script mit % \cs{setkomafont} verändert werden können. % \begin{macrocode} \newcommand*\@floatfont{\normalfont\normalcolor\normalsize} \newcommand*\scr@fnt@float{\@floatfont} % \end{macrocode} % Einen Befehl umdefinieren, der am Anfang jeder Fließumgebung % ausgeführt wird. Leider definiert schon |setspace| daran herum. % \begin{macrocode} \@ifpackageloaded{setspace}{% \def\@xfloat #1[#2]{% \latex@xfloat #1[#2]% \def\baselinestretch{\setspace@singlespace}% \scr@fnt@float }% }{% \def\@floatboxreset{% \reset@font \scr@fnt@float \@setminipage }% }% % \end{macrocode} % Schriftgröße in Fließumgebungen verringern. % \begin{macrocode} \setkomafont{float}{\normalfont\normalcolor\small}% % \end{macrocode} % Auch in |longtable|"=Umgebungen kleinere Schrift: % \begin{macrocode} \newcommand\hhcls@longtable{} \let\hhcls@longtable\longtable \renewcommand\longtable{\small\hhcls@longtable} % \end{macrocode} % % \subsection{Verzeichnisse} % % \begin{macrocode} \renewcommand*\l@figure{\@dottedtocline{1}{0em}{2.9em}} % \end{macrocode} % \begin{macrocode} \let\l@table\l@figure % \end{macrocode} % % % \subsection{Subfigures} % % \begin{macro}{\subfigtopskip} % \begin{macro}{\subfigbottomskip} % \begin{macro}{\subfigcapmargin} % Keine Abstände um Subfigures. Die müssen dann von Hand gemacht werden: % \begin{macrocode} \renewcommand{\subfigtopskip}{0pt} \renewcommand{\subfigbottomskip}{0pt} \renewcommand{\subfigcapmargin}{0pt} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \begin{macro}{\subcapsize} % Bei Subfigures die gleiche Schriftgröße wie bei normalen % Bildunterschriften: % \begin{macrocode} \renewcommand{\subcapsize}{\small} % \end{macrocode} % \end{macro} % Abstand zwischen Bild und Bildunterschrift: % \begin{macrocode} \setlength{\subfigcapskip}{8pt} % \end{macrocode} % \begin{macro}{\subcapfont} % Schriftart der Bildunterunterschriften. Zusätzlich Flattersatz. % \begin{macrocode} \renewcommand{\subcapfont}{\rmfamily\RaggedRight} % \end{macrocode} % \end{macro} % \begin{macro}{\subcaplabelfont} % Schriftart für die Labels: % \begin{macrocode} \renewcommand{\subcaplabelfont}{\rmfamily} % \end{macrocode} % \end{macro} % \begin{macro}{\thesubfigure} % Formatierung der Subfigure"=Nummer in Verweisen: % \begin{macrocode} \renewcommand*{\thesubfigure}{\,\alph{subfigure}} \renewcommand*{\@@thesubfigure}{\alph{subfigure}} % \end{macrocode} % \end{macro} % \begin{macro}{\@thesubfigure} % Formatierung der Subfigure"=Nummer in Bildunterschriften: % \begin{macrocode} \renewcommand{\@thesubfigure}{% {\subcapsize\subcaplabelfont\alph{subfigure}:}\space} % \end{macrocode} % \end{macro} % % \subsection{Subfloats} % % Nummerierung bei wiederholten Bildern und Tabellen: % \begin{macrocode} \renewcommand*\thesubfloatfigure{% \themainfigure\,(\arabic{subfloatfigure}/\arabic{subfloatfiguremax})} \renewcommand*\thesubfloattable{% \themaintable\,(\arabic{subfloattable}/\arabic{subfloattablemax})} % \end{macrocode} % % \subsection{Bilder und Tabellen zählen} % % Bilder zählen: % \begin{macrocode} \newcounter{bilderzahl}% \g@addto@macro\endfigure{% \stepcounter{bilderzahl}% }% % \end{macrocode} % Tabellen zählen: % \begin{macrocode} \newcounter{tabellenzahl}% \g@addto@macro\endtable{% \stepcounter{tabellenzahl}% }% % \end{macrocode} % Ausgabe der Werte: % \begin{macrocode} \AtEndDocument{% \immediate\write\@auxout{% \string\gdef\string\hhclsbilderzahl{\thebilderzahl}^^J% \string\gdef\string\hhclstabellenzahl{\thetabellenzahl}^^J% \string\gdef\string\hhclsaufgabenzahl{\theaufgabenzahl}}% } \addglobalwarning{% \typeout{^^JNumber of figures: \thebilderzahl}% \typeout{Number of tables: \thetabellenzahl}% \typeout{Number of exercises: \theaufgabenzahl^^J}% }% % \end{macrocode} % % \subsection{Verzeichnisse} % % \begin{macro}{\listoffigures} % Verzeichnis der Bilder (kleinere Schrift): % \begin{macrocode} \renewcommand*\listoffigures{% \begingroup% \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \lof@heading% \small \@parskipfalse\@parskip@indent% \@starttoc{lof}% \if@restonecol\twocolumn\fi \endgroup } % \end{macrocode} % \end{macro} % \begin{macro}{\listoftables} % Verzeichnis der Tabellen (kleinere Schrift): % \begin{macrocode} \renewcommand*\listoftables{% \begingroup \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \lot@heading% \small \@parskipfalse\@parskip@indent% \@starttoc{lot}% \if@restonecol\twocolumn\fi \endgroup } % \end{macrocode} % \end{macro} % % \section{Index} % % Schreiben, wie Index erzeugt wird. % \begin{macrocode} \newcommand\hhcls@makeindex{} \let\hhcls@makeindex=\makeindex \renewcommand\makeindex{% \hhcls@makeindex \addglobalwarning{% \typeout{^^JGenerate index by using^^J% \space\space`makeindex -c -g -s bgteubner.ist \jobname'.^^J% Have a look to the log file `\jobname.ilg'.^^J}% }% } % \end{macrocode} % \begin{macro}{\hhcls@germanindexname} % Name des Index: % \begin{macrocode} \newcommand*\hhcls@germanindexname{Stichwortverzeichnis} % \end{macrocode} % \end{macro} % Dem Paket |babel.sty| erzählen, dass für die deutsche Sprache immer % |\hhcls@germanindexname| als Titel für das Sachwortverzeichnis dienen soll: % \begin{macrocode} \addto\captionsgerman{\renewcommand*\indexname{\hhcls@germanindexname}}% \addto\captionsngerman{\renewcommand*\indexname{\hhcls@germanindexname}}% \addto\captionsaustrian{\renewcommand*\indexname{\hhcls@germanindexname}}% \addto\captionsnaustrian{\renewcommand*\indexname{\hhcls@germanindexname}}% % \end{macrocode} % Am Ende ein Sachwortverzeichnis erstellen: % \begin{macrocode} \AtEndDocument{\printindex} % \end{macrocode} % Set size for lists. % \begin{macrocode} \newcommand\listsfont{\footnotesize} % \end{macrocode} % \begin{environment}{theindex} % Indexumgebung redefinieren, damit Flattersatz und kleinere Schrift % verwendet werden. Außerdem gegenüber |\RaggedRight| eine größere % "`Flatterung"' zulassen, um Overful hboxes zu vermeiden: % \begin{macrocode} \renewenvironment{theindex} {\if@twocolumn \@restonecolfalse \else \@restonecoltrue \fi \columnseprule \z@ \columnsep 20\p@ \setchapterpreamble{\index@preamble}% \idx@heading% \thispagestyle{\indexpagestyle}% \par \parindent\z@ \setlength{\parskip}{\z@ \@plus .3\p@}% \setlength{\parfillskip}{\z@ \@plus 1fil}% \let\item\@idxitem \setlength\RaggedRightRightskip{\z@\@plus 4em}% % \end{macrocode} % Boolean einführen, der prüfen hilft, ob der richtige Indexstil % verwendet wurde. % \begin{macrocode} \newif\ifhhclsiscorrectindex \RaggedRight\listsfont} {\ifhhclsiscorrectindex \else % \end{macrocode} % Der Autor hat einen nicht zulässigen Indexstil verwendet: % \begin{macrocode} \ClassError{bgteubner}{You have not used the correct index style\MessageBreak `bgteubner.ist' for the class `bgteubner.cls'}{% You have to use the style bgteubner.ist:^^J% Generate index by using^^J% \space\space`makeindex -c -g -s bgteubner.ist \jobname'.^^J% Have a look to the log file `\jobname.ilg'.}% \fi \if@restonecol\onecolumn\else\clearpage\fi} % \end{macrocode} % \end{environment} % \begin{macro}{\@idxitem} % Hängender Einzug mit 30\,pt: % \begin{macrocode} \renewcommand*\@idxitem{\par\hangindent 24\p@} % \end{macrocode} % \end{macro} % \begin{macro}{\subitem} % Ein "`--"' vor Untereinträgen: % \begin{macrocode} \renewcommand*\subitem{\@idxitem \quad --\;} % \end{macrocode} % \end{macro} % \begin{macro}{\subsubitem} % Zwei "`--"' vor Unter"=Untereinträgen: % \begin{macrocode} \renewcommand*\subsubitem{\@idxitem \quad --\;--\;} % \end{macrocode} % \end{macro} % % Befehle für Seitenbereiche, Verwendung z.\,B.\ \verb_\index{Moin|ff}_. % % \begin{macro}{\f} % Ein einfaches "`f"' angehängt: % \begin{macrocode} \newcommand*\f[1]{#1\,f}% % \end{macrocode} % \end{macro} % \begin{macro}{\ff} % Ein einfaches "`ff"' angehängt: % \begin{macrocode} \newcommand*\ff[1]{#1\,ff}% % \end{macrocode} % \end{macro} % \begin{macro}{\textbff} % \begin{macro}{\textbfff} % Die beiden Befehle in fett: % \begin{macrocode} \newcommand*\textbff[1]{\textbf{#1\,f}}% \newcommand*\textbfff[1]{\textbf{#1\,ff}}% % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\subind} % Wenn mit \verb_|see_ auf andere Indexeinträge mit Unterpunkten % verwiesen wird, soll \cs{subind} statt einem Komma verwendet werden: % \begin{macrocode} \newcommand\subind{\,--\,\hskip\z@skip}% % \end{macrocode} % \end{macro} % % \section{Fußnoten} % % Formatierung der Fußnoten. Hängender Einzug, Fußnotenmarkierung % nicht hochgestellt, Versalziffern: % \begin{macrocode} \deffootnote{1.5em}{1.5em}{\normalfont\newstylenums{\thefootnotemark}\enspace} % \end{macrocode} % \changes{1.02}{2003/09/17}{\cs{normalfont} in Fußnoten aufrufen}% % Fußnoten im Flattersatz: % \begin{macrocode} \addtokomafont{footnote}{\normalfont\RaggedRight} % \end{macrocode} % Fußnotenmarkierung im Text in Versalziffern: % \begin{macrocode} \deffootnotemark{\textsuperscript{\newstylenums{\thefootnotemark}}} % \end{macrocode} % Abstand der Fußnoten vom Text? % \begin{macrocode} \setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@} % \end{macrocode} % % \section{Zusätzliche Textbefehle} % % \begin{macro}{\acro} % \changes{1.01}{2003/09/16}{\cs{acro} für European Computer Modern % serifenlos sowie kursive Schreibmaschinenschrift mit % \cs{textsmaller} statt \cs{textsc}}% % Großbuchstabige Abkürzungen in Kapitälchen setzen: % \begin{macrocode} \ifhhcls@times \DeclareRobustCommand\acro[1]{\textsmaller{\MakeUppercase{#1}}} \else \DeclareRobustCommand\acro[1]{% \ifthenelse{\equal{\f@family}{hfor}\or\equal{\f@family}{cmr}}{% \textsc{\MakeLowercase{#1}}% }{% \ifthenelse{\(\equal{\f@family}{hfott}\or\equal{\f@family}{cmtt}\)% \and\equal{\f@shape}{n}}{% \textsc{\MakeLowercase{#1}}% }{% \textsmaller{\MakeUppercase{#1}}% }% }% } \fi % \end{macrocode} % \end{macro} % \begin{macro}{\person} % Personennamen: % \begin{macrocode} \newcommand\person{}% \let\person=\emph % \end{macrocode} % \end{macro} % \begin{macro}{\new} % Neu eingeführte Begriffe: % \begin{macrocode} \newcommand\new{}% \let\new=\emph % \end{macrocode} % \end{macro} % \begin{macro}{\engl} % Englische Begriffe: % \begin{macrocode} \newcommand\engl{}% \let\engl=\emph % \end{macrocode} % \end{macro} % \begin{macro}{\qed} % \changes{1.10}{2003/10/30}{Befehl \cs{qed} eingeführt}% % Ende eines Beweises: % \begin{macrocode} \newcommand*\qed{% \hskip 1em plus 1fill\rule{0pt}{1ex}\hskip\z@skip \hglue 0pt plus 1fill\mbox{\qedname}} % \hskip 1em plus 1fill\rule{0.05mm}{1ex}\hskip\z@skip % \rule{0.05mm}{1ex}\hglue 0pt plus 1fill\qedname} % \end{macrocode} % \end{macro} % \begin{macro}{\qedname} % Text, der von \cs{qed} gesetzt wird: % \begin{macrocode} \newcommand*\qedname{\rule{1ex}{1ex}} % \end{macrocode} % \end{macro} % % % \section{Mathematik} % % \subsection{Zusätzliche mathematische Befehle} % % \begin{macro}{\tr} % Spur (tr): % \begin{macrocode} \newcommand*\tr{\mathop{\operator@font tr}\nolimits} % \end{macrocode} % \end{macro} % \begin{macro}{\e} % Eulerkonstante: % \begin{macrocode} \newcommand*\e{\mathop{\operator@font e}\nolimits} % \end{macrocode} % \end{macro} % \begin{macro}{\d} % Differentialoperator: % \begin{macrocode} \let\origd=\d \renewcommand*\d{% % \end{macrocode} % Das |\relax| ist notwendig, weil |\ifmmode| sonst nicht in der % |align|"=Umgebung funktionieren würde. % \begin{macrocode} \relax\ifmmode \mathrm{d}% \else \expandafter\origd \fi } % \end{macrocode} % \end{macro} % \begin{macro}{\D} % Differenzenoperator: % \begin{macrocode} \newcommand*\D{\ensuremath{\upDelta}} % \end{macrocode} % \end{macro} % \begin{macro}{\grad} % Gradient: % \begin{macrocode} \newcommand*\grad{\mathop{\operator@font grad}\nolimits} % \end{macrocode} % \end{macro} % \begin{environment}{cases*} % Fallunterscheidung mit schließender Klammer: % \begin{macrocode} \newenvironment{cases*}{% \matrix@check\cases\env@cases }{% \endarray\right\rbrace% } % \end{macrocode} % \end{environment} % \begin{macro}{\equivalent} % Entspricht-Zeichen: % \begin{macrocode} \newcommand*\equivalent{\ensuremath{\mathrel{\widehat{=}}}} % \end{macrocode} % \end{macro} % \begin{environment}{nomathindent} % Innerhalb dieser Umgebung ist der mathematische Einzug verringert % oder gelöscht. % \begin{macrocode} %\newcommand*\nomathindent[1][1.0]{\rule{-#1\mathindent}{0mm}} \newenvironment{nomathindent}[1][1.0]{% \addtolength{\mathindent}{-#1\mathindent}% \ignorespaces }{\ignorespacesafterend} % \end{macrocode} % \end{environment} % % \begin{macro}{\vec} % \begin{macro}{\matr} % \begin{macro}{\tens} % \changes{1.06}{2003/10/12}{Befehl \cs{tensor} in \cs{tens} umbenannt}% % \changes{1.20}{2004/03/07}{MathTime font has original bold math. Use % if available}% % Befehl für Matrizen und Vektoren. % Falls Fettdruck bei Times, gibt es keine richtige fette Schrift. % "`Poor Man's Bold als Ersatz"'. % \begin{macrocode} \iftensor@bold \ifhhcls@times \ifhhcls@mathtime \else \addglobalwarning{% \ClassWarningNoLine{bgteubner}{The combination of the main font Times\MessageBreak with bold vectors (option )\MessageBreak leads to ugly results in some cases}}% \renewcommand*\vec[1]{\ensuremath{\pmb{#1}}} \renewcommand*\matr[1]{\ensuremath{\pmb{#1}}} \renewcommand*\tens[2]{\ensuremath{\pmb{#1}}} \fi \fi \fi % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \begin{macro}{\tensor} % Einen Befehl \cs{tensor} erzeugen, der dem Nutzer sagt, dass der % Befehl in \cs{tens} umbenannt wurde. % \begin{macrocode} \AtBeginDocument{% \providecommand*\tensor{% \ClassError{bgteubner}{\string\tensor\space command used instead of \string\tens\space command (see help by pressing h)}{% Because of some name clashes, the \string\tensor\space command had to be renamed to \string\tens. Please change all calls inside your document.}% \tens }% } % \end{macrocode} % \end{macro} % % \subsection{Formatierung} % % Dezimalzeichen und Produktzeichen in Exponentialdarstellung: % \begin{macrocode} \addto\extrasgerman{\npdecimalsign{,}\npproductsign{\cdot}}% \addto\extrasngerman{\npdecimalsign{,}\npproductsign{\cdot}}% \addto\extrasaustrian{\npdecimalsign{,}\npproductsign{\cdot}}% \addto\extrasnaustrian{\npdecimalsign{,}\npproductsign{\cdot}}% \addto\extrasenglish{\npdecimalsign{.}\npproductsign{\cdot}}% \addto\extrasamerican{\npdecimalsign{.}\npproductsign{\times}}% % \end{macrocode} % Zeilenumbrüche zwischen Zeilen in abgesetzten Formeln erlauben: % \begin{macrocode} \allowdisplaybreaks % \end{macrocode} % Bug von |amsmath| beheben, der Labels auf Normalschrift zwingt: % \begin{macrocode} \def\maketag@@@#1{\hbox{\m@th#1}} % \end{macrocode} % % Komma im Mathemodus als Dezimalzeichen verwenden, von % Donald Arseneau (asnd@triumf.ca): % \begin{macrocode} \mathchardef\mathcomma\mathcode`\, \mathcode`\,=32768 % "8000 % \begingroup \catcode`\_=12 \catcode`\,=\active \@firstofone{% \endgroup % \edef\DC@char{\meaning_} \def\DC@parse#1 _{\def\DC@parse##1#1 ##2##3\delimiter{##2}} \expandafter\DC@parse\DC@char \toks@={\expandafter\DC@parse\meaning\DC@char} \edef\DC@test{9<2\the\toks@ \DC@char.\delimiter} % \DeclareRobustCommand\ActiveComma{\futurelet\DC@char\DC@docomma} \def\DC@docomma{% \ifnum\DC@test \mathord \fi \mathcomma } \let,\ActiveComma } % \end{macrocode} % % \section{Glossar, Abkürzungs- und Formelverzeichnisse}% % % Die Behandlung von solchen Verzeichnissen wurde aus dem % |nomencl|"=Paket, Version~v3.1a vom 13.\,12.~2000, % weiterentwickelt. % % Zunächst werden Befehle definiert, die das At"=Zeichen (@) in % Argumenten finden und verarbeiten können. % Da in der Klassendatei das @ eine besondere Bedeutung hat, muss dies % zunächst auf den Standardwert wie im Text umgeschaltet werden. % \begin{macrocode} \makeatother % \end{macrocode} % \begin{macro}{\ifhasat} % Dieser Befehl hat drei Argumente, wenn das erste ein @ enthält, wird % das zweite Argument ausgeführt, andernfalls das dritte. % \begin{macrocode} \newcommand*\ifhasat[1]{% \expandafter\csname @ifhasat\expandafter\endcsname#1@\end } % \end{macrocode} % Routine, die die Arbeit für \cs{ifhasat} erledigt. % \begin{macrocode} \expandafter\def\csname @ifhasat\endcsname#1@#2\end{% \ifx\relax#2\relax \expandafter\csname @secondoftwo\expandafter\endcsname \else \expandafter\csname @firstoftwo\expandafter\endcsname \fi } % \end{macrocode} % \end{macro} % \begin{macro}{\beforeat} % Ähnlich wie \cs{ifhasat}, übernimmt aber nur ein Argument und gibt % den Teil vor dem @ zurück. % \begin{macrocode} \newcommand*\beforeat[1]{% \expandafter\csname @beforeat\expandafter\endcsname#1@\end } \expandafter\def\csname @beforeat\endcsname#1@#2\end{#1} % \end{macrocode} % \end{macro} % \begin{macro}{\afterat} % Ähnlich wie \cs{ifhasat}, übernimmt aber nur ein Argument und gibt % den Teil nach dem @ zurück. % \begin{macrocode} \newcommand*\afterat[1]{% \ifhasat{#1}{\expandafter\csname hh@afterat\expandafter\endcsname#1\end}{}% } \expandafter\def\csname hh@afterat\endcsname#1@#2\end{#2} % \end{macrocode} % \end{macro} % Zurückschalten des @ auf den Wert innerhalb der Klassendefinition. % \begin{macrocode} \makeatletter % \end{macrocode} % Prefix vor Einträge, um die Sortierung korrekt zu gestalten. Siehe % dazu die Dokumentation zu |nomencl.sty|. Standardmäßig % ausgeschaltet, um |makeindex| zu ermöglichen, Zeichen einzufügen. % \begin{macrocode} \def\hhcls@gloprefix{} % \end{macrocode} % Lösche die von der Formatdatei erzeugten Glossar"=Befehle. % \begin{macrocode} \let\glossary=\@undefined \let\makeglossary=\@undefined % \end{macrocode} % \begin{macro}{\makeglossary} % Definiere einen Befehl \cs{makeglossary}, der einen neuen Typ % Glossar einrichtet.\sloppypar % Standardmäßig wird ein Glossar erzeugt, für den neue Einträge mit % \cs{glossary\{\meta{Eintrag}\}\{\meta{Erklärung}\}} generiert % werden. Dann werden die Dateien \cs{\meta{\cs{jobname}}.glo} und % \cs{jobname.gls} verwendet. % Wird ein optionales Argument mit \cs{makeglossary[\meta{Name}]} % übergeben, wird ein neuer Glossartyp eingerichtet, für den Einträge % mit dem Befehl % \cs{glossary\meta{Name}\{\meta{Eintrag}\}\{\meta{Erklärung}\}} % generiert werden. Es werden die Dateien % \cs{jobname.\meta{Name}} und % \cs{jobname.\meta{Name}s} verwendet. % \begin{macrocode} \newcommand*\makeglossary[1][\@empty]{% % \end{macrocode} % Speicher die Dateiendungen für die von \LaTeX und die von makeindex % erzeugten Dateien in den Makros \cs{hhcls@gloname} und % \cs{hhcls@\meta{Name}glsname}. % \begin{macrocode} \edef\hhcls@gloname{glo#1}% \expandafter\edef\csname hhcls@#1glsname\endcsname{gls#1}% % \end{macrocode} % Ein paar Ausgaben zur Information. % \begin{macrocode} \typeout{^^JNew glossary type \string\glossary#1 with file extensions `\hhcls@gloname' and `\csname hhcls@#1glsname\endcsname'.}% \typeout{Writing glossary file `\jobname.\hhcls@gloname'.^^J}% % \end{macrocode} % Am Ende des Übersetzungslaufs wird dem Anwender mitgeteilt, wie er % die Glossare erzeugen kann. % \begin{macrocode} \addglobalwarning{% \typeout{^^JGenerate glossary type \string\glossary#1 by using^^J% \space\space`makeindex -c -g -s bgteuglo.ist -o \jobname.\csname hhcls@#1glsname\endcsname\space -t \jobname.\hhcls@gloname lg \jobname.\hhcls@gloname'^^J% or^^J% \space\space`makeindex -c -g -s bgteuglochar.ist -o \jobname.\csname hhcls@#1glsname\endcsname\space -t \jobname.\hhcls@gloname lg \jobname.\hhcls@gloname'.^^J% Have a look to the log file `\jobname.\hhcls@gloname lg'^^J.}% }% % \end{macrocode} % Überprüfen, ob es den Befehl schon gibt, damit nicht doppelt % definiert wird. % \begin{macrocode} \@ifundefined{glossary#1}{% % \end{macrocode} % \begin{macro}{\glossary} % Definition des Befehls, der im Text verwendet wird, also % \cs{glossary} oder \cs{glossary\meta{Name}}. Dieser Befehl ist % zerbrechlich, darf also nicht in Bildunterschriften etc.\ verwendet % werden. Dies ist aber keine Einschränkung, da ja im Glossar keine % Verweise auf Seiten oder andere Dinge gemacht werden. % Wird als erstes Argument ein zusätzliches optionales Arguemnt % angegeben, wird der Inhalt dem Eintrag statt des normalerweise % verwendeten "`a"' vorangestellt, um die Sortierung zu % beeinflussen. Ebenso ist aber auch die Verwendung von |blah@fasel| % wie beim Index möglich. % \begin{macrocode} \expandafter\def\csname glossary#1\endcsname{% % \end{macrocode} % Den Ausgabekanal an \cs{@hhcls@glossary} weiterreichen. % \begin{macrocode} \def\hhcls@tmpoutputfile{\csname hhcls@glossaryfile#1\endcsname}% % \end{macrocode} % Die eigentliche Arbeit wird von \cs{@hhcls@glossary} übernommen. % \begin{macrocode} \protect\@hhcls@glossary }% % \end{macrocode} % \end{macro} % Festlegen und öffnen der Ausgabedatei. % \begin{macrocode} \expandafter\newwrite\csname hhcls@glossaryfile#1\endcsname \immediate\openout\csname hhcls@glossaryfile#1\endcsname=% \jobname.\hhcls@gloname% % \end{macrocode} % \begin{macro}{\glossarypreamble} % Definieren der Präambel des Glossars. Per Default wird ein neues, % unnummeriertes Kapitel mit der Überschrift % \cs{glossary\meta{Name}name} angefangen. Für den normalen Glossar % \cs{glossary} ist diese durch |babel.sty| definiert. Bei anderen % Glossartypen \cs{glossary\meta{Name}} muss der Anwender dies selbst % erledigen, indem er mit % \cs{newcommand}\cs{glossary\meta{Name}name\{\meta{Titel}\}} einen % Befehl erzeugt. % Der Anwender kann auch den Befehl \cs{glossary\meta{Name}preamble} % umdefinieren, um beispielsweise nur einen Abschnitt zu beginnen oder % zusätzlichen Text zu platzieren. % \begin{macrocode} \expandafter\def\csname glossary#1preamble\endcsname{% \@ifundefined{glossary#1name}{% % \end{macrocode} % Wenn \cs{glossary\meta{Name}name} nicht definiert ist, einen Fehler % ausgeben und \emph{\bfseries ????} als Titel verwenden. % \begin{macrocode} \ClassError{bgteubner}{No title for glossary type `#1' defined}{You have to define a title for the glossary type by doing^^J% \space\space\space\space% \string\newcommand\string\glossary #1name{}.}% \addchap{\itshape ????}% }{% % \end{macrocode} % Titel als Kapitelnamen ausgeben. % \begin{macrocode} \addchap{\csname glossary#1name\endcsname}}% }% % \end{macrocode} % \end{macro} % \begin{macro}{\printglossary} % Befehl \cs{printglossary\meta{Name}}, der ein automatisch erzeugtes % Glossar ausgibt. Wird ein optionales Argument angegeben, verändert % sich die Spaltenbreite der Einträge. % \begin{macrocode} \expandafter\def\csname printglossary#1\endcsname{% \@ifnextchar[% {\csname @printglossary#1\endcsname}% {\csname @printglossary#1\endcsname[\glossarylabelwidth]}% }% % \end{macrocode} % \end{macro} % \begin{macro}{\@printglossary} % Der interne Befehl, der von \cs{printglossary\meta{Name}} aufgerufen % wird. % \begin{macrocode} \expandafter\def\csname @printglossary#1\endcsname[##1]{% \begingroup % \end{macrocode} % Breite aus dem Argument setzen. % \begin{macrocode} \setlength{\glossarylabelwidth}{##1}% % \end{macrocode} % Preambel umkopieren. % \begin{macrocode} \def\hhcls@glossarypreamble{\csname glossary#1preamble\endcsname}% % \end{macrocode} % Die erzeugte Datei mit der enthaltenen |theglossary|"=Umgebung laden. % \begin{macrocode} \@input@{\jobname.\csname hhcls@#1glsname\endcsname}% \endgroup }% % \end{macrocode} % \end{macro} % \begin{macrocode} }{% % \end{macrocode} % Ist der Glossartyp schon definiert, eine Fehlermeldung ausgeben. % \begin{macrocode} \ClassError{bgteubner}{Glossary type `#1' already defined}{You have tried to define the glossary type `#1' twice}}% } \@onlypreamble\makeglossary % \end{macrocode} % \end{macro} % Defaulteinstellung für diejenigen, die nicht mit automatisch % erzeugten Verzeichnissen arbeiten und direkt in den Quelltext eine % |theglossary|"=Umgebung schreiben. % \begin{macrocode} \def\hhcls@glossarypreamble{\addchap{\glossaryname}}% % \end{macrocode} % Ein Befehl aus dem |nomencl|"=Paket, bei dem ich nicht weiß, was er % genau tut. Behalte ich lieber, wie es ist. % \begin{macrocode} \def\hhcls@glo@verb{\expandafter\strip@prefix\meaning} % \end{macrocode} % Dieser Befehl stellt fest, ob ein Präfix zur Sortierung angegeben % wurde oder nicht. % \begin{macrocode} \def\@hhcls@glossary{% \@bsphack \begingroup \@sanitize \@ifnextchar[% {\@@@hhcls@glossary}{\@@@hhcls@glossary[\hhcls@gloprefix]}% }% % \end{macrocode} % \begin{macro}{\@@@hhcls@glossary} % Das eigentliche Schreiben des Eintrags in die Ausgabedatei. % \begin{macrocode} \def\@@@hhcls@glossary[#1]#2#3{% \def\@tempa{#2}\def\@tempb{#3}% % \end{macrocode} % Wenn das Argument ein @ enthält, eine andere Behandlung verwenden. % \begin{macrocode} \ifhasat{#2}{% % \end{macrocode} % Ist ein @ enthalten, den Eintrag fast unverändert in die Ausgabedatei % schreiben. Es wird nur der Präfix vorgeschaltet und der Teil nach % dem @ in geschweifte Klammern gesetzt, um Probleme zu verhindern, % wenn eine eckige Klammer enthalten ist. % \begin{macrocode} \protected@write\hhcls@tmpoutputfile{}% {\string\glossaryentry{#1\beforeat{#2}@{\afterat{#2}}] % \hhcls@glo@verb\@tempb \@tempb |glossarypage}{\thepage}% }% }{% % \end{macrocode} % Ist kein @ enthalten, wird der Eintrag verdoppelt und mit @ in die % Datei geschrieben. % \begin{macrocode} \protected@write\hhcls@tmpoutputfile{}% {\string\glossaryentry{% #1\@tempa @{\@tempa}] \@tempb % #1\hhcls@glo@verb\@tempa @{\hhcls@glo@verb\@tempa}] % \hhcls@glo@verb\@tempb |glossarypage}{\thepage}% }% }% \endgroup \@esphack} % \end{macrocode} % \end{macro} % Breite der Einträge in den Verzeichnissen definieren. % \begin{macrocode} \newlength{\glossarylabelwidth} \setlength{\glossarylabelwidth}{3em} % \end{macrocode} % Einträge linksbündig. % \begin{macrocode} \def\glossarylabel#1{#1\hfil} % \end{macrocode} % \begin{environment}{theglossary} % Die Umgebung, die die Ausgabe der Verzeichnisse vornimmt. % Im optionalen Argument kann der Defaultwert der Präambel % überschrieben werden. Das ist nützlich, wenn man |theglossary| % direkt verwendet. % \begin{macrocode} \newenvironment{theglossary}[1][\@empty]{% \def\tuetel{#1}% \def\tueteluet{\@empty}% % \end{macrocode} % Verzeichnisse zweispaltig setzen. % \begin{macrocode} \begin{multicols}{2}[% % \end{macrocode} % Schriftgrößen umstellen. % \begin{macrocode} \let\size@section\normalsize \let\size@subsection\small \let\size@subsubsection\small \small % \end{macrocode} % Präambel ausgeben. % \begin{macrocode} \ifx\tuetel\tueteluet \hhcls@glossarypreamble \else #1% \fi ]% % \end{macrocode} % Layout innerhalb der Liste. % \begin{macrocode} \setlength{\columnsep}{20pt}% \listsfont % \end{macrocode} % Liste beginnen. Falls ein \cs{item} ohne Argument in eckigen % Klammern verwendet wird, einen Fehler ausgeben, denn das macht hier % wirklich keinen Sinn. % \begin{macrocode} \begin{list}{\ClassError{bgteubner}{No symbol given for \string\item}{In the `theglossary' environment, you have to specify a symbol^^J% for each \string\item\space using \string\item[], e.g.^^J% \space\space\space\space \string\item[{$\string\sigma_{\string\mathrm{max}}$}] Maximal stress^^J% \space\space\space\space \string\item[DIN] Deutsches Institut f"ur Normung}}{% \setlength{\labelwidth}{\glossarylabelwidth}% \leftmargin\labelwidth \advance\leftmargin by \labelsep \let\makelabel\glossarylabel% % \end{macrocode} % Absatzabstand nicht dehnbar, um nicht die Zeilen zu weit auseinander % zu ziehen. % \begin{macrocode} \parsep\z@% \parskip\z@% % \parsep\z@ \@plus\p@% % \parskip\z@ \@plus\p@% \setlength{\itemsep}{0pt}% \newif\ifhhclsiscorrectglossary \RaggedRight }% }{% % \end{macrocode} % Ende der Liste. % \begin{macrocode} % \ifhhclsiscorrectglossary % \else % \ClassError{bgteubner}{You have not used the correct glossary % style\MessageBreak % `bgteuglo.ist' or `bgteuglochar.ist' for the class % `bgteubner.cls'}{% % You have to use one of the style `bgteuglo.ist' or % `bgteuglochar.ist'.^^J% % Have a look to the file \jobname.log to learn which command % line to use.}% % \fi \end{list}% \end{multicols}% \ignorespacesafterend \noindentnextpar\par } % \end{macrocode} % \end{environment} % \begin{macro}{\glossarypage} % Befehl, der die Seitenzahlen in den theoremartigen Verzeichnissen % ignoriert. % \begin{macrocode} \def\glossarypage#1{} \def\glossarypagedelim{} \def\glossarypagerange{} % \end{macrocode} % \end{macro} % \begin{macro}{\glossarynewchar} % Zeichen für einen neuen Buchstaben im Glossar: % \begin{macrocode} \newcommand\glossarynewchar[1]{% \indexspace \item [\textbf{#1}]\strut \@nobreaktrue\nopagebreak } % \end{macrocode} % \end{macro} % % \section{Anderer Kram} % % Testen, ob beidseitig (zu Debug"=Zwecken): % \begin{macrocode} \if@twoside \else \ClassError{bgteubner}{One-side format chosen}{You may not print a book with one-side format.} \fi % \end{macrocode} % \changes{1.14}{2003/12/17}{New command \cs{GetFileInfo} (from % \texttt{url.sty})}% % \begin{macro}{\GetFileInfo} % Get file version and date (from |doc.sty|). % \begin{macrocode} \providecommand*\GetFileInfo[1]{% \def\filename{#1}% \def\@tempb##1 ##2 ##3\relax##4\relax{% \def\filedate{##1}% \def\fileversion{##2}% \def\fileinfo{##3}}% \edef\@tempa{\csname ver@#1\endcsname}% \expandafter\@tempb\@tempa\relax? ? \relax\relax} % \end{macrocode} % \end{macro} % \begin{macro}{\version} % Überprüfung, ob das Dokument mit der geforderten Version übersetzt wird: % \begin{macrocode} \newcommand*\version[1]{% \begingroup \GetFileInfo{bgteubner.cls}% \ifx\hhcls@tmp\fileversion \typeout{^^JVersion of the class `bgteubner.cls' (\fileversion) is identical^^J% with the wanted version.^^J}% \else \typeout{^^JVersion of the class `bgteubner.cls' (\fileversion) differs from wanted version (#1).^^J}% \addglobalwarning{\ClassWarningNoLine{bgteubner}{The version, wanted in the document (#1),\MessageBreak differs from the used version of the `bgteubner.cls'\MessageBreak class (\fileversion)}}% \fi \endgroup } % \end{macrocode} % \end{macro} % \begin{macro}{\frontmatter} % \changes{1.01}{2003/09/16}{Römische Seitenzahlen für European % Computer Modern in Kapitälchen statt Versalien}% % Buch fängt mit Seite~5 an: % \begin{macrocode} \newcommand\hhcls@frontmatter{} \let\hhcls@frontmatter=\frontmatter \renewcommand\frontmatter[1][5]{% \hhcls@frontmatter \ifhhcls@times \pagenumbering{Roman}% \else \renewcommand\thepage{\textsc{\roman{page}}}% \fi \setcounter{page}{5}% } % \end{macrocode} % \end{macro} % \begin{macro}{\backmatter} % \cs{backmatter} ignorieren. % \begin{macrocode} \renewcommand*\backmatter{\ClassWarning{bgteubner}{The \string\backmatter\space command is ignored}} % \end{macrocode} % \end{macro} % Dinge, die im Entwurfsmodus getan werden: % \begin{macrocode} \ifhhcls@entwurf % \end{macrocode} % Warnung am Ende, dass man nicht vergisst, den Entwurfsmodus % auszuschalten: % \begin{macrocode} \addglobalwarning{% \ClassWarningNoLine{bgteubner}{Leave out the class option \MessageBreak for the final version}% } % \end{macrocode} % \begin{macro}{\now} % Zeit berechnen (aus time.sty): % \begin{macrocode} \newcommand*\now{{% \def\Time{3}% \def\Hour{4}% \def\Minute{5}% \count\Time=\time\relax \count\Hour=\count\Time\relax \divide\count\Hour by 60\relax%%hours past midnight \count\Minute=\count\Hour\relax \multiply\count\Minute by -60\relax \advance\count\Minute by \count\Time\relax %%minutes past hour \the\count\Hour\relax:% \ifnum\count\Minute<10 0% \fi \the\count\Minute\relax }} % \end{macrocode} % \end{macro} % Fußzeilen anpassen: % \begin{macrocode} \ifoot[{\rmfamily \"Ubersetzt: \today, \now}]{% {\rmfamily \"Ubersetzt: \today, \now}} % \end{macrocode} % Warnung bei übervollen Zeilen anschalten: % \begin{macrocode} \overfullrule5mm \fi % \end{macrocode} % % \begin{macro}{\noindentnextpar} % Dieser Befehl löscht im nächsten Absatz den Absatzeinzug: % \begin{macrocode} \newcommand*\noindentnextpar{% \global\everypar{% % \end{macrocode} % Einzug auf Null setzen: % \begin{macrocode} \setbox0\lastbox % \end{macrocode} % Für die folgenden Absätze diese Einstellung wieder löschen: % \begin{macrocode} \global\everypar{}% }% } % \end{macrocode} % \end{macro} % % \begin{macro}{\bigskip} % Befehl |\bigskip| für Abschnittswechsel so ändern, dass danach kein % Einzug gesetzt wird. Außerdem den Abstand anpassen: % \begin{macrocode} \newcommand\hhcls@bigskip{} \let\hhcls@bigskip=\bigskip \renewcommand\bigskip{\par\hhcls@bigskip\noindentnextpar} \setlength{\bigskipamount}{18.0pt plus 6.0pt minus 6.0pt} % \end{macrocode} % \end{macro} % \begin{macro}{\medskip} % Befehl |\medskip| für Abschnittswechsel so ändern, dass danach kein % Einzug gesetzt wird. Außerdem den Abstand anpassen: % \begin{macrocode} \newcommand*\hhcls@medskip{} \let\hhcls@medskip\medskip \renewcommand{\medskip}{\par\hhcls@medskip\noindentnextpar} \setlength{\medskipamount}{9.0pt plus 3.0pt minus 3.0pt} % \end{macrocode} % \end{macro} % \begin{macro}{\smallskip} % Befehl |\smallskip| für Abschnittswechsel so ändern, dass danach kein % Einzug gesetzt wird. Außerdem den Abstand anpassen: % \begin{macrocode} \newcommand*\hhcls@smallskip{} \let\hhcls@smallskip\smallskip \renewcommand{\smallskip}{\par\hhcls@smallskip\noindentnextpar} \setlength{\smallskipamount}{4.5pt plus 1.5pt minus 1.5pt} % \end{macrocode} % \end{macro} % \begin{macro}{\gliederungsfehler} % Fehlerausgaben in den Umgebungen, wenn Gliederungsbefehle verboten sind: % \begin{macrocode} \newcommand*\gliederungsfehler[1]{% \renewcommand{\part}{\ClassError{bgteubner}{\string\part\space used inside #1 environment}{% Inside the #1 environment,^^J\string\part, \string\addpart, \string\chapter, \string\addchap, \string\section\space, and \string\subsection\space ^^Jmay not be used. ^^J\string\subsubsection\space and \string\paragraph\space are allowed.}}% \renewcommand{\addpart}{\ClassError{bgteubner}{\string\addpart\space used inside #1 environment}{% Inside the #1 environment,^^J\string\part, \string\addpart, \string\chapter, \string\addchap, \string\section\space, and \string\subsection\space ^^Jmay not be used. ^^J\string\subsubsection\space and \string\paragraph\space are allowed.}}% \renewcommand{\chapter}{\ClassError{bgteubner}{\string\chapter\space used inside #1 environment}{% Inside the #1 environment,^^J\string\part, \string\addpart, \string\chapter, \string\addchap, \string\section\space, and \string\subsection\space ^^Jmay not be used. ^^J\string\subsubsection\space and \string\paragraph\space are allowed.}}% \renewcommand{\addchap}{\ClassError{bgteubner}{\string\addchap\space used inside #1 environment}{% Inside the #1 environment,^^J\string\part, \string\addpart, \string\chapter, \string\addchap, \string\section\space, and \string\subsection\space ^^Jmay not be used. ^^J\string\subsubsection\space and \string\paragraph\space are allowed.}}% \renewcommand{\section}{\ClassError{bgteubner}{\string\section\space used inside #1 environment}{% Inside the #1 environment,^^J\string\part, \string\addpart, \string\chapter, \string\addchap, \string\section\space, and \string\subsection\space ^^Jmay not be used. ^^J\string\subsubsection\space and \string\paragraph\space are allowed.}}% \renewcommand{\subsection}{\ClassError{bgteubner}{\string\subsection\space used inside #1 environment}{% Inside the #1 environment,^^J\string\part, \string\addpart, \string\chapter, \string\addchap, \string\section\space, and \string\subsection\space ^^Jmay not be used. ^^J\string\subsubsection\space and \string\paragraph\space are allowed.}}% } % \end{macrocode} % \end{macro} % \begin{environment}{hhcls@quotation} % Eine eigene quotation-Umgebung für interne Belange: % \begin{macrocode} \newlength{\hhcls@leftmargin}% \newlength{\hhcls@rightmargin}% \newenvironment{hhcls@quotation}[3][\@empty]{% \edef\hhcls@tmpa{#1}% \ifx\hhcls@tmpa\@empty \setlength{\hhcls@rightmargin}{#2}% \else \setlength{\hhcls@rightmargin}{#1}% \fi \setlength{\hhcls@leftmargin}{#2}% \begin{list}{}{% \listparindent\parindent% \itemindent0em% \leftmargin\hhcls@leftmargin% \rightmargin\hhcls@rightmargin \parsep\z@ \@plus\p@}% \begin{spacing}{#3}% \item\relax }{% % \end{macrocode} % \changes{1.10}{2003/10/30}{Abstände am Ende der Umgebung korrigiert}% % \begin{macrocode} \end{spacing}% \removelastskip \end{list}% }% % \end{macrocode} % \end{environment} % \begin{environment}{quotation} % \changes{1.10}{2003/10/30}{\texttt{quotation}"=Umgebung angepasst}% % \changes{1.20}{2004/03/07}{\texttt{quotation} environment with % correct margins}% % |quotation|"=Umgebung ohne Einrückung im ersten Absatz, größerer % Absatzeinzug. % \begin{macrocode} \renewenvironment{quotation}{% \list{}{% \listparindent \parindent \itemindent \z@ \leftmargin \hhcls@leftmargin \rightmargin \hhcls@rightmargin \parsep \z@ \@plus\p@}% \item\relax }{% \endlist } % \end{macrocode} % \end{environment} % \begin{environment}{quote} % \changes{1.20}{2004/03/07}{\texttt{quote} environment with % correct margins}% % |quote| environment with correct margins in |important| environment. % \begin{macrocode} \renewenvironment{quote}{% \list{}{% \leftmargin \hhcls@leftmargin \rightmargin \hhcls@rightmargin }% \item\relax }{% \endlist } % \end{macrocode} % \end{environment} % \begin{macro}{\setmargin} % Befehl zum Setzen von Einrücken bei den vielen Umgebungen: % \begin{macrocode} \newcommand*\setmargin[1]{% \edef\@setmarginname{#1}% \@setmargin} \newcommand*\@setmargin[2][\@empty]{% \edef\hhcls@tmp{#1}% \ifx\hhcls@tmp\@empty \setlength{% \expandafter\csname\@setmarginname @lmargin\endcsname}{#2}% \else \setlength{% \expandafter\csname\@setmarginname @lmargin\endcsname}{#1}% \fi \setlength{% \expandafter\csname\@setmarginname @rmargin\endcsname}{#2}% } % \end{macrocode} % \end{macro} % \begin{macro}{\leftmargin} % Einrückung aller eingerückten Umgebungen. % \changes{1.10}{2003/10/30}{Einrückung aller Umgebungen angepasst}% % \changes{1.09}{2003/10/28}{Einrückung aller Umgebungen erneut % angepasst}% % \begin{macrocode} \setlength{\leftmargini}{1.75\parindent} \setlength{\leftmargin}{\leftmargini} \setlength{\hhcls@leftmargin}{\leftmargini} \setlength{\labelwidth}{\leftmargini} % \end{macrocode} % \end{macro} % % \section{Advanced"=Umgebung} % % Einzüge, standardmäßig links und rechts auf |\leftmargin|: % \begin{macrocode} \newlength{\advanced@lmargin} \newlength{\advanced@rmargin} \setmargin{advanced}{\leftmargini} % \end{macrocode} % \begin{macro}{\advancedfont} % Schriftart innerhalb der advanced"=Umgebung: % \begin{macrocode} \newcommand\advancedfont{\footnotesize} % \end{macrocode} % \end{macro} % \begin{macro}{\advancedspacing} % Zeilenabstand innerhalb advanced"=Umgebung: % \begin{macrocode} \ifhhcls@times \newcommand\advancedspacing{1.18} \else \newcommand\advancedspacing{1.12} \fi % \end{macrocode} % \end{macro} % \begin{macro}{\advancednamefont} % \begin{macro}{\noadvancedname} % \begin{macro}{\advancedname} % Name der Umgebung, falls nicht definiert, wird nichts angezeigt: % \begin{macrocode} \newcommand*\advancednamefont{\bfseries% \iftensor@bold\else\mathversion{bold}\fi} \newcommand*\noadvancedname{\gdef\advancedname{}} \noadvancedname % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \begin{environment}{advanced} % Definition der Advanced"=Umgebung: % \begin{macrocode} \newenvironment{advanced}{% % \end{macrocode} % Kapitel"= und Abschnittsüberschriften bis |\subsection| verbieten: % \begin{macrocode} \gliederungsfehler{advanced}% % \end{macrocode} % Schriftarten für kleine Abschnittsüberschriften festlegen: % \begin{macrocode} \let\size@subsubsection\advancedfont \let\size@paragraph\advancedfont \let\size@subparagraph\advancedfont % \end{macrocode} % Die eigentliche Umgebung starten: % \begin{macrocode} % \bigskip \begin{hhcls@quotation}[\advanced@rmargin]{\advanced@lmargin}{% \advancedspacing}% % \end{macrocode} % Schriftart in der Advanced"=Umgebung % \begin{macrocode} \advancedfont % \end{macrocode} % Falls vorhanden, die Inline"=Überschrift anzeigen: % \begin{macrocode} \ifx\advancedname\empty \else {\advancednamefont\advancedname}~% \fi % \end{macrocode} % Leerzeichen am Anfang ignorieren: % \begin{macrocode} \ignorespaces }{% % \end{macrocode} % Ende der Umgebung: % \begin{macrocode} \end{hhcls@quotation}% % \bigskip % \end{macrocode} % Leerzeichen ignorieren: % \begin{macrocode} \ignorespacesafterend % \end{macrocode} % Nächsten Absatz nicht einrücken. Damit das funktioniert, muss die % |hhcls@quotation|"=Umgebung zwingend mit % \cs{begin\{hhcls@quotation\}}\ldots\cs{end\{hhcls@quotation\}} % aufgerufen werden, da sonst die Änderung lokal bleibt. % \begin{macrocode} \noindentnextpar\par } % \end{macrocode} % \end{environment} % % \section{Beliebige theoremartige Umgebungen} % % \changes{1.10}{2003/10/30}{Schriftgröße in theoremartigen Umgebungen % einstellbar}% % Sollen Theoreme kleine oder normale Schrift haben? % \begin{macrocode} \ifhhcls@theoremsmall % \end{macrocode} % \begin{macro}{\theoremfont} % Schriftgröße in Theoremen, einheitlich: % \begin{macrocode} \def\theoremfont{\small} % \end{macrocode} % \end{macro} % \begin{macro}{\theoremspacing} % Zeilenabstand innerhalb der Theoreme, einheitlich: % \begin{macrocode} \ifhhcls@times \newcommand\theoremspacing{1.12} \else \newcommand\theoremspacing{1.06} \fi \else % \end{macrocode} % \end{macro} % \begin{macro}{\theoremfont} % Schriftgröße in Theoremen, einheitlich: % \begin{macrocode} \def\theoremfont{\normalsize} % \end{macrocode} % \end{macro} % \begin{macro}{\theoremspacing} % Zeilenabstand innerhalb der Theoreme, einheitlich: % \begin{macrocode} \newcommand\theoremspacing{1.0} \fi % \end{macrocode} % \end{macro} % Einzug der Theoreme links und rechts, einheitlich: % \changes{1.13}{2003/12/16}{Use variable margins for theorem-like % environments}% % \begin{macrocode} \newlength{\theorem@lmargin} \newlength{\theorem@rmargin} % \end{macrocode} % \changes{1.10}{2003/10/30}{Einrückung der Theoremüberschriften % automatisch erhöhen, fall nötig}% % Einrückung der Theoremsüberschrift. % Die unterschiedlichen Maße sind nötig, um die Einrückung automatisch % erhöhen zu können, falls eine Überschrift zu lang ist. % \cs{theorem@indent@min} ist das Minimalmaß und der Default, % \cs{theorem@indent} ist die aktuell verwendete Länge, und % \cs{theorem@indent@max} ist die maximal auftretende Breite. % \begin{macrocode} \newlength{\theorem@indent@min} \setlength{\theorem@indent@min}{7.8398em} \newlength{\theorem@indent} \setlength{\theorem@indent}{\theorem@indent@min} \newlength{\theorem@indent@max} % \end{macrocode} % Nach dem Übersetzungslauf wird kontrolliert, ob eine % Theoremsüberschrift zu lang war, so dass beim nächsten Lauf die % korrekte Länge verwendet werden kann. % \begin{macrocode} \AtEndDocument{% % \end{macrocode} % Die maximal auftretende Breite ist größer als das definierte % Minimum. % \begin{macrocode} \ifdim\theorem@indent@max>\theorem@indent@min % \end{macrocode} % Im nächsten Lauf muss dann die aktuell größte Breite verwendet % werden. % \begin{macrocode} \immediate\write\@auxout{% \string\global\string\theorem@indent=\the\theorem@indent@max}% % \end{macrocode} % Die größte Breite ist größer als der aktuell verwendete Wert. % Die Breite hat sich also erhöht $\longrightarrow$ Warnung. % \begin{macrocode} \ifdim\theorem@indent@max>\theorem@indent \addglobalwarning{% \ClassWarningNoLine{bgteubner}{Indentation for theorem titles has been increased.\MessageBreak Rerun to adjust the indentation}% }% \else % \end{macrocode} % Die größte Breite ist kleiner als der aktuell verwendete Wert. % Die Breite hat sich also verringert $\longrightarrow$ Warnung. % \begin{macrocode} \ifdim\theorem@indent@max<\theorem@indent \addglobalwarning{% \ClassWarningNoLine{bgteubner}{Indentation for theorem titles has been decreased.\MessageBreak Rerun to adjust the indentation}% }% \fi \fi \else % \end{macrocode} % Die größte Breite ist kleiner als das Minimum. % Zusätzlich ist der aktuell verwendete Wert aber noch größer. % Die Breite hat sich also verringert $\longrightarrow$ Warnung. % \begin{macrocode} \ifdim\theorem@indent>\theorem@indent@min \addglobalwarning{% \ClassWarningNoLine{bgteubner}{Indentation for theorem titles has been decreased.\MessageBreak Rerun to adjust the indentation}% }% \fi \fi } % \end{macrocode} % \begin{macro}{\float@addtolists} % \begin{macro}{\hhcls@theoremlist} % Dieser Befehl wird vom \cs{chapter}"=Befehl aufgerufen, wenn % ein neues Kapitel begonnen wird. % Dadurch soll in allen Verzeichnissen der Theoremumgebungen ein % Zwischenraum eingefügt werden. % Der Umweg mit \cs{hhcls@theoremskip} wird gewählt, weil % \cs{float@addtolists} ein Argument besitzt, die Definition der Liste % \cs{hhcls@theoremlist} nur ohne Argumente funktioniert. % \begin{macrocode} \newcommand\float@addtolists[1]{% \def\hhcls@theoremskip{#1}% \hhcls@theoremlist} \newcommand\hhcls@theoremlist{} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\hhcls@theoremzahl} % Funktion, die am Ende die Anzahl des Auftretens der einzelnen % Theorem"=Umgebungen in die PDF"=Datei schreibt: % \begin{macrocode} \newcommand\hhcls@theoremanzahl{} \newsavebox{\hhcls@@@theoremtitlewidth} % \end{macrocode} % \end{macro} % Boolean, ob Theoremumgebung mit Sternvariante aufgerufen wird. % \begin{macrocode} \newif\iftheorem@starvariant % \end{macrocode} % \begin{macro}{\newtheorem} % Befehl zum Einrichten beliebiger Theoreme, z.\,B.\ von Beispielen, % Sätzen usw. Erster Parameter: Name der Umgebung; zweiter Parameter: % Gedruckter Präfix zur Nummer. % \begin{macrocode} \def\newtheorem#1#2{% % Name des Theorems in der Überschrift: % \begin{macrocode} \expandafter\def\csname theorem@#1name\endcsname{#2}% % \end{macrocode} % \changes{1.13}{2003/12/16}{Make delimiter for theorems configurable}% % Postfix (colon) after theorem name and number: % \begin{macrocode} \expandafter\def\csname theorem@#1postfix\endcsname{:}% % \end{macrocode} % Set margins. % \begin{macrocode} \expandafter\newlength\expandafter{\csname theorem@#1@lmargin\endcsname}% \expandafter\newlength\expandafter{\csname theorem@#1@rmargin\endcsname}% \setmargin{theorem@#1}{\leftmargini}% % \end{macrocode} % Zähler dieser Theoremart: % \begin{macrocode} \newcounter{theorem@#1}[chapter]% % \end{macrocode} % Zählen der Anzahl des Auftretens: % \begin{macrocode} \newcounter{theorem@#1zahl}% % \end{macrocode} % Zählen der Anzahl des Auftretens: % \begin{macrocode} \g@addto@macro\hhcls@theoremanzahl{% ; #2: \csname thetheorem@#1zahl\endcsname}% % \end{macrocode} % Labelformat: "`Kapitel.Theorem"': % \begin{macrocode} \expandafter\def\csname thetheorem@#1\endcsname{% \thechapter.\@arabic\csname c@theorem@#1\endcsname}% % \end{macrocode} % Befehl für die Theoremüberschrift: % \begin{macrocode} \expandafter\def\csname theorem@#1title\endcsname##1{% % \end{macrocode} % Zähler anpassen. % \begin{macrocode} \iftheorem@starvariant \else \refstepcounter{theorem@#1}% \fi % \end{macrocode} % Überschrift erzeugen. % \begin{macrocode} {% \raggedsection\normalfont\normalsize\sectfont\nobreak % \end{macrocode} % \changes{1.13}{2003/12/16}{Make delimiter for theorems configurable}% % Den Anfang der Überschrift in eine Box speichern. % \begin{macrocode} \savebox{\hhcls@@@theoremtitlewidth}{% \csname theorem@#1name\endcsname% \iftheorem@starvariant \else ~\csname thetheorem@#1\endcsname \fi \csname theorem@#1postfix\endcsname~}% % \end{macrocode} % Prüfen, ob die aktuelle Überschrift breiter als alle vorherigen ist. % \begin{macrocode} \settowidth{\@tempdima}{\usebox{\hhcls@@@theoremtitlewidth}}% \ifdim\@tempdima>\theorem@indent@max \global\theorem@indent@max=\@tempdima \fi % \end{macrocode} % Überschrift ausgeben. % \changes{1.20}{2004/03/07}{Avoid page break after title in % theorem-like enverionment}% % \changes{1.30}{2004/04/10}{Improve spacing after title of % theorem-like environment}% % \begin{macrocode} \normalfont\normalsize\sectfont \makebox[\theorem@indent][l]{\usebox{\hhcls@@@theoremtitlewidth}}% \setlength\@tempdima{1pt}% \settoheight\@tempdimb{D}% \addtolength\@tempdima{\@tempdimb}% \settoheight\@tempdimb{\theoremfont D}% \addtolength\@tempdima{-\@tempdimb}% ##1\nobreak\par\nobreak\vspace{\@tempdima}\nobreak}\nobreak \@afterheading}% % \end{macrocode} % Dieser Befehl wird von \cs{chapter} aufgerufen, um in der % Liste der Theoreme einen Platz einzufügen. % \begin{macrocode} \g@addto@macro\hhcls@theoremlist{% \addtocontents{#1}{\hhcls@theoremskip}% }% % \end{macrocode} % Den Startbefehl der Sternvariante (unnummeriert) definieren: % \begin{macrocode} \expandafter\def\csname #1*\endcsname{% % \end{macrocode} % Schalter anschalten. % \begin{macrocode} \theorem@starvarianttrue % \end{macrocode} % Jetzt die Theorem"=Umgebung aufrufen: % \begin{macrocode} \csname #1\endcsname }% % \end{macrocode} % Ende der Sternvariante: % \begin{macrocode} \expandafter\def\csname end#1*\endcsname{\csname end#1\endcsname}% % \end{macrocode} % Den Startbefehl der eigentlichen Umgebung definieren: % \begin{macrocode} \expandafter\def\csname #1\endcsname{% \@ifnextchar[{% \csname hhcls@@#1\endcsname }{% \csname hhcls@@#1\endcsname[\empty]% }}% % \end{macrocode} % Initialisierung durchführen: % \begin{macrocode} \expandafter\def\csname hhcls@@#1\endcsname[##1]{% % \end{macrocode} % \changes{1.13}{2003/12/16}{Use variable margins for theorem-like % environments}% % Set margins. % \begin{macrocode} \setlength{\theorem@lmargin}{\csname theorem@#1@lmargin\endcsname}% \setlength{\theorem@rmargin}{\csname theorem@#1@rmargin\endcsname}% % \end{macrocode} % \changes{1.20}{2004/03/07}{Reintroduce lost adaption of margins for % theorem-like environments inside important environment}% % Set margins. % \begin{macrocode} \ifhhcls@inimportant \addtolengthminzero{\theorem@lmargin}{-\fboxsep}% \addtolengthminzero{\theorem@rmargin}{-\fboxsep}% \addtolengthminzero{\theorem@indent}{-\fboxsep}% \fi % \end{macrocode} % Zur Sicherheit einen Absatz (z.\,B.\ damit im vorherigen Absatz die % Zeilenabstände korrekt bleiben). % \begin{macrocode} \par % \end{macrocode} % Die eigentliche Umgebung starten: % \begin{macrocode} \begin{list}{}{% % \end{macrocode} % \changes{1.10}{2003/10/30}{Linker Abstand eingestellt}% % Abstände einstellen. % \begin{macrocode} \topsep 8\p@ \@plus2\p@ \@minus4\p@ \itemindent-\theorem@lmargin \listparindent\parindent \leftmargin\theorem@lmargin \rightmargin\theorem@rmargin \parsep\z@ \@plus\p@ % \end{macrocode} % Anzahl zählen: % \begin{macrocode} \stepcounter{theorem@#1zahl}% % \end{macrocode} % Gliederungsbefehle ausschalten % \begin{macrocode} \gliederungsfehler{#1}% % \end{macrocode} % Schriftart einstellen: % \begin{macrocode} \let\size@subsubsection\theoremfont \let\size@paragraph\theoremfont \let\size@subparagraph\theoremfont % \end{macrocode} % Schriftart: % \begin{macrocode} \theoremfont }% % \end{macrocode} % Zeilenabstand anpassen. % \begin{macrocode} \begin{spacing}{\theoremspacing}% % \end{macrocode} % Eine List"=Umgebung fängt immer mit \cs{item} an. % \begin{macrocode} \item\relax % \end{macrocode} % Überschrift. % \begin{macrocode} \csname theorem@#1title\endcsname{##1}\nobreak% % \end{macrocode} % Eintrag in das Verzeichnis der Sätze schreiben (aber nur, wenn % das Theorem benannt ist): % \begin{macrocode} \edef\hhtmp{##1}% \ifx\hhtmp\empty \else \iftheorem@starvariant \addcontentsline{#1}{#1}{##1}% \else \addcontentsline{#1}{#1}{% \numberline {\csname thetheorem@#1\endcsname}##1}% \fi \fi % \end{macrocode} % Leerzeichen am Anfang ignorieren: % \begin{macrocode} \nobreak\ignorespaces }% % \end{macrocode} % Ende der Umgebung: % \begin{macrocode} \expandafter\def\csname end#1\endcsname{% % \end{macrocode} % Ende der Umgebung: % \changes{1.10}{2003/10/30}{Abstände am Ende der Umgebung korrigiert}% % \begin{macrocode} \end{spacing}% \removelastskip \end{list}% % \end{macrocode} % Leerzeichen ignorieren: % \begin{macrocode} \ignorespacesafterend % \end{macrocode} % Nächsten Absatz nicht einrücken: % \begin{macrocode} \noindentnextpar \par }% % \end{macrocode} % Erzeugen einer Liste der Satze: % \begin{macrocode} \expandafter\def\csname l@#1\endcsname{\@dottedtocline{1}{0em}{2.9em}}% % \end{macrocode} % \begin{macrocode} \addglobalwarning{% \typeout{#2: \csname thetheorem@#1zahl\endcsname\space times used}% } % \end{macrocode} % \begin{macrocode} } % \end{macrocode} % \end{macro} % \begin{macro}{\listoftheorems} % \begin{macrocode} \newcommand*\listoftheorems[2]{% \begingroup% \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \float@listhead{#2}% \small \setlength{\parskip}{\z@}% \@starttoc{#1}% \if@restonecol\twocolumn\fi \endgroup } % \end{macrocode} % \end{macro} % \begin{environment}{theoremdelimiter} % \changes{1.13}{2003/12/16}{Make delimiter for theorems configurable}% % This environment takes two arguments, the first is the name of the % theorem-like environment that shall get another delimiter after the % number. % The second argument is the new delimiter that is valid inside the % environment. % \begin{macrocode} \newenvironment{theoremdelimiter}[2]{% \expandafter\def\csname theorem@#1postfix\endcsname{#2}% \ignorespaces }{% \ignorespacesafterend }% % \end{macrocode} % \end{environment} % % \begin{macro}{\settheoremmargin} % \changes{1.13}{2003/12/16}{Use variable margins for theorem-like % environments}% % Befehl zum Setzen von Einrücken theoremartiger Umgebungen: % \begin{macrocode} \newcommand*\settheoremmargin[1]{% \edef\@setmarginname{#1}% \@settheoremmargin} \newcommand*\@settheoremmargin[2][\@empty]{% \edef\hhcls@tmp{#1}% \ifx\hhcls@tmp\@empty \setlength{% \expandafter\csname theorem@\@setmarginname @lmargin\endcsname}{#2}% \else \setlength{% \expandafter\csname theorem@\@setmarginname @lmargin\endcsname}{#1}% \fi \setlength{% \expandafter\csname theorem@\@setmarginname @rmargin\endcsname}{#2}% } % \end{macrocode} % \end{macro} % % % \subsection{Beispiele} % % \begin{environment}{example} % Beispiel"=Umgebung einrichten: % \begin{macrocode} \newtheorem{example}{\examplename} % \end{macrocode} % \end{environment} % \begin{macro}{\listofexamples} % Verzeichnis der Beispiele: % \begin{macrocode} \newcommand*\listofexamples{\listoftheorems{example}{\listexamplename}} % \end{macrocode} % \end{macro} % \begin{macro}{\examplename} % \begin{macro}{\listexamplename} % Überschriften für Beispiele und deren Verzeichnisse: % \begin{macrocode} \newcommand*\examplename{} \newcommand*\listexamplename{} \addto\captionsgerman{% \renewcommand*\examplename{Beispiel}% \renewcommand*\listexamplename{Verzeichnis der Beispiele}% } \addto\captionsngerman{% \renewcommand*\examplename{Beispiel}% \renewcommand*\listexamplename{Verzeichnis der Beispiele}% } \addto\captionsaustrian{% \renewcommand*\examplename{Beispiel}% \renewcommand*\listexamplename{Verzeichnis der Beispiele}% } \addto\captionsnaustrian{% \renewcommand*\examplename{Beispiel}% \renewcommand*\listexamplename{Verzeichnis der Beispiele}% } \addto\captionsenglish{% \renewcommand*\examplename{Example}% \renewcommand*\listexamplename{List of Examples}% } \addto\captionsamerican{% \renewcommand*\examplename{Example}% \renewcommand*\listexamplename{List of Examples}% } % \end{macrocode} % \end{macro} % \end{macro} % % \subsection{Definitionen} % % \begin{environment}{definition} % Definition"=Umgebung einrichten: % \begin{macrocode} \newtheorem{definition}{\definitionname} % \end{macrocode} % \end{environment} % \begin{macro}{\listofdefinitions} % Verzeichnis der Definitionen: % \begin{macrocode} \newcommand*\listofdefinitions{% \listoftheorems{definition}{\listdefinitionname}} % \end{macrocode} % \end{macro} % \begin{macro}{\definitionname} % \begin{macro}{\listdefinitionname} % Überschriften für Definitionen und deren Verzeichnisse: % \begin{macrocode} \newcommand*\definitionname{} \newcommand*\listdefinitionname{} \addto\captionsgerman{% \renewcommand*\definitionname{Definition}% \renewcommand*\listdefinitionname{Verzeichnis der Definitionen}% } \addto\captionsngerman{% \renewcommand*\definitionname{Definition}% \renewcommand*\listdefinitionname{Verzeichnis der Definitionen}% } \addto\captionsaustrian{% \renewcommand*\definitionname{Definition}% \renewcommand*\listdefinitionname{Verzeichnis der Definitionen}% } \addto\captionsnaustrian{% \renewcommand*\definitionname{Definition}% \renewcommand*\listdefinitionname{Verzeichnis der Definitionen}% } \addto\captionsenglish{% \renewcommand*\definitionname{Definition}% \renewcommand*\listdefinitionname{List of Definitions}% } \addto\captionsamerican{% \renewcommand*\definitionname{Definition}% \renewcommand*\listdefinitionname{List of Definitions}% } % \end{macrocode} % \end{macro} % \end{macro} % % \subsection{Beweise} % % \begin{environment}{proof} % Beweis"=Umgebung einrichten: % \begin{macrocode} \newtheorem{proof}{\proofname} % \end{macrocode} % \end{environment} % \begin{macro}{\listofproofs} % Verzeichnis der Beweise: % \begin{macrocode} \newcommand*\listofproofs{\listoftheorems{proof}{\listproofname}} % \end{macrocode} % \end{macro} % \begin{macro}{\proofname} % \begin{macro}{\listproofname} % Überschriften für Beweise und deren Verzeichnisse: % \begin{macrocode} \newcommand*\proofname{} \newcommand*\listproofname{} \addto\captionsgerman{% \renewcommand*\proofname{Beweis}% \renewcommand*\listproofname{Verzeichnis der Beweise}% } \addto\captionsngerman{% \renewcommand*\proofname{Beweis}% \renewcommand*\listproofname{Verzeichnis der Beweise}% } \addto\captionsaustrian{% \renewcommand*\proofname{Beweis}% \renewcommand*\listproofname{Verzeichnis der Beweise}% } \addto\captionsnaustrian{% \renewcommand*\proofname{Beweis}% \renewcommand*\listproofname{Verzeichnis der Beweise}% } \addto\captionsenglish{% \renewcommand*\proofname{Proof}% \renewcommand*\listproofname{List of Proofs}% } \addto\captionsamerican{% \renewcommand*\proofname{Proof}% \renewcommand*\listproofname{List of Proofs}% } % \end{macrocode} % \end{macro} % \end{macro} % % \section{Grau schattierte Kiste für Formeln} % % \changes{1.13}{2003/12/16}{Avoid negative margins of theorems}% % \begin{macro}{\addtolengthminzero} % This command acts like \cs{addtolength} but don't set a length % smaller than zero. % \begin{macrocode} \newcommand*\addtolengthminzero[2]{% \addtolength{#1}{#2}% \ifdim#1<0pt \setlength{#1}{0pt}% \fi } % \end{macrocode} % \end{macro} % % Boolean zur Entscheidung, ob die |important|- oder die % |important*|"=Umgebung verwendet wird. % \begin{macrocode} \newif\ifhhcls@importantmath \newif\ifhhcls@inimportant % \end{macrocode} % Graue Kästen an? % \begin{macrocode} \ifhhcls@greybox % \end{macrocode} % Savebox, in die der Inhalt der |important|- und % |important*|"=Umgebungen zwischengespeichert wird. % \begin{macrocode} \newsavebox{\hhcls@@@important} % \end{macrocode} % Länge, um den Absatzeinzug in die Kästen rüberretten zu können. % \begin{macrocode} \newlength{\hhcls@important@parindent} % \end{macrocode} % Farbe des Hintergrunds. % \begin{macrocode} \definecolor{importantcolor}{gray}{0.9} % \end{macrocode} % Fußnotenkram, um innerhalb der |important|- und der % |important*|"=Umgebung Fußnoten verwenden zu können. % Innerhalb der Umgebung wird beim Auftreten des % \cs{footnote}"=Befehls der Inhalt in einen Befehl gespeichert und % nach der Minipage ausgegeben. % Lokal wird ein \cs{footnotemark} gesetzt. % \begin{macrocode} \newcounter{hhcls@savefootnote} % \end{macrocode} % \begin{macro}{\addfnmark} % Befehl, der den Fußnotentext in eine Liste im Befehl % \cs{hhcls@fnlist} speichert, die am Ende der Umgebungen ausgegeben % wird. % \begin{macrocode} \newcommand\addfnmark[2][\@empty]{% \begingroup \edef\hhcls@temp{#1}% \ifx\hhcls@temp\@empty \g@addto@macro\hhcls@fnlist{% \stepcounter{hhcls@savefootnote}% \footnotetext[\thehhcls@savefootnote]{#2}% }% \else \g@addto@macro\hhcls@fnlist{\footnotetext[#1]{#2}}% \fi \endgroup } % \end{macrocode} % \end{macro} % \begin{macro}{\hhcls@important@footnote} % Fußnotenbefehl, der in den Umgebungen auf \cs{footnote} umkopiert % werden wird. % \begin{macrocode} \newcommand\hhcls@important@footnote[2][\@empty]{% \begingroup \edef\hhcls@temp{#1}% \ifx\hhcls@temp\@empty \footnotemark \else \footnotemark[#1]% \fi \addfnmark[#1]{#2}% \endgroup }% % \end{macrocode} % \end{macro} % \begin{environment}{important} % Graue Kiste, die mit Text anfängt: % \begin{macrocode} \newenvironment{important}{% % \end{macrocode} % Set boolean that we are inside important now. % \begin{macrocode} \hhcls@inimportanttrue % \end{macrocode} % Längen setzen. % \changes{1.10}{2003/10/30}{Theoremeinzüge in grauen Kästen % reduzieren}% % \changes{1.13}{2003/12/16}{Avoid negative margins of theorems in % grey boxes}% % \changes{1.13}{2003/12/16}{Reduce margins of advanced and % execercises in grey boxes}% % \changes{1.20}{2004/03/07}{Add some margin adjustments to important % environment}% % \begin{macrocode} \setlength{\fboxsep}{0.5\parindent}% \addtolengthminzero{\mathindent}{-\fboxsep}% \addtolengthminzero{\theorem@lmargin}{-\fboxsep}% \addtolengthminzero{\theorem@rmargin}{-\fboxsep}% \addtolengthminzero{\advanced@lmargin}{-\fboxsep}% \addtolengthminzero{\advanced@rmargin}{-\fboxsep}% \addtolengthminzero{\subexercise@lmargin}{-\fboxsep}% \addtolengthminzero{\subexercise@rmargin}{-\fboxsep}% \addtolengthminzero{\hhcls@@subexerciseindent}{-\fboxsep}% \addtolengthminzero{\answer@lmargin}{-\fboxsep}% \addtolengthminzero{\answer@rmargin}{-\fboxsep}% \addtolengthminzero{\hhcls@@answerindent}{-\fboxsep}% \addtolengthminzero{\subanswer@lmargin}{-\fboxsep}% \addtolengthminzero{\subanswer@rmargin}{-\fboxsep}% \addtolengthminzero{\hhcls@@subanswerindent}{-\fboxsep}% \addtolengthminzero{\leftmargin}{-\fboxsep}% \addtolengthminzero{\hhcls@leftmargin}{-\fboxsep}% \setlength{\hhcls@important@parindent}{\parindent}% % \end{macrocode} % Zunächst einen Absatz und entsprechenden Abstand einfügen. % \changes{1.10}{2003/10/30}{Abstände am Anfang der Umgebung korrigiert}% % \begin{macrocode} \removelastskip \par \vskip\topsep % \end{macrocode} % Fußnoten initialisieren. % \begin{macrocode} \gdef\hhcls@fnlist{}% \setcounter{hhcls@savefootnote}{\value{footnote}}% \let\mpfootnote=\footnote \let\footnote\hhcls@important@footnote% % \end{macrocode} % |figure|- und |table|"=Umgebung sowie \cs{marginpar}"=Befehl % abfangen, da sie nicht funktionieren. % \begin{macrocode} \let\hhcls@important@figure=\figure \renewcommand\figure{% \ClassError{bgteubner}{% figure environment used inside important\ifhhcls@importantmath *\fi\space environment}{% Inside the important\ifhhcls@importantmath *\fi\space environment, floats cannot be used.}% \hhcls@important@figure}% \let\hhcls@important@table=\table \renewcommand\table{% \ClassError{bgteubner}{% table environment used inside important\ifhhcls@importantmath *\fi\space environment}{% Inside the important\ifhhcls@importantmath *\fi\space environment, floats cannot be used.}% \hhcls@important@table}% \let\hhcls@important@marginpar=\marginpar \renewcommand\marginpar{% \ClassError{bgteubner}{% \string\marginpar\space used inside important\ifhhcls@importantmath *\fi\space environment}{% Inside the important\ifhhcls@importantmath *\fi\space environment, floats cannot be used.}% \hhcls@important@marginpar}% % \end{macrocode} % Den Inhalt der Umgebung erstmal in die Box \cs{hhcls@@@important} % zwischenspeichern. % \begin{macrocode} \begin{lrbox}{\hhcls@@@important}% \setlength\@tempdima{\linewidth}% \addtolength\@tempdima{-2\fboxsep}% \begin{minipage}{\@tempdima}% % \end{macrocode} % Falls die Sternvariante gewählt wurde, den oberen Abstand verringern. % \begin{macrocode} \ifhhcls@importantmath \vspace{-\abovedisplayskip}% \fi % \end{macrocode} % Absatzeinzug restaurieren, erster Absatz ohne Einzug. % \changes{1.21}{2004/03/25}{Reduce skip when \texttt{important} % environment starts with a theorem-like environment}% % \begin{macrocode} \setlength{\parindent}{\hhcls@important@parindent}% \noindent \@setminipage \ignorespaces }{% % \end{macrocode} % Ende der Umgebung. % \begin{macrocode} \par\unskip \end{minipage}% \end{lrbox}% % \end{macrocode} % Jetzt wird der Inhalt der Umgebung in eine Kiste gesetzt. % Die graue Kiste soll nicht eingerückt werden. % \begin{macrocode} \noindent % \end{macrocode} % Jetzt wird der Inhalt wirklich gesetzt. % \changes{1.10}{2003/10/30}{Breite korrigiert, wenn nur eine % theoremartige Umgebung gesetzt wird}% % \begin{macrocode} \colorbox{importantcolor}{% \setlength\@tempdima{\linewidth}% \addtolength\@tempdima{-2\fboxsep}% \begin{minipage}{\@tempdima}% \usebox{\hhcls@@@important}% \end{minipage}% }% % \end{macrocode} % Jetzt die Fußnoten setzen, falls welche aufgetreten sind. % \begin{macrocode} \hhcls@fnlist % \end{macrocode} % Unterer Abstand und Absatzeinzug verhindern, falls kein weiterer % Absatz im Quelltext folgt. % \begin{macrocode} \vskip\topsep \noindentnextpar \par \ignorespacesafterend } % \end{macrocode} % \end{environment} % \begin{environment}{important*} % Sternvariante für Kästen, die mit einer abgesetzten Formel beginnen. % Der normalen Variante wird übergeben, dass sie oben Platz klauen % soll, und dann aufgerufen. % \begin{macrocode} \newenvironment{important*}{% \hhcls@importantmathtrue \begin{important}% }{% \end{important}% \ignorespacesafterend} % \end{macrocode} % \end{environment} % \begin{environment}{longimportant} % Variante für lange Kästen, die über Seiten umbrochen werden können. % Sollte möglichst wenig verwendet werden. % \begin{macrocode} \newenvironment{longimportant}{% % \end{macrocode} % Set boolean that we are inside important now. % \begin{macrocode} \hhcls@inimportanttrue % \end{macrocode} % \changes{1.10}{2003/10/30}{Theoremeinzüge in grauen Kästen % reduzieren}% % Längen setzen. % \changes{1.13}{2003/12/16}{Avoid negative margins of theorems in % grey boxes}% % \changes{1.13}{2003/12/16}{Reduce margins of advanced and % execercises in grey boxes}% % \changes{1.20}{2004/03/07}{Add some margin adjustments to longimportant % environment}% % \begin{macrocode} \setlength{\fboxsep}{0.5\parindent}% \addtolengthminzero{\mathindent}{-\fboxsep}% \addtolengthminzero{\theorem@lmargin}{-\fboxsep}% \addtolengthminzero{\theorem@rmargin}{-\fboxsep}% \addtolengthminzero{\advanced@lmargin}{-\fboxsep}% \addtolengthminzero{\advanced@rmargin}{-\fboxsep}% \addtolengthminzero{\subexercise@lmargin}{-\fboxsep}% \addtolengthminzero{\subexercise@rmargin}{-\fboxsep}% \addtolengthminzero{\hhcls@@subexerciseindent}{-\fboxsep}% \addtolengthminzero{\answer@lmargin}{-\fboxsep}% \addtolengthminzero{\answer@rmargin}{-\fboxsep}% \addtolengthminzero{\hhcls@@answerindent}{-\fboxsep}% \addtolengthminzero{\subanswer@lmargin}{-\fboxsep}% \addtolengthminzero{\subanswer@rmargin}{-\fboxsep}% \addtolengthminzero{\hhcls@@subanswerindent}{-\fboxsep}% \addtolengthminzero{\leftmargin}{-\fboxsep}% \addtolengthminzero{\hhcls@leftmargin}{-\fboxsep}% % \end{macrocode} % Befehl zum Erzeugen des Hintergrunds festlegen. % \begin{macrocode} \def\FrameCommand{\colorbox{importantcolor}}% % \end{macrocode} % |figure|- und |table|"=Umgebung sowie die Befehle \cs{footnote} und % \cs{marginpar} abfangen, da sie nicht funktionieren. % \begin{macrocode} \renewcommand\footnote[2][]{% \ClassError{bgteubner}{% \footnote\space used inside longimportant environment}{% Inside the longimportant environment, footnotes cannot be used.\MessageBreak You may use the short version, the important or important* environment if you\MessageBreak really need a footnote. Be aware that these environments don't\MessageBreak break across pages.}% }% \let\hhcls@important@figure=\figure \renewcommand\figure{% \ClassError{bgteubner}{% figure environment used inside longimportant environment}{% Inside the longimportant environment, floats cannot be used.}% \hhcls@important@figure}% \let\hhcls@important@table=\table \renewcommand\table{% \ClassError{bgteubner}{% table environment used inside longimportant environment}{% Inside the longimportant environment, floats cannot be used.}% \hhcls@important@table}% \let\hhcls@important@marginpar=\marginpar \renewcommand\marginpar{% \ClassError{bgteubner}{% \string\marginpar\space used inside longimportant environment}{% Inside the longimportant environment, floats cannot be used.}% \hhcls@important@marginpar}% % \end{macrocode} % Internen Befehl aufrufen. % \changes{1.21}{2004/03/25}{Reduce skip when \texttt{longimportant} % environment starts with a theorem-like environment}% % \begin{macrocode} \MakeFramed {\advance\hsize-\width \FrameRestore \noindent\@setminipage}% % \end{macrocode} % \changes{1.20}{2004/03/07}{Workaround for bug in \texttt{framed.sty} % which causes wrong width in some cases}% % This \cs{vspace} is a work around for a bug in |framed.sty| which % causes |longimportant| environments with only a theorem-like % environment to be too narrow. % \begin{macrocode} \hhcls@important@workaround \ignorespaces }{% \par\unskip \endMakeFramed \noindentnextpar \par \ignorespacesafterend } % \end{macrocode} % \end{environment} % \begin{environment}{longimportant*} % \changes{1.20}{2004/03/07}{New \texttt{longimportant*} environment}% % Define a |longimportant*| environment in analogy to the |important*| % environment. % With an optional argument, the vertical adjustment can be changed. % \begin{macrocode} \newenvironment{longimportant*}[1][\abovedisplayskip]{% \begin{longimportant}\vspace{-#1}\ignorespaces }{% \end{longimportant}% } % \end{macrocode} % \end{environment} % \begin{macro}{\hhcls@important@workaround} % \changes{1.21}{2004/03/25}{Use \texttt{framed} workaround for % longimportant only for old versions of that package}% % From 2004-03-07 on, the bug in the |framed| package has been fixed, % that caused the box to be too narrow sometimes. % \begin{macrocode} \@ifpackagelater{framed}{2004/03/07}{% \newcommand*\hhcls@important@workaround{} }{% \newcommand*\hhcls@important@workaround{\vspace{0mm}} \ClassWarningNoLine{bgteubner}{Outdated version of framed.sty used. A workaround\MessageBreak for a bug has been installed. Future versions of\MessageBreak bgteubner.cls will need a version of framed.sty\MessageBreak that is dated 2004/03/07 or newer} } % \end{macrocode} % \end{macro} % Kisten aus? % \begin{macrocode} \else % \end{macrocode} % \begin{environment}{important} % \begin{environment}{important*} % \begin{environment}{longimportant} % \begin{environment}{longimportant*} % Dummy"=Befehle, falls graue Kästen ausgeschaltet sind. % \begin{macrocode} \newenvironment{important}{\par}{\par} \newenvironment{important*}{\par}{\par} \newenvironment{longimportant}{\par}{\par} \newenvironment{longimportant*}[1][]{\par}{\par} \fi % \end{macrocode} % \end{environment} % \end{environment} % \end{environment} % \end{environment} % % \section{Aufgaben und Lösungen} % % \subsection{Aufgaben für globale Aufgabensammlung} % % Aufgaben zählen: % \begin{macrocode} \newcounter{aufgabenzahl}% % \end{macrocode} % Berechnung der Einrueckung der Aufgabenüberschriften: % \begin{macrocode} \newlength{\hhcls@@exerciseindent}% \setlength{\hhcls@@exerciseindent}{7.8398em}% % \end{macrocode} % Zähler definieren. Für die |aufgabe|"=Umgebung Format "`Aufgabe"': % \begin{macrocode} \newcounter{@exercise} \renewcommand*\the@exercise{\@arabic\c@@exercise} % \end{macrocode} % Überschrift der |exercise|"=Umgebung: % \begin{macrocode} % Befehle selbst \newcommand\@exercise{\@startsection{@exercise}{1}{\z@}% {-3.5ex \@plus -1ex \@minus -.2ex}% {2.3ex \@plus.2ex}% {\raggedsection\normalfont\sectfont\nobreak\size@section\nobreak}} % \end{macrocode} % Einträge ins Inhaltsverzeichnis definieren, falls gewünscht: % \begin{macrocode} \if@exercisetotoc \newcommand*\l@@exercise[2]{\@dottedtocline{1}{1.5em}{2.3em}{% \def\numberline##1{% \hb@xt@\@tempdima{\lprefix@exercise##1\hfil}}#1}{#2}} \else \newcommand*\l@@exercise[2]{} \fi % \end{macrocode} % \begin{macro}{\exercisename} % Name der Aufgaben: % \begin{macrocode} \newcommand*\exercisename{Aufgabe} % \end{macrocode} % \end{macro} % Format der Überschrift: % \begin{macrocode} \def\prefix@exercise{\exercisename~}% % \end{macrocode} % Doppelpunkt nach der Zahl: % \begin{macrocode} \def\postfix@exercise{:}% % \end{macrocode} % Überschrift für unnummerierte Aufgaben: % \begin{macrocode} \def\prefix@exercisestar{\exercisename}% % \end{macrocode} % Unnummeriert mit Doppelpunkt: % \begin{macrocode} \def\postfix@exercisestar{:}% % \end{macrocode} % Prefix im Inhaltsverzeichnis: % \begin{macrocode} \def\lprefix@exercise{}% % \end{macrocode} % Aufgaben zählen: % \begin{macrocode} \g@addto@macro\hhcls@theoremlist{% \addtocontents{exercise}{\hhcls@theoremskip}% }% % \end{macrocode} % Kein Kolumnentitel: % \begin{macrocode} \let\@exercisemark\@gobble % \end{macrocode} % \begin{macro}{\exercisefont} % \changes{1.30}{2004/04/10}{Make font in exercises adjustable}% % Font for exercises. % \begin{macrocode} \newcommand*\exercisefont{\normalsize} % \end{macrocode} % \end{macro} % \begin{environment}{exercise} % Nummerierte |exercise|"=Umgebung: % \begin{macrocode} \newenvironment{exercise}[1]{% % \end{macrocode} % Teilaufgabennummerierung auf Null setzen: % \begin{macrocode} \setcounter{subtaskoffset}{0}% % \end{macrocode} % Aufgaben zählen: % \begin{macrocode} \stepcounter{aufgabenzahl}% % \end{macrocode} % Überschrift % \begin{macrocode} \@exercise{#1}% % \end{macrocode} % Eintrag in das Verzeichnis der Aufgaben schreiben: % \begin{macrocode} \addcontentsline{exercise}{exercise}{\numberline {\the@exercise}#1}% % \end{macrocode} % Gliederungsbefehle ausschalten % \begin{macrocode} \gliederungsfehler{exercise}% % \end{macrocode} % Switch to chosen font. % \begin{macrocode} \exercisefont }{% % \end{macrocode} % Leerzeichen ignorieren: % \begin{macrocode} \ignorespacesafterend % \end{macrocode} % Nächsten Absatz nicht einrücken: % \begin{macrocode} \noindentnextpar \par } % \end{macrocode} % \end{environment} % \begin{environment}{exercise*} % Unnummerierte |exercise*|"=Umgebung: % \begin{macrocode} \newenvironment{exercise*}[1]{% % \end{macrocode} % Teilaufgabennummerierung auf Null setzen % \begin{macrocode} \setcounter{subtaskoffset}{0}% % \end{macrocode} % Aufgaben zählen: % \begin{macrocode} \stepcounter{aufgabenzahl}% % \end{macrocode} % Überschrift. Die Sternvariante lässt die Nummer usw. weg. Daher muss % der Teil von Hand eingefügt werden. % \begin{macrocode} \@exercise*{\makebox[\hhcls@@exerciseindent][l]{% \prefix@exercisestar\postfix@exercisestar}#1}% %