% Speech Coding and Synthesis -- Version December 1994 % Derived from % Handbook of geometry document style -- Version March 1992 % Derived from % houches.sty (24 May 1989) % Created by Willem jan Maas (Elsevier Science) % Adapted by Fer D. Mesman (Elsevier Science) \typeout{Document Style `Speech' .} \input toc.sty\relax % read re-definitions of existing parts of % LaTeX 2.09 and definitions of extra macros % CHOOSING THE TYPE SIZE: % % The type size option is handled by reading a different file for each % size, as follows, to define font size-specific commands: % 10pt : BK10, 11pt : BK11, 12pt : BK12 % Implemented by \def'ing \@ptsize to last digit of file name. % \def\@ptsize{0} % Default is speech10.STY \@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option reads in speech11.STY \@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option reads in speech12.STY \newif\if@seminar \@seminarfalse % Default chapter type is `course' \def\ds@seminar{\@seminartrue \let\chaptername=\seminarname} % Chapter type is `course' \def\ds@course{\@seminarfalse \let\chaptername=\coursename} % Chapter type is `seminar' \def\chapterstyle#1{\@nameuse{ds#1}} \def\coursename{Chapter} \def\seminarname{Seminar} \let\chaptername=\coursename % Even though books use two-sided printing, a `twoside' document-style % option is provided. Two-side printing is default. % \@twosidetrue % Default is two-sided printing. \def\ds@oneside{\@twosidefalse % Defines oneside option. \@mparswitchtrue} % Marginpars go on outside of page. % draft option % % \overfullrule = 0pt % Default is don't mark overfull hboxes. \def\ds@draft{\overfullrule 5pt} % Causes overfull hboxes to be marked. % 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. \@options \new@level{part} \new@level{chapter} \new@level{section}[chapter] \new@level{subsection}[section] \new@level{subsubsection}[subsection] \new@level{paragraph}[subsubsection] \new@level{subparagraph}[paragraph] \input speech1\@ptsize.sty\relax % **************************************** % * FONTS * % **************************************** % % This part of the document style defines three new fonts for LaTeX: % the bold math italic font, the bold sans-serif font and the italic % sans-serif font. \newif\if@oldfontsel \@ifundefined{extract@font}{\@oldfontseltrue}{\@oldfontselfalse} \if@oldfontsel \input oldbold.sty\relax \else \input newbold.sty\relax \fi % **************************************** % * LISTS * % **************************************** % % 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. % 16 Mar 88 -- changed defs of \labelenum... to use \theenum... \def\labelenumi{{\rm (\theenumi)}} \def\theenumi{\roman{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} \def\enumerate{\ifnum \@enumdepth >1 \@toodeep\else \advance\@enumdepth \@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list {\csname label\@enumctr\endcsname}{\usecounter {\@enumctr}\def\makelabel##1{\hfill##1} \settowidth{\labelwidth}{(vii)} \labelsep=0.5em \leftmargin\z@ \itemindent=\labelwidth \advance\itemindent\labelsep \advance\itemindent\parindent \partopsep\z@ \topsep\z@ \parsep\z@ \itemsep\z@ \listparindent\z@}\fi} \let\endenumerate=\endlist % ITEMIZE % Itemization is controlled by four commands: \labelitemi, \labelitemii, % \labelitemiii, and \labelitemiv, which define the labels of the various % itemization levels. \def\labelitemi{\bf --} \def\labelitemii{$\ast$} \newskip\@halfline \@halfline=6pt plus 3 pt minus 2pt \def\itemize{\ifnum \@itemdepth >2 \@toodeep\else \advance\@itemdepth \@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}\list {\csname\@itemitem\endcsname}{\settowidth{\labelwidth} {\csname\@itemitem\endcsname} \def\makelabel##1{##1} \itemindent=\labelwidth \advance\itemindent\labelsep \leftmargin\the\itemindent \itemindent=\z@ \partopsep\z@ \topsep\@halfline \parsep\z@ \itemsep\z@ \listparindent\z@} \fi} \let\enditemize=\endlist % 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{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin\parsep 0pt plus 1pt}\footnotesize\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 \itemsep\z@ \parsep\z@ \let\makelabel\descriptionlabel}} \let\enddescription\endlist \newdimen\descriptionmargin \descriptionmargin=3em % **************************************** % * 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{\em \trivlist \item[\hskip\labelsep {\bf #1\ #2.}]} \def\@opargbegintheorem#1#2#3{\em \trivlist \item[\hskip\labelsep {\bf #1\ #2}\ {\rm(}{\em #3\/}{\rm)}{\bf.}]} \def\@endtheorem{\endtrivlist} \newtheorem{theorem}{Theorem}[section] % QUESTION % The question environment produces upright text \newcounter{question}[section] \def\thequestion{\thesection.\arabic{question}} \def\question{\@ifnextchar [{\@opargquestion} {\refstepcounter{question}\it \@begintheorem{Question}{\thequestion}}} \def\@opargquestion[#1]{% \refstepcounter{question}\it \@opargbegintheorem{Question}{\thequestion}{#1}} \def\endquestion{\endtrivlist} % EXAMPLE % The example environment produces upright text \newcounter{example}[section] \def\theexample{\thesection.\arabic{example}} \def\example{\@ifnextchar [{\@opargexample} {\refstepcounter{example}\it \@begintheorem{Example}{\theexample}}} \def\@opargexample[#1]{% \refstepcounter{example}\it \@opargbegintheorem{Example}{\theexample}{#1}} \def\endexample{\endtrivlist} \def\proof{\@ifnextchar [{\@opargproof} {\vskip\baselineskip \noindent{\bf Proof. }}} \def\@opargproof[#1]{% \vskip\baselineskip\noindent {\bf Proof. }{\rm #1}} \def\endproof{\hfill\opensquare\vskip\baselineskip\global\@ignoretrue} \def\opensquare{\hbox{\vrule width 0.4pt height0.5em depth0.1em\kern-0.4pt \raise0.5em\hbox{\vrule width 0.6em height.32pt depth 0.08pt}\kern -0.4pt\vrule width 0.4pt height0.5em depth0.1em\kern-0.6em \lower0.1em\hbox{\vrule width 0.6em height.32pt depth 0.08pt}}} \def\remark#1{\vskip\baselineskip \noindent{\bf Remark #1. }} \def\endremark{\vskip\baselineskip\global\@ignoretrue} % 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{\newpage \thispagestyle{empty}\c@page\z@} \def\endtitlepage{\newpage} % ARRAY AND TABULAR % \arraycolsep 0pt % Half the space between columns in an array environment. \tabcolsep 6pt % Half the space between columns in a tabular environment. \arrayrulewidth .4pt % Width of rules in array and tabular environment. \doublerulesep 2pt % Space between adjacent rules in array or tabular env. \def\arraystretch{1.2} % Default value. % 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 = 3pt % Space left between box and text by \fbox and \framebox. \fboxrule = .4pt % Width of rules in box made by \fbox and \framebox. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setsecnumdepth{subsubsection} % 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 {\arabic{part}} \def\thechapter {\arabic{chapter}} \def\thesection {\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 'Course'. % The \appendix command redefines it to be 'Appendix'. % \def\@chapapp{\chaptername} \def\thisischapter#1{\gdef\@@chapter{#1}} %Used on titlepage \gdef\@@chapter{} % Set the default % **************************************** % * 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{INDENT}{NUMWIDTH}{STYLE}{NUMBER}{TITLE}{PAGE} % 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 \def\@pnumwidth{2em} \def\@tocrmarg {4em} \def\@dotsep{2.21} \setcounter{tocdepth}{4} % TABLEOFCONTENTS % In report style, \tableofcontents, \listoffigures, etc. are always % set in single-column style. \def\contentsname{Contents} \settocdepth{subsubsection} \newdimen\@tpagindent \@tpagindent=0pc \def\tableofcontents{\begingroup \def\makelabel##1{##1\hss} \subsubsection*{\contentsname}% \@starttoc{toc} \endgroup} %%% TOEVOEGING WJ \typeout{Automatic indentations in TOC WJM <9 Dec 1991>} \newdimen\ci@section % \ci@NAME is the total indent for the contents \newdimen\ci@subsection % entry at level NAME \newdimen\ci@subsubsection \newdimen\cw@section % \cw@NAME is the width of the box containing \newdimen\cw@subsection % the number \newdimen\cw@subsubsection \def\l@chapter#1#2{\relax} \def\l@section{\@dottedtocline{\ci@section}{\cw@section}{\footnotesize}{\thesection.}} \def\l@normalsection{\@dottedtocline{\ci@section}{\cw@section}{\footnotesize}{\thesection.}} \def\l@subsection{\@dottedtocline{\ci@subsection}{\cw@subsection}{\footnotesize}{\thesubsection.}} \def\l@subsubsection{\@dottedtocline{\ci@subsubsection}{\cw@subsubsection}{\footnotesize}{\thesubsubsection.}} \let\@oldcontentsline\contentsline \let\@oldtableofcontents\tableofcontents \let\@oldcontentsextra\contentsextra \def\tableofcontents{\footnotesize \def\contentsextra##1{\relax}% \@input{\jobname.toc}% \ci@section=0pt \cw@section=\secw \advance\cw@section0.5em \ci@subsection=\cw@section \cw@subsection=\subsecw \advance\cw@subsection\cw@section \ci@subsubsection=\ci@subsection \advance\ci@subsubsection\cw@subsection \cw@subsubsection=\cw@subsection \advance\cw@subsubsection\subsubsecw\relax \let\tableofcontents\@oldtableofcontents \let\contentsline\@oldcontentsline \begingroup \leftskip\@tpagindent \tableofcontents\endgroup\normalsize \let\contentsextra\@oldcontentsextra} \newdimen\chapw \newdimen\secw \newdimen\subsecw \newdimen\subsubsecw \newbox\tempcbox \def\CHAPTER{chapter} \def\SECTION{section} \def\SUBSECTION{subsection} \def\SUBSUBSECTION{subsubsection} \def\contentsline#1#2#3#4{\def\tester{#1}% \ifx\tester\CHAPTER\ifnum#2>0 \setbox\tempcbox=\hbox{#2.}% \ifdim\chapw<\wd\tempcbox\chapw=\wd\tempcbox \fi\fi \else \ifx\tester\SECTION\ifnum#2>0 \setbox\tempcbox=\hbox{#2.}% \ifdim\secw<\wd\tempcbox\secw=\wd\tempcbox \fi\fi \else \ifx\tester\SUBSECTION\ifnum#2>0 \setbox\tempcbox=\hbox{#2.}% \ifdim\subsecw<\wd\tempcbox\subsecw=\wd\tempcbox \fi\fi \else \ifx\tester\SUBSUBSECTION\ifnum#2>0 \setbox\tempcbox=\hbox{#2.}% \ifdim\subsubsecw<\wd\tempcbox\subsubsecw=\wd\tempcbox \fi\fi \fi\fi\fi\fi} %%% END INPUT WJ % LIST OF FIGURES % \def\listfigurename{List of figures} \def\listoffigures{\@starttable{\@fulllof}{\@partlof}} \def\@fulllof{\chapter*{\listfigurename} \@starttoc{lof}} \def\@partlof#1{\ifcase#1 \section*{\listfigurename}\or \subsection*{\listfigurename}\else \relax \fi \@starttoc{lof}} \def\l@figure{\@dottedtocline{1.5em}{2.3em}{\footnotesize}{\thefigure}} % LIST OF TABLES % \def\listtablename{\listtableename} \def\listoftables{\@starttable{\@fulllot}{\@partlot}} \def\@fulllot{\chapter*{\listtableename} \@starttoc{lot}} \def\@partlot#1{\ifcase#1 \section*{\listtableename}\or \subsection*{\listtableename}\else \relax \fi \@starttoc{lot}} \def\l@table{\@dottedtocline{1.5em}{2.3em}{\footnotesize}{\thetable}} % **************************************** % * 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\bibname{References} \let\endthebibliography=\endlist \def\citationstyle#1{\csname cs@#1\endcsname} % definitions for `nameyear' citation style \def\nam@thebib#1{\section*{\bibname}% \@mkboth{\bibname}{\bibname}\addcontentsline{toc}{section}{\bibname} \footnotesize\list{}{\labelwidth\z@ \leftmargin 1em \topsep\z@ \partopsep\z@ \rightmargin\z@ \itemsep\z@ \itemindent-\leftmargin \parsep\z@}\sloppy \clubpenalty4000 \widowpenalty4000 \sfcode`\.=1000\relax} \def\nam@bibitem#1{\item\if@filesw \immediate\write\@auxout {\string\bibcite{#1}{?}}\fi\ignorespaces} % \@@cite is original definition of \cite \let\@@cite=\cite \def\citefull{\def\nameyear##1##2{##1, ##2}\@@cite} \def\citeyear{\def\nameyear##1##2{##2}\@@cite} % \@citex loops over the list of citation keys \def\nam@citex[#1]#2{\if@filesw \immediate\write\@auxout{\string\citation{#2}}\fi \def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{; }\@ifundefined{b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% {\csname b@\@citeb\endcsname}}}{#1}} % \@cite produces the output of \cite \def\nam@cite#1#2{(#1\if@tempswa , #2\fi)} % definitions for `number' citation style \def\num@thebib#1{\section*{\bibname}% \@mkboth{\bibname}{\bibname}\addcontentsline{toc}{section}{\bibname} \footnotesize\list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]} \leftmargin\labelwidth \advance\leftmargin\labelsep \topsep\z@ \partopsep\z@ \rightmargin\z@ \itemsep\z@ \parsep\z@ \usecounter{enumi}}\sloppy \clubpenalty4000 \widowpenalty4000 \sfcode`\.=1000\relax} \def\num@bibitem#1{\item\if@filesw \immediate\write\@auxout {\string\bibcite{#1}{\the\c@enumi}}\fi\ignorespaces} \def\num@biblabel#1{[#1]\hfill} \newcount\@tempcntc % \@citex loops over the list of citation keys and collapses % citation numbers to ranges. Non-numeric and undefined labels are handled. % The citation keys are not sorted. \def\num@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do {\@ifundefined {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea \def\@citea{,\penalty\@m\ }{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% % IF \b@KEY expands to number % \@tempcntc := expansion of \b@KEY % ELSE % \@tempcntc := 0; \box0 := expansion of \b@KEY {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}% \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne \@citea\def\@citea{,\penalty\@m\ } \hbox{\csname b@\@citeb\endcsname}% \else \advance\@tempcntb\@ne \ifnum\@tempcntb=\@tempcntc \else\advance\@tempcntb\m@ne\@citeo \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}} \def\@citeo{\ifnum\@tempcnta>\@tempcntb\else\@citea \def\@citea{,\penalty\@m\ }% \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else \def\@citea{--}\fi \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi} % \@cite produces the output of \cite \def\num@cite#1#2{[{#1\if@tempswa , #2\fi}]} % \citenum emits the plain citation label without ornament \def\citenum#1{\begingroup \def\@cite##1##2{##1}\cite{#1}\endgroup} % definitions for selecting `nameyear' and `number' citation style \def\cs@nameyear{\let\thebibliography=\nam@thebib \let\@biblabel=\@gobble \let\@bibitem=\nam@bibitem % \cite is redefined to allow a *-form; \def\cite{\@ifstar{\citeyear}{\citefull}}\let\@citex=\nam@citex \let\@cite=\nam@cite} \def\cs@number{\let\thebibliography=\num@thebib \let\cite=\@@cite \let\@biblabel=\num@biblabel \let\@bibitem=\num@bibitem \let\nameyear=\@gobbletwo \let\@citex=\num@citex \let\@cite=\num@cite} % **************************************** % * 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 5em \kern2.6\p@} % \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 10pt, 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 10pt \@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 1em\noindent \hbox to 1em{$^{\@thefnmark}$\hfil}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. Default used. % \def\thefootnote{\arabic{footnote}} % **************************************** % * FIGURES AND TABLES * % **************************************** % % Float placement parameters. See LaTeX manual for their definition. % \setcounter{topnumber}{2} \def\topfraction{0.85} \setcounter{bottomnumber}{2} \def\bottomfraction{0.8} \setcounter{totalnumber}{3} \def\textfraction{0.15} \def\floatpagefraction{0.5} \setcounter{dbltopnumber}{2} \def\dbltopfraction{0.85} \def\dblfloatpagefraction{0.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\@makefigurecaption#1#2{\vskip 10pt \begingroup \let\footnote\relax \global\setbox\@tempboxa\hbox{\footnotesize #1. #2}\endgroup \ifdim \wd\@tempboxa>\hsize \footnotesize #1. #2\par \else \hbox to\hsize{\hfil\footnotesize #1. #2\hfil}\fi} \long\def\@maketablecaption#1#2{\begingroup \let\footnote\relax \global\setbox\@tempboxa\hbox{\footnotesize #2} \endgroup \parbox[t]{\hsize}{\footnotesize \hbox to \hsize{\hss#1\hss}\par #2}\vskip 4pt} % 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{\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \@extension{figure}{lof} \def\figurename{Figure} \def\fnum@figure{\figurename\ \thefigure} \def\figure{\let\@makecaption\@makefigurecaption \centering\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} % TABLE % \newcounter{table}[chapter] \def\thetable{\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \@extension{table}{lot} \def\tablename{Table} \def\fnum@table{\tablename\ \thetable} \def\table{\let\@makecaption\@maketablecaption \centering\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} % **************************************** % * TITLE * % **************************************** % % Uses same title format as the article style's % titlepage option. % \def\title#1{\gdef\@title{#1}} \gdef\@title{\relax} \def\subtitle#1{\gdef\@subtitle{#1}} \gdef\@subtitle{\relax} % \def\author#1{\gdef\@author{#1}} \gdef\@author{\relax} \def\editor#1{\gdef\@editor{#1}} \gdef\@editor{\relax} %\def\date#1{\gdef\@date{#1}} %\gdef\@date{\today} %Default is today's date \def\pubyear#1{\gdef\@pubyear{#1}} \xdef\@pubyear{\number\year} %Default taken from today's date \def\empty@field{\relax} \def\maketitle{\begin{titlepage} \centering \let\footnoterule\relax % Produce footnotes without separating rule. \setcounter{page}{0} \null \vskip 0pt plus 1fil \begin{raggedright} {\LARGE \@subtitle \par} \vskip 3em {\LARGE \@title \par} \vskip 3em {\large edited by} \vskip 1em {\large \@editor} \vskip 0pt plus 3fil {\normalsize NORTH-HOLLAND \par} {\normalsize AMSTERDAM $\cdot$ OXFORD $\cdot$ NEW YORK $\cdot$ TOKYO \par} \vskip 0pt plus 1fil \null \end{raggedright} \par \@thanks \gdef\@thanks{} \end{titlepage} \setcounter{footnote}{0} % Footnotes start at zero \edef\@booktitle{\@title} % Save title and author(s) \edef\@bookauthor{\@author} % of book \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; the latter one % is re-defined here \def\ps@plain{\let\@mkboth\@gobbletwo \def\@oddhead{}\def\@oddfoot{\small\rm\hfil\thepage \hfil}\def\@evenhead{}\let\@evenfoot\@oddfoot} \def\ps@headings{\let\@mkboth\markboth \def\@oddhead{\small {\it \@shorttitle}\hfill\thepage} \def\@oddfoot{} \def\@evenhead{\small \thepage \hfill{\it\@shortauthor}} \def\@evenfoot{} \def\chaptermark##1{}} % Definition of 'myheadings' page style removed % **************************************** % * MISCELLANEOUS * % **************************************** % % DATE % \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} % \em is defined to be \it inside an unslanted style and \rm inside a % slanted style. An \em command in a section title will produce a \pem % command in the table of contents. % % \def\em{\protect\pem{}} % \def\pem{\ifdim \fontdimen\@ne\font >\z@ \rm \else \it \fi} % **************************************** % * EQUATION * % **************************************** % % EQUATION and EQNARRAY -- put here because it must follow \chapter definition % % \newcounter{equation} % \@addtoreset{equation}{section} % Makes \section reset 'equation' counter. \def\theequation{\thesection.\arabic{equation}} \jot=5pt % 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\mathtrivlist{\parsep\parskip\topsep\abovedisplayskip \@trivlist \labelwidth\z@ \leftmargin\z@ \itemindent\z@ \def\makelabel##1{##1}} \def\endmathtrivlist{\endtrivlist} \newdimen\mathindent \mathindent=4em \newdimen\eqnarraycolsep \eqnarraycolsep=1pt \def\displaymath{\relax\ifmmode\@badmath\else\@beginparpenalty\predisplaypenalty \@endparpenalty\postdisplaypenalty \begin{mathtrivlist}\item[]\leavevmode \hbox to\linewidth\bgroup$ \displaystyle \hskip\mathindent\bgroup\fi} \def\enddisplaymath{\relax\ifmmode \egroup $\hfil \egroup\global\@ignoretrue \end{mathtrivlist}\else \@badmath\global\@ignoretrue \fi} \let\[\displaymath \let\]\enddisplaymath \def\equation{\@beginparpenalty\predisplaypenalty \@endparpenalty\postdisplaypenalty \refstepcounter{equation}\mathtrivlist \item[]\leavevmode \hbox to\linewidth\bgroup $ \displaystyle \hskip\mathindent} \def\endequation{$\hfil \displaywidth\linewidth\@eqnnum\egroup \endmathtrivlist} %% New version to take care of long equations \newbox\temp@ \newbox\temp@@ \newdimen\tempdim@ \def\equation{\@beginparpenalty\predisplaypenalty \@endparpenalty\postdisplaypenalty \refstepcounter{equation}\mathtrivlist \item[]\leavevmode \setbox\temp@=\hbox \bgroup $\displaystyle} \def\endequation{$\egroup \tempdim@=\wd\temp@ \setbox\temp@@=\hbox{\@eqnnum}% \advance\tempdim@ 5em\relax %5em=\mathindent+1em for not touching \@eqnnum \advance\tempdim@\wd\temp@@ \ifnum\tempdim@>\linewidth\par \hbox to \linewidth{\hskip 4em minus 4em\box\temp@\hfil\strut} \hbox to \linewidth{\hfil\box\temp@@} \else \hbox to \linewidth{\hskip\mathindent\box\temp@\hfil\box\temp@@}\fi \endmathtrivlist} \def\@notmath#1{\@latexerr{\noexpand#1 may only be used in math mode}\@eha} \def\binom#1#2{\relax\ifmmode{\left({#1\atop#2}\right)}\else \@notmath{\binom}\fi} \def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation \global\@eqnswtrue \global\@eqcnt\z@\tabskip\mathindent\let\\=\@eqncr \abovedisplayskip\topsep\ifvmode\advance\abovedisplayskip\partopsep\fi \belowdisplayskip\abovedisplayskip \belowdisplayshortskip\abovedisplayskip \abovedisplayshortskip\abovedisplayskip $$\halign to \linewidth\bgroup\@eqnsel\hskip\@centering$\displaystyle\tabskip\z@ {##}$&\global\@eqcnt\@ne \hskip 2\eqnarraycolsep \hfil${##}$\hfil &\global\@eqcnt\tw@ \hskip 2\eqnarraycolsep $\displaystyle{##}$\hfil \tabskip\@centering&\llap{##}\tabskip\z@\cr} \def\endeqnarray{\@@eqncr\egroup \global\advance\c@equation\m@ne$$\global\@ignoretrue } % LaTeX eliminates \eqalign and replaces it by the eqnarray environment. % \def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign \def\eqalign#1{\null\,\vcenter{\openup\jot\m@th \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil \crcr#1\crcr}}\,} % various operator definitions \def\d{\,{\rm d}} \def\sgn{\mathop{\rm sgn}\nolimits} \def\e{\mathop{\rm e}\nolimits} \def\curl{\mathop{\rm curl}\nolimits} \def\div{\mathop{\rm div}\nolimits} \def\Re{\mathop{\rm Re}\nolimits} \def\Im{\mathop{\rm Im}\nolimits} % integrals should have limits in display style, and % superior/inferiors otherwise \def\int{\intop\nolimits} % \vec{X} makes X a vector symbol (font = bold italic) % \mat{X} makes X a matrix symbol (font = bold sans-serif) % \tens{X} makes X a tensor symbol (font = sans-serif italic) \if@oldfontsel \def\vec#1{{\bfi #1}} \def\mat#1{{\sfb #1}} \def\tens#1{{\sfi #1}} \else \def\vec#1{\bfi{#1}} \def\mat#1{\sfb{#1}} \def\tens#1{\sfi{#1}} \fi \def\casefrac#1#2{\mbox{$\frac{#1}{#2}$}} % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations \ps@headings % `headings' page style \cs@number % `number' citation style \pagenumbering{arabic} % Arabic page numbers \onecolumn % Single-column. \frenchspacing % No extra white space at end of sentence \tolerance=1600 % Lines of text can be a bit more loose, \hbadness=1600 % and reporting this is not necessary \hfuzz=1pt % do not be to critical about boxes \editor{W.B. Kleijn and K.K. Paliwal} \pubyear{1995}