% created 27.6.2011 % by Peter Breitfeld on susan.euler.brf % Last modified: % Time-stamp: <13.5.2012 14:47:09 schule2eLua.sty> %% %% Datei schule2eLua.sty %% (c) Peter Breitfeld (2011ff) %% %% You are allowed to distribute and change this file. %% If you changed it, please change the filename too. %% But don't remove my name :-) %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{schule2eLua}[2011/06/27 ff. Anpassungen von Peter Breitfeld] %%=========================================================================== %% Optionen verarbeiten und Pakete laden %%=========================================================================== %% neue If's definieren: %%----- ein \if zur Feststellung, ob ein Befehl nicht existiert: \def\ifUndefiniertCS#1{\expandafter\ifx\csname#1\endcsname\relax} % Das folgende ifIsControlSequence testet, ob #1 ein Befehl ist: \def\ifIsControlSequence#1{\if\noexpand#1\relax} % Das folgenden Makro testet, ob zwei Strings gleich sind: \def\ifStringsGleich#1#2{% \def\brf@testa{#1}\def\brf@testb{#2}\ifx\brf@testa\brf@testb} \newif\ifnoBrief\noBrieftrue % Option: kein Brief \newif\ifnoProjZeug\noProjZeugtrue % kein Beamer am laufen \newif\ifnoRevtex\noRevtextrue % kein RevTeX am laufen \newif\ifsectNA % Option: Aufgaben-Nummerierungs-Art \newif\ifUseGLNrDot\UseGLNrDottrue % Option: Punkt nach Gliederungsnummer \newif\ifSectionSS\SectionSStrue % Option: Sectiontitel in Sans-Serif \newif\ifNeuesTok\NeuesToktrue % Option: neues toc, lof, usw. \newif\ifnofnTrenner\nofnTrennertrue % Option: keine Fußnotenseparatorlinie \newif\ifpNmittig\pNmittigtrue % Option: Seiten-Nr (Kopfzeile) mittig \newif\ifinnerhalbCaption % true wenn innerhalb einer caption \newif\ifnoKapitel\noKapiteltrue % true wenn "Kapitel" nicht erscheint \newif\ifPfeilVektoren % true wenn Vektoren mit Pfeilen gewünscht \newif\ifGothicVektoren % true wenn Vektoren in Fraktur \newif\ifPstPdf % true wenn auto-pst-pdf zu laden %% Optionen verarbeiten: \newlength{\brfBCOR} % Binderand für typeareaB \setlength{\brfBCOR}{0pt} % default: keiner \DeclareOption{alle}{\relax} \DeclareOption{brief}{\noBrieffalse} \DeclareOption{sectNA}{\sectNAtrue} \DeclareOption{noGLNrDot}{\UseGLNrDotfalse} \DeclareOption{noSectsty}{\SectionSSfalse} \DeclareOption{AutoPST}{\PstPdftrue} \DeclareOption{AutoOff}{\PassOptionsToPackage{off}{auto-pst-pdf}} \DeclareOption{withChapter}{\noKapitelfalse} \DeclareOption{tradToc}{\NeuesTokfalse} \DeclareOption{fnTrenner}{\nofnTrennerfalse} \DeclareOption{pNflush}{\pNmittigfalse} \DeclareOption{Pfeilvek}{\PfeilVektorentrue} \DeclareOption{Gothicvek}{\GothicVektorentrue} \DeclareOption*{\setlength{\brfBCOR}{\CurrentOption}} \ExecuteOptions{alle} \ProcessOptions %% --- Klassen erkennen: \@ifclassloaded{beamer}{\noProjZeugfalse}{} \@ifclassloaded{prosper}{\noProjZeugfalse}{} \@ifclassloaded{revtex4}{\noRevtexfalse}{} %% der folgende Befehl muss für revtex4 unterdrückt werden \ifnoRevtex\else\def\@openbib@code{}\fi %% --- Fonts festlegen: \RequirePackage{ifluatex} % damit auto-pst-pdf nicht verwirrt wird \ifluatex % Lua verwenden, alles Unicode \RequirePackage{fontspec} \RequirePackage{luacode} \ProvideTextCommand{\glqq}{EU2}{% % ordentliche Anführungszeichen \textormath{\quotedblbase}{\mbox{\quotedblbase}}} \ProvideTextCommand{\grqq}{EU2}{% \textormath{\textquotedblleft}{\mbox{\textquotedblleft}}} \ProvideTextCommand{\glq}{EU2}{% \textormath{\quotesinglbase}{\mbox{\quotesinglbase}}} \ProvideTextCommand{\grq}{EU2}{% \textormath{\textquoteleft}{\mbox{\textquoteleft}}} \ProvideTextCommand{\frqq}{EU2}{% \textormath{\guillemotright}{\mbox{\guillemotright}}} \ProvideTextCommand{\flqq}{EU2}{% \textormath{\guillemotleft}{\mbox{\guillemotleft}}} \ProvideTextCommand{\frq}{EU2}{% \textormath{\guilsinglright}{\mbox{\guilsinglright}}} \ProvideTextCommand{\flq}{EU2}{% \textormath{\guilsinglleft}{\mbox{\guilsinglleft}}} \ifnoBrief\RequirePackage[english,ngerman]{babel}\fi \setmainfont[Ligatures=TeX,Numbers={Monospaced,OldStyle}]{TeX Gyre Pagella} \setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Myriad Pro} \setmonofont[Scale=0.89]{DejaVu Sans Mono} \RequirePackage{amsmath} % MUSS vor unicode-math kommen! \RequirePackage[math-style=ISO,vargreek-shape=TeX,bold-style=ISO]{unicode-math} \RequirePackage{lualatex-math} \setmathfont[partial=upright]{Asana Math} % mathcal, mathscr aus xits, weil in Asana nicht beide möglich: \setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS-Math} % das ist für \varpi: \setmathfont[range={"03D6,"1D6E1,"1D71B,"1D755,"1D78F,"1D7C9}]{XITS-Math} \else % für auto-pst-pdf normale pdfTeX-Einstellungen \RequirePackage{amsmath} % vielleicht braucht man's \RequirePackage{pxfonts} % passen zu Asana-Math \RequirePackage{bm} % braucht psfrag machmal \fi %----- Zeilenabstand leicht erhöhen \ifnoBrief\linespread{1.04}\fi %----- schöne Umbrucheinstellungen (siehe l2tabu): \tolerance 1414 \hbadness 1414 \emergencystretch 1.5em \hfuzz 0.3pt \widowpenalty=10000 \vfuzz \hfuzz \raggedbottom \let\limU\removenolimits % Operatorenlimits drüber/drunter \let\limR\addnolimits % Operatorenlimits rechts daneben %%----- Für die Optik \RequirePackage{microtype} %%----- icomma.sty einbinden \RequirePackage{icomma} %%----- Sperren von Versalien und Kapitälchen: \newfontfamily\LFFam[Renderer=Basic,Numbers=Lining,Ligatures=TeX]% {TeX Gyre Pagella} \newfontfamily\SCFam[Renderer=Basic,Numbers={Monospaced,OldStyle},Ligatures=TeX]% {TeX Gyre Pagella} \newcommand{\Versal}[1]{\textls[230]{\LFFam #1}} \newcommand{\mcaps}[1]{\textls[100]{\SCFam\textsc{#1}}} \newcommand{\caps}[1]{\textls[50]{\SCFam\textsc{#1}}} %%----- \Section bis \subsubsection sollen Nummern haben \setcounter{secnumdepth}{3} %%----- Diese Pakete will man immer: \RequirePackage{xspace,units,fancybox} \setlength{\shadowsize}{2pt} % Randart bei \merkbox \xspaceaddexceptions{\check@icr} % braucht man scheint's bei xspace %%%-------------------------------------------------------------------------- %% Mittels eines \renewcommand der folgenden vier Makros können alle %% Abschnittsüberschriften incl. \minisec, \NA, \NL, description, labeling %% umdefiniert werden. % für \part bis \subsubsection und description \newcommand*{\Abschnittfont}{\sffamily\mdseries} % für Paragraph und subparagraph: \newcommand*{\Paragraphfont}{\mdseries\itshape} % für labeling-Umgebung \newcommand*{\Labelingfont}{\sffamily\mdseries} % für \minisec \newcommand*{\textMinisecfont}[1]{\mcaps{#1}} % für Kopfzeilenschrift mittels \Kopfzeile: \newcommand*{\Kopfzeilenfont}{\sffamily\small\itshape\vphantom{fgq}} % der Font für Captions: \newcommand*{\Captionfont}{\small\sffamily} \newcommand*{\mathCaptionfont}[1]{\ensuremath{\mathsfup{#1}}} %% Nun die definierten Fonts weiterreichen: %% ---------------------------------------- % an Aufgaben \newcommand*{\textAufgabenfont}[1]{\caps{#1}} % an "Abb." und "Tab." bei \caption (braucht rmfamily!) \newcommand*{\textCapTitFont}[1]{{\rmfamily\textAufgabenfont{#1}}} % an description-Labels: \renewcommand*{\descriptionlabel}[1]{% \hspace{\labelsep}\normalfont\Abschnittfont #1} %%%-------------------------------------------------------------------------- %----- Einstellungen für sectsty: \ifnoBrief % kein sectsty in brief verwenden \ifnoRevtex % auch nicht in revtex4 %----- Einstellungen für sectsty: \RequirePackage{sectsty} \ifSectionSS % Serifenlose Überschriften ... \allsectionsfont{\Abschnittfont} \subsubsectionfont{\Abschnittfont\itshape} \paragraphfont{\Paragraphfont} \subparagraphfont{\Paragraphfont} \chapterfont{\Abschnittfont\thispagestyle{empty}} \ifnoKapitel \def\@makechapterhead#1{% % Kapitel ohne das Wort 'Kapitel' \vspace*{50\p@}% {\parindent \z@ \raggedright \normalfont \interlinepenalty\@M \ifnum \c@secnumdepth >\m@ne \Hang{\Huge\Abschnittfont \thechapter\ifUseGLNrDot.\fi\quad}% \Huge\Abschnittfont #1\par\nobreak \else \Huge\Abschnittfont\thechapter\ifUseGLNrDot.\fi\quad% \Huge\Abschnittfont #1\par\nobreak \fi \vskip 40\p@ }} \fi \else \renewcommand*{\Abschnittfont}{\bfseries} \renewcommand*{\Paragraphfont}{\bfseries} \fi % ein Punkt hinter Gliederungsnummern außer part: \ifUseGLNrDot\def\@seccntformat#1{\csname the#1\endcsname.\quad}\fi \fi \fi %%----- marvosym (Euro usw) \RequirePackage{marvosym} \let\MRightarrow\MVRightarrow \newcommand*{\peuro}[2][]{\if#1v\mbox{€}~#2\else#2\,\mbox{€}\fi} %%----- braket.sty für Quantenmechanik und Mengen \RequirePackage{braket} %%----- amsthm laden und passende Stile dazu erzeugen: \RequirePackage{amsthm} \newtheoremstyle{brfplain}% {\topsep}{\topsep}% Abstand ober- und unterhalb der Umgebung {\itshape}% body-Font {0pt}% Head Einrückung {\sffamily\bfseries}% Head-Font {}% Zeichen nach Head {1em plus .3em minus 0.2em}% Leerraum nach Head {}% Sonderangaben für Head: keine \newtheoremstyle{brfbsp}% {\topsep}{\topsep}% Abstand ober- und unterhalb der Umgebung {\normalfont}% body-Font {0pt}% Head Einrückung {\sffamily\bfseries}% Head-Font {}% Zeichen nach Head {1em plus .3em minus 0.2em}% Leerraum nach Head {}% Sonderangaben für Head: keine %% Zur Not lange align usw. umbrechen lassen: \ifnoProjZeug\allowdisplaybreaks[2]\fi %%----- typeareaB aufrufen, aber nicht in Briefen oder revtex4 \ifnoBrief\ifnoRevtex\RequirePackage{typeareaB}\fi\fi %%----- Neues xkeyval statt keyval verwenden \RequirePackage{xkeyval} %%----- Pakete für Tabellengestaltung und Graphik laden \RequirePackage{array} \RequirePackage{rotating} % das lädt auch graphicx \RequirePackage[np]{numprint}\npdecimalsign{.} \RequirePackage{tabularx} \RequirePackage{booktabs} %%----- auto-pst-pdf ggf. laden \ifPstPdf \chardef\pdf@shellescape=\@ne \RequirePackage{auto-pst-pdf} \fi %%----- url.sty laden, URL vor hyperref retten, nicht bei revtex4 \ifnoRevtex\ifnoProjZeug \RequirePackage[T1,obeyspaces,spaces]{url} \fi\fi \let\URL\url %%=============== Einstellungen zu den Paketen ============================= %%----- Abstände nach Minisec-Überschrift festlegen: \newlength{\@MinisecNach}\setlength{\@MinisecNach}{0.5ex\@plus 0.1ex} %%----- Paket parskip laden, falls Absätze durch Leerzeilen getrennt werden %% und dann auch noch den Minisec-Abstand abändern: \setlength{\parindent}{1em} % Standard-Absatz-Einzug \newcommand{\parindentOff}{% % Absätze mit Zeilenvorschub trennen \setlength{\@MinisecNach}{-0.5ex} \RequirePackage{parskip}} %%=========================================================================== %% Allgemeine Einstellungen: %%=========================================================================== \ifnoBrief %%----- Deutsche Beschriftungen (Definition aus ngerman.sty ersetzen): \AtBeginDocument{ \def\captionsngerman{% \def\prefacename{Vorwort}% \def\refname{Literatur}% \def\abstractname{\vspace{-2\baselineskip}} % geändert \def\bibname{Literaturverzeichnis}% \def\chaptername{Kapitel}% \def\appendixname{Anhang}% \def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt \def\listfigurename{Abbildungsverzeichnis}% \def\listtablename{Tabellenverzeichnis}% \def\indexname{Index}% \def\figurename{Abb.\kern-0.11em}% % geändert \def\tablename{Tab.\kern-0.11em}% % geändert \def\partname{Teil}% \def\enclname{Anlage(n)}% \def\ccname{Verteiler}% \def\headtoname{An}% \def\pagename{Seite}% \def\seename{siehe}% \def\alsoname{siehe auch}% \def\proofname{Beweis}% \def\glossaryname{Glossar}} \captionsngerman \ifnoRevtex\else \def\tocname{Inhalt} \def\figuresname{Abbildungen} \def\tablesname{Tabellen} \fi} %%----- Vertikales Spacing bei table und figure richtig machen (caption oben) \newcommand{\@Alttable}{}\let\@Alttable\table \setlength{\abovecaptionskip}{10pt} % für figure (ist eigentlich default) \setlength{\belowcaptionskip}{0pt} \renewcommand{\table}{% \setlength{\@tempdima}{\abovecaptionskip}% \setlength{\abovecaptionskip}{\belowcaptionskip}% \setlength{\belowcaptionskip}{\@tempdima}% \@Alttable} \fi %%----- Bitte Wenden bei Briefen: \newcommand{\BitteWenden}{\vfill{\hfill\scriptsize -- bitte wenden --}\newpage} %%----- itemize-Symbole abändern: \ifnoProjZeug \renewcommand*{\labelitemii}{$\triangleright$} \renewcommand*{\labelitemiii}{$\star$} \renewcommand*{\labelitemiv}{$\circ$} \renewcommand*{\labelenumii}{\theenumii)} \fi %%----- Anzahl der erlaubten Floats auf einer Seite erhöhen: \setcounter{topnumber}{3} \setcounter{bottomnumber}{1} \setcounter{totalnumber}{5} \renewcommand*{\topfraction}{0.8} \renewcommand*{\bottomfraction}{0.5} \renewcommand*{\textfraction}{0.15} \renewcommand*{\floatpagefraction}{0.6} \renewcommand*{\dbltopfraction}{0.8} \renewcommand*{\dblfloatpagefraction}{0.6} %----- Das ehemals eigenständige Paket fraktur einbinden: -------- \newcommand{\yinitfamily}{\usefont{U}{yinit}{m}{n}} \newcommand*{\textInitial}[1]{{\yinitfamily#1}} \newcommand{\frakturOn}{\fontencoding{T1}\fontfamily{yfrak}\selectfont} \newcommand{\textfraktur}[1]{{\frakturOn#1}} \newenvironment{fraktur}{% \frakturOn% \renewcommand{\textrm}[1]{{\normalfont\rmfamily ##1}}% \renewcommand{\textsf}[1]{{\normalfont\sffamily ##1}}% \renewcommand{\texttt}[1]{{\normalfont\ttfamily ##1}}% }{} \def\InitialScale#1{\edef\InitialFAKT{#1}}\InitialScale{1.3} \newdimen\ytmpbrf % Absatz mit Initial in Fraktur \def\Initialpar#1#2\par% {\noindent\setbox0=\hbox{\scalebox{\InitialFAKT}{\textInitial{#1}}}% \hangindent=\wd0\hangafter=-4\advance\hangindent by 0.25em \ytmpbrf=-0.85\ht0 \hskip-\wd0\hskip-0.25em \raisebox{\ytmpbrf}[0pt][0pt]{\unhbox0}\hskip0.25em% \begin{fraktur}#2\end{fraktur}\par} % Absatz mit Initial in Roman \def\InitialparRM#1#2 #3% {\noindent\setbox0=\hbox{\scalebox{\InitialFAKT}{\Huge{#1}}}% \hangindent=\wd0\hangafter=-2\advance\hangindent by 0.25em% \ytmpbrf=-0.65\ht0\hskip-\wd0\hskip-0.25em% \raisebox{\ytmpbrf}[0pt][0pt]{\unhbox0}\hskip0.25em% \kern-0.1em\caps{#2} #3} \def\Initial{\@ifnextchar [{\@Initial}{\@Initial[r]}} \def\@Initial[#1]#2#3 #4{% \if#1f\Initialpar#2#3 #4\else\InitialparRM#2#3 #4\fi} %------- Ende des bisher externen fraktur.sty ---------- %%----- hängender Einzug: \let\Hang\@hangfrom \newenvironment{hangingpars}[1][1.2em]{% \parindent=0pt \everypar{\hangafter=1\hangindent=#1}}{\par} %%----- Flattersatz mit Trennung ermöglichen: \newcommand*{\raggedhyphen}{% \let\\=\@centercr \@rightskip\z@ plus .1\hsize \rightskip\@rightskip \leftskip\z@skip \pretolerance=1 \exhyphenpenalty=1 \parindent\z@} %%=========================================================================== % Eigene Makros %%=========================================================================== %%------ Captions außerhalb einer float-Umgebung ermöglichen: % optionaler Teil darf nicht mit Punkt beginnen \newcommand{\figcaption}[2][.]{% \def\@captype{figure}\if#1.\caption{#2}\else\caption[#1]{#2}\fi} \newcommand{\tabcaption}[2][.]{% \def\@captype{table}\if#1.\caption{#2}\else\caption[#1]{#2}\fi} %%----- eine leere Seite mit \cleardoublepage erzeugen: \newcommand*{\clearemptydoublepage}{% \clearpage{\thispagestyle{empty}\cleardoublepage}} %%----- Verwaltung von Fußnoten: \newcommand{\fn}[2]{\footnote{#2\label{fn:#1}}\xspace} \newcommand*{\fnmark}[1]{\textsuperscript{\normalfont\ref{fn:#1}}\xspace} \newlength{\fnBreite} \renewcommand{\@makefntext}[1]{% \settowidth{\fnBreite}{\footnotesize\@thefnmark.i} \protect\footnotesize\upshape% \setlength{\@tempdima}{\columnwidth}\addtolength{\@tempdima}{-\fnBreite}% \makebox[\fnBreite][l]{\@thefnmark.\phantom{}}% \parbox[t]{\@tempdima}{\everypar{\hspace*{1em}}\hspace*{-1em}\upshape#1}} \ifnofnTrenner\renewcommand{\footnoterule}{}\fi %%----- Zentrierte Überschrift ausgeben: \newcommand{\Titelzeile}[2][]{% \@afterindentfalse \if#1v {\begin{center}{\Versal{\MakeUppercase{#2}}}\end{center}} \else {\begin{center}{\Abschnittfont\Large#2}\end{center}} \fi \@afterheading} %%----- \today auf festes Datum setzen: \def\Fixdate#1.#2.#3.{\def\day{#1}\def\month{#2}\def\year{#3}} %%----- intertext von AMS mit etwas weniger vertikalem Leerraum: \newcommand{\kurzintertext}[1]{% \ifvmode\else\\\@empty\fi \noalign{% \penalty\postdisplaypenalty% \vbox{\normalbaselines \ifdim\linewidth=\columnwidth \else \parshape\@ne \@totalleftmargin \linewidth \fi \noindent#1\par}% \penalty\predisplaypenalty}} %% inlineintertext zum Schreiben VOR Formel: %% Bessere Version von Philipp Stephani, die sauber vertikal ausrichtet, %% funktioniert nur mit Umgebungen, die \tag verstehen \RequirePackage{etoolbox} \newif\if@gather@prefix \preto\place@tag@gather{% \if@gather@prefix\iftagsleft@ \kern-\gdisplaywidth@ \rlap{\gather@prefix}% \kern\gdisplaywidth@ \fi\fi } \appto\place@tag@gather{% \if@gather@prefix\iftagsleft@\else \kern-\displaywidth \rlap{\gather@prefix}% \kern\displaywidth \fi\fi \global\@gather@prefixfalse } \preto\place@tag{% \if@gather@prefix\iftagsleft@ \kern-\gdisplaywidth@ \rlap{\gather@prefix}% \kern\displaywidth@ \fi\fi } \appto\place@tag{% \if@gather@prefix\iftagsleft@\else \kern-\displaywidth \rlap{\gather@prefix}% \kern\displaywidth \fi\fi \global\@gather@prefixfalse } \newcommand*{\vorintertext}[1]{% \ifmeasuring@\else \gdef\gather@prefix{#1}% \global\@gather@prefixtrue \fi } %%----- Automatische Berechnung der Breite von Minipages \newlength{\breite}\newlength{\Breite} \newcommand*{\Setzbreiten}[1]{% \setlength{\Breite}{#1} \setlength{\breite}{\linewidth} \addtolength{\breite}{-\Breite} \addtolength{\breite}{-2em}} \newcommand*{\Sumbreite}[2]{% \setlength{\breite}{#1} \addtolength{\breite}{#2}} %%-------------------------------------------------------------------------- % Aufgabenbearbeitung %%-------------------------------------------------------------------------- %%----- Die notwendigen Zähler: \ifsectNA \newcounter{aufgabennr}[section] \else \newcounter{aufgabennr} \fi \newcounter{teilaufgnr}[aufgabennr] %%----- Hilfsbefehl für \NA und \NL: \newcommand{\NANL}[1]{% \refstepcounter{aufgabennr}% \@afterindentfalse\vskip1.5ex% \ifsectNA \renewcommand{\theaufgabennr}{\thesection.\arabic{aufgabennr}} \else \renewcommand{\theaufgabennr}{\arabic{aufgabennr}} \fi {\parindent\z@\textAufgabenfont{#1\,\theaufgabennr~~}}% \nopagebreak\@afterheading}% \newcommand{\NA}{\NANL{Aufgabe}} \newcommand{\NL}{\NANL{Lös. zu Aufg.}} %%----- Behandlung von Teilaufgaben \newlength{\TALength}\settowidth{\TALength}{m)n} % Platz für Aufgabenzeichen a),b),... \newcommand*{\TAspace}{\hspace*{\TALength}} % teilaufgabennummern als a) b),... \renewcommand*{\theteilaufgnr}{\theaufgabennr\alph{teilaufgnr})} \newcommand*{\TA}{% \refstepcounter{teilaufgnr}% \pagebreak[1]% \makebox[\TALength][l]{\kern0.05em\alph{teilaufgnr})}} % Liste von Teilaufgaben \newenvironment{TAufg}{% \parindent=0pt\vskip0.8ex plus0.5ex minus 0.2ex% \begin{list}{}{% \setlength{\labelsep}{0pt}% \setlength{\labelwidth}{\TALength}% \setlength{\leftmargin}{\TALength}% \setlength{\topsep}{.8ex plus 0.5ex minus 0.2ex}% \setlength{\parsep}{\topsep}% \setlength{\itemsep}{0pt}% \renewcommand{\makelabel}{% \refstepcounter{teilaufgnr}% \makebox[\TALength][l]{\alph{teilaufgnr})}}}}% {\end{list}} % Tab. von Teilaufgaben (im Math-Mode) \newenvironment{TTAufg}[2][]{% \renewcommand{\tabularxcolumn}[1]{m{##1}}% \newcolumntype{A}{>{\TA $}X<{$}}\par\noindent% \tabularx{\linewidth}{@{}*{#2}{A}#1@{}}} {\endtabularx\par} % Tab. von Teilaufgaben (im Text-Mode) \newenvironment{TTAufg*}[2][]{% \renewcommand{\tabularxcolumn}[1]{m{##1}}% \newcolumntype{A}{>{\TA }X}\par\noindent% \tabularx{\linewidth}{@{}*{#2}{A}#1@{}}} {\endtabularx\par} % Tab. von Teilaufgaben variabler Spaltenbreite (Math-Mode) \newenvironment{TTAufgVar}[4]{% \renewcommand{\tabularxcolumn}[1]{m{##1}}% \newcolumntype{r}{>{\hsize=#1\hsize\TA $}X<{$}}\par\noindent% \newcolumntype{s}{>{\hsize=#2\hsize\TA $}X<{$}}\par\noindent% \newcolumntype{t}{>{\hsize=#3\hsize\TA $}X<{$}}\par\noindent% \newcolumntype{u}{>{\hsize=#4\hsize\TA $}X<{$}}\par\noindent% \tabularx{\linewidth}{@{}rstu@{}}} {\endtabularx\par} % Tab. von Teilaufgaben variabler Spaltenbreite (Text-Mode) \newenvironment{TTAufgVar*}[4]{% \renewcommand{\tabularxcolumn}[1]{m{##1}}% \newcolumntype{r}{>{\hsize=#1\hsize\TA }X}\par\noindent% \newcolumntype{s}{>{\hsize=#2\hsize\TA }X}\par\noindent% \newcolumntype{t}{>{\hsize=#3\hsize\TA }X}\par\noindent% \newcolumntype{u}{>{\hsize=#4\hsize\TA }X}\par\noindent% \tabularx{\linewidth}{@{}rstu@{}}} {\endtabularx\par} % Nummerierung zurücksetzen \newcommand*{\iniAufg}{\setcounter{aufgabennr}{0}\setcounter{teilaufgnr}{0}} %%-------------------------------------------------------------------------- %% Hyperlinks auf lokale Dateien (für beamer geeignet) %%-------------------------------------------------------------------------- \newcommand{\lokalhref}[3][0.02]{% #3 \MRightarrow{} \scalebox{#1}[1]{\url{#2}}} %%-------------------------------------------------------------------------- %% gerahmte shadowbox in \linewidth erzeugen: %%-------------------------------------------------------------------------- \newlength{\@@boxbreite} \newenvironment{merkbox}[1][c]{% \setlength{\fboxsep}{6pt} \setlength{\belowdisplayskip}{-0.4ex}% \setlength{\belowdisplayshortskip}{\belowdisplayskip}% \setlength{\abovedisplayskip}{0.1ex}% \setlength{\abovedisplayshortskip}{\abovedisplayskip}% \setlength{\@@boxbreite}{\linewidth}% \addtolength{\@@boxbreite}{-2\fboxsep}% \addtolength{\@@boxbreite}{-2\fboxrule}% \addtolength{\@@boxbreite}{-\shadowsize}% \par\vspace{1ex}\noindent% \begin{Sbox}\begin{minipage}[][][s]{\@@boxbreite}% \if#1c\centering\fi}% {\vspace{0pt}\end{minipage}\end{Sbox}\shadowbox{\TheSbox}\noindent} %%-------------------------------------------------------------------------- %% Ein Makro für Abkürzungen wie "z.\,B." (von Heiko Oberdiek) %%-------------------------------------------------------------------------- \newcommand*{\abk@dot}{.\@}% \newcommand*{\AbkZwischenraum}{\,}% \newcommand*{\abkk}[1]{\abk@first#1\abk@end} \newcommand*{\abk}[1]{\mbox{\abkk{#1}}} \def\abk@end{\@empty}% \def\abk@first#1{% \ifx\abk@end#1\abk@end \@latex@error{Empty \string\abk}\@ehc \else #1\abk@dot \expandafter\abk@next \fi } \def\abk@next#1{% \ifx\abk@end#1% \else \AbkZwischenraum#1\abk@dot \expandafter\abk@next \fi } %%-------------------------------------------------------------------------- %% Eine Reihe nützlicher Makros: %%-------------------------------------------------------------------------- %% Root-Exponenten in AmsMath schöner plazieren: \let\Wurzel\sqrt \renewcommand{\sqrt}[2][]{\Wurzel[\leftroot{-1}\uproot{3}#1]{#2}} \newcommand*{\ov}[2]{{{\vphantom{I}}^{#1}{\vphantom{I}}_{#2}}} \newcommand*{\uv}[2]{{{\vphantom{I}}_{#1}{\vphantom{I}}^{#2}}} \newcommand*{\Sr}[2][0]{\rule[#1ex]{0pt}{#2ex}} \newcommand*{\vH}{\,\%\xspace} \newcommand*{\dD}{\ensuremath{\mathup{d}}} \newcommand*{\iD}{\ensuremath{\,\mathup{d}}} \newcommand*{\diff}[3][]{\frac{\mathup{d}^{#1}{#2}}{\mathup{d}^{}{#3}{}^{#1}}} \newcommand*{\pdiff}[3][]{\frac{\partial^{#1}{#2}}{\partial^{}{#3}{}^{#1}}} \newcommand*\mdiff[3]{\frac{\partial^{#2}{#1}}{\pABLN{#3}}} \newcounter{pABLCounter} \def\pABLN#1{\setcounter{pABLCounter}{1}\xpABLN#1;pABLEnde;} \def\pABLEnde{pABLEnde} \def\xpABLN#1;{\def\temp{#1}% \ifx\temp\pABLEnde \else \stepcounter{pABLCounter} \ifodd \value{pABLCounter} \if1#1\,\else {{}^{#1}\,}\fi% \else{\partial{#1}}% \fi % \expandafter\xpABLN \fi} \newcommand*{\ArrF}[1]{\renewcommand{\arraystretch}{#1}} \newcommand*{\Z}[1]{\ensuremath{\cdot10^{#1}}} \newcommand*{\GZ}{\ensuremath{\text{°}}\xspace} \newcommand*{\GC}{\ensuremath{\text{\,°C}}\xspace} \newcommand*{\GF}{\ensuremath{\text{\,°F}}\xspace} \newcommand*{\entspricht}{\wedgeq} \let\D\displaystyle \let\T\textstyle \newcommand*{\pD}{\partial} %%----- Griechische Buchstaben für AucTeX math-mode: \AtBeginDocument{ \let\epsilonBAD\epsilon \renewcommand*{\epsilon}{\varepsilon} \let\eps\varepsilon} \newcommand*{\epsv}{\varepsilon} \newcommand*{\epsilonv}{\varepsilon} \newcommand*{\thetav}{\vartheta} \newcommand*{\piv}{\varpi} \newcommand*{\rhov}{\varrho} \newcommand*{\sigmav}{\varsigma} \newcommand*{\phiv}{\varphi} \newcommand*{\kappav}{\varkappa} %%----- Häufige Sonderzeichen: \newcommand*{\Rpf}{\Rightarrow} \newcommand*{\Dpf}{\Leftrightarrow} \newcommand*{\qRpf}{\quad\Rightarrow\quad} \newcommand*{\qDpf}{\hskip -\arraycolsep\quad\Leftrightarrow\quad} \newcommand*{\I}{\ensuremath{{\mkern1mu\mathup{i}\mkern1mu}}} \newcommand*{\E}{\mkern1mu\mathup{e}\mkern1mu} \newcommand*{\mb}{\mkern3mu|\mkern3mu} \renewcommand*{\le}{\leqslant} \renewcommand*{\ge}{\geqslant} \AtBeginDocument{ \let\leqHor\leq \let\geqHor\geq % nicht slanted ≤,≥ definieren \renewcommand*{\leq}{\leqslant} % sonst alles slanted festlegen \renewcommand*{\geq}{\geqslant}} \newcommand*{\Winkel}{\scalebox{1.2}{\sphericalangle}} \newcommand*{\Ohm}{\ensuremath{\text{Ω}}} \newcommand*{\mur}{\ensuremath{\text{µ}}} \newcommand*{\Pvek}[1]{\overrightarrow{\textit{#1}}} \newcommand*{\Str}[1]{\overline{\textit{#1}}} \newcommand*{\str}[1]{\textit{#1}} \let\tStr\Str \let\tstr\str \let\tPvek\Pvek \newcommand*{\p}{\ensuremath{'}} \newcommand*{\pp}{\ensuremath{''}} \newcommand{\TO}{\@ifstar\TOStern\TOnoStern} \newcommand{\TU}{\@ifstar\TUStern\TUnoStern} \newcommand*{\TUnoStern}[1]{\textsubscript{\LFFam\textup{#1}}} \newcommand*{\TOnoStern}[1]{\textsuperscript{\LFFam\textup{#1}}} \newcommand*{\TUStern}[1]{\textsubscript{\LFFam\textit{#1}}} \newcommand*{\TOStern}[1]{\textsuperscript{\LFFam\textit{#1}}} \newcommand*{\TabV}[1]{% \setlength{\fboxrule}{0pt}\fbox{\hspace*{-\fboxsep}#1\hspace*{-\fboxsep}}} \newcommand*{\Cdot}{{\scriptscriptstyle \stackrel{\bullet}{{}}}} %%----- bold Math in Lua auch mit \bm erzeugen, sonst wurde oben bm geladen \ifluatex\newcommand*{\bm}[1]{\mathbf{#1}}\fi %%----- Operatoren (Tensoren, Matrizen usw.) als serifenlos fett aufrecht \newcommand*{\Op}[1]{\ensuremath{\mkern1mu\mathbfsfup{#1}\mkern1mu}} %% ----- Symbol für den Einheitstensor: \newcommand*{\IM}{\ensuremath{\mathbb{1}}} %%----- Vektoren verschiedener Arten % Fraktur und Pfeile: \newcommand*{\govek}[1]{\ensuremath{% \ifIsControlSequence#1\vec{#1}% \else\mathfrak{#1}\fi}} \newcommand*{\goevek}[1]{\ensuremath{% \ifIsControlSequence#1\hat{#1}% \else{\hat{\mathfrak{#1}}}\fi}} %----- Vektorart gemäß Option: % Standard: serif italic fett \newcommand*{\vek}[1]{\bm{{#1}}} \newcommand*{\evek}[1]{\bm{{\hat{#1}}}} \ifPfeilVektoren % Option: Pfeilvek \renewcommand*{\vek}[1]{% \if#1i\vec{\imath}\else\if#1j\vec{\jmath}\else\vec{#1}\fi\fi} \renewcommand*{\evek}[1]{% \if#1i\hat{\imath}\else\if#1j\hat{\jmath}\else\hat{#1}\fi\fi} \else \ifGothicVektoren % Option: Gothicvek \let\vek\govek\let\evek\goevek \fi \fi %%----- Der Backslash \newcommand*{\BS}{{\textbackslash}} %%----- Tags in *-Formen von amsmath \newcommand*{\starlabel}[1]{\stepcounter{equation}\tag{\theequation}#1} %%----- bordermatrix erweitern: \newif\if@borderstar \def\bordermatrix{\@ifnextchar*{% \@borderstartrue\@bordermatrix@i}{\@borderstarfalse\@bordermatrix@i*}} \def\@bordermatrix@i*{\@ifnextchar[{\@bordermatrix@ii}{\@bordermatrix@ii[()]}} \def\@bordermatrix@ii[#1]#2{% \begingroup \m@th\@tempdima8.75\p@\setbox\z@\vbox{% \def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}% \ialign{$##$\hfil\kern2\p@\kern\@tempdima & \thinspace % \hfil $##$\hfil && \quad\hfil $##$\hfil\crcr\omit\strut % \hfil\crcr\noalign{\kern -\baselineskip}#2\crcr\omit \strut\cr}}% \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% \setbox\tw@\hbox{% $\kern\wd\@ne\kern -\@tempdima\left\@firstoftwo#1% \if@borderstar\kern2pt\else\kern -\wd\@ne\fi% \global\setbox\@ne\vbox{\box\@ne\if@borderstar\else\kern 2\p@\fi}% \vcenter{\if@borderstar\else\kern -\ht\@ne\fi% \unvbox\z@\kern-\if@borderstar2\fi\baselineskip}% \if@borderstar\kern-2\@tempdima\kern2\p@\else\,\fi\right\@secondoftwo#1 $% }\null \;\vbox{\kern\ht\@ne\box\tw@}% \endgroup} %%----- Spaltenvektoren einfach darstellen: \newcommand{\Spvek}[2][r]{% \gdef\@VORNE{1} \left(\hskip-\arraycolsep% \begin{array}{#1}\vekSp@lten{#2}\end{array}% \hskip-\arraycolsep\right)} \def\vekSp@lten#1{\xvekSp@lten#1;vekL@stLine;} \def\vekL@stLine{vekL@stLine} \def\xvekSp@lten#1;{\def\temp{#1}% \ifx\temp\vekL@stLine \else \ifnum\@VORNE=1\gdef\@VORNE{0} \else\@arraycr\fi% #1% \expandafter\xvekSp@lten \fi} %%----- neue Operatorennamen: \DeclareMathOperator{\Rot}{rot} \DeclareMathOperator{\Div}{div} \DeclareMathOperator{\Grad}{grad} \DeclareMathOperator{\ggT}{ggT} \DeclareMathOperator{\kgV}{kgV} \DeclareMathOperator*{\Res}{Res} \DeclareMathOperator{\arsinh}{arsinh} \DeclareMathOperator{\arcosh}{arcosh} \DeclareMathOperator{\artanh}{artanh} %%----- "modernere" Symbole für Real- und Imaginärteil: \DeclareMathOperator{\re}{Re} \DeclareMathOperator{\im}{Im} %%----- Makros für hms/gms-Eingabe: \def\HMSDez#1{\edef\SEKsep{#1}}\HMSDez{,} \def\HMSFig#1{\if#1m\edef\HF##1{\text{##1}}\else\edef\HF##1{##1}\fi}\HMSFig{m} \def\@HmsH#1{\ensuremath{\HF{#1}^{\text{h}}\mkern1mu}} \def\@HmsM#1{\ensuremath{\HF{#1}^{\text{m}}\mkern1mu}} \def\@HmsS#1{\ensuremath{\HF{#1}^{\mkern1mu\text{s}}\mkern1.3mu}} \def\@HmsF#1{\ensuremath{\mkern-6.5mu\SEKsep\mkern0.2mu% \if\SEKsep.\mkern2mu\fi\HF{#1}}} \def\@DmsG#1{\ensuremath{\HF{#1}\GZ\mkern1mu}} \def\@DmsM#1{\ensuremath{\HF{#1}'}} \def\@DmsS#1{\ensuremath{\HF{#1}''}} \def\@DmsF#1{\ensuremath{\mkern-6.5mu\SEKsep\mkern0.2mu% \if\SEKsep.\mkern2mu\fi\HF{#1}}} \def\HMS#1h#2m#3.#4s{\def\H@hh{#1}\def\M@mm{#2}\def\S@ss{#3}\def\F@ff{#4}% \ifx\H@hh\empty\else\@HmsH{#1}\fi% \ifx\M@mm\empty\else\@HmsM{#2}\fi% \ifx\S@ss\empty\else\@HmsS{#3}\fi% \ifx\F@ff\empty\else\@HmsF{#4}\fi} \def\GMS#1g#2m#3.#4s{\def\H@hh{#1}\def\M@mm{#2}\def\S@ss{#3}\def\F@ff{#4}% \ifx\H@hh\empty\else\@DmsG{#1}\fi% \ifx\M@mm\empty\else\@DmsM{#2}\fi% \ifx\S@ss\empty\else\@DmsS{#3}\fi% \ifx\F@ff\empty\else\@DmsF{#4}\fi} %%----- Befehl \Menge aus braket.sty retten: \let\Menge\Set %%----- Punkte mit wachsenden Klammern und | {\catcode`\|=\active \xdef\Pkt{\protect\expandafter\noexpand\csname Pkt \endcsname} \expandafter\gdef\csname Pkt \endcsname#1{\begingroup \ifx\SavedDoubleVert\relax \let\SavedDoubleVert\|\let\|\BraDoubleVert \fi \mathcode`\|32768\let|\BraVert \left({#1}\right)\endgroup} } %%----- Punktangaben bei Klassenarbeiten: \newcommand*{\Punkte}[1]{\ifmmode\tag{#1\,P}\else\hspace*{\fill}(#1\,P)\fi} \newcommand*{\mPunkte}[2][0pt]{% \marginpar[\hfill{\small\raisebox{#1}[0pt][0pt]{\fbox{#2}}}]% {{\small\raisebox{#1}[0pt][0pt]{\fbox{#2}}}} \ifdim #1>0pt \vspace{-\belowdisplayskip}\fi} %%----- Text mit weitem Umraum: \newcommand*{\qbox}[1]{\quad\text{#1}\quad} \newcommand*{\qqbox}[1]{\qquad\text{#1}\qquad} %%----- Das SFZ Logo \newcommand*{\RTM}{\textsuperscript{\textregistered}} \newcommand*{\SFZ}[1][]{% \if#1v Schülerforschungszentrum Südwürttemberg (SFZ\RTM)\xspace% \else SFZ\RTM\xspace \fi} %%-------------------------------------------------------------------------- %% Behandlung von Minuskelziffern %%-------------------------------------------------------------------------- %%----- Zeitangaben \newcommand*{\Uhr}[3][1]{% \if#1o #2\textsuperscript{#3}\else\ensuremath{#2^{#3}}\fi~$\text{Uhr}$} %%-------------------------------------------------------------------------- %% Einheiten setzen (\Ut): %%-------------------------------------------------------------------------- \newcommand*{\nfrac}[2]{\nicefrac{#1}{#2}} % nur Abkürzung % Einheiten wie Vs/m^2 parsen: \def\bruch@parse#1{\expandafter\bruch@simple#1/\\} \def\bruch@simple#1/#2\\{% \ifx\\#2\\% \let\bruch@nenner\relax \else \protected@edef\bruch@nenner{\bruch@mitstrich#2\\} \fi \protected@edef\bruch@zaehler{#1}} \def\bruch@mitstrich#1/\\{#1} % Umraum / bei nicefrac \newcommand*{\MMZWRv}{\ifmmode\kern0.15em\else\kern0pt\fi} \newcommand*{\MMZWRh}{\ifmmode\kern0.1em\else\kern0pt\fi} % Einheiten je nach Option schreiben \newcommand*{\putUNIT}[2][b]{% \if#1b% % nicefrac - Brüche \bruch@parse{#2}% \ifx\bruch@nenner\relax% \ifinnerhalbCaption \unit[\vphantom{.}]{\mathCaptionfont{#2}}% \else \unit[\vphantom{.}]{#2}% \fi \else% \ifmmode\else$\mkern-\thickmuskip$\fi% \ifinnerhalbCaption \unitfrac[\vphantom{.}]{\mathCaptionfont{\bruch@zaehler\MMZWRv}}% {\MMZWRh\mathCaptionfont{\bruch@nenner}}% \else \unitfrac[\vphantom{.}]{\bruch@zaehler\MMZWRv}% {\MMZWRh\bruch@nenner}% \fi% \fi% \else% \if#1f% % senkrechte Brüche \bruch@parse{#2}% \ifx\bruch@nenner\relax% \ifinnerhalbCaption \unit[\vphantom{.}]{\mathCaptionfont{#2}} \else% \unit[\vphantom{.}]{#2} \fi \else% \ifx\bruch@zaehler\empty\def\bruch@zaehler{1}\fi% \ifinnerhalbCaption {\ensuremath{\,\frac{\mathCaptionfont{\bruch@zaehler}}% {\mathCaptionfont{\bruch@nenner}}}}% \else {\ensuremath{\,\frac{\mathrm{\bruch@zaehler}} {\mathrm{\bruch@nenner}}}} \fi% \fi% % Ende Block senkrechte Brüche \else% % normal ohne Brüche \ifinnerhalbCaption \unit[\vphantom{.}]{\mathCaptionfont{#2}}% \else \unit[\vphantom{.}]{#2}% \fi% \fi% \fi% } % User-Befehl definieren \newcommand*{\Ut}[2][b]{\protect\putUNIT[#1]{#2}} %%-------------------------------------------------------------------------- %% Minisecs, Labeling, Numlist %%-------------------------------------------------------------------------- %%----- Die minisecs: \renewcommand{\thesubparagraph}{M:\arabic{subparagraph}} \newcommand{\minisec}[1]{\refstepcounter{subparagraph}% \@afterindentfalse \vskip 2ex% Keine Einrückung, Raum vor Titel {\parindent\z@\raggedright\textMinisecfont{\large#1}% \nopagebreak[4]\vskip\@MinisecNach % Raum nach Titel \par\nobreak}% \@afterheading} % kein Zeilenumbruch nach Titel %%----- dann die Labeling-Umgebung: \ifnoBrief \newenvironment{labeling}[2][]{% \begin{list}{}{% \renewcommand{\makelabel}[1]{\mbox{\Labelingfont##1}#1}% \settowidth{\labelwidth}{#2#1}% \setlength{\leftmargin}{\labelwidth}% \addtolength{\leftmargin}{\labelsep}% \setlength{\itemsep}{0.8ex plus .5ex minus .2ex}% \setlength{\parsep}{0.8ex plus .5ex minus .2ex}% \setlength{\topsep}{1ex plus .5ex minus .2ex}}% }{\end{list}} \fi %%------ CBeschreibung-Umgebung: \def\EndeDes@Items{EndOf@Item} \long\def\eine@Zeile#1{\xEin@Item#1,,EndOf@Item,,} \long\def\xEin@Item#1,,{\def\temp{#1}% \ifx\temp\EndeDes@Items \else\URL{#1}\par\expandafter\xEin@Item% \fi } \newenvironment{CBeschreibung}{% \begin{list}{}{% \renewcommand{\makelabel}[1]{% \parbox[b]{\textwidth}{\eine@Zeile{##1}}}}}% {\end{list}} %%----- drei trennende Sternchen für deutlichen Absatzwechsel \newcommand{\sternchen}{% \@afterindentfalse {\begin{center} * \qquad * \qquad * \end{center}}\@afterheading} %%----- eine englische Linie zur Absatztrennung \newcommand{\EnglischeLinie}{% \@afterindentfalse {\begin{center} \resizebox{0.8\linewidth}{0.4ex}{{% \fontsize{20}{24}\usefont{U}{webo}{xl}{n}{4}}}% \end{center}}\@afterheading} % die Standard-Mengen abkürzen: \newcommand*{\nN}{\ensuremath{\mathbb{N}}\xspace} \newcommand*{\zZ}{\ensuremath{\mathbb{Z}}\xspace} \newcommand*{\qQ}{\ensuremath{\mathbb{Q}}\xspace} \newcommand*{\rR}{\ensuremath{\mathbb{R}}\xspace} \newcommand*{\cC}{\ensuremath{\mathbb{C}}\xspace} %%=========================================================================== %% Globales Layout ändern %%=========================================================================== %%----- Verschönerung der Caption: \long\def\@makecaption#1#2{\innerhalbCaptiontrue% \vskip\abovedisplayskip\Captionfont% \setbox\@tempboxa\hbox{\textCapTitFont{#1}~~#2}% \ifdim \wd\@tempboxa > \hsize \textCapTitFont{#1}~~#2\par \else \hbox to \hsize{\hfill\box\@tempboxa\hfill}% \fi \innerhalbCaptionfalse% \vskip\belowcaptionskip} %%------------------------------------------------------------------------ %% Pagestyle headings umdefinieren: %%------------------------------------------------------------------------ % ich möchte in headings keine Versal-Kopfzeilen, deshalb umdefinieren: % Auch 'Kapitel' fehlt nun in der Kopfzeile \ifUndefiniertCS{chapter} %%-- Article \if@twoside \def\ps@headings{% \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@evenhead{\thepage\hfil\sffamily\itshape\leftmark}% \def\@oddhead{{\sffamily\itshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\sectionmark##1{% \markboth {% \ifnum \c@secnumdepth >\z@ \thesection\quad \fi ##1}{}}% \def\subsectionmark##1{% \markright {% \ifnum \c@secnumdepth >\@ne \thesubsection\quad \fi ##1}}} \else \def\ps@headings{% \let\@oddfoot\@empty \def\@oddhead{{\sffamily\itshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\sectionmark##1{% \markright {% \ifnum \c@secnumdepth >\m@ne \thesection\quad \fi ##1}}} \fi \else %-- Report oder Book \if@twoside \def\ps@headings{% \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@evenhead{\thepage\hfil\sffamily\itshape\leftmark}% \def\@oddhead{{\sffamily\itshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\chaptermark##1{% \markboth {% \ifnum \c@secnumdepth >\m@ne \thechapter. \ % \fi ##1}{}}% \def\sectionmark##1{% \markright {% \ifnum \c@secnumdepth >\z@ \thesection. \ % \fi ##1}}} \else \def\ps@headings{% \let\@oddfoot\@empty \def\@oddhead{{\sffamily\itshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\chaptermark##1{% \markright {% \ifnum \c@secnumdepth >\m@ne \thechapter. \ % \fi ##1}}} \fi \fi %%-------------------------------------------------------------------------- %% Kopfzeilen einrichten %%-------------------------------------------------------------------------- %%----- Ausgabe der Seitennummern in allen folgenden Setzungen: \ifpNmittig \def\ger@deNr{\hfill\thepage\hfill} \def\unger@deNr{\hfill\thepage\hfill} \else \def\ger@deNr{\thepage\hfill} \def\unger@deNr{\hfill\thepage} \fi \newcommand*{\todayInter}{{% \number\year--\ifnum\month<10 0\fi% \number\month--\ifnum\day<10 0\fi\number\day}} %%----- headings: Striche in der Kopfzeile nur, wenn nicht leer: \newlength{\M@rkenl@ng} \newcommand*{\@Kopflinie}[1]{% \settowidth{\M@rkenl@ng}{#1} \ifdim\M@rkenl@ng>1pt \vspace{2pt}\hbox to \textwidth{\hrulefill}% \fi} \newif\if@HStr\@HStrtrue % Strich? default: setzen \newif\if@SNr\@SNrtrue % Seitennummer? default: ausgeben \newcommand{\Kopfzeile}[4][p]{% \if#1h \pagestyle{headings} % pagestyle headings, Seitennummer im Fuß \def\@oddfoot{\unger@deNr} \def\@oddhead{% \vbox{\hbox to \textwidth{\hfill{\Kopfzeilenfont\rightmark}}}} \if@twoside \def\@evenfoot{\ger@deNr} \def\@evenhead{% \vbox{\hbox to \textwidth{{\Kopfzeilenfont\leftmark}\hfill}}} \fi \else \if#1H % wie 'h', aber mit Strich \pagestyle{headings} \def\@oddfoot{\unger@deNr} \def\@oddhead{% \vbox{\hbox to \textwidth{\hfill{\Kopfzeilenfont\rightmark}} \@Kopflinie{\rightmark}}} \if@twoside \def\@evenfoot{\ger@deNr} \def\@evenhead{% \vbox{\hbox to \textwidth{{\Kopfzeilenfont\leftmark}\hfill} \@Kopflinie{\leftmark}}} \fi \else \if#1K % wie 'H', aber nur oberste Gliederungsebene \pagestyle{headings} \def\@oddfoot{\unger@deNr} \def\@oddhead{% \vbox{\hbox to \textwidth{\hfill{\Kopfzeilenfont\leftmark}} \@Kopflinie{\leftmark}}} \if@twoside \def\@evenfoot{\ger@deNr} \def\@evenhead{% \vbox{\hbox to \textwidth{{\Kopfzeilenfont\leftmark}\hfill} \@Kopflinie{\leftmark}}} \fi \else \if#1k % wie 'K', aber ohne Trennstrich \pagestyle{headings} \def\@oddfoot{\unger@deNr} \def\@oddhead{% \vbox{\hbox to \textwidth{\hfill{\Kopfzeilenfont\leftmark}}}} \if@twoside \def\@evenfoot{\ger@deNr} \def\@evenhead{% \vbox{\hbox to \textwidth{{\Kopfzeilenfont\leftmark}\hfill}}} \fi \else %---- Eigene Einträge in die Kopfzeile ---- \if#1P \@HStrtrue \@SNrtrue \fi \if#1p \@HStrfalse \@SNrtrue \fi \if#1N \@HStrtrue \@SNrfalse \fi \if#1n \@HStrfalse \@SNrfalse \fi \def\@oddhead{% \vbox{\hbox to \textwidth{\Kopfzeilenfont#4\hfill#3\hfill#2} \if@HStr\@Kopflinie{JA}\fi}} \if@twoside \def\@evenhead{% \vbox{\hbox to \textwidth{\Kopfzeilenfont#2\hfill#3\hfill#4} \if@HStr\@Kopflinie{JA}\fi}} \fi \if@SNr \def\@oddfoot{\unger@deNr} \if@twoside \def\@evenfoot{\ger@deNr} \fi \else \def\@oddfoot{} \def\@evenfoot{} \fi \fi \fi \fi \fi } %%=========================================================================== %% Tabellensachen %%=========================================================================== %%----- verschiedene neue Spaltenstile definieren: % braucht array.sty: \newcolumntype{P}[1]{>{\raggedhyphen\hspace{0pt}}p{#1}} \newcolumntype{M}[1]{>{\raggedhyphen\hspace{0pt}}m{#1}} \newcolumntype{B}[1]{>{\raggedhyphen\hspace{0pt}}b{#1}} % gedrehte Tabelleneinträge; braucht array.sty, rotating.sty: \newcolumntype{T}[1]{% >{\begin{turn}{90}\begin{minipage}{#1}\scriptsize\raggedhyphen\hspace{0pt}}l% <{\end{minipage}\end{turn}}% } % Zeilenstile ändern: \newcommand*{\@zeilstyle}{} \newcommand*{\zeilstyle}[1]{\gdef\@zeilstyle{#1}\@zeilstyle\ignorespaces} \newcolumntype{=}{>{\gdef\@zeilstyle{}}} %reset des zeilstyles \newcolumntype{+}{>{\@zeilstyle}} % zeilstyle auf nächste Spalte anwenden %%-------------------------------------------------------------------------- %% Überall groß/klein geschriebenen Kolumnentitel %%-------------------------------------------------------------------------- %% Bei Briefen gibt es diese Befehle nicht, deshalb in diesem Fall %********************** % HIER STOPPEN: * %********************** \ifnoBrief\else\endinput\fi \ifnoRevtex\else\endinput\fi % ansonsten weitermachen %%------ Zuerst mal wieder article und report/book unterscheiden \ifUndefiniertCS{chapter} \def\@bs@tzm@rke#1{\section*{#1}} \else \def\@bs@tzm@rke#1{\chapter*{#1}} \fi %%------ Inhaltsverzeichnis: \renewcommand{\tableofcontents}{% \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi \@bs@tzm@rke{\contentsname \@mkboth{\contentsname}{\contentsname}}% \@starttoc{toc}\if@restonecol\twocolumn\fi} %%------ Abbildungsverzeichnis: \renewcommand{\listoffigures}{% \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi \@bs@tzm@rke{\listfigurename}% \@mkboth{\listfigurename}{\listfigurename}% \@starttoc{lof}\if@restonecol\twocolumn\fi} %%----- Tabellenverzeichnis: \renewcommand{\listoftables}{% \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi \@bs@tzm@rke{\listtablename}% \@mkboth{\listtablename}{\listtablename}% \@starttoc{lot}\if@restonecol\twocolumn\fi} %%----- Index: \renewenvironment{theindex} {\if@twocolumn \@restonecolfalse \else \@restonecoltrue \fi \columnseprule \z@ \columnsep 35\p@ \ifUndefiniertCS{chapter} \twocolumn[{\@bs@tzm@rke{\indexname}}]% \else \twocolumn[\@makeschapterhead{\indexname}]% \fi \@mkboth{\indexname}{\indexname}% \def\@oddfoot{\unger@deNr}% \if@twoside \def\@evenfoot{\ger@deNr}% \else \def\@evenfoot{\unger@deNr}% \fi \parindent\z@ \parskip\z@ \@plus .3\p@\relax \let\item\@idxitem} {\if@restonecol\onecolumn\else\clearpage\fi} %%----- Literatur \@ifclassloaded{book}{% book \renewenvironment{thebibliography}[1] {\chapter*{\bibname}\@mkboth{\bibname}{\bibname}% \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 \@clubpenalty \clubpenalty \widowpenalty4000% \sfcode`\.\@m} {\def\@noitemerr {\@latex@warning{Empty `thebibliography' environment}}% \endlist}}{% report/article \renewenvironment{thebibliography}[1] {\section*{\refname}\@mkboth{\refname}{\refname}% \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 \@clubpenalty \clubpenalty \widowpenalty4000% \sfcode`\.\@m} {\def\@noitemerr {\@latex@warning{Empty `thebibliography' environment}}% \endlist}} %%-------------------------------------------------------------------------- %% Aussehen der Inhalts- Abbildungs- und Tabellenverzeichnisse ändern %%-------------------------------------------------------------------------- \ifNeuesTok \newcommand*\l@Abschnitt[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setlength\@tempdima{1.5em}% \begingroup \parindent \z@% \leavevmode% \large \advance\leftskip\@tempdima \hskip -\leftskip {\sffamily\itshape{#1}}\upshape% $~\Cdot~$\nobreak \nobreak\hb@xt@\@pnumwidth{#2}\par \penalty\@highpenalty \endgroup \fi} \def\@dottedtocline#1#2#3#4#5{% \ifnum #1>\c@tocdepth \else \vskip \z@ \@plus.2\p@ {\leftskip #2\relax% \parindent #2\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima #3\relax \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {#4}\nobreak$~\Cdot~$% \hb@xt@\@pnumwidth{\normalfont \normalcolor #5}% \par}% \fi} \renewcommand*\l@part[2]{% \ifnum \c@tocdepth >-2\relax \addpenalty{-\@highpenalty}% \addvspace{2.25em \@plus\p@}% \setlength\@tempdima{3em}% \begingroup \parindent \z@% {\leavevmode% {\sffamily\itshape{#1}}\upshape$~\Cdot~$\hb@xt@\@pnumwidth{#2}}\par \nobreak \global\@nobreaktrue \everypar{\global\@nobreakfalse\everypar{}}% \endgroup \fi} \fi \ifUndefiniertCS{chapter} \ifNeuesTok\let\l@section\l@Abschnitt\fi \else \ifNeuesTok\let\l@chapter\l@Abschnitt\fi \fi