% ******************************************** % * Universtity of Stuttgart Universal Style * % ******************************************** % * USUS DOCUMENT STYLE * % * R.Harscheidt, IKE/UNI Stuttgart * % ******************************************** % % All macros like in the usplain format. This % file can also be used to make this format % by INITEX. In the loading INITEX-file the % definition "\def\initex{INITEX}" should be % included. % \makeatletter % make at a letter % **************************************** % * BANNER * % **************************************** % \def\@usname {USUS - University of Stuttgart Universal Style } \def\@usdate {14. July 1988} \def\@usversion {RUS1.0} \everyjob{\typeout{\@usname \@usversion\space- Released \@usdate}} \immediate\write10{\@usname \@usversion\space- Released \@usdate} %%%%% The following comes from usgerman.sty %%%%%%%%%%%% % ***************************************** % * HEADERS * % ***************************************** % \gdef\@headabstract {\"Ubersicht} \gdef\@headpreface {Vorwort} \gdef\@headappendix {Anhang} \gdef\@headpart {Teil} \gdef\@headchapter {} \gdef\@headtoc {Inhalt} \gdef\@headloa {Abk\"urzungen} \gdef\@headlof {Abbildungen} \gdef\@headlos {Formelzeichen} \gdef\@headlot {Tabellen} \gdef\@headglo {Erkl\"arungen} \gdef\@headidx {Index} \gdef\@headbib {Literatur} % ***************************************** % * CAPTIONS * % ***************************************** % \gdef\@capfigure {Abbildung} \gdef\@captable {Tabelle} % ***************************************** % * DATE * % ***************************************** % \gdef\monthname{ \ifcase\month\or Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or Juli\or August\or September\or Oktober\or November\or Dezember \fi} \gdef\thismonth{\monthname\space\number\year} \gdef\today{\number\day.\thismonth} %%%%% Here the original ususall.sty goes on %%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This was made from: % % BOOK DOCUMENT STYLE -- Released 23 September 1985 % for LaTeX version 2.09 % Copyright (C) 1985 by Leslie Lamport % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % **************************************** % * TWO-COLUMN OPTION * % **************************************** % % \@twocolumnfalse % Default is one column. \def\ds@twocolumn{ % Defines two column option. \@twocolumntrue} % **************************************** % * TWO-SIDE OPTION * % **************************************** % % \twosidefalse % Default is single sided. \def\ds@twoside{ % Defines twoside option. \@twosidetrue \@mparswitchtrue} % Marginpars go on outside of page. % **************************************** % * DRAFT OPTION * % **************************************** % % \overfullrule = 0em % Default is don't mark overfull hboxes. \def\ds@draft{ % Causes overfull hboxes to be marked. \overfullrule .5em} % **************************************** % * FONTS * % **************************************** % \lineskip .1em % \lineskip is 0.1em for all font sizes. \normallineskip .1em \def\baselinestretch{1} % 1=1-zeilig, 1.33=1.5-zeilig, 1.66=2-zeilig % The font size option is handled by reading a different file for each % size, as follows, to define font size-specific commands: % 10pt : US10, 11pt : US11, 12pt : US12 % Implemented by \def'ing \@fontload to the nesessary input command. % % in 10pt type size : 1em = 10pt % in 11pt type size : 1em = 11pt % in 12pt type size : 1em = 12pt % \def\definefont#1{% \def\@ptsize{#1} % define ptsize used by some macros \def\@fontload{% \input us1\@ptsize.sty % input fontfile \let\@fontload\relax}} % load only once \definefont{2} % 12pt is default \@namedef{ds@12pt}{} % 12pt option does nothing \@namedef{ds@11pt}{\definefont{1}} % 11pt option loads us11.sty \@namedef{ds@10pt}{\definefont{0}} % 10pt option loads us10.sty % The sans serif option must be set before the optionfiles are loaded. Some of % these files use the \@fontstyle. % \def\@fontstyle{} % default is roman \@namedef{ds@sf}{\let\@fontstyle\sf} % sf option sans serif % **************************************** % * LOAD OPTIONFILES * % **************************************** % % The \@options command causes the execution of every command \ds@FOO % which is defined and for which the user typed the FOO option in his % \documentstyle command. For every option BAR he typed for which % \ds@BAR is not defined, the file BAR.sty will be read after the present % (main) .STY file is executed. % \def\@options{\let\@elt\relax \@for\@tempa:=\@optionlist\do {\@ifundefined{ds@\@tempa} % option command ? {\xdef\@optionfiles{\@optionfiles % load option file \catcode`@=11\@elt\@tempa.sty\relax}} {\csname ds@\@tempa\endcsname}}} % execute command \ifx \initex \undefined % do not load option- and fontfiles \@options % when this is used to make a format. \relax % that must then be done by 'usus.sty' \fi \@fontload % load default fontsize %\input logos.sty % logo makros %\input quotes.sty % quote makros % % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. % SIDE MARGINS: % \if@twoside \oddsidemargin 5mm % rh % Left margin on odd-numbered pages. \evensidemargin -5mm % rh % Left margin on even-numbered pages. \else \oddsidemargin 5mm % rh % Left margin on odd-numbered pages. \evensidemargin 5mm % rh % Left margin on even-numbered pages. \fi % VERTICAL SPACING: % % Top of page: \topmargin -5mm % rh % Nominal distance from top of page to % top of box containing running head. \headheight 5mm % rh % Height of box containing running head. \headsep 10mm % rh % Space between running head and text. \topskip 4mm % rh % '\baselineskip' for first line of page. % Bottom of page: \footheight 5mm % rh % Height of box containing running foot. \footskip 10mm % rh % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % \textheight 225mm % rh % Height of text (including footnotes and % figures, excluding running head and foot). \textwidth 150mm % rh % Width of text line. % For two-column mode: \columnsep 1em % rh % Space between columns \columnseprule 0mm % rh % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: % \footnotesep 3mm % rh % Height of strut placed at the beginning of % every footnote = height of normal % \footnotesize strut, so no extra space % between footnotes. \skip\footins 4mm plus .4em minus .2em % Space between last line of text % text and top of first footnote. % **************************************** % * FLOATS * % **************************************** % % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: % \floatsep 1.2em plus .2em minus .2em % Space between adjacent floats moved % to top or bottom of text page. \intextsep 1.2em plus .2em minus .2em % Space between in-text figures and % text. \textfloatsep 2em plus .2em minus .4em % Space between main text and floats % at top or bottom of page. \@maxsep 2em % The maximum of \floatsep, % \textfloatsep and \intextsep (minus % the stretch and shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: % \dblfloatsep 1.2em plus .2em minus .2em % Same as \floatsep for double-column % figures in two-column mode. \dbltextfloatsep 2em plus .2em minus .4em % \textfloatsep for double-column % floats. \@dblmaxsep 2em % The maximum of \dblfloatsep and % \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: % \@fptop 0em plus 1fil % Stretch at top of float page/column. % (Must be 0em plus ...) \@fpbot 0em plus 1fil % Stretch at bottom of float page/column. % (Must be 0em plus ... ) \@fpsep .8em plus 2fil % Space between floats on float page/column. % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. % \@dblfptop 0em plus 1fil % Stretch at top of float page. % (Must be 0em plus ...) \@dblfpbot 0em plus 1fil % Stretch at bottom of float page. % (Must be 0em plus ...) \@dblfpsep .8em plus 2fil % Space between floats on float page. % MARGINAL NOTES: % \marginparwidth 20mm % rh % Width of marginal notes. \marginparsep .5em % rh % Horizontal space between outer margin % and marginal note \marginparpush .5em % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parindent 0em % Width of paragraph indentation. \parskip .8em plus .2em minus .2em % Extra vertical space between % paragraphs. \topsep .4em plus .2em minus .1em % Extra vertical space, in addition to % \parskip, added above and below list % and paragraphing environments. \partopsep .2em plus .1em minus .1em % Extra vertical space, in addition to % \parskip and \topsep, added when % user leaves blank line before the % environment. \itemsep .2em plus .1em minus .1em % Extra vertical space, in addition to % \parskip, added between list items. \newskip \tocparskip \tocparskip .4em plus .2em minus .1em % Extra vertical space between lines % in the content tables % **************************************** % * PENALTIES * % **************************************** % % The following page-breaking penalties are defined % \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph environment. \@endparpenalty -\@lowpenalty % After a list or paragraph environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * PARTS, CHAPTERS AND SECTIONS * % **************************************** % % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a \chapter or \section command without using % \@startsection, you can use \secdef as follows: % \def\chapter { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... } % Command to define \chapter[...]{...} % \def\CMDB #1{ ... } % Command to define \chapter*{...} % % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{3} \def\part{ \cleardoublepage % Starts new page. \thispagestyle{usplain} % rh Page style of part page is 'usplain' \if@twocolumn % IF two-column style THEN \onecolumn % \onecolumn \@tempswatrue % @tempswa := true \else % ELSE \@tempswafalse % @tempswa := false \fi % FI \hbox{} \vfil % Add fil glue to center title \bgroup \centering % BEGIN centering \secdef\@part\@spart} \def\@part[#1]#2{ \ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2 THEN \refstepcounter{part} % step part counter \addcontentsline{toc}{part} % add toc numbered line {\protect\numberline{\thepart}{#1}} \LARGE\bf\@headpart\ \thepart % Print 'Part' and number \par % in \LARGE bold. \vskip 2em % Add space before title. \else % ELSE \addcontentsline{toc}{part}{#1} % add toc unnumbered line \fi % FI \markboth{}{} \huge \bf #1\@endpart % Print Title in \huge bold. \addtocontents{lof}{\protect\addvspace{4\parskip}} % rh \addtocontents{lot}{\protect\addvspace{4\parskip}}} % rh \def\@spart#1{ \huge \bf #1\@endpart} % Print title in \huge boldface % \@endpart finishes the part page % \def\@endpart{ \par\egroup % END centering \vfil\newpage % End page with 1fil glue. \if@twoside % IF twoside printing THEN \hbox{} % Produce totally blank page \thispagestyle{empty} \newpage \fi % FI \if@tempswa % IF @tempswa = true THEN \twocolumn % \twocolumn \fi} % FI \def\chapter{ \cleardoublepage % Starts new right-hand page. \thispagestyle{usplain} % rh Page style of chapter page is 'usplain' \global\@topnum\z@ % Prevents figures from going at top of page. \@afterindentfalse % Suppresses indent in first paragraph. \secdef\@chapter\@schapter} % Change to \@afterindenttrue to have indent. \def\@chapter[#1]#2{ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -2 THEN \refstepcounter{chapter} % step chapter counter \typeout{\@chapapp\space\thechapter.} % \addcontentsline{toc}{chapter} % add toc numbered line {\protect\numberline{\thechapter}{#1}} \else % ELSE \addcontentsline{toc}{chapter}{#1} % add toc unnumbered line \fi % FI \chaptermark{#1} \if@twocolumn % Tests for two-column mode. \@topnewpage[\@makechapterhead{#2}] \else \@makechapterhead{#2} \@afterheading % Routine called after % chapter and section % heading. \fi \addtocontents{lof}{\protect\addvspace{2\parskip}} % Adds between-chapter \addtocontents{lot}{\protect\addvspace{2\parskip}}}% space to lists of % figs & tables. \def\@schapter#1{ \if@twocolumn \@topnewpage[\@makeschapterhead{#1}] \else \@makeschapterhead{#1} \@afterheading \fi} % \@makechapterhead {TEXT} : Makes the heading for the \chapter command. % \def\@makechapterhead#1{ % Heading for \chapter command \vspace{40pt} { \Large \bf \parindent \z@ \hangindent \@pnumwidth \makebox[\hangindent][l]{\thechapter}#1\par} \nobreak \vspace{25pt}} % \@makeschapterhead {TEXT} : Makes the heading for the \chapter* command. % \def\@makeschapterhead#1{ % Heading for \chapter* command \vspace{40pt} { \Large \bf \parindent \z@ #1\par} \nobreak \vspace{25pt}} % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- e.g., chapter=1, % section = 2, etc. A section number will be printed if % and only if LEVEL < or = the value of the secnumdepth % counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. % \def\section{\@startsection {section}{1}{\z@} {-3.5ex plus -1ex minus -.2ex} {2.3ex plus .2ex}{\large\bf}} \def\subsection{\@startsection {subsection}{2}{\z@} {-3.25ex plus -1ex minus -.2ex} {1.5ex plus .2ex}{\normalsize\bf}} \def\subsubsection{\@startsection {subsubsection}{3}{\z@} {-3.25ex plus -1ex minus -.2ex} {1.5ex plus .2ex}{\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@} {3.25ex plus 1ex minus .2ex} {-1em}{\normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent} {3.25ex plus 1ex minus .2ex} {-1em}{\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % use in defining page styles. % \def\chaptermark#1{} % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % **************************************** % * DOCUMENT-SECTIONS * % **************************************** % % FRONT % rh % % The \front command must do the following: % -- begin a new page % -- set \@chapapp empty (for messages) % -- set the page counter to one % -- reset the chapter counter to zero % -- reset the section counter to zero % -- redefine the page counter to produce roman numbers % \def\front{ \clearpage \def\@chapapp{} \setcounter{page}{1} \setcounter{chapter}{0} \setcounter{section}{0} \setcounter{footnote}{0} \def\thepage{\Roman{page}}} % BODY % rh % % The \body command must do the following: % -- begin a new page % -- set \@chapapp empty (for messages) % -- reset the page counter to one % -- reset the chapter counter to zero % -- reset the section counter to zero % -- redefine the page counter to produce arabic numbers % -- redefine the chapter counter to produce arabic numbers % \def\body{ \clearpage \def\@chapapp{\@headchapter} \setcounter{page}{1} \setcounter{chapter}{0} \setcounter{section}{0} \def\thepage{\arabic{page}} \def\thechapter{\arabic{chapter}}} % APPENDIX % % The \appendix command must do the following: % -- begin a new unnumbered part % -- set \@chapapp to Appendix (for messages) % -- reset the chapter counter to zero % -- redefine the chapter counter to produce appendix numbers % -- reset the section counter to zero % \def\appendix{ \part*{\@headappendix} \def\@chapapp{\@headappendix} \setcounter{chapter}{0} \setcounter{section}{0} \def\thechapter{\Alph{chapter}} \addtocontents{toc}{\protect\addvspace{4\parskip}}} \addtocontents{lof}{\protect\addvspace{4\parskip}} \addtocontents{lot}{\protect\addvspace{4\parskip}} % **************************************** % * PART, CHAPTER AND SECTION NUMBERING * % **************************************** % % DEFINE COUNTERS: % % \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is % reset to zero when counter OLDCTR is stepped. % Counter OLDCTR must already be defined. % \newcounter {part} \newcounter {chapter} \newcounter {section}[chapter] \newcounter {subsection}[section] \newcounter {subsubsection}[subsection] \newcounter {paragraph}[subsubsection] \newcounter {subparagraph}[paragraph] % For any counter CTR, \theCTR is a macro that defines the printed version % of counter CTR. It is defined in terms of the following macros: % % \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral. % \roman{COUNTER} : Its value printed as a lower-case roman numberal. % \Roman{COUNTER} : Its value printed as an upper-case roman numberal. % \alph{COUNTER} : Value of COUNTER printed as a lower-case letter: % 1 = a, 2 = b, etc. % \Alph{COUNTER} : Value of COUNTER printed as an upper-case letter: % 1 = A, 2 = B, etc. % \def\thepart {\Roman{part}} \def\thechapter {\arabic{chapter}} \def\thesection {\thechapter.\arabic{section}} \def\thesubsection {\thesection.\arabic{subsection}} \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} \def\theparagraph {\thesubsubsection.\arabic{paragraph}} \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} % \@chapapp is initially defined to be 'Chapter'. The \appendix % command redefines it to be 'Appendix'. % \def\@chapapp{\@headchapter} % **************************************** % * TABLE OF CONTENTS, ETC. * % **************************************** % % A \subsection command writes a % \contentsline{subsection}{TITLE}{PAGE} % command on the .toc file, where TITLE contains the contents of the % entry and PAGE is the page number. If subsections are being numbered, % then TITLE will be of the form % \numberline{NUM}{HEADING} % where NUM is the number produced by \thesubsection. Other sectioning % commands work similarly. % % A \caption command in a 'figure' environment writes % \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE} % on the .lof file, where NUM is the number produced by \thefigure and % CAPTION is the figure caption. It works similarly for a 'table' environment. % % The command \contentsline{NAME} expands to \l@NAME. So, to specify % the table of contents, we must define \l@chapter, \l@section, % \l@subsection, ... ; to specify the list of figures, we must define % \l@figure; and so on. Most of these can be defined with the % \@dottedtocline command, which works as follows. % % \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} % LEVEL : An entry is produced only if LEVEL < or = value of % 'tocdepth' counter. Note, \chapter is level 0, \section % is level 1, etc. % INDENT : The indentation from the outer left margin of the start of % the contents line. % NUMWIDTH : The width of a box in which the section number is to go, % if TITLE includes a \numberline command. % % This command uses the following three parameters, which are set % with a \def (so em's can be used to make them depend upon the font). % \@pnumwidth : The width of a box in which the page number is put. % \@tocrmarg : The right margin for multiple line entries. One % wants \@tocrmarg > or = \@pnumwidth % \@dotsep : Separation between dots, in mu units. Should be \def'd to % a number like 2 or 1.7 % % TABLEOFCONTENTS % In report style, \tableofcontents, \listoffigures, etc. are always % set in single-column style. @restonecol % \def\tableofcontents{ \@restonecolfalse \if@twocolumn \@restonecoltrue \onecolumn \fi \chapter*{\@headtoc \@mkboth{\uppercase{\@headtoc}} {\uppercase{\@headtoc}}} {\parskip \tocparskip \@starttoc{toc}} \if@restonecol \twocolumn \fi} % **************************************** % * TABLE OF CONTENTS ENTRIES * % **************************************** % \setcounter{tocdepth}{3} \def\@dotsep {4.5} \def\@tocrmarg {2.55em} \def\@pnumwidth {1.55em} \def\l@part#1#2{ \addpenalty{-\@highpenalty} \addvspace{4\parskip} \begingroup { \large\bf \parindent \z@ \@tempdima \@pnumwidth \rightskip \@tocrmarg \parfillskip -\@tocrmarg \leavevmode #1\hfill#2\par} \nobreak \endgroup} \def\l@chapter#1#2{ \pagebreak [3] \addvspace{2\parskip} \begingroup { \bf \parindent \z@ \@tempdima \@pnumwidth \rightskip \@tocrmarg \parfillskip -\@tocrmarg \leavevmode #1\hfill#2\par} \endgroup} \def\l@section {\@dottedtocline{1} {\@pnumwidth} {2.3em}} \def\l@subsection {\@dottedtocline{2} {3.8em} {3.2em}} \def\l@subsubsection {\@dottedtocline{3} {7.0em} {4.1em}} \def\l@paragraph {\@dottedtocline{4} {10em} {5em}} \def\l@subparagraph {\@dottedtocline{5} {12em} {6em}} % **************************************** % * LIST OF FIGURES * % **************************************** % \def\listoffigures{ \@restonecolfalse \if@twocolumn \@restonecoltrue \onecolumn \fi \chapter*{\@headlof \@mkboth{\uppercase{\@headlof}} {\uppercase{\@headlof}}} {\parskip \tocparskip \@starttoc{lof}} \if@restonecol \twocolumn \fi} \def\l@figure{\@dottedtocline{1}{\@pnumwidth}{2.3em}} % **************************************** % * LIST OF TABLES * % **************************************** % \def\listoftables{ \@restonecolfalse \if@twocolumn \@restonecoltrue \onecolumn \fi \chapter*{\@headlot \@mkboth{\uppercase{\@headlot}} {\uppercase{\@headlot}}} {\parskip \tocparskip \@starttoc{lot}} \if@restonecol \twocolumn \fi} \let\l@table\l@figure % **************************************** % * LIST OF ABBREVIATIONS * % **************************************** % \def\listofabbrev{\@ifnextchar[{\@listofabbrev}{\@listofabbrev[MMMM]}} \def\@listofabbrev[#1]{ \@restonecolfalse \if@twocolumn \@restonecoltrue \onecolumn \fi \chapter*{\@headloa \@mkboth{\uppercase{\@headloa}} {\uppercase{\@headloa}}} \begin{list}{}{ \labelsep 1em \settowidth\labelwidth{#1} \leftmargin\labelwidth \advance\leftmargin\labelsep} {\parskip \tocparskip \@starttoc{loa}} \item [~] ~ % Dummy \end{list} \if@restonecol \twocolumn \fi} \def\abbrev#1#2{\addtocontents{loa}{\protect{\item [#1] #2 }}} \let\listofshortcuts=\listofabbrev \let\shortcut =\abbrev % **************************************** % * LIST OF SYMBOLS * % **************************************** % \def\listofsymbols{\@ifnextchar[{\@listofsymbols}{\@listofsymbols[MMMM]}} \def\@listofsymbols[#1]{ \@restonecolfalse \if@twocolumn \@restonecoltrue \onecolumn \fi \chapter*{\@headlos \@mkboth{\uppercase{\@headlos}} {\uppercase{\@headlos}}} \begin{list}{}{ \settowidth\labelwidth{#1} \labelsep 1em \leftmargin\labelwidth \advance\leftmargin\labelsep} {\parskip \tocparskip \@starttoc{los}} \item [~] ~ % Dummy \end{list} \if@restonecol \twocolumn \fi} \def\symbol#1#2{\addtocontents{los}{\protect{\item [#1] #2 }}} % **************************************** % * ABSTRACT * % **************************************** % \def\abstract{\@ifnextchar[{\@abstract}{\@abstract[d]}} \def\@abstract[#1]{\def\temp{#1} \if \temp d \chapter*{\@headabstract % default \@mkboth{\uppercase{\@headabstract}} {\uppercase{\@headabstract}}} \fi \if \temp g \chapter*{Zusammenfassung % german \@mkboth{ZUSAMMENFASSUNG} {ZUSAMMENFASSUNG}} \fi \if \temp e \chapter*{Abstract % english \@mkboth{ABSTRACT} {ABSTRACT}} \fi} \def\endabstract{} % **************************************** % * PREFACE * % **************************************** % \def\preface{\chapter*{\@headpreface \@mkboth{\uppercase{\@headpreface}} {\uppercase{\@headpreface}}}} \def\endpreface{} % **************************************** % * BIBLIOGRAPHY * % **************************************** % % The thebibliography environment executes the following commands: % % \def\newblock{\hskip .11em plus .33em minus -.07em} -- % Defines the `closed' format, where the blocks (major units of % information) of an entry run together. % % \sloppy -- Used because it's rather hard to do line breaks in % bibliographies, % % \sfcode`\.=1000\relax -- % Causes a `.' (period) not toproduce an end-of-sentence space. % \def\thebibliography#1{ \chapter*{\@headbib \@mkboth{\uppercase{\@headbib}} {\uppercase{\@headbib}}} \def\newblock{\hskip .11em plus .33em minus -.07em} \sfcode`\.=1000\relax \sloppy \list{[\arabic{enumi}]}{ \settowidth\labelwidth{[#1]} \labelsep 1em \leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumi}}} \let\endthebibliography=\endlist % \def\@biblabel#1{[#1]\hfill} % Produces the label for a \bibitem[...] % command. % \def\@cite#1{[#1]} % Produces the output of the \cite command. % **************************************** % * THE INDEX * % **************************************** % % THE THEINDEX ENVIRONMENT % Produces double column format, with each paragraph a separate entry. % The user commands \item, \subitem and \subsubitem are used to % produce the entries, and \indexspace adds an extra vertical space % that's the right size to put above the first entry with a new letter % of the alphabet. % \newif\if@restonecol \def\theindex{ \@restonecoltrue \if@twocolumn \@restonecolfalse \fi \columnseprule \z@ \columnsep 3.5em \twocolumn \chapter{\@headidx \@mkboth{\uppercase{\@headidx}} {\uppercase{\@headidx}}} \thispagestyle{usplain} % rh \parindent\z@ \parskip \z@ plus .03em \relax \let\item\@idxitem} \def\endtheindex{ \if@restonecol \onecolumn \else \clearpage \fi} \def\@idxitem{\par\hangindent 4em} \def\subitem{\par\hangindent 4em \hspace*{2em}} \def\subsubitem{\par\hangindent 4em \hspace*{3em}} \def\indexspace{\par \vskip 1em plus .5em minus .3em\relax} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. % In two-column format the indentations for level i, v and vi are smaller % than in one-column format. % \if@twocolumn \leftmargini 2em \leftmarginii 2.2em % > \labelsep + width of '(m)' \leftmarginiii 1.87em % > \labelsep + width of 'vii.' \leftmarginiv 1.7em % > \labelsep + width of 'M.' \leftmarginv 0.5em \leftmarginvi 0.5em \else \leftmargini 2.5em \leftmarginii 2.2em % > \labelsep + width of '(m)' \leftmarginiii 1.87em % > \labelsep + width of 'vii.' \leftmarginiv 1.7em % > \labelsep + width of 'M.' \leftmarginv 1.0em \leftmarginvi 1.0em \fi \leftmargin\leftmargini \labelwidth\leftmargini\advance\labelwidth-\labelsep \labelsep .5em \parsep .4em plus .2em minus .1em \def\@listi{\leftmargin\leftmargini} \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii \advance\labelwidth-\labelsep \topsep .4em plus .2em minus .1em \parsep .2em plus .1em minus .1em \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii \advance\labelwidth-\labelsep \topsep .2em plus .1em minus .1em \parsep \z@ \partopsep .1em plus 0em minus .1em \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv \advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv \advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi \advance\labelwidth-\labelsep} % **************************************** % * LIST ENVIRONMENTS * % **************************************** % % ENUMERATE % Enumeration is done with four counters: enumi, enumii, enumiii % and enumiv, where enumN controls the numbering of the Nth level % enumeration. The label is generated by the commands \labelenumi % ... \labelenumiv. The expansion of \p@enumN\theenumN defines the % output of a \ref command. % \def\theenumi {\arabic{enumi}} \def\theenumii {\alph{enumii}} \def\theenumiii {\roman{enumiii}} \def\theenumiv {\Alph{enumiv}} \def\labelenumi {\theenumi.} % rh {\arabic{enumi}.} \def\labelenumii {(\theenumii)} % rh {(\alph{enumii})} \def\labelenumiii {\theenumiii.} % rh {\roman{enumiii}.} \def\labelenumiv {\theenumiv.} % rh {\Alph{enumiv}.} \def\p@enumii {\theenumi} \def\p@enumiii {\theenumi(\theenumii)} \def\p@enumiv {\p@enumiii\theenumiii} % ITEMIZE % Itemization is controlled by four commands: \labelitemi, \labelitemii, % \labelitemiii, and \labelitemiv, which define the labels of the various % itemization levels. % \def\labelitemi {$\bullet$} \def\labelitemii {\bf --} \def\labelitemiii {$\circ$} \def\labelitemiv {$\cdot$} % VERSE % The verse environment is defined by making clever use of the % list environment's parameters. The user types \\ to end a line. % This is implemented by \let'in \\ equal \@centercr. % \def\verse{ \let\\=\@centercr \list{}{\itemsep \z@ \itemindent -1.5em \listparindent \itemindent \rightmargin \leftmargin \advance\leftmargin 1.5em} \item[]} \let\endverse\endlist % QUOTATION % Fills lines % Indents paragraph % \def\quotation{ \list{}{\itemindent 1.5em \listparindent \itemindent \rightmargin \leftmargin \parsep 0em plus .1em} \item[]} \let\endquotation=\endlist % QUOTE -- same as quotation except no paragraph indentation, % \def\quote{ \list{}{\rightmargin\leftmargin} \item[]} \let\endquote=\endlist % DESCRIPTION % % To change the formatting of the label, you must redefine % \descriptionlabel. % \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{ \list{}{\labelwidth \z@ \itemindent -\leftmargin \let\makelabel \descriptionlabel}} \let\enddescription\endlist \newdimen\descriptionmargin \descriptionmargin=3em % DEFLIST % %\def\deflabel#1{\bf #1\hfill} \def\deflabel#1{#1\hfill} \def\deflist#1{ % \list{}{\settowidth{\labelwidth}{\bf #1} \list{}{\settowidth{\labelwidth}{#1} \setlength{\leftmargin}{\labelwidth} \addtolength{\leftmargin}{\labelsep} \let\makelabel \deflabel}} \let\enddeflist\endlist % **************************************** % * OTHER ENVIRONMENTS * % **************************************** % % THEOREM % % \@begintheorem ... \@endtheorem are the commands executed at the % beginning and end of a (user-defined) theorem-like environment. % Except \@opargbegintheorem is executed when an optional argument is % given. Cf. LATEX.TEX. % % \def\@begintheorem#1#2{ % \it \trivlist \item[\hskip \labelsep{\bf #1\ #2}]} % \def\@opargbegintheorem#1#2#3{ % \it \trivlist \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]} % \def\@endtheorem{\endtrivlist} % TITLEPAGE % In the normal environments, the titlepage environment does nothing but % start and end a page, and inhibit page numbers. It also resets the % page number to zero. In two-column style, it still makes a one-column % page. % \def\titlepage{ \if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \newpage \fi \thispagestyle{empty} \c@page\z@} \def\endtitlepage{ \if@restonecol \twocolumn \else \newpage \fi} % ARRAY AND TABULAR % \arraycolsep .5em % Half the space between columns in array environment. \tabcolsep .6em % Half the space between columns in tabular environment. \arrayrulewidth .04em % Width of rules in array and tabular environment. \doublerulesep .2em % Space between adjacent rules in array or tabular env. % TABBING % \tabbingsep\labelsep % Space used by the \' command. (See LaTeX manual.) % MINIPAGE % \@minipagerestore is called upon entry to a minipage environment to % set up things that are to be handled differently inside a minipage % environment. In the current styles, it does nothing. % % \skip\@mpfootins : plays same role for footnotes in a minipage as % \skip\footins does for ordinary footnotes % \skip\@mpfootins = \skip\footins % FRAMEBOX % \fboxsep .3em % Space left between box and text by \fbox and \framebox. \fboxrule .04em % Width of rules in box made by \fbox and \framebox. % **************************************** % * FOOTNOTES * % **************************************** % % \footnoterule is a macro to draw the rule separating the footnotes from % the text. It should take zero vertical space, so it needs a negative % skip to compensate for any positive space taken by the rule. (See % PLAIN.TEX.) % \def\footnoterule{ \kern-3\p@ \hrule width .4\columnwidth \kern 2.6\p@} % The \hrule has default height of .04em . % \newcounter{footnote} \@addtoreset{footnote}{chapter} % Numbers footnotes within chapters % \@makefntext{NOTE} : % Must produce the actual footnote, using \@thefnmark as the mark % of the footnote and NOTE as the text. It is called when effectively % inside a \parbox of width \columnwidth (i.e., with \hsize = % \columnwidth). % % The following macro indents all lines of the footnote by 1em, and % indents the first line of a new paragraph by 1em. To change these % dimensions, just substitute the desired value for '10pt' [in both % places] or '1em'. The mark is flushright against the footnote. % \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize % \advance\@tempdima-10pt\parshape \@ne 1em \@tempdima}\par % \parindent 1em\noindent \hbox to \z@{\hss$^{\@thefnmark}$}#1} % % A simpler macro is used, in which the footnote text is % set like an ordinary text paragraph, with no indentation except % on the first line of a paragraph, and the first line of the % footnote. Thus, all the macro must do is set \parindent % to the appropriate value for succeeding paragraphs and put the % proper indentation before mark. \long\def\@makefntext#1{ \parindent 0em \hangindent 1.8em \makebox[\hangindent][r]{$^{\@thefnmark}$}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. Default used. % % **************************************** % * FIGURES AND TABLES * % **************************************** % % Float placement parameters. See LaTeX manual for their definition. % %**** %\setcounter{topnumber} {2} \setcounter{topnumber} {1} %*** %\setcounter{bottomnumber} {1} \setcounter{bottomnumber} {2} %*** \setcounter{totalnumber} {3} %*** \setcounter{dbltopnumber} {2} %*** %\def\topfraction {.7} \def\topfraction {.8} %*** %\def\bottomfraction {.3} \def\bottomfraction {.8} %*** %\def\textfraction {.2} \def\textfraction {.1} %*** %\def\floatpagefraction {.5} \def\floatpagefraction {.2} %*** \def\dbltopfraction {.7} %*** \def\dblfloatpagefraction {.5} % \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption. % NUMBER : Figure or table number--e.g., 'Figure 3.2' % TEXT : The caption text. % Macro should be called inside a \parbox of right width, with \normalsize. % \long\def\@makecaption#1#2{ \vskip 1em \setbox\@tempboxa\hbox{{\normalsize \sf #1: #2}} \ifdim \wd\@tempboxa >\hsize % IF longer than one line THEN \parindent 0em \settowidth{\hangindent}{{\normalsize \sf #1: }} \makebox[\hangindent][r]{{\normalsize \sf #1: }}{\normalsize \sf #2} % \unhbox\@tempboxa\par % set as ordinary paragraph. \else % ELSE \hbox to\hsize{\hfil\box\@tempboxa\hfil} % center. \fi} % To define a float of type TYPE (e.g., TYPE = figure), the document style % must define the following. % % \fps@TYPE : The default placement specifier for floats of type TYPE. % % \ftype@TYPE : The type number for floats of type TYPE. Each TYPE has % associated a unique positive TYPE NUMBER, which is a power % of two. E.g., figures might have type number 1, tables type % number 2, programs type number 4, etc. % % \ext@TYPE : The file extension indicating the file on which the % contents list for float type TYPE is stored. For example, % \ext@figure = 'lof'. % % \fnum@TYPE : A macro to generate the figure number for a caption. % For example, \fnum@TYPE == Figure \thefigure. % % The actual float-making environment commands--e.g., the commands % \figure and \endfigure--are defined in terms of the macros \@float % and \end@float, which are described below. % % \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a % single-column float of type TYPE with PLACEMENT as the placement % specifier. The default value of PLACEMENT is defined by \fps@TYPE. % The environment is ended by \end@float. % E.g., \figure == \@float{figure}, \endfigure == \end@float. % FIGURE % \newcounter{figure}[chapter] \def\thefigure{\thechapter.\@arabic\c@figure} \def\ext@figure{lof} \def\ftype@figure{1} \def\fps@figure{htbp} \def\fnum@figure{{\sf \@capfigure\ \thefigure}} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} % TABLE % \newcounter{table}[chapter] \def\thetable{\thechapter.\@arabic\c@table} \def\ext@table{lot} \def\ftype@table{2} \def\fps@table{htbp} \def\fnum@table{\@captable\ \thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} % **************************************** % * TITLE * % **************************************** % % Uses same title and abstract format as the article style's % titlepage option. % \def\maketitle{ \begin{titlepage} \let\footnotesize\small % Local definitions to make \thanks produce \let\footnoterule\relax % \normalsize footnotes with no separating rule. \setcounter{page}{0} \null \vfil \vskip 6em % To adjust centering. \begin{center} {\LARGE\@title\par} % Set title in \LARGE size. \vskip 3em % Vertical space after title. { \large % Set author in \large size. \lineskip .75em \begin{tabular}[t]{c}\@author \end{tabular}\par} \vskip 1.5em % Vertical space after author. {\large \@date \par} % Set date in \large size. \end{center}\par \@thanks \vfil \null \end{titlepage} \setcounter{footnote}{0} % Footnotes start at zero again. \let\thanks\relax \gdef\@thanks{} \gdef\@author{} \gdef\@title{} \let\maketitle\relax} % **************************************** % * PAGE STYLES * % **************************************** % % The page style 'foo' is defined by defining the command \ps@foo. This % command should make only local definitions. There should be no stray % spaces in the definition, since they could lead to mysterious extra % spaces in the output. % % The \ps@... command defines the macros \@oddhead, \@oddfoot, % \@evenhead, and \@evenfoot to define the running heads and % feet---e.g., \@oddhead is the macro to produce the contents of the % heading box for odd-numbered pages. It is called inside an \hbox of % width \textwidth. % % To make headings determined by the sectioning commands, the page style % defines the commands \chaptermark, \sectionmark, ... , where % \chaptermark{TEXT} is called by \chapter to set a mark, and so on. % The \...mark commands and the \...head macros are defined with the % help of the following macros. (All the \...mark commands should be % initialized to no-ops.) % % MARKING CONVENTIONS: % LaTeX extends TeX's \mark facility by producing two kinds of marks % a 'left' and a 'right' mark, using the following commands: % \markboth{LEFT}{RIGHT} : Adds both marks. % \markright{RIGHT} : Adds a 'right' mark. % \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot % macro, gets the current 'left' mark. Works like TeX's % \botmark command. % \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot % macro, gets the current 'right' mark. Works like TeX's % \firstmark command. % The marking commands work reasonably well for right marks 'numbered % within' left marks--e.g., the left mark is changed by a \chapter command and % the right mark is changed by a \section command. However, it does % produce somewhat anomalous results if two \bothmark's occur on the same page. % % Commands like \tableofcontents that should set the marks in some page styles % use a \@mkboth command, which is \let by the pagestyle command (\ps@...) % to \markboth for setting the heading or \@gobbletwo to do nothing. % \mark{{}{}} % Initializes TeX's marks % \ps@empty and \ps@plain defined in LATEX.TEX % Definition of 'headings' page style % % Note the use of ##1 for parameter of \def\chaptermark inside the % \def\ps@headings. % \def\ps@headings{ \let\@mkboth\markboth \def\@evenhead{\rm\thepage\hfil \sl\leftmark\hbox{}}% Left heading. \def\@oddhead{\hbox{}\sl\rightmark \hfil\rm\thepage}% Right heading. \def\@oddfoot{} \def\@evenfoot{} \def\chaptermark##1{ \markboth{\uppercase{\ifnum \c@secnumdepth >\m@ne \@chapapp\ \thechapter. \ \fi ##1}}{}}% \def\sectionmark##1{\markright{\uppercase{ \ifnum \c@secnumdepth >\z@ \thesection. \ \fi ##1}}}} % Definition of 'myheadings' page style. % \def\ps@myheadings{ \let\@mkboth\@gobbletwo \def\@oddhead{\hbox{}\sl\rightmark \hfil\rm\thepage} \def\@evenhead{\rm\thepage\hfil \sl\leftmark\hbox{}} \def\@oddfoot{} \def\@evenfoot{} \def\sectionmark##1{} \def\subsectionmark##1{}} % Definition of 'usplain' page style. % \def\ps@usplain{ \let\@mkboth\@gobbletwo \def\@oddhead {\hfil \thepage \hfil } \def\@evenhead{\hfil \thepage \hfil } \def\@oddfoot{} \def\@evenfoot{} \def\sectionmark##1{} \def\subsectionmark##1{}} % **************************************** % * MISCELLANEOUS * % **************************************** % % EQUATION and EQNARRAY -- put here because it must follow \chapter definition % % \newcounter{equation} % \@addtoreset{equation}{chapter} % Makes \chapter reset 'equation' counter. \def\theequation{\thechapter.\arabic{equation}} % \jot = 0.3em % Extra space added between lines of an eqnarray environment % The macro \@eqnnum defines how equation numbers are to appear in equations. % % \def\@eqnnum{(\theequation)} % \def\bs{$\backslash$} \let\3\ss % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations % \if@twocolumn \twocolumn \sloppy % Two-column. \else \onecolumn \fussy % Single-column. \fi \pagenumbering{arabic} % Arabic page numbers \pagestyle{usplain} % `usplain' page style \makeatother % re-make at a special character