% This is PMULT01.INI, the initiation file % for INITEX to produce a format file of % the plain TeX macro package % from Springer-Verlag % for multi author books % version 1.0 % \catcode`\{=1 % left brace is begin-group character \catcode`\}=2 % right brace is end-group character \catcode`\#=6 % hash mark is macro parameter character % \let\x=\input \def\input#1 {\let\input=\x \let\x=\undefined} % \let\qayb=\font \def\font#1=#2 {\def\qayba{#1}\def\qaybb{#2} \def\qaybf{\preloaded} \def\qaybg{\tenrm}\def\qaybh{\tenex} \def\qaybu{cmr7}\def\qaybv{cmtt10}\def\qaybw{cmssbx10} \ifx\qayba\qaybg \qayb#1=#2 \else\ifx\qayba\qaybh \qayb#1=#2 \else\ifx\qayba\qaybf \ifx\qaybb\qaybu \qayb#1=#2 \else\ifx\qaybb\qaybv \qayb#1=#2 \else\ifx\qaybb\qaybw \qayb#1=#2 \fi\fi\fi \fi\fi\fi} % \let\qayc=\skewchar \def\skewchar#1=#2 {\relax} \let\qayd=\textfont \def\textfont#1=#2{\relax} \let\qaye=\scriptfont \def\scriptfont#1=#2{\relax} \let\qayf=\scriptscriptfont \def\scriptscriptfont#1=#2{\relax} % \x plain % \let\font=\qayb \let\qayb=\undefined \let\skewchar=\qayc \let\qayc=\undefined \let\textfont=\qayd \let\qayd=\undefined \let\scriptfont=\qaye \let\qaye=\undefined \let\scriptscriptfont=\qayf \let\qayf=\undefined % \input hyphen % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % The following definition should be changed if you want % another kind of fonts. % \def\fonttype{cm} % CM-Fonts %\def\fonttype{ps} % PS-Fonts %\def\fonttype{mt} % Monotype Fonts % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Please do not change any of the commands below! % % Test for recursive or multiple loading of Springer macro packages \def\SpringerMacroPackageNameATest{PMULT01}% \let\next\relax \ifx\SpringerMacroPackageNameA\undefined \message{Loading the \SpringerMacroPackageNameATest\space macro package from Springer-Verlag...}% \else \ifx\SpringerMacroPackageNameA\SpringerMacroPackageNameATest \message{\SpringerMacroPackageNameA\space macro package from Springer-Verlag already loaded.}% \let\next\endinput \else \message{DANGER: \SpringerMacroPackageNameA\space from Springer-Verlag already loaded, will try to proceed.}% \fi \fi \next % now call all the sub-macros % This is values.m03 % i.e. Values of package PMULT03 % it contains sizes and measures specific for this macro package \magnification=\magstep0 % dimension of text area \vsize=18.9cm \hsize=11.7cm % indention of paragraphs \newdimen\stdparindent\stdparindent=1.5em % indention of displayed formulas \newskip\mathindent \mathindent=\stdparindent %\part \newskip\partskip \partskip=75pt % baselineskip inside \newdimen\tpbaselineskip \tpbaselineskip=22pt % \maintitle \newskip\tmbefore \tmbefore=0pt % space above \newskip\tmafter \tmafter=24pt % space below \newskip\tmoafter \tmoafter=5cm % space below \preface, \contents, etc. \newdimen\tmbaselineskip \tmbaselineskip=18pt % baselineskip inside \newdimen\tmheight \tmheight=5.2cm % height of complete title % \author and \address \newskip\authafter \authafter=8pt % space below author name \newskip\addrafter \addrafter=24pt % space below address % \titlea % corrective space to a \titlea \newskip\tabeforeback \tabeforeback=-18pt % space above \newskip\tabefore \tabefore=18pt plus 4pt minus2pt % space below \newskip\taafter \taafter=17pt plus4pt minus2pt % baselineskip inside \newdimen\tabaselineskip \tabaselineskip=16pt % \titleb % corrective space to a \titleb \newskip\tbbeforeback \tbbeforeback=-22pt % space above \newskip\tbbefore \tbbefore=18pt plus 4pt minus2pt % space below \newskip\tbafter \tbafter=8pt plus4pt minus2pt % \titlec % corrective space to a \titlec \newskip\tcbeforeback \tcbeforeback=-22pt % space above \newskip\tcbefore \tcbefore=18pt plus4pt minus2pt % space below \newskip\tcafter \tcafter=5.833pt plus4pt minus2pt % \titled % corrective space to a \titled \newskip\tdbeforeback \tdbeforeback=-8pt % space above \newskip\tdbefore \tdbefore=5.833pt plus 4pt minus2pt \newskip\tdgap \tdgap=1em % \abstract \newskip\abstractafter \abstractafter=28pt % space below an abstract % \motto \newskip\mottobeforeback \mottobeforeback=-28pt % corrective space to a % previous \motto or \titlea \newskip\mottobetween \mottobetween=18pt % space between two mottos \newdimen\mottoindent \mottoindent=90pt % indention of a motto % gap between a run-in heading of a "Lemma" and its text \newskip\envirgap \envirgap=0.4em % space for page number and gap in running heads \newdimen\headlineindent \headlineindent=2.5cc % width of footnote rule \newdimen\footnoterulewidth \footnoterulewidth=2cm % limits for textwidth in figure constructions with side legends \newdimen\begfigsidelimita \begfigsidelimita=3cm \newdimen\begfigsidelimitb \begfigsidelimitb=3.75cm % vertical space above a figure \newdimen\figurebefore \figurebefore=18pt % vertical space between adjacent figures (when they were stacked) \newdimen\figurebetween \figurebetween=20pt % vertical space below a figure legend \newdimen\figureafter \figureafter=18pt % vertical space above a figure legend (between figure and legend) \newskip\abovelegendskip \abovelegendskip=10pt % space between adjacent figure legends \newskip\betweenlegendskip \betweenlegendskip=7.8pt % horizontal space between two figures % or between figure template and legend \newdimen\figgap \figgap=18pt % width of rules above and below paste-in tables \newdimen\tableseprulewidth \tableseprulewidth=1.666cm % skip below an inserted table \newskip\tablesep \tablesep=2.5mm % space above a table caption \newskip\tabcapbefore \tabcapbefore=0.4166cm % space below a table caption \newskip\tabcapafter \tabcapafter=0.333cm % indention of lists \newdimen\itemindent \newdimen\itemitemindent \itemindent=\stdparindent \itemitemindent=2\stdparindent % space above and below small print passages \newskip\petitsurround \petitsurround=6pt plus 3pt minus 2pt % size of textfont set in \petit \let\petitsize=9 % This is fontsel.tex % it contains definitions for PS, CM, and MT fonts % \def\fontps{ps} \def\fontcm{cm} \def\fontmt{mt} % % % Definition zum gemeinsamen Aufbau der Fontdefinitionen % % Aufruf: % \fontdef fontname | PS-Font | CM-Font | MT-Font | % % fehlende Fonts werden durch den Namen DUMMY ersetzt. % \def\fontdef #1 | #2 | #3 | #4 |{% \expandafter\font\csname#1\endcsname = \ifx\fonttype\fontps #2\else \ifx\fonttype\fontcm #3\else \ifx\fonttype\fontmt #4\fi\fi\fi} % \def\fontmsg{\message{Loading \ifx\fonttype\fontps PS\else \ifx\fonttype\fontcm CM\else \ifx\fonttype\fontmt MT\fi\fi\fi-Fonts.}} % This is font.tex % here the different fonts to be loaded are defined % using a naming technique as D.E.Knuth in plain TeX % first the size is given in letters % a description (bf for bold face...) % a possible magnification as "m"+"number" % also possible is "at"+"number" points % \fontmsg \let\next=\relax \ifx\Initexing\undefined \else \ifx\fontps\fonttype \input xfontsps.tex \else \ifx\fontcm\fonttype \input xfontscm.tex \else \ifx\fontmt\fonttype \input xfontsmt.tex \else \message{Invalid \string\fonttype\space - aborting.} \let\next=\end \fi \fi \fi \fi \next \fontdef eightbf | psmtimb at 8pt | cmbx8 | mtbx10 at 8pt | \fontdef eighti | cmmi8 | cmmi8 | mtmi10 at 8pt | \fontdef eightit | psmtimi at 8pt | cmti8 | mtti10 at 8pt | \fontdef eightrm | psmtimr at 8pt | cmr8 | mtr10 at 8pt | \fontdef eightsy | cmsy8 | cmsy8 | mtsy10 at 8pt | \fontdef eighttt | psmcou at 8pt | cmtt8 | mttt10 at 8pt | \fontdef fivebfmone | psmtimb at 6pt | cmbx5 scaled\magstep1 | mtbx10 at 12pt | \fontdef fivebfmtwo | psmtimb at 7pt | cmbx5 scaled\magstep2 | mtbx10 at 14pt | %\fontdef fivermatseven | psmtimr at 7pt | %cmr5 at 7pt | mtr10 at 7pt | %\fontdef fivermatten | psmtimr at 10pt | %cmr5 at 10pt | mtr10 at 10pt | \fontdef fivesymone | cmsy5 scaled\magstep1 | cmsy5 scaled\magstep1 | mtsy10 at 12pt | \fontdef fivesymtwo | cmsy5 scaled\magstep2 | cmsy5 scaled\magstep2 | mtsy10 at 14pt | \fontdef headfont | psmtimb at 25pt | cmbx12 scaled\magstep4 | mtbx10 at 24pt | \fontdef ninebf | psmtimb at 9pt | cmbx9 | mtbx10 at 9pt | \fontdef ninei | cmmi9 | cmmi9 | mtmi10 at 9pt | \fontdef nineit | psmtimi at 9pt | cmti9 | mtti10 at 9pt | \fontdef ninerm | psmtimr at 9pt | cmr9 | mtr10 at 9pt | \fontdef ninesl | cmsl9 | cmsl9 | mtsl10 at 9pt | \fontdef ninesy | cmsy9 | cmsy9 | mtsy10 at 9pt | \fontdef ninett | psmcou at 9pt | cmtt9 | mttt10 at 9pt | \fontdef sevenbfmone | psmtimb at 8.5pt | cmbx7 scaled\magstep1 | mtbx10 at 12pt | \fontdef sevenbfmtwo | psmtimb at 10pt | cmbx7 scaled\magstep2 | mtbx10 at 14pt | \fontdef sevensymone | cmsy7 scaled\magstep1 | cmsy7 scaled\magstep1 | mtsy10 at 12pt | \fontdef sevensymtwo | cmsy7 scaled\magstep2 | cmsy7 scaled\magstep2 | mtsy10 at 14pt | \fontdef sixbf | psmtimb at 6pt | cmbx6 | mtbx10 at 6pt | \fontdef sixi | cmmi6 | cmmi6 | mtmi10 at 6pt | \fontdef sixrm | psmtimr at 6pt | cmr6 | mtr10 at 6pt | \fontdef sixsy | cmsy6 | cmsy6 | mtsy10 at 6pt | \fontdef svntnrmmthree | psmtimr at 29pt | cmr17 scaled\magstep3 | mtr10 at 29pt | \fontdef tenbfmone | psmtimb at 12pt | cmbx10 scaled\magstep1 | mtbx10 at 12pt | \fontdef tenbfmthree | psmtimb at 17pt | cmbx10 scaled\magstep3 | mtbx10 at 17pt | \fontdef tenbfmtwo | psmtimb at 14pt | cmbx10 scaled\magstep2 | mtbx10 at 14pt | \fontdef tenbfne | psmtimb at 10pt | cmb10 | mtbx10 | \fontdef tenbfneateight | psmtimb at 8pt | cmb10 at 8pt | mtbx10 at 8pt | \fontdef tenbfneatfive | psmtimb at 5pt | cmb10 at 5pt | mtbx10 at 5pt | \fontdef tenbfneatseven | psmtimb at 7pt | cmb10 at 7pt | mtbx10 at 7pt | \fontdef tenbfneatsix | psmtimb at 6pt | cmb10 at 6pt | mtbx10 at 6pt | \fontdef tenexateight | cmex10 at 8pt | cmex10 at 8pt | mtex10 at 8pt | \fontdef tenexatnine | cmex10 at 9pt | cmex10 at 9pt | mtex10 at 9pt | \fontdef tenexatseven | cmex10 at 7pt | cmex10 at 7pt | mtex10 at 7pt | \fontdef tenexmone | cmex10 scaled\magstep1 | cmex10 scaled\magstep1 | mtex10 at 12pt | \fontdef tenexmthree | cmex10 scaled\magstep3 | cmex10 scaled\magstep3 | mtex10 at 17pt | \fontdef tenexmtwo | cmex10 scaled\magstep2 | cmex10 scaled\magstep2 | mtex10 at 14pt | \fontdef tenmib | cmmib10 | cmmib10 | mtmib10 | \fontdef tenmibmone | cmmib10 scaled\magstep1 | cmmib10 scaled\magstep1 | mtmib10 at 12pt | \fontdef tenmibmpointeight | cmmib10 scaled 833 | cmmib10 scaled 833 | mtmib10 at 8pt | \fontdef tenmibmpointfive | cmmib10 scaled 500 | cmmib10 scaled 500 | mtmib10 at 5pt | \fontdef tenmibmpointnine | cmmib10 scaled 900 | cmmib10 scaled 900 | mtmib10 at 9pt | \fontdef tenmibmpointseven | cmmib10 scaled 700 | cmmib10 scaled 700 | mtmib10 at 7pt | \fontdef tenmibmpointsix | cmmib10 scaled 600 | cmmib10 scaled 600 | mtmib10 at 6pt | \fontdef tenmibmthree | cmmib10 scaled\magstep3 | cmmib10 scaled\magstep3 | mtmib10 at 17pt | \fontdef tenmibmtwo | cmmib10 scaled\magstep2 | cmmib10 scaled\magstep2 | mtmib10 at 14pt | \fontdef tenrmmfour | psmtimr at 20pt | cmr10 scaled\magstep4 | mtr10 at 20pt | \fontdef tenrmmone | psmtimr at 12pt | cmr10 scaled\magstep1 | mtr10 at 12pt | \fontdef tenrmmtwo | psmtimr at 14pt | cmr10 scaled\magstep2 | mtr10 at 14pt | \fontdef tenrmmthree | psmtimr at 17pt | cmr10 scaled\magstep3 | mtr10 at 17pt | \fontdef tensans | psmhlv | cmss10 | mtss10 | \fontdef tensansateight | psmhlv at 8pt | cmss10 at 8pt | mtss10 at 8pt | \fontdef tensansatfive | psmhlv at 5pt | cmss10 at 5pt | mtss10 at 5pt | \fontdef tensansatnine | psmhlv at 9pt | cmss10 at 9pt | mtss10 at 9pt | \fontdef tensansatseven | psmhlv at 7pt | cmss10 at 7pt | mtss10 at 7pt | \fontdef tensansatsix | psmhlv at 6pt | cmss10 at 6pt | mtss10 at 6pt | \fontdef tensymone | cmsy10 scaled\magstep1 | cmsy10 scaled\magstep1 | mtsy10 at 12pt | \fontdef tensymthree | cmsy10 scaled\magstep3 | cmsy10 scaled\magstep3 | mtsy10 at 17pt | \fontdef tensymtwo | cmsy10 scaled\magstep2 | cmsy10 scaled\magstep2 | mtsy10 at 14pt | \font\sevenrm=cmr7 \font\fiverm=cmr5 \font\teni=cmmi10 % math italic \font\seveni=cmmi7 \font\fivei=cmmi5 \font\tensy=cmsy10 % math symbols \font\sevensy=cmsy7 \font\fivesy=cmsy5 \font\tenbf=cmbx10 % boldface extended \font\sevenbf=cmbx7 \font\fivebf=cmbx5 \font\tentt=cmtt10 % typewriter \font\tenit=cmti10 % text italic \skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177 \skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60 \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex \textfont\itfam=\tenit \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf \scriptscriptfont\bffam=\fivebf \textfont\ttfam=\tentt \rm \def\Initexing{} % This is fontname.m03 % it connects the fonts already defined % to the fontnames used in the macro package \let \authfont = \tenrmmthree \let \eightbfne = \tenbfneateight \let \eightex = \tenexateight \let \eightmib = \tenmibmpointeight \let \eightsans = \tensansateight \let \fivebfne = \tenbfneatfive \let \fivemib = \tenmibmpointfive \let \fivesans = \tensansatfive \let \headfont = \svntnrmmthree \let \markfont = \tenrmmone \let \nineex = \tenexatnine \let \ninemib = \tenmibmpointnine \let \ninesans = \tensansatnine \let \sevenbfne = \tenbfneatseven \let \sevenmib = \tenmibmpointseven \let \sevensans = \tensansatseven \let \sixbfne = \tenbfneatsix \let \sixmib = \tenmibmpointsix \let \sixsans = \tensansatsix %\let \smallescriptfont = \fivermatseven %\let \smallescriptscriptfont = \fiverm %\let \smalletextfont = \fivermatten \let \subhfont = \tenrmmthree \let \tams = \tenmib \let \tamss = \tenmibmpointeight \let \tamt = \tenmibmone \let \tass = \sevensymone \let \tasss = \fivesymone \let \tast = \tensymone \let \tats = \sevenbfmone \let \tatss = \fivebfmone \let \tatt = \tenbfmone \let \taxs = \tenex \let \taxss = \tenexatseven \let \taxt = \tenexmone \let \tbms = \tenmibmpointeight \let \tbmss = \tenmibmpointsix \let \tbmt = \tenmib \let \tbss = \sevensy \let \tbsss = \fivesy \let \tbst = \tensy \let \tbts = \sevenbf \let \tbtss = \fivebf \let \tbtt = \tenbf \let \tbxs = \tenexatseven \let \tbxss = \tenex \let \tbxt = \tenex \let \tcms = \tenmibmpointeight \let \tcmss = \tenmibmpointsix \let \tcmt = \tenmib \let \tcss = \sevensy \let \tcsss = \fivesy \let \tcst = \tensy \let \tcts = \sevenbf \let \tctss = \fivebf \let \tctt = \tenbf \let \tcxs = \tenexatseven \let \tcxss = \tenex \let \tcxt = \tenex \let \tdms = \seveni \let \tdmss = \fivei \let \tdmt = \teni \let \tdss = \sevensy \let \tdsss = \fivesy \let \tdst = \tensy \let \tdts = \sevenbf \let \tdtss = \fivebf \let \tdtt = \tenbf \let \tdxs = \tenexatseven \let \tdxss = \tenex \let \tdxt = \tenex \let \tmms = \tenmibmone \let \tmmss = \tenmib \let \tmmt = \tenmibmtwo \let \tmss = \sevensymtwo \let \tmsss = \fivesymtwo \let \tmst = \tensymtwo \let \tmts = \sevenbfmtwo \let \tmtss = \fivebfmtwo \let \tmtt = \tenbfmtwo \let \tmxs = \tenexmone \let \tmxss = \tenex \let \tmxt = \tenexmtwo \let \tpms = \tenmibmone \let \tpmss = \tenmibmpointeight \let \tpmt = \tenmibmthree \let \tpss = \tensymone \let \tpsss = \eightsy \let \tpst = \tensymthree \let \tpts = \tenbfmone \let \tptss = \eightbf \let \tptt = \tenbfmthree \let \tpxs = \tenexmone \let \tpxss = \tenex \let \tpxt = \tenexmthree \catcode`@=11 % use @ as a normal character \ifx\AmS@simul\undefined \else \let \tmmsxt = \tenmsxmtwo \let \tmmsxs = \tenmsx \let \tmmsxss = \sevenmsx \let \tamsxt = \tenmsxmone \let \tamsxs = \ninemsx \let \tamsxss = \sixmsx \let \tmmsyt = \tenmsymtwo \let \tmmsys = \tenmsy \let \tmmsyss = \sevenmsy \let \tamsyt = \tenmsymone \let \tamsys = \ninemsy \let \tamsyss = \sixmsy \let \tmeuft = \teneufmtwo \let \tmeufs = \teneuf \let \tmeufss = \seveneuf \let \taeuft = \teneufmone \let \taeufs = \nineeuf \let \taeufss = \sixeuf \ifx\fonttype\fontmt \let \tmmtcalt = \tenmtcalmtwo \let \tmmtcals = \tenmtcal \let \tmmtcalss = \sevenmtcal \let \tamtcalt = \tenmtcalmone \let \tamtcals = \ninemtcal \let \tamtcalss = \sixmtcal \let \tmspt = \tenspmtwo \let \tmsps = \tensp \let \tmspss = \sevensp \let \taspt = \tenspmone \let \tasps = \ninesp \let \taspss = \sixsp \fi \def\tm@additionals{% \textfont\msxfam=\tmmsxt \scriptfont\msxfam=\tmmsxs \scriptscriptfont\msxfam=\tmmsxss \textfont\msyfam=\tmmsyt \scriptfont\msyfam=\tmmsys \scriptscriptfont\msyfam=\tmmsyss \textfont\euffam=\tmeuft \scriptfont\euffam=\tmeufs \scriptscriptfont\euffam=\tmeufss \ifx\fonttype\fontmt \textfont\spfam=\tmspt \scriptfont\spfam=\tmsps \scriptscriptfont\spfam=\tmspss \textfont\mtcalfam=\tmmtcalt \scriptfont\mtcalfam=\tmmtcals \scriptscriptfont\mtcalfam=\tmmtcalss \fi} \def\ta@additionals{% \textfont\msxfam=\tamsxt \scriptfont\msxfam=\tamsxs \scriptscriptfont\msxfam=\tamsxss \textfont\msyfam=\tamsyt \scriptfont\msyfam=\tamsys \scriptscriptfont\msyfam=\tamsyss \textfont\euffam=\taeuft \scriptfont\euffam=\taeufs \scriptscriptfont\euffam=\taeufss \ifx\fonttype\fontmt \textfont\spfam=\taspt \scriptfont\spfam=\tasps \scriptscriptfont\spfam=\taspss \textfont\mtcalfam=\tamtcalt \scriptfont\mtcalfam=\tamtcals \scriptscriptfont\mtcalfam=\tamtcalss \fi} \fi \catcode`@=12 % at signs are no longer letters % This is amssimul.tex % it establishes the use of the AmS "extra" math symbol fonts, % the euler-Fraktur, and if mt-fonts are used all of the above in % mt-version plus two additional families \spfam for light antiqua % and \mtcalfam for script. But beware - the cm-version loads 21 % and the mt-version even 35 new fonts. % \catcode`\@=11 \ifx\fonttype\fontmt \font\tenmsxmtwo=mtxm10 at 14pt \font\tenmsymtwo=mtym10 at 14pt \font\teneufmtwo=mtfr10 at 14pt \font\tenspmtwo=mtspbx10 at 14pt \font\tenmtcalmtwo=mtcal10 at 14pt \font\tenmsxmone=mtxm10 at 12pt \font\tenmsymone=mtym10 at 12pt \font\teneufmone=mtfr10 at 12pt \font\tenspmone=mtspbx10 at 12pt \font\tenmtcalmone=mtcal10 at 12pt \font\tenmsx=mtxm10 \font\tenmsy=mtym10 \font\teneuf=mtfr10 \font\tensp=mtspbx10 \font\tenmtcal=mtcal10 \if9\petitsize \font\ninemsx=mtxm10 at 9pt \font\ninemsy=mtym10 at 9pt \font\nineeuf=mtfr10 at 9pt \font\ninesp=mtspbx10 at 9pt \font\ninemtcal=mtcal10 at 9pt \else \font\eightmsx=mtxm10 at 8pt \font\eightmsy=mtym10 at 8pt \font\eighteuf=mtfr10 at 8pt \font\eighthsp=mtspbx10 at 8pt \font\eightmtcal=mtcal10 at 8pt \fi \font\sevenmsx=mtxm10 at 7pt \font\sevenmsy=mtym10 at 7pt \font\seveneuf=mtfr10 at 7pt \font\sevensp=mtspbx10 at 7pt \font\sevenmtcal=mtcal10 at 7pt \font\sixmsx=mtxm10 at 6pt \font\sixmsy=mtym10 at 6pt \font\sixeuf=mtfr10 at 6pt \font\sixsp=mtspbx10 at 6pt \font\sixmtcal=mtcal10 at 6pt \font\fivemsx=mtxm10 at 5pt \font\fivemsy=mtym10 at 5pt \font\fiveeuf=mtfr10 at 5pt \font\fivesp=mtspbx10 at 5pt \font\fivemtcal=mtcal10 at 5pt \alloc@8\fam\chardef\sixt@@n\spfam \textfont\spfam=\tensp \scriptfont\spfam=\sevensp \scriptscriptfont\spfam=\fivesp \alloc@8\fam\chardef\sixt@@n\mtcalfam \textfont\mtcalfam=\tenmtcal \scriptfont\mtcalfam=\sevenmtcal \scriptscriptfont\mtcalfam=\fivemtcal \def\bb{\fam\msyfam\tenmsy} \def\spb{\fam\spfam\tensp} \def\cal{\fam\mtcalfam\tenmtcal} \else %\def\amssymxn@me{msxm} %\def\amssymyn@me{msym} \def\amssymxn@me{msam} \def\amssymyn@me{msbm} \font\tenmsxmtwo=\amssymxn@me10 scaled\magstep2 \font\tenmsymtwo=\amssymyn@me10 scaled\magstep2 \font\teneufmtwo=eufm10 scaled\magstep2 \font\tenmsxmone=\amssymxn@me10 scaled\magstep1 \font\tenmsymone=\amssymyn@me10 scaled\magstep1 \font\teneufmone=eufm10 scaled\magstep1 \font\tenmsx=\amssymxn@me10 \font\tenmsy=\amssymyn@me10 \font\teneuf=eufm10 \if9\petitsize \font\ninemsx=\amssymxn@me9 \font\ninemsy=\amssymyn@me9 \font\nineeuf=eufm9 \else \font\eightmsx=\amssymxn@me8 \font\eightmsy=\amssymyn@me8 \font\eighteuf=eufm8 \fi \font\sevenmsx=\amssymxn@me7 \font\sevenmsy=\amssymyn@me7 \font\seveneuf=eufm7 \font\sixmsx=\amssymxn@me6 \font\sixmsy=\amssymyn@me6 \font\sixeuf=eufm6 \font\fivemsx=\amssymxn@me5 \font\fivemsy=\amssymyn@me5 \font\fiveeuf=eufm5 \fi \newfam\msxfam \textfont\msxfam=\tenmsx \scriptfont\msxfam=\sevenmsx \scriptscriptfont\msxfam=\fivemsx \newfam\msyfam \textfont\msyfam=\tenmsy \scriptfont\msyfam=\sevenmsy \scriptscriptfont\msyfam=\fivemsy \newfam\euffam \textfont\euffam=\teneuf \scriptfont\euffam=\seveneuf \scriptscriptfont\euffam=\fiveeuf \def\frak#1{{\fam\euffam#1}} \def\Bbb#1{{\fam\msyfam#1}} \def\hexnumber@#1{\ifcase#1 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or A\or B\or C\or D\or E\or F\fi} \edef\msx@{\hexnumber@\msxfam} \edef\msy@{\hexnumber@\msyfam} \mathchardef\boxdot="2\msx@00 \mathchardef\boxplus="2\msx@01 \mathchardef\boxtimes="2\msx@02 \mathchardef\square="0\msx@03 \mathchardef\blacksquare="0\msx@04 \mathchardef\centerdot="2\msx@05 \mathchardef\lozenge="0\msx@06 \mathchardef\blacklozenge="0\msx@07 \mathchardef\circlearrowright="3\msx@08 \mathchardef\circlearrowleft="3\msx@09 \mathchardef\rightleftharpoons="3\msx@0A \mathchardef\leftrightharpoons="3\msx@0B \mathchardef\boxminus="2\msx@0C \mathchardef\Vdash="3\msx@0D \mathchardef\Vvdash="3\msx@0E \mathchardef\vDash="3\msx@0F \mathchardef\twoheadrightarrow="3\msx@10 \mathchardef\twoheadleftarrow="3\msx@11 \mathchardef\leftleftarrows="3\msx@12 \mathchardef\rightrightarrows="3\msx@13 \mathchardef\upuparrows="3\msx@14 \mathchardef\downdownarrows="3\msx@15 \mathchardef\upharpoonright="3\msx@16 \let\restriction\upharpoonright \mathchardef\downharpoonright="3\msx@17 \mathchardef\upharpoonleft="3\msx@18 \mathchardef\downharpoonleft="3\msx@19 \mathchardef\rightarrowtail="3\msx@1A \mathchardef\leftarrowtail="3\msx@1B \mathchardef\leftrightarrows="3\msx@1C \mathchardef\rightleftarrows="3\msx@1D \mathchardef\Lsh="3\msx@1E \mathchardef\Rsh="3\msx@1F \mathchardef\rightsquigarrow="3\msx@20 \mathchardef\leftrightsquigarrow="3\msx@21 \mathchardef\looparrowleft="3\msx@22 \mathchardef\looparrowright="3\msx@23 \mathchardef\circeq="3\msx@24 \mathchardef\succsim="3\msx@25 \mathchardef\gtrsim="3\msx@26 \mathchardef\gtrapprox="3\msx@27 \mathchardef\multimap="3\msx@28 \mathchardef\therefore="3\msx@29 \mathchardef\because="3\msx@2A \mathchardef\doteqdot="3\msx@2B \let\Doteq\doteqdot \mathchardef\triangleq="3\msx@2C \mathchardef\precsim="3\msx@2D \mathchardef\lesssim="3\msx@2E \mathchardef\lessapprox="3\msx@2F \mathchardef\eqslantless="3\msx@30 \mathchardef\eqslantgtr="3\msx@31 \mathchardef\curlyeqprec="3\msx@32 \mathchardef\curlyeqsucc="3\msx@33 \mathchardef\preccurlyeq="3\msx@34 \mathchardef\leqq="3\msx@35 \mathchardef\leqslant="3\msx@36 \mathchardef\lessgtr="3\msx@37 \mathchardef\backprime="0\msx@38 \mathchardef\risingdotseq="3\msx@3A \mathchardef\fallingdotseq="3\msx@3B \mathchardef\succcurlyeq="3\msx@3C \mathchardef\geqq="3\msx@3D \mathchardef\geqslant="3\msx@3E \mathchardef\gtrless="3\msx@3F \mathchardef\sqsubset="3\msx@40 \mathchardef\sqsupset="3\msx@41 \mathchardef\vartriangleright="3\msx@42 \mathchardef\vartriangleleft ="3\msx@43 \mathchardef\trianglerighteq="3\msx@44 \mathchardef\trianglelefteq="3\msx@45 \mathchardef\bigstar="0\msx@46 \mathchardef\between="3\msx@47 \mathchardef\blacktriangledown="0\msx@48 \mathchardef\blacktriangleright="3\msx@49 \mathchardef\blacktriangleleft="3\msx@4A \mathchardef\vartriangle="0\msx@4D \mathchardef\blacktriangle="0\msx@4E \mathchardef\triangledown="0\msx@4F \mathchardef\eqcirc="3\msx@50 \mathchardef\lesseqgtr="3\msx@51 \mathchardef\gtreqless="3\msx@52 \mathchardef\lesseqqgtr="3\msx@53 \mathchardef\gtreqqless="3\msx@54 \mathchardef\Rrightarrow="3\msx@56 \mathchardef\Lleftarrow="3\msx@57 \mathchardef\veebar="2\msx@59 \mathchardef\barwedge="2\msx@5A \mathchardef\doublebarwedge="2\msx@5B \mathchardef\angle="0\msx@5C \mathchardef\measuredangle="0\msx@5D \mathchardef\sphericalangle="0\msx@5E \mathchardef\varpropto="3\msx@5F \mathchardef\smallsmile="3\msx@60 \mathchardef\smallfrown="3\msx@61 \mathchardef\Subset="3\msx@62 \mathchardef\Supset="3\msx@63 \mathchardef\Cup="2\msx@64 \let\doublecup\Cup \mathchardef\Cap="2\msx@65 \let\doublecap\Cap \mathchardef\curlywedge="2\msx@66 \mathchardef\curlyvee="2\msx@67 \mathchardef\leftthreetimes="2\msx@68 \mathchardef\rightthreetimes="2\msx@69 \mathchardef\subseteqq="3\msx@6A \mathchardef\supseteqq="3\msx@6B \mathchardef\bumpeq="3\msx@6C \mathchardef\Bumpeq="3\msx@6D \mathchardef\lll="3\msx@6E \let\llless\lll \mathchardef\ggg="3\msx@6F \let\gggtr\ggg \mathchardef\circledS="0\msx@73 \mathchardef\pitchfork="3\msx@74 \mathchardef\dotplus="2\msx@75 \mathchardef\backsim="3\msx@76 \mathchardef\backsimeq="3\msx@77 \mathchardef\complement="0\msx@7B \mathchardef\intercal="2\msx@7C \mathchardef\circledcirc="2\msx@7D \mathchardef\circledast="2\msx@7E \mathchardef\circleddash="2\msx@7F \def\ulcorner{\delimiter"4\msx@70\msx@70 } \def\urcorner{\delimiter"5\msx@71\msx@71 } \def\llcorner{\delimiter"4\msx@78\msx@78 } \def\lrcorner{\delimiter"5\msx@79\msx@79 } \def\yen{{\mathhexbox@\msx@55 }} \def\checkmark{{\mathhexbox@\msx@58 }} \def\circledR{{\mathhexbox@\msx@72 }} \def\maltese{{\mathhexbox@\msx@7A }} \mathchardef\lvertneqq="3\msy@00 \mathchardef\gvertneqq="3\msy@01 \mathchardef\nleq="3\msy@02 \mathchardef\ngeq="3\msy@03 \mathchardef\nless="3\msy@04 \mathchardef\ngtr="3\msy@05 \mathchardef\nprec="3\msy@06 \mathchardef\nsucc="3\msy@07 \mathchardef\lneqq="3\msy@08 \mathchardef\gneqq="3\msy@09 \mathchardef\nleqslant="3\msy@0A \mathchardef\ngeqslant="3\msy@0B \mathchardef\lneq="3\msy@0C \mathchardef\gneq="3\msy@0D \mathchardef\npreceq="3\msy@0E \mathchardef\nsucceq="3\msy@0F \mathchardef\precnsim="3\msy@10 \mathchardef\succnsim="3\msy@11 \mathchardef\lnsim="3\msy@12 \mathchardef\gnsim="3\msy@13 \mathchardef\nleqq="3\msy@14 \mathchardef\ngeqq="3\msy@15 \mathchardef\precneqq="3\msy@16 \mathchardef\succneqq="3\msy@17 \mathchardef\precnapprox="3\msy@18 \mathchardef\succnapprox="3\msy@19 \mathchardef\lnapprox="3\msy@1A \mathchardef\gnapprox="3\msy@1B \mathchardef\nsim="3\msy@1C \mathchardef\napprox="3\msy@1D \mathchardef\ncong="3\msy@1D \def\napprox{\not\approx} \mathchardef\varsubsetneq="3\msy@20 \mathchardef\varsupsetneq="3\msy@21 \mathchardef\nsubseteqq="3\msy@22 \mathchardef\nsupseteqq="3\msy@23 \mathchardef\subsetneqq="3\msy@24 \mathchardef\supsetneqq="3\msy@25 \mathchardef\varsubsetneqq="3\msy@26 \mathchardef\varsupsetneqq="3\msy@27 \mathchardef\subsetneq="3\msy@28 \mathchardef\supsetneq="3\msy@29 \mathchardef\nsubseteq="3\msy@2A \mathchardef\nsupseteq="3\msy@2B \mathchardef\nparallel="3\msy@2C \mathchardef\nmid="3\msy@2D \mathchardef\nshortmid="3\msy@2E \mathchardef\nshortparallel="3\msy@2F \mathchardef\nvdash="3\msy@30 \mathchardef\nVdash="3\msy@31 \mathchardef\nvDash="3\msy@32 \mathchardef\nVDash="3\msy@33 \mathchardef\ntrianglerighteq="3\msy@34 \mathchardef\ntrianglelefteq="3\msy@35 \mathchardef\ntriangleleft="3\msy@36 \mathchardef\ntriangleright="3\msy@37 \mathchardef\nleftarrow="3\msy@38 \mathchardef\nrightarrow="3\msy@39 \mathchardef\nLeftarrow="3\msy@3A \mathchardef\nRightarrow="3\msy@3B \mathchardef\nLeftrightarrow="3\msy@3C \mathchardef\nleftrightarrow="3\msy@3D \mathchardef\divideontimes="2\msy@3E \mathchardef\varnothing="0\msy@3F \mathchardef\nexists="0\msy@40 \mathchardef\mho="0\msy@66 \mathchardef\eth="0\msy@67 \mathchardef\eqsim="3\msy@68 \mathchardef\beth="0\msy@69 \mathchardef\gimel="0\msy@6A \mathchardef\daleth="0\msy@6B \mathchardef\lessdot="3\msy@6C \mathchardef\gtrdot="3\msy@6D \mathchardef\ltimes="2\msy@6E \mathchardef\rtimes="2\msy@6F \mathchardef\shortmid="3\msy@70 \mathchardef\shortparallel="3\msy@71 \mathchardef\smallsetminus="2\msy@72 \mathchardef\thicksim="3\msy@73 \mathchardef\thickapprox="3\msy@74 \mathchardef\approxeq="3\msy@75 \mathchardef\succapprox="3\msy@76 \mathchardef\precapprox="3\msy@77 \mathchardef\curvearrowleft="3\msy@78 \mathchardef\curvearrowright="3\msy@79 \mathchardef\digamma="0\msy@7A \mathchardef\varkappa="0\msy@7B \mathchardef\hslash="0\msy@7D \mathchardef\hbar="0\msy@7E \mathchardef\backepsilon="3\msy@7F \let\AmS@simul=Y% \catcode`\@=12 % This is layout.tex % it contains measures and different settings % reflecting Springer conventions \catcode`@=11 % use @ as a normal character \hfuzz=2pt \tolerance=500 \abovedisplayskip=3 mm plus6pt minus 4pt \belowdisplayskip=3 mm plus6pt minus 4pt \abovedisplayshortskip=0mm plus6pt minus 2pt \belowdisplayshortskip=2 mm plus4pt minus 4pt \predisplaypenalty=0 \clubpenalty=10000 \widowpenalty=10000 \frenchspacing \parindent=\stdparindent \r@ggedbottomtrue \nopagenumbers \catcode`@=12 % at signs are no longer letters % This is fontsans.tex % it defines the new sans serif font family \newfam\sansfam \textfont\sansfam=\ninesans \scriptfont\sansfam=\sevensans \scriptscriptfont\sansfam=\fivesans \def\sans{\fam\sansfam\ninesans} % This is petit.tex % it changes all fonts and measures to have a good looking % small print of shape 8pt, 6pt, and 5pt or % of shape 9pt, 6pt, and 5pt for % \texfont, \scriptfont, and \scriptscriptfont respectively % depending on the \petitsize that must equal 8 or 9 \catcode`@=11 % use @ as a normal character \if8\petitsize \skewchar\eighti='177 \skewchar\sixi='177 \skewchar\eightsy='60 \skewchar\sixsy='60 \hyphenchar\eighttt=-1 % \def\petit{\def\rm{\fam0\eightrm}% redefine \rm % set up smaller fonts \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy \textfont3=\eightex \scriptfont3=\eightex\scriptscriptfont3=\eightex % redefine all other font-family commands \def\it{\fam\itfam\eightit}% \textfont\itfam=\eightit \def\bf{\fam\bffam\eightbf}% \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf \scriptscriptfont\bffam=\fivebf \def\boldmath{\textfont1=\eightmib\scriptfont1=\sixmib \scriptscriptfont1=\fivemib}% \def\vecbold{\petitvecboldtext\petitvecboldmath}% \def\sans{\fam\sansfam\eightsans}% \textfont\sansfam=\eightsans \scriptfont\sansfam=\sixsans \scriptscriptfont\sansfam=\fivesans \def\tt{\fam\ttfam\eighttt}% \textfont\ttfam=\eighttt % redefine AmS fonts if they exist \ifx\AmS@simul\undefined \else \textfont\msxfam=\eightmsx \scriptfont\msxfam=\sixmsx \textfont\msyfam=\eightmsy \scriptfont\msyfam=\sixmsy \textfont\euffam=\eighteuf \scriptfont\euffam=\sixeuf \ifx\fonttype\fontmt % is the mt-version active \textfont\spfam=\eightsp \scriptfont\spfam=\sixsp \textfont\mtcalfam=\eightmtcal \scriptfont\mtcalfam=\sixmtcal \def\bb{\fam\msyfam\eightmsy}% \def\spb{\fam\spfam\eightsp}% \def\cal{\fam\mtcalfam\eightmtcal}% \fi \fi % new \baselineskip and \strut \normalbaselineskip=10pt \if Y\REFEREE \normalbaselineskip=\baselinestretch\normalbaselineskip \fi \setbox\strutbox=\hbox{\vrule height7.5pt depth2.5pt width0pt}% % establish those values \normalbaselines\rm} \else \skewchar\ninei='177 \skewchar\sixi='177 \skewchar\ninesy='60 \skewchar\sixsy='60 \hyphenchar\ninett=-1 % \def\petit{\def\rm{\fam0\ninerm}% redefine \rm % set up smaller fonts \textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm \textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei \textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy \textfont3=\nineex \scriptfont3=\nineex\scriptscriptfont3=\nineex % redefine all other font-family commands \def\it{\fam\itfam\nineit}% \textfont\itfam=\nineit \def\bf{\fam\bffam\ninebf}% \textfont\bffam=\ninebf \scriptfont\bffam=\sixbf \scriptscriptfont\bffam=\fivebf \def\boldmath{\textfont1=\ninemib\scriptfont1=\sixmib \scriptscriptfont1=\fivemib}% \def\vecbold{\petitvecboldtext\petitvecboldmath}% \def\sans{\fam\sansfam\ninesans}% \textfont\sansfam=\ninesans \scriptfont\sansfam=\sixsans \scriptscriptfont\sansfam=\fivesans \def\tt{\fam\ttfam\ninett}% \textfont\ttfam=\ninett % redefine AmS fonts if they exist \ifx\AmS@simul\undefined \else \textfont\msxfam=\ninemsx \scriptfont\msxfam=\sixmsx \textfont\msyfam=\ninemsy \scriptfont\msyfam=\sixmsy \textfont\euffam=\nineeuf \scriptfont\euffam=\sixeuf \ifx\fonttype\fontmt % is the mt-version active \textfont\spfam=\ninesp \scriptfont\spfam=\sixsp \textfont\mtcalfam=\ninemtcal \scriptfont\mtcalfam=\sixmtcal \def\bb{\fam\msyfam\ninemsy}% \def\spb{\fam\spfam\ninesp}% \def\cal{\fam\mtcalfam\ninemtcal}% \fi \fi % new \baselineskip and \strut \normalbaselineskip=10pt \if Y\REFEREE \normalbaselineskip=\baselinestretch\normalbaselineskip \fi \setbox\strutbox=\hbox{\vrule height7.5pt depth2.5pt width0pt}% % establish those values \normalbaselines\rm} \fi % \def\begpet{\vskip\petitsurround \bgroup\petit}% begin paragraph in small print \def\endpet{\vskip\petitsurround \egroup}% end it \catcode`@=12 % at signs are no longer letters % This is misc.tex % it contains miscelaneous macros % \catcode`@=11 % use @ as a normal character % % Macro to communicate with the user \newwrite\@info \def\infuser#1{\immediate\write\@info{#1}} % % These macros allow the author to produce a % referees copy with wider line spacing % and to switch back to normality if desired \let\baselinestretch=\@ne \let\REFEREE=N% initialize to normal spacing \def\refereelayout{\par \if N\REFEREE % toggle this function \ifx\refereebox\undefined \alloc@4\box\chardef\insc@unt\refereebox \setbox\refereebox=\vbox to0pt{\vskip0.5cm \hbox to\pagewidth{\hrulefill\tentt\lower0.5ex \hbox{\kern5pt referee's copy\kern5pt}\hrulefill} \vss} \fi \let\REFEREE=Y\footline={\copy\refereebox} \infuser{\string\refereelayout: A referee's copy will be produced} \let\baselinestretch=\tw@ \normalbaselineskip=\tw@\normalbaselineskip \normallineskiplimit=\tw@\normallineskiplimit \normallineskip=\tw@\normallineskip \normalbaselines \else \let\REFEREE=N\footline={\hfil} \infuser{\string\refereelayout: Switching back to normal layout} \let\baselinestretch=\@ne \normalbaselineskip=0.5\normalbaselineskip \normallineskiplimit=0.5\normallineskiplimit \normallineskip=0.5\normallineskip \normalbaselines \fi} % % \ch@ckheadlinewidth typesets the text of a running head % and the space for pagenumber and gap (=\headlineindent) % in small print in a \hbox in \box0; succeeding macros can % measure this box and decide what to do. % Two arguments are required the first is supposed to contain % a numbering (and may be empty), the second is the headline text \def\ch@ckheadlinewidth#1#2{% \setbox0=\hbox{\petit% headline is petit \def\newline{ }% \newline produces a space only \def\fonote##1{}% no footnotes in a headline \kern\headlineindent% leave room for pagenumber and gap \if!#1!% if there is no first argument (number) do nothing \else \ignorespaces#1\unskip\enspace% else typeset it \fi \ignorespaces#2}}% typeset the text % \chckhdlnwdth is a synonym for \ch@ckheadlinewidth in case one % cannot use commands containing "@" in a macro that wants @ active. \let\chckhdlnwdth=\ch@ckheadlinewidth % % \set@title@text typesets its argument text in the normal way; % this behaviour can be altered to obtain e.g. a hanging indentation % inside a \titlea, \titleb, etc. % \def\set@title@text#1{\ignorespaces#1\unskip\enspace} % % The macro name \th@nks and its technique is borrowed from LaTeX, % it enables footnotes inside a \titlea \let\protect=\relax \def\th@nks#1{\advance\footcount by1\relax $^{\the\footcount}$\begingroup \def\protect{\noexpand\protect\noexpand}\xdef\@thanks{\@thanks \protect\advftncnt\protect\footnotetext{#1}}\endgroup} % % \ch@cktitleheight sets the text of a heading % in a \vbox in \box0; succeeding macros can % measure this box and decide what to do. % Two arguments are required the first is supposed to contain % a numbering (and may be empty), the second is the headline text \def\ch@cktitleheight#1#2{\def\@thanks{}% \setbox0=\vbox{\let\fonote\th@nks% shift footnotes \noindent \if!#1!% if there is no first argument do nothing \else \set@title@text{#1}\relax % else typeset it \fi \ignorespaces#2}% typeset the text in \box0 \@thanks}% now do the footnotes % % \ch@ckleftspace measures the already gathered text of the actual % page and tries to put in the \box0 too. If then there is no room % for additional lines (the number of them will be read as its % argument) the macro performs a \vfill\eject. \def\ch@ckleftspace#1{\dimen0=\pagetotal \ifdim\dimen0<\pagegoal \dimen0=\ht0\advance\dimen0 by\dp0\advance\dimen0 by #1\normalbaselineskip \advance\dimen0 by\pagetotal \advance\dimen0 by-\pageshrink \ifdim\dimen0>\pagegoal \vfill\eject \fi \fi} % % \changeeverypar alters the control sequence \everypar so that the % next start of a paragraph resets the \parindent to its std-value % after TeX has contributed the actual \parindent to the horizontal % list and \lets \lasttitle equal "N". So a following \title... % assumes only text above itself and not another title. Finally % \everypar is set to its original value (nothing) \def\changeeverypar{\everypar={\global\parindent=\stdparindent \penalty\z@\global\let\lasttitle=N\global\everypar={}}} % % initialize the switch \let\lasttitle=N % % Make and remake "@" use@ble @s @ norm@l ch@r@cter \def\makeatletter{\catcode`@=11} \def\makeatother{\catcode`@=12} \def\newline{\hfil\break} \newlinechar=`\^^J \let\ts=\thinspace \def\,{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi} % % \qed (quod erat demonstrandum) finishes up a proof ending the actual % paragraph with a little square (\square from symbols.tex) in text mode; % in math mode the square is only printed (e.g. inside an equation) \def\qed{\relax\ifmmode \hbox{$\square$}% \else {\unskip\nobreak\hfil \penalty50\hskip1em\null\nobreak\hfil\hbox{$\square$}% \parfillskip=0pt\finalhyphendemerits=0\endgraf}% \fi} % % redefine plain TeX's \folio command to have uppercase roman % letters for pages with negative page number \def\folio{% \ifnum\pageno<\z@ \uppercase\expandafter{\romannumeral-\pageno}% \else \number\pageno \fi} % % Establish a comfortable way to allocate a counter in case % it is not known so far and set its default; the first % argument is the name of the counter followed by the string % "\default", then the default value is to be given. \def\@llocundefinedcount#1\default#2{% \ifx\undefined#1\relax \alloc@0\count\countdef\insc@unt#1% \global#1=#2\relax \fi} % % % Establish a comfortable way to allocate a dimension in case % it is not known so far and set its default; the first % argument is the name of the dimension followed by the string % "\default", then the default value is to be given. \def\@llocundefineddimen#1\default#2{% \ifx\undefined#1\relax \alloc@1\dimen\dimendef\insc@unt#1% \global#1=#2\relax \fi} % % Establish a comfortable way to allocate a skip in case % it is not known so far and set its default; the first % argument is the name of the skip followed by the string % "\default", then the default value is to be given. \def\@llocundefinedskip#1\default#2{% \ifx\undefined#1\relax \alloc@2\skip\skipdef\insc@unt#1% \global#1=#2\relax \fi} % % Make math stuff bold \def\boldmath{% \textfont0=\tenbf\scriptfont0=\sevenbf\scriptscriptfont0=\fivebf \textfont1=\tenmib\scriptfont1=\sevenmib\scriptscriptfont1=\fivemib } % % \centerpar sets its argument, actually one paragraph (mind its length), % in a "\narrower" form, thereby certering each individual line. \def\centerpar#1{{% start a group to make changes lokal \parfillskip=0pt \rightskip=0pt plus 1fil \leftskip=0pt plus 1fil \advance\leftskip by\stdparindent \advance\rightskip by\stdparindent \def\newline{\break}% \noindent \ignorespaces#1\par}} % % \thetime, \thedate and \timstamp are macros to include % time, date (or both) of the TeX run in the document \def\maketimestamp{\count255=\time \divide\count255 by 60\relax \edef\thetime{\the\count255:}% \multiply\count255 by-60\relax \advance\count255 by\time \edef\thetime{\thetime\ifnum\count255<10 0\fi\the\count255} \edef\thedate{\number\day-\ifcase\month\or Jan\or Feb\or Mar\or Apr\or May\or Jun\or Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi-\number\year} \def\timstamp{\hbox to\pagewidth{\tt\hfil\thedate\hfil\thetime\hfil}}} \maketimestamp % % \footinfo generates a info footline on every page containing % pagenumber, jobname, macroname, and timestamp \def\footinfo{\maketimestamp \def\makefootline{\baselineskip=36pt\relax \line{\the\footline}}% \footline={\petit\tt Page: \folio\hfil job: \jobname\hfil macro: \SpringerMacroPackageNameA\hfil date/time: \thedate/\thetime}% \infuser{^^JYou ordered a foot-info line. }} \def\nofootinfo{\gdef\makefootline{}% \infuser{^^JFoot-info has been disabled. }} % % \unvskip is a vmode-sensitive \removelastskip \def\unvskip{% \ifvmode \removelastskip \fi} % % \branches contains the locations of the various % Springer houses all over the world \def\branches{% Berlin\enspace Heidelberg\enspace New\kern0.1em York\newline London\enspace Paris\enspace Tokyo\newline Hong\thinspace Kong\enspace Barcelona\newline Budapest} % \pagewidth and \pageheight contain the original width and height % of a page to remember these values \newdimen\pagewidth \pagewidth=\hsize \newdimen\pageheight \pageheight=\vsize % \def\st@rtonrightpage{% \ifodd\pageno % if the next page is a right one it's o.k. \else \null\vfill\supereject % else eject left page \fi} % \catcode`@=12 % reset catcode % This is fleqn.tex % it convinces TeX not to center the displayed formulas \catcode`@=11 % use @ as a normal character % % allocate token registers for the equation and its number \newtoks\eq\newtoks\eqn % % the horizontal size for a displayed formula is the actual \hsize % minus the indention of the formula depending on the package \newdimen\mathhsize \def\calcmathhsize{\mathhsize=\hsize \advance\mathhsize by-\mathindent} \calcmathhsize % % define \eqalign@new, \displaylines@new, \(l)eqalignno@new to use this % size but remember the old macros to make switching possible \let\eqalign@old=\eqalign \let\displaylines@old=\displaylines \let\eqalignno@old=\eqalignno \let\leqalignno@old=\leqalignno \def\eqalign@new#1{\null\vcenter{\openup\jot\m@th \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil \crcr#1\crcr}}} \def\displaylines@new#1{{}$\displ@y \hbox{\vbox{\halign{$\@lign\hfil\displaystyle##\hfil$\crcr #1\crcr}}}${}} \def\eqalignno@new#1{{}$\displ@y \hbox{\vbox{\halign to\mathhsize{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering &\llap{$\@lign##$}\tabskip\z@skip\crcr #1\crcr}}}${}} \def\leqalignno@new#1{{}$\displ@y \hbox{\vbox{\halign to\mathhsize{\qquad\hfil$\@lign\displaystyle{##}$\tabskip\z@skip &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering &\kern-\mathhsize\rlap{$\@lign##$}\tabskip\hsize\crcr #1\crcr}}}${}} % main macro borrowed from the dirty tricks of the TeXbook \def\generaldisplay{% \ifeqno \ifleqno\leftline{$\displaystyle\the\eqn\quad\the\eq$}% \else\noindent\kern\mathindent\hbox to\mathhsize{$\displaystyle \the\eq\hfill\the\eqn$}% \fi \else \kern\mathindent \hbox to\mathhsize{$\displaystyle\the\eq$\hss}% \fi \global\eq={}\global\eqn={}}% % % flags and defaults \newif\ifeqno\newif\ifleqno % check for the "$$"s \def\displaysetup#1$${\displaytest#1\eqno\eqno\displaytest} % look for equation numbers \def\displaytest#1\eqno#2\eqno#3\displaytest{% \if!#3!\ldisplaytest#1\leqno\leqno\ldisplaytest \else\eqnotrue\leqnofalse\eqn={#2}\eq={#1}\fi \generaldisplay$$} \def\ldisplaytest#1\leqno#2\leqno#3\ldisplaytest{\eq={#1}% \if!#3!\eqnofalse\else\eqnotrue\leqnotrue\eqn={#2}\fi} % % establish a switching between normal and flush left equations % \def\flushleftequations{% \infuser{^^JEquations are \ifx\Initexing\undefined now \fi typeset flush left.}% \everydisplay={\displaysetup}% \let\eqalign=\eqalign@new \let\displaylines=\displaylines@new \let\eqalignno=\eqalignno@new \let\leqalignno=\leqalignno@new} % \def\centeredequations{% \infuser{^^JEquations are \ifx\Initexing\undefined now \fi centered.}% \everydisplay={}% \let\eqalign=\eqalign@old \let\displaylines=\displaylines@old \let\eqalignno=\eqalignno@old \let\leqalignno=\leqalignno@old} % % set the default to flush left equations \flushleftequations % \catcode`@=12 % at signs are no longer letters % This is autnum.tex % it defines a macro that steps and typesets a counter for equations \newcount\eqnum\eqnum=0% register % % use: $$\eqno\autnum$$ % or: $$\eqalignno{a&=b&\autnum\cr}$$ \def\autnum{\global\advance\eqnum by 1\relax{\rm(\the\eqnum)}} % This is output.tex % redefine the output routine to produce running heads % and to include "stacked" figures \catcode`@=11 % use @ as a normal character % % Modify \endinsert of plain TeX to have a fixed vertical gap of value % \figureafter between a \topinsert and the normal text on a page. \def\endinsert{\egroup % finish the \vbox \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen@12\p@ \advance\dimen@\pagetotal \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi \if@mid \bigskip\box\z@\bigbreak \else\insert\topins{\penalty100 % floating insertion \splittopskip\z@skip \splitmaxdepth\maxdimen \floatingpenalty\z@ \ifp@ge \dimen@\dp\z@ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero \else \box\z@\nobreak\vskip\figureafter\fi}\fi\endgroup} % % \handlefigures tries to put in all figures that are accumulated % until now after the actual processed page making a \topinsert on % the next one. If there are too much figures pending, a \vsplit is % made, gobbling as much figure material as will fit in a box of % height \maxfigheight (actually a full page minus 5 normal lines % and a vertical gap, see PLACEFIG.TEX). The rest is stored for % the next call of the \output routine. A \supereject will be obeyed; % all stacked figures are shipped out in that case. % \def\handlefigures{% \if Y\FIG % if there are "stacked" figures \dimen0=\ht\figbox % measure height of gathered figures if this height \advance\dimen0 by\dp\figbox % is greater than \maxfigheight the \ifdim\dimen0>\maxfigheight % \figbox has to be split \splittopskip=0pt\relax % avoid a \topskip in the second "half" \vbadness=10000 % suppress "underfull \vbox" message \setbox0=\vsplit\figbox to\maxfigheight % split \ifvoid0 % if nothing split up \message{Error placing figures}% issue error message and put out \topinsert\unvbox\figbox\endinsert % all material in the \figbox \else \topinsert % else put out first "half" \vbox{\vskip \topskip\hrule height\z@ \nobreak\vskip -\topskip\vskip3.7pt \unvbox0}% \endinsert % end of first "half" \fi \splittopskip=10pt % restore \vbadness=1000\relax % values \else \topinsert \vbox{\vskip \topskip\hrule height\z@ \nobreak\vskip -\topskip\vskip3.7pt \unvbox\figbox}% \endinsert % all figures fit on one page \fi \ifvoid\figbox % if no figures are left \global\let\FIG=N% reset switch for next page \fi \ifnum\outputpenalty>-\@MM % is this \output called normally \else % no it is called by a \supereject \ifnum\insertpenalties=0 % keep on \insertpenalties=1\relax % ejecting all \fi % figures until the \dosupereject % \figbox is void \fi \fi} % Obviously the output routine is called inside a group, so all % changes will be restored when it has finished a page. First the % \newlinechar is removed for deferred \writes of the indexing macros % and \headline is made suppressable for this very page. Then plain % TeX's output routine is called, finally the pending figures are % processed. \output={\if N\header% suppress running head if switch equals "N" \headline={\hfil}% \global\let\header=Y% reset flag for next page \fi \def\line{\hbox to\pagewidth}% allow full pagewidth headline \plainoutput% call output routine of plain TeX \handlefigures % handle figures :) } \catcode`@=12 % at signs are no longer letters % This is contents.tex % it defines various macros to produce a table of contents \catcode`@=11 % use @ as a normal character % "stretching dots" with an \enspace before and thereafter \def\leader@fill{\kern0.5em \leaders\hbox to 0.5em{\hss.\hss}\hfill \kern0.5em} % new dimensions, indention of chapter, section, and subsection \newdimen\c@ntchapindent \newdimen\c@ntsectindent \newdimen\c@ntsubsectindent % new dimension, room for page numbers (up to 1000:) \newdimen\c@ntthousand % new dimension, space between right edge of text and page number box % must be at least 1.5em to include the \leader@fill \newdimen\c@ntgap % macro to set all these parms \def\setcontparms#1#2#3#4#5{% \setbox0=\hbox{#1}\c@ntchapindent=\wd0\relax \setbox0=\hbox{#2}\c@ntsectindent=\wd0\relax \setbox0=\hbox{#3}\c@ntsubsectindent=\wd0\relax \setbox0=\hbox{#4}\c@ntgap=\wd0\relax \setbox0=\hbox{#5}\c@ntthousand=\wd0\relax} % set the default \setcontparms{\bf 10. }{10.1 }{10.1.1 }{\qquad}{100}% % box that contains the last line of a text entry \newbox\letzt % % \c@nditionalskip redefines itself to the final form % if it is called directly after a \title (i.e. \lasttitle<>N) % no other action is performed; else a normal call is simulated. % The final form does a \vskip#2 if \lasttitle equals #1 % else a \vskip#3 \def\c@nditionalskip#1#2#3{% \if N\lasttitle \par \vskip 0pt plus5pt\relax \if #1\lasttitle \vskip#2\relax \else \vskip#3\relax \fi \fi \def\c@nditionalskip##1##2##3{\par \if ##1\lasttitle \vskip##2\relax \else \vskip##3\relax \fi}} % % \ch@ckconttext sets its argument (actually the text of an entry) % in a \vbox and extracts the last line into \box\letzt; % succeeding macros now know the width of this last line. \def\ch@ckconttext#1{% \setbox0=\vbox{\advance\hsize by-\c@ntthousand \advance\hsize by-\c@ntgap \rightskip=0pt plus6em \pretolerance=10000 \ifnumberpresent \hangindent\dimen0 \else \hangindent\dimen1 \fi \hangafter=0 \noindent \ignorespaces#1\par \setbox\letzt=\lastbox \global\setbox\letzt=\hbox{\unhbox\letzt \unskip\unskip\unpenalty}% }% } % \c@ntmark produces the number of an entry, it is called inside a % \hbox, its argument is set flush left, per default. This behaviour % can be altered, to have e.g. right aligned marks with a defined gap \def\c@ntmark#1{\ignorespaces#1\hss}% % % \setc@nttext is a macro to produce a whole entry, it % expects \dimen0 to be the total indention of the text, % \dimen1 the indention of the mark (caused by higher levels), % and \box\letzt to have the width of the last text line \def\setc@nttext#1#2#3{% {\parskip=0pt % make changes lokal, \lineskip=0pt % suppress interparglue {\advance\hsize by-\c@ntthousand % trim the \hsize \advance\hsize by-\c@ntgap % at the right edge too \rightskip=0pt plus6em % \raggedright \pretolerance=10000 % no hyphenation \ifnumberpresent % check width only if mark present \setbox0=\hbox{\kern\dimen1\strut\c@ntmark{#1}}% set the mark \ifdim\wd0>\dimen0 % in \box0, if mark does not fit {\def\bf{}\def\boldmath{}% issue error message \infuser{^^JThe mark `#1' does not fit in the table of contents. }}% \fi \hangindent\dimen0 % set up a hanging indentation \hangafter=1 % after the first line \noindent \hbox to\dimen0{\kern\dimen1\strut\c@ntmark{#1}}% set the mark \else \hangindent\dimen1 % set up a hanging indentation \hangafter=0 % after the first line \noindent \fi \ignorespaces#2\par}% % set the text then restore \hsize \if!#3!% % if no number present, do nothing \else % else \vskip-\baselineskip % go one line back \ifdim\dp\letzt>\dp\strutbox % are there signs of extreme depth? \vskip-\dp\letzt % go back depth of last line \vskip\dp\strutbox % correct position of dots \fi \noindent\strut % and insert \line{\strut % the line containing a \strut \ifnumberpresent % mind presence of mark \kern\dimen0 % the total indention \else \kern\dimen1 % the indention without mark \fi \kern\wd\letzt % the width of the last line of text \leader@fill % the dots \hbox to\c@ntthousand{\hss\null\ignorespaces#3\unskip}}% % page number \fi \par}% } % \newif\ifnumberpresent % \newskip\contpartskipa \contpartskipa=0.5\bigskipamount \newskip\contpartskipb \contpartskipb=\bigskipamount \newskip\contpartskipc \contpartskipc=0pt % % \contpart produces an insertion for parts of the book % in the table of contents, % its occurrence is remembered by a \lasttitle of P \def\contpart#1#2{% \vskip 0pt plus5pt\relax \c@nditionalskip{P}{\contpartskipa}{\contpartskipb}% \vbox{%\advance\hsize by-\c@ntthousand \hrule \kern5pt \vbox{\rightskip=0pt plus6em % \raggedright \pretolerance=10000 % no hyphenation \boldmath\bf \noindent \setbox0=\hbox{\ignorespaces#1\unskip \enspace}% \hangindent=\wd0\hangafter=1\box0\relax \ignorespaces #2}% \kern5pt \hrule}% \let\lasttitle=P% \vskip\contpartskipc \changeeverypar} % \newskip\contcontributionskipa \contcontributionskipa=3pt \newskip\contcontributionskipb \contcontributionskipb=12pt \newskip\contcontributionskipc \contcontributionskipc=0pt % % \contcontribution produces an entry for a \contribution % its occurrence is remembered by a \lasttitle of W \def\contcontribution#1{% \vskip 0pt plus5pt\relax \c@nditionalskip{W}{\contcontributionskipa}{\contcontributionskipb}% \dimen0=\c@ntchapindent \dimen1=\dimen0 \numberpresentfalse \ch@ckconttext{{\boldmath\bf#1}}% \let\lasttitle=W% \setc@nttext{}{{\boldmath\bf#1}}{}% \vskip\contcontributionskipc \changeeverypar} % % \newskip\contauthorskipa \contauthorskipa=0pt \newskip\contauthorskipb \contauthorskipb=0pt \newskip\contauthorskipc \contauthorskipc=0pt % % \contauthor produces an entry for a \author % its occurrence is remembered by a \lasttitle of X \def\contauthor#1#2{% \vskip 0pt plus5pt\relax \c@nditionalskip{X}{\contauthorskipa}{\contauthorskipb}% \dimen0=\c@ntchapindent \dimen1=\dimen0 \numberpresentfalse \ch@ckconttext{#1}% \let\lasttitle=X% \setc@nttext{}{#1}{#2}% \vskip\contauthorskipc \changeeverypar} % % \newskip\conttitleaskipa \conttitleaskipa=6pt \newskip\conttitleaskipb \conttitleaskipb=12pt \newskip\conttitleaskipc \conttitleaskipc=0pt \def\conttitleastyle{\boldmath\bf} % % \conttitlea produces an entry for a \titlea % its occurrence is remembered by a \lasttitle of Q \def\conttitlea#1#2#3{% \vskip 0pt plus5pt\relax \c@nditionalskip{Q}{\conttitleaskipa}{\conttitleaskipb}% \dimen1=0pt \dimen0=\c@ntchapindent \if!#1!\numberpresentfalse\else\numberpresenttrue\fi \ch@ckconttext{{\conttitleastyle#2}}% \let\lasttitle=Q% \setc@nttext{{\conttitleastyle#1}}{{\conttitleastyle#2}}{#3}% \vskip\conttitleaskipc \changeeverypar} % \newskip\conttitlebskipa \conttitlebskipa=0pt \newskip\conttitlebskipb \conttitlebskipb=0pt \newskip\conttitlebskipc \conttitlebskipc=0pt % % \conttitleb produces an entry for a \titleb % its occurrence is remembered by a \lasttitle of R \def\conttitleb#1#2#3{% \vskip 0pt plus5pt\relax \c@nditionalskip{R}{\conttitlebskipa}{\conttitlebskipb}% \dimen0=\c@ntchapindent \dimen1=\dimen0 \if!#1!\numberpresentfalse\else\numberpresenttrue\fi \advance\dimen0 by\c@ntsectindent \ch@ckconttext{#2}% \let\lasttitle=R% \setc@nttext{#1}{#2}{#3}% \vskip\conttitlebskipc \changeeverypar} % \newskip\conttitlecskipa \conttitlecskipa=0pt \newskip\conttitlecskipb \conttitlecskipb=0pt \newskip\conttitlecskipc \conttitlecskipc=0pt % % \conttitlec produces an entry for a \titlec % its occurrence is remembered by a \lasttitle of S \def\conttitlec#1#2#3{% \vskip 0pt plus5pt\relax \c@nditionalskip{S}{\conttitlecskipa}{\conttitlecskipb}% \dimen0=\c@ntchapindent \advance\dimen0 by\c@ntsectindent \dimen1=\dimen0 \if!#1!\numberpresentfalse\else\numberpresenttrue\fi \advance\dimen0 by\c@ntsubsectindent \ch@ckconttext{#2}% \let\lasttitle=S% \setc@nttext{#1}{#2}{#3}% \vskip\conttitlecskipc \changeeverypar} % \catcode`@=12 % reset catcode % This is index.tex % it contains indexing macros mostly borrowed from DEK % \catcode`@=11 % use @ as a normal character % first some macros that allow unexpanded \write \def\st@ken{ }% space token \def\s@nitize{\futurelet\next\s@nswitch} \def\s@nswitch{\ifx\next\ends@nity \else\ifcat\noexpand\next\st@ken\aftergroup\space\let\next=\e@t \else\ifcat\noexpand\next\bgroup\aftergroup{\let\next=\e@t \else\ifcat\noexpand\next\egroup\aftergroup}\let\next=\e@t \else\let\next=\c@pytoken\fi\fi\fi\fi \next} \def\e@t{\afterassignment\s@nitize \let\next= } \long\def\c@pytoken#1{\ifcat\noexpand#1\relax\aftergroup\noexpand \aftergroup\noexpand \aftergroup\noexpand \else\ifcat\noexpand#1\noexpand~\aftergroup\noexpand\fi\fi \aftergroup#1\s@nitize} \def\ends@nity\ends@nity{} % % \unexp@nd converts its argument to \t@kenstring protecting any % control sequence by \noexpand \long\def\unexp@nd#1{{% \aftergroup\def\aftergroup\t@kenstring\aftergroup{% \s@nitize#1\ends@nity}}} % % here are the macros that switch to and from a simple twocolumn % format knowing nothing from insertions \def\onepageout#1{% \shipout\vbox{ % here we define one page of output \if N\header% suppress running head if switch equals "N" \headline={\hfil}% \global\let\header=Y% reset flag for next page \fi \vbox to\z@{\vskip-22.5\p@ \hbox to\pagewidth{\vbox to8.5\p@{}% \the\headline} \vss}% \nointerlineskip % butt the boxes together \vbox to\pageheight{ #1 % now insert the main information \ifvoid\footins \else % footnote info is present \vskip\skip\footins \footnoterule \unvbox\footins \fi \boxmaxdepth=\maxdepth } % this completes the \vbox to \pageheight }\advancepageno} % \newbox\partialpage \def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \unvbox255 \penalty\outputpenalty} % \def\pagesofar{\unvbox\partialpage \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}} % \newif\ifstrictbalance \strictbalancetrue % \def\balancecolumns{% \setbox0=\vbox{\unvcopy255}% \dimen@=\ht0 \advance\dimen@ by2\ht\partialpage \dimen1=2\pageheight \ifdim\dimen@>\dimen1 \splittopskip=\topskip \splitmaxdepth=\maxdepth \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \penalty\outputpenalty \fi \setbox0=\vbox{\unvbox255}\dimen@=\ht0 \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by2 \splittopskip=\topskip \splitmaxdepth=\maxdepth {\vbadness=10000 \loop \global\setbox3=\copy0 \global\setbox1=\vsplit3 to\dimen@ \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}% \setbox0=\vbox to\dimen@{\unvbox1} \ifstrictbalance \setbox2=\vbox to\dimen@{\unvbox3} \else \setbox2=\vbox to\dimen@{\dimen2=\dp3 \unvbox3 \kern-\dimen2 \vfil} \fi \vbox{\pagesofar}\bigbreak} % % \begdoublecolumns and \enddoublecolumns start and end text % passages in twocolumn format \def\begdoublecolumns{\begingroup \output={\global\setbox\partialpage=\vbox{\unvbox255}}\eject \output={\doublecolumnout} \hsize=\pagewidth \advance\hsize by-\indexcolgap\divide\hsize by 2 \vsize=2\pageheight\advance\vsize by1cm\relax} \def\enddoublecolumns{\output={\balancecolumns}\eject \endgroup \pagegoal=\vsize} % % \endcolumn finishes up one column deciding whether % this occurs at the right or left column. On the left % \endleftcolumn is called that fills the page with % white space forcing the output routine to find the % desired internal page break; on the right side a % \vfill\eject clears the page. \def\endleftcolumn{\leavevmode % keep safe the already issued \dimen0=\pageheight % \vfill, perform a \vskip \advance\dimen0 by-\pagetotal % that fills exactly the rest \advance\dimen0 by-\ht\partialpage % of the left column \vskip\dimen0\relax} % \def\endcolumn{\par\vfill \dimen1=\pagetotal \advance\dimen1 by\ht\partialpage \dimen0=\pageheight \ifdim\dimen1>\dimen0 \multiply\dimen0 by 2 \ifdim\dimen1<\dimen0 \eject \else \endleftcolumn \fi \else \endleftcolumn \fi} % % \Idx (for a silent index entry) and \Asidx (same with copy of % argument) are made existent but actually doing no index entries, % only \makeindex awakens them. \def\Idx#1{} \def\Asidx#1{#1} % original meaning of \folio for indexes on pages with roman numbers \def\@rifolio{\ifnum\pageno<\z@ \romannumeral-\pageno \else\number\pageno \fi} % \makeindex allocates the index output file \jobname.idx % informs the user and revives \Idx and \Asidx \def\makeindex{% \alloc@7\write\chardef\sixt@@n\inx \immediate\openout\inx=\jobname.idx \infuser{^^JNow writing your index entries on file \jobname.idx. } \def\Idx##1{\unexp@nd{##1}\edef\next{\write\inx{\string\indexentry {\t@kenstring}{\noexpand\@rifolio}}}\next}% \def\Asidx##1{##1\unexp@nd{##1}\edef\next{\write\inx{\string\indexentry {\t@kenstring}{\noexpand\@rifolio}}}\next}% } % \indexindent is the hanging indentation of ordinary index entries \@llocundefinedskip\indexindent\default{1em} % \indexcolgap is the space between the two columns of the index \@llocundefineddimen\indexcolgap\default{1cc} % \indexnumsep is the space separating the index entry from the % corresponding page numbers \@llocundefinedskip\indexnumsep\default{1em} % \printindex starts the index section with the \indtitle. First % the existence of file \jobname.ind is tested. If it is missing a % warning message is issued on the terminal as well as printed in the % document; otherwise control is transfered to \pr@ntindex that does % the whole stuff. % \def\indtitle{\titlea{}}% print title of the index section % \def\printindex#1{% \indtitle{#1} % print title of the index section using \indtitle \alloc@6\read\chardef\sixt@@n\indfile % allocate input stream \openin\indfile=\jobname.ind % open file \jobname.ind \ifeof\indfile % does it exist? \let\next\n@index % if not issue warning \else % if file \jobname.ind exists \let\next\pr@ntindex % print normal index \fi \closein\indfile % tidy up \next} % call \n@index or \pr@ntindex % \def\n@index{% \infuser{^^JCannot print index. File \jobname.ind not found. ^^JPlease process file \jobname.idx with program MakeIndex first. }% if not, issue a warning Here no index could be printed because file {\tt\jobname.ind} was not found. It must first be generated from file {\tt\jobname.idx} using the program {\it MakeIndex}. \bigskip} % \def\pr@ntindex{% \begingroup \def\see##1##2{{\it see\/} ##1}% stolen from LaTeX \def\indexspace{\par\vskip\baselineskip}% space between new % alphabetical groups of index entries (MakeIndex) \def\idxquad{\hskip\indexnumsep}% space that divides entry from number \def\,{\relax\ifmmode\mskip\thinmuskip\else\hskip0.2em\ignorespaces\fi} \def\item{\par\noindent\hangindent\indexindent \hangafter=1\relax}% first order index entry \def\subitem{\par\noindent\setbox0=\hbox{--\enspace}% second order \hangindent\wd0\hangafter=1\box0}% index entry \def\subsubitem{\par\noindent\setbox0=\hbox{--\,--\enspace}% third \hangindent\wd0\hangafter=1\box0}% order index entry \def\begin##1{\par% make \begin{theindex} of MakeIndex acceptable \petit % start small print \rightskip=0pt plus 4em\relax % index entries are set raggedright \begdoublecolumns}% start twocolumn output \def\end##1{\enddoublecolumns\endgroup}% MakeIndex \infuser{^^JPrinting index from file \jobname.ind. }% inform user \input\jobname.ind% open index file created with MakeIndex } \catcode`@=12 % at signs are no longer letters % This is editor.tex % it defines various macros for editors of e.g. proceedings % volumes to have influence on the book layout % % \freepages produces #1 empty pages (actually as empty as % usual in IBM brochures :-) \catcode`@=11 % use @ as a normal character \def\freepages#1{% \@llocundefinedcount\frpages\default 0% define a counter \global\frpages=#1\relax % and initialize it \null\vfill\eject % end current page \loop % start a loop \advance\frpages by -1 % decrement counter {\advance\frpages by-#1 % start group \multiply\frpages by-1 % turn round counting \infuser{Doing freepage % for the message \the\frpages\space of #1}}% counts from 1 upwards, end group \null\vfil \centerline{This page is intentionally left blank.}\vfil \eject % eject page \ifnum\frpages>0\repeat} % % Allow new chapters to start on a new left hand page too \def\sparepaper{\let\st@rtonrightpage=\relax \infuser{^^JNew contributions now may begin at every new page. }} % % Start a list of contributors using \contriblisttitle; % the argument #1 is the desired heading. Switch to twocolumn mode % suppress indention of paragraphs and call \obeylines. % \def\contriblisttitle{\titlea{}} % \def\begcontributorlist#1{% \contriblisttitle{#1}% \the\everypar \begdoublecolumns \parindent=0pt \obeylines} % Stop this mode \def\endcontributorlist{\enddoublecolumns} \catcode`@=12 % at signs are no longer letters % This is frontpag.tex % it defines macros for the front page \def\bookauthor#1{\vfill\supereject \bgroup \baselineskip=22pt \lineskip=0pt \pretolerance=10000 \authfont \rightskip 0pt plus 6em \noindent \ignorespaces#1\vskip2true cm\egroup} \def\bookhead#1#2{\bgroup \baselineskip=36pt \lineskip=0pt \pretolerance=10000 \headfont \rightskip 0pt plus 6em \noindent \ignorespaces#1\vskip1true cm \baselineskip=22pt \noindent\subhfont#2\vfill \parindent=0pt \baselineskip=16pt \tenrmmtwo Springer-Verlag\vskip4pt \tenrmmone \branches \par \egroup\let\header=N\eject} % This is authaddr.tex % it defines macros to print name and address of the author % and remembers the authors name for further use \catcode`\@=\active % make @ an active character % % \author sets the author(s) name(s), defines the running head and % stores the name in the token register \AUTHOR. The "activeness" of @ % is controlled by dividing the task into two macros. \def\author{% \bgroup \catcode`\@=\active % make @ an active character \def@##1{\unskip\,$^{##1}$}% handle all "@ffiliations" in \author \parindent=0pt % no indention (may already be in effect) \lineskip=0pt % no extra glue for high lines \pretolerance=10000 % no hyphenation \AuThOr} % set name(s) with appropriate catcodes \def\AuThOr#1{% read argument with appropriate catcodes and do the rest \ignorespaces % ignore leading spaces #1\par % set name(s) \vskip\authafter % leave space \def@##1{}% % disable affiliations \def\fonote##1{}% and footnotes \chckhdlnwdth{}{#1}% % check headline width \ifdim\wd0>\pagewidth % shriek if too long \infuser{^^JThe names of the author(s) exceed the headline, please use a^^Jshort form with \string\leftrunningtitle}% \gdef\leftheadline{\hbox to\headlineindent{\folio\hfil}% AUTHOR suppressed due to excessive length \hfil}% \global\AUTHOR={AUTHOR was to long}% \else \xdef\leftheadline{\hbox to\headlineindent{\noexpand\folio\hfil}% \ignorespaces#1\hfil}% \global\AUTHOR={\def@##1{}% \ignorespaces#1\unskip}% \fi \egroup} % % \address sets the author(s) address(es) in small print % it first starts a group, makes "@" an active characte and calls the % following macro \AdDrEsS, that does the rest and ends the group \def\address{% \bgroup \catcode`\@=\active % make @ an active character \def@##1{\par % handle all "@ffiliations" in \address % \noindent$^{##1}$\,% standard \setbox0=\hbox{$^8$ }% set affiliations itemized \hangindent=\wd0 % \hangafter=1 % \noindent % \hbox to\wd0{\hss$^{##1}$\,}% \ignorespaces}% % \parindent=0pt\relax % no indention of address, \petit % switch to small print \AdDrEsS} \def\AdDrEsS#1{% \ignorespaces#1\par % set address(es) of author(s) \egroup % end the group \vskip\addrafter\par % leave vertical space \ifdim\pagetotal>\tmheight\else % check height of whole \dimen0=\tmheight % contribution title \advance\dimen0 by-\pagetotal % (\maintitle, \author, and \advance\dimen0 by\prevdepth % \address), adjust this \vskip\dimen0\relax % to at least \tmheight \fi % \let\lasttitle=A% % fool any following \titlea macro \changeeverypar} % \catcode`@=12 % at signs are "other" again % This is abstract.tex % it defines a macro to have an abstract set in small print \def\abstract#1{% \bgroup \petit \noindent {\bf Abstract: }% \ignorespaces#1 \vskip\abstractafter \egroup \let\lasttitle=A \parindent=0pt \changeeverypar \ignorespaces} % This is part2.tex % to divide parts in a book % \def\part#1#2{% \vfill\supereject% always start a new page \let\header=N% tell the output routine not to print a heading \centerline{\subhfont\ignorespaces#1\unskip}% \vskip\partskip \bgroup \textfont0=\tptt \scriptfont0=\tpts \scriptscriptfont0=\tptss \textfont1=\tpmt \scriptfont1=\tpms \scriptscriptfont1=\tpmss \textfont2=\tpst \scriptfont2=\tpss \scriptscriptfont2=\tpsss \textfont3=\tpxt \scriptfont3=\tpxs \scriptscriptfont3=\tpxss \tptt % select default font \baselineskip=\tpbaselineskip % set \baselineskip \lineskip=0pt % no extra space between "high" lines \pretolerance=10000 % no hyphenation \centerpar{#2}% set text \vfill\eject % finish up page \egroup \ignorespaces} % This is maintit.tex % a contribution title to a multi author book \catcode`@=11 % use @ as a normal character \@llocundefinedcount\section@penalty\default 0 \@llocundefinedcount\subsection@penalty\default 0 \@llocundefinedcount\subsubsection@penalty\default 0 % \def\set@maintitle@text#1{\noindent\ignorespaces#1\par} % \def\maintitle#1{% \vfill\supereject% always start a new page \st@rtonrightpage% new contribution should begin on right hand page \bgroup% make changes lokal % redefine fonts \textfont0=\tmtt \scriptfont0=\tmts \scriptscriptfont0=\tmtss \textfont1=\tmmt \scriptfont1=\tmms \scriptscriptfont1=\tmmss \textfont2=\tmst \scriptfont2=\tmss \scriptscriptfont2=\tmsss \textfont3=\tmxt \scriptfont3=\tmxs \scriptscriptfont3=\tmxss \csname tm@additionals\endcsname \tmtt% select default font \baselineskip=\tmbaselineskip% set baselineskip \lineskip=0pt% no extra space between "high" lines \rightskip=0pt plus 6em% raggedright \pretolerance=10000% no hyphenation \ch@ckheadlinewidth{}{#1}% measure headline \ifdim\wd0>\hsize% if it is to big \infuser{^^J\string\maintitle: the contribution title exceeds the headline, ^^Jplease use a short form with \string\rightrunningtitle\space}%display a warning \gdef\rightheadline{\hfil Contribution title suppressed due to excessive length\hbox to \headlineindent{\hfil\folio}}% \global\HEAD={Contribution title was to long}% \else%if it fits in define rightheadline \gdef\rightheadline{\hfil\ignorespaces#1\unskip\hbox to \headlineindent{\hfil\folio}}% \global\HEAD={\ignorespaces#1\unskip}% \fi \global\let\header=N% tell the output routine not to print a heading \set@maintitle@text{#1} \nobreak% avoid page break \vskip\tmafter \egroup% restore normal conditions \parindent=0pt\relax \changeeverypar \global\let\lasttitle=M% \ignorespaces} % % Now the identical macro with a greater skip after the title, it % alters both running titles. It is used by \printindex, % \begcontributorlist etc. and for historical reasons by \intro, % \preface, \dedication, etc. \def\maintitleo#1{% \vfill\supereject% always start a new page \st@rtonrightpage% new contribution should begin on right hand page \bgroup% make changes lokal % redefine fonts \textfont0=\tmtt \scriptfont0=\tmts \scriptscriptfont0=\tmtss \textfont1=\tmmt \scriptfont1=\tmms \scriptscriptfont1=\tmmss \textfont2=\tmst \scriptfont2=\tmss \scriptscriptfont2=\tmsss \textfont3=\tmxt \scriptfont3=\tmxs \scriptscriptfont3=\tmxss \csname tm@additionals\endcsname \tmtt% select default font \baselineskip=\tmbaselineskip% set baselineskip \lineskip=0pt% no extra space between "high" lines \rightskip=0pt plus 6em% raggedright \pretolerance=10000% no hyphenation \ch@ckheadlinewidth{}{#1}% measure headline \ifdim\wd0>\hsize% if it is to big \infuser{^^J\string\maintitleo: the global running title exceeds the headline, ^^Jplease use a short form with \string\runningtitle\space}%display a warning \gdef\rightheadline{\hfil Title suppressed due to excessive length\hbox to \headlineindent{\hfil\folio}}% \gdef\leftheadline{\hbox to\headlineindent{\folio\hfil}% Title suppressed due to excessive length \hfil}% \else%if it fits in define rightheadline \gdef\rightheadline{\hfil\ignorespaces#1\unskip\hbox to \headlineindent{\hfil\folio}}% \gdef\leftheadline{\hbox to\headlineindent{\folio\hfil}% \ignorespaces#1 \hfil}% \fi \global\let\header=N% tell the output routine not to print a heading \set@maintitle@text{#1} \nobreak% avoid page break \vskip\tmoafter \egroup% restore normal conditions \parindent=0pt\relax \changeeverypar \global\let\lasttitle=M% \ignorespaces} \catcode`@=12 % at signs are no longer letters % This is tita2.tex % a heading of order 1 \catcode`@=11 % use @ as a normal character \def\titlea#1#2{\par% first parameter: number, second: text \if N\lasttitle% previous text was not titlea \removelastskip \else \vskip\tabeforeback% else skip backwards \fi \bgroup \textfont0=\tatt \scriptfont0=\tats \scriptscriptfont0=\tatss \textfont1=\tamt \scriptfont1=\tams \scriptscriptfont1=\tamss \textfont2=\tast \scriptfont2=\tass \scriptscriptfont2=\tasss \textfont3=\taxt \scriptfont3=\taxs \scriptscriptfont3=\taxss \csname ta@additionals\endcsname \tatt% select default font \baselineskip=\tabaselineskip% set baselineskip \lineskip=0pt% no extra space between "high" lines \rightskip=0pt plus 6em% raggedright \pretolerance=10000% no hyphenation \setbox0=\vbox{\vskip\tabefore \def\fonote##1{}% disable footnotes \noindent \if!#1!% if no first argument, do nothing \else \set@title@text{#1}\relax \fi \ignorespaces#2% typeset text of titlea \vskip\taafter}% skip after titlea \ch@ckleftspace 5% perform an eject if page nearly full \vskip\tabefore \penalty\section@penalty \global\section@penalty=-200 \global\subsection@penalty=10007 \noindent \if!#1!% if no first argument, do nothing \else \set@title@text{#1}\relax \fi \ignorespaces#2% typeset text of titlea \endgraf \nobreak \vskip\taafter% skip after titlea \egroup \global\let\lasttitle=A% \parindent=0pt \changeeverypar \ignorespaces} \catcode`@=12 % reset catcode % This is titb2.tex % a heading of order 2 \catcode`@=11 % use @ as a normal character \def\titleb#1#2{\par% first parameter: number, second: text \if N\lasttitle% previous text was not titleb \removelastskip \else \vskip\tbbeforeback% else skip backwards \fi \bgroup \textfont0=\tbtt \scriptfont0=\tbts \scriptscriptfont0=\tbtss \textfont1=\tbmt \scriptfont1=\tbms \scriptscriptfont1=\tbmss \textfont2=\tbst \scriptfont2=\tbss \scriptscriptfont2=\tbsss \textfont3=\tbxt \scriptfont3=\tbxs \scriptscriptfont3=\tbxss \tbtt% select default font \rightskip=0pt plus 6em% raggedright \pretolerance=10000% no hyphenation \setbox0=\vbox{\vskip\tbbefore \def\fonote##1{}% disable footnotes \noindent \if!#1!% if no first argument, do nothing \else \set@title@text{#1}\relax \fi \ignorespaces#2% typeset text of titleb \vskip\tbafter}% skip after titleb \ch@ckleftspace 4% perform an eject if page nearly full \vskip\tbbefore \if N\lasttitle \penalty\subsection@penalty \fi \global\subsection@penalty=-100 \global\subsubsection@penalty=10007 \noindent \if!#1!% if no first argument, do nothing \else \set@title@text{#1}\relax \fi \ignorespaces#2% typeset text of titleb \endgraf \nobreak \vskip\tbafter% skip after titleb \egroup \global\let\lasttitle=B% \parindent=0pt \changeeverypar \ignorespaces} \catcode`@=12 % reset catcode % This is titc2.tex % a heading of order 3 \catcode`@=11 % use @ as a normal character \def\titlec#1#2{\par% first parameter: number, second: text \if N\lasttitle% previous text was not titleb \removelastskip \else \vskip\tcbeforeback% else skip backwards \fi \bgroup \textfont0=\tctt \scriptfont0=\tcts \scriptscriptfont0=\tctss \textfont1=\tcmt \scriptfont1=\tcms \scriptscriptfont1=\tcmss \textfont2=\tcst \scriptfont2=\tcss \scriptscriptfont2=\tcsss \textfont3=\tcxt \scriptfont3=\tcxs \scriptscriptfont3=\tcxss \csname tc@additionals\endcsname \tctt% select default font \rightskip=0pt plus 6em% raggedright \pretolerance=10000% no hyphenation \setbox0=\vbox{\vskip\tcbefore \def\fonote##1{}% disable footnotes \noindent \if!#1!% if no first argument, do nothing \else \set@title@text{#1}\relax \fi \ignorespaces#2% typeset text of titlec \vskip\tcafter}% skip after titlec \ch@ckleftspace 3% perform an eject if page nearly full \vskip\tcbefore \if N\lasttitle \penalty\subsubsection@penalty \fi \global\subsubsection@penalty=-100 \noindent \if!#1!% if no first argument, do nothing \else \set@title@text{#1}\relax \fi \ignorespaces#2% typeset text of titlec \endgraf \nobreak \vskip\tcafter% skip after titlec \egroup \global\let\lasttitle=C% \parindent=0pt \changeeverypar \ignorespaces} \catcode`@=12 % reset catcode % This is titd2.tex % a heading of order 4 \catcode`@=11 % use @ as a normal character \setbox0=\hbox{\tdtt{} }% \@llocundefineddimen\tdgap\default{\wd0} \def\titled#1{\par% \if N\lasttitle% previous text was not titled \removelastskip \else \vskip\tdbeforeback % else skip backwards \fi \vskip\tdbefore \bgroup \textfont0=\tdtt \scriptfont0=\tdts \scriptscriptfont0=\tdtss \textfont1=\tdmt \scriptfont1=\tdms \scriptscriptfont1=\tdmss \textfont2=\tdst \scriptfont2=\tdss \scriptscriptfont2=\tdsss \textfont3=\tdxt \scriptfont3=\tdxs \scriptscriptfont3=\tdxss \csname td@additionals\endcsname \tdtt% select default font \noindent \ignorespaces#1\unskip \allowbreak \kern\tdgap \allowbreak \egroup \ignorespaces} \catcode`@=12 % reset catcode % This is motto.tex % it prints a "motto" consisting of text (#1) and author (#2) \def\motto#1#2{% \vskip\mottobeforeback \if M\lasttitle \vskip\mottobetween \fi \bgroup \petit \leftskip=\mottoindent \noindent\ignorespaces#1 \if!#2! \else \medskip \noindent\it\ignorespaces#2 \fi \vskip-\mottobeforeback \egroup \let\lasttitle=M \parindent=0pt \changeeverypar \global\let\lasttitle=M% \ignorespaces} % This is titrun2.tex % it makes running heads redefinable (if they are reported too long) \catcode`@=11 % use @ as a normal character \def\maintitlerunning#1{% \ch@ckheadlinewidth{}{#1}% measure headline \ifdim\wd0>\hsize% if it is to big \infuser{^^J\string\rightrunningtitle: Modified contribution title exceeds the headline,^^Jplease use a shorter form}% % display a warning and set headline to warning text \gdef\rightheadline{\hfil Contribution title suppressed due to excessive length\kern\headlineindent \llap{\folio}} \else%if it fits in define rightheadline \HEAD={\ignorespaces#1\unskip}% \gdef\rightheadline{\hfil\null\ignorespaces#1\unskip% glue and title \kern\headlineindent% space for page number and gap \llap{\folio}}% print pagenumber \ifx\quiet\undefined \infuser{^^J\string\rightrunningtitle: Right headline from \string\maintitle\space has been overridden }% inform user \fi \fi \ignorespaces} % \let\rightrunningtitle=\maintitlerunning % \catcode`@=\active % % \authorrunning makes @ an active character then calls the macro % to perform the changes: \A(u)th(o)rr(u)nn(i)ng#1 % This construction reads in the argument with the catcode of @ % already changed, otherwise "weird things happen" \def\authorrunning{% \bgroup % make changes lokal \catcode`@=\active \def@##1{}% disable affiliations \Athrrnnng} \def\Athrrnnng#1{% \chckhdlnwdth{}{#1}% measure headline \ifdim\wd0>\hsize% if it is to big \infuser{\string\leftrunningtitle: Name(s) of the author(s) too long, please use a shorter form }% display a warning % set headline to warning text \xdef\leftheadline{\rlap{\noexpand\folio}% print pagenumber \kern\headlineindent% space for page number and gap Names(s) of the author(s) suppressed due to excessive length\hfil}% \else% define headlines for left hand pages \def\newline{ }% disable \newline \def\fonote##1{}% and \fonote \xdef\leftheadline{\rlap{\noexpand\folio}% print pagenumber \kern\headlineindent% space for page number and gap \null\ignorespaces#1\unskip\hfil}% author names \ifx\quiet\undefined \infuser{\string\leftrunningtitle: Left headline from \string\author\space has been overridden }% inform user \fi \global\AUTHOR={\def@##1{}% \ignorespaces#1\unskip}% \fi \egroup % restore \newline and \fonote, finish group from \authorrunning \ignorespaces} % \let\leftrunningtitle=\authorrunning % \catcode`@=12 % reset catcode % This is item.tex % is defines a new \litem(item) with a left aligned argument % and redefines plain \item(item) % \catcode`@=11 % use @ as a normal character \def\litem#1{\item{#1\hfill}} % % \ch@ckitem(item)mark measures the width of the \item(item)s mark % and issues a warning if it will not fit in the space provided \def\ch@ckitemmark#1{\setbox0=\hbox{\enspace#1}% \ifdim\wd0>\itemindent \infuser{^^J\string\item: Your mark `\string#1' is too wide. }% \fi} \def\ch@ckitemitemmark#1{\setbox0=\hbox{\kern\itemindent\enspace#1}% \ifdim\wd0>\itemitemindent \infuser{^^J\string\itemitem: Your mark `\string#1' is too wide. }% \fi} % % \set@item@mark is used to produce the \item's mark \def\set@item@mark#1{\ch@ckitemmark{#1}% \hbox to\itemindent{#1\hss}\ignorespaces} % \set@itemitem@mark is used to produce the \itemitem's mark \def\set@itemitem@mark#1{\ch@ckitemitemmark{#1}% \dimen0=\itemitemindent \advance\dimen0 by-\itemindent \kern\itemindent\hbox to\dimen0{#1\hss}\ignorespaces} % % \setitem(item)indent takes its argument as the widest mark % of an \item(item) and changes the \item(item)indent accordingly \def\setitemindent#1{\setbox0=\hbox{\ignorespaces#1\unskip\enspace}% \itemindent=\wd0\relax \ifx\quiet\undefined \infuser{^^J\string\setitemindent: Mark width modified to hold ^^J`\string#1' plus an \string\enspace\space gap. }% \fi } \def\setitemitemindent#1{\setbox0=\hbox{\ignorespaces#1\unskip\enspace}% \itemitemindent=\wd0\relax \ifx\quiet\undefined \infuser{^^J\string\setitemitemindent: Mark width modified to hold ^^J`\string#1' plus an \string\enspace\space gap. }% \fi \advance\itemitemindent by\itemindent} % % \item is redefined to produce a right aligned mark with % a fixed gap, the hanging indentation has the width \itemindent. % \itemitem is redefined to produce a left aligned mark with indention % \itemindent, the hanging indentation has the width \itemitemindent. % If there are flush left equations (\mathhsize is defined) % that size is also corrected for use inside an \item(item). \ifx\undefined\mathhsize \def\item{\par\noindent \hangindent\itemindent\hangafter=1\relax \set@item@mark} % \def\itemitem{\par\noindent \hangindent\itemitemindent\hangafter=1\relax \set@itemitem@mark} \else \def\item{\par\noindent\advance\mathhsize by-\itemindent \hangindent\itemindent\hangafter=1\relax \everypar={\global\mathhsize=\hsize \global\advance\mathhsize by-\mathindent \global\everypar={}}\set@item@mark} % \def\itemitem{\par\noindent\advance\mathhsize by-\itemitemindent \hangindent\itemitemindent\hangafter=1\relax \everypar={\global\mathhsize=\hsize \global\advance\mathhsize by-\mathindent \global\everypar={}}\set@itemitem@mark} \fi \catcode`@=12 % at signs are no longer letters % This is fonote.tex % it defines an automatically numbered footnote with \fonote % and one with an user defined mark with \spfonote % \catcode`@=11 % use @ as a normal character % define footnoterule \def\footnoterule{\kern-3pt\hrule width\footnoterulewidth\kern2.6pt} % % define footnotecounter \newcount\footcount \footcount=0\relax % % a macro to step the counter \def\advftncnt{\global\advance\footcount by1\relax} % % default the mark of the footnote to a number \def\thefnm@rk{\the\footcount} % % do the footnotemark \def\footnotemark{\advftncnt % increment the counter $^{\thefnm@rk}$} % % The indention of the footnotes is half the standard \parindent, % if not specified otherwise \@llocundefineddimen\footnoteindent\default{0.5\stdparindent} % produce the footnote-text in small print \def\footnotetext#1{% \begingroup \petit % select small print \def\line##1{{\advance\hsize by-\footnoteindent \hbox to\hsize{##1}}}% \ifx\undefined\mathhsize \else \advance\mathhsize by-\footnoteindent % beware of indention \fi \def\textindent##1{\hangindent\footnoteindent \noindent \hbox to\footnoteindent{##1\hss}% \ignorespaces}% \vfootnote{$^{\thefnm@rk}$}{#1}% \endgroup \def\thefnm@rk{\the\footcount}} % restore the mark to number % % do a whole automatic numbered footnote \def\fonote{\footnotemark % print footnotemark \footnotetext} % produce the footnote using an user defined mark \def\spfonote#1{% \def\thefnm@rk{#1}% change the mark \global\advance\footcount by-1\relax % fix footnote counter \fonote} \catcode`@=12 % reset catcode % This is acknow2.tex % it prints the acknowledgement text in small print \def\acknow#1{\par \unvskip \vskip\tcbefore {\petit\noindent{\it Acknowledgements\/}. % \ignorespaces#1\par} \vskip\tcafter} % This is appendix.aa % it starts an appendix section without automatic numeration \def\appendix#1{\vskip\tabefore \vbox{\noindent{\bf Appendix #1}\vskip\taafter}% \global\eqnum=0\relax \nobreak\noindent\ignorespaces} % This is runhead2.tex % It sets up a headline different for left and right pages. Odd % numbered i.e. right hand pages show the text of \rightheadline, % even numbered i.e. left hand pages the one of \leftheadline % respectively. % \newtoks\AUTHOR % token registers to save name(s) of the author(s) \newtoks\HEAD % and contribution title % \headline={\petit\def\newline{ }\def\fonote#1{}% \ifodd\pageno \rightheadline \else \leftheadline \fi}% % set up default values \def\rightheadline{\hfil Missing contribution title \kern\headlineindent\llap{\folio}}% \def\leftheadline{\rlap{\folio}\kern\headlineindent Missing name(s) of the author(s)\hfil}% \HEAD={Contribution title not given}% \AUTHOR={Name(s) of the author(s) not given}% % \def\combinerunnheads{% \def\next{\chckhdlnwdth{}{\ignorespaces\the\AUTHOR \unskip: \the\HEAD}% measure headline \ifdim\wd0>\hsize % if it is to big leave the running head \else % redefine it to print both \AUTHOR and \HEAD \gdef\leftheadline{\rlap{\folio}\kern\headlineindent \ignorespaces \the\AUTHOR\unskip: \the\HEAD\hfil}% \fi}% \ifdim\pagetotal>\pagegoal % if the end of the input text occurs \ifodd\pageno % on an even numbered page with more \else % output already gathered than will fit \let\next=\relax % there, do not combine the running heads, \fi % otherwise that change would appear \fi % at the last but one page \next \let\next=\relax} % % \header is a switch that suppresses a running head if % it is set to "N" otherwise a headline is printed \let\header=Y% print a running head per default % This is typeset.tex % It defines macros to produce a hint for the reader as last text of % every article, and lists the special characters invented by the % author, if he uses \byebye as recommended. % \catcode`@=11 % use @ as a normal character \def\typeset{{\petit\noindent This \texttype{} was processed by the author using the \TeX{} macro package {\tt\SpringerMacroPackageNameA} from Springer-Verlag.\par}} % % \show@special lists the contents of the (user defined) control % sequence "specialn" where n is the lowercase roman numeral % representation of the counter \footcount and then steps that counter. \def\show@special{% \smallskip \noindent special character \#\number\footcount: \csname special\romannumeral\footcount\endcsname \advance\footcount by 1\relax \testspeci@l} % % \testspeci@l checks whether the control sequence "specialn" is % defined, causing to print it and recursing to n+1 if yes, % and aborting otherwise. \def\testspeci@l{% \expandafter \ifx \csname special\romannumeral\footcount\endcsname \relax \let\next\relax \else \let\next\show@special \fi \next} % % \byebye finishes up a text printig the "typeset" text, listing % user defined special signs (useful for phototypesetters), and % calling a macro \combinerunnheads (if defined at all) that will % change the running head on left hand sides. If \combinerunnheads % is undefined the \csname...\endcsname construction prevents TeX % from issuing an error message. \outer\def\byebye{\bigskip\bigskip\typeset \footcount=1\relax \testspeci@l \csname combinerunnheads\endcsname \vfill\supereject\end} % % \bye is redefined to include the "typeset" text at the end of the text \outer\def\bye{\bigskip\bigskip\typeset \vfill\supereject\end} \catcode`@=12 % at signs are no longer letters % This is refer.tex % it defines the macros needed to produce the bibliography % \catcode`@=11 % use @ as a normal character % the amount of indention in \refno and \refmark it is measured by \begref \newdimen\refindent % % the amount of indention in \ref \newdimen\refnormindent \refnormindent=1em % % A little trick taken from the TeXbook to have the "?" sign as % an active character of the same width as a digit to line up % decimal values \newdimen\d@gitwidth \setbox0=\hbox{\petit0} \d@gitwidth=\wd0 {\catcode`?=\active \gdef?{\kern\d@gitwidth}} % % \setupw@rning initializes the warning message that is issued if % the user does not supply the second argument of the begin of the % references. Then the indention cannot be calculated what makes % at least the first reference unusuable. \def\setupw@rning#1{\def\startrefid{\string#1}% \def\w@rning{\infuser{^^JSomething may be wrong with your references; ^^Jprobably you missed the second argument of \startrefid. }% \let\w@rning\relax}} % % \reftitlea has to point at the title macro that is actually be % called by \begref. It must be defined having two arguments % according to its use. This construction enables a change of the % title really used for the references by different macro packages. \let\reftitlea=\titlea % % \begref prints a \reftitlea with its first argument as text % the second parameter is the widest label inside the references % and starts small print \def\begref#1#2{% \bgroup \reftitlea{}{#1}% \petit \setupw@rning{\begref}% \setbox0=\hbox{#2\enspace}\refindent=\wd0\relax \let\w@rning\relax \ignorespaces} % % \ref produces ordinary entries, without any marks % successive lines are indented by \refnormindent \def\ref{\w@rning\goodbreak \hangindent\refnormindent\hangafter=1 \noindent\ignorespaces} % \refno produces entries with right-aligned marks in the margin % successive lines are indented by \refindent. "?" is made active % to have a sign of width of a digit as long as the mark is processed. \def\refno{\w@rning\goodbreak \catcode`?=\active \r@fno} \def\r@fno#1{% \setbox0=\hbox{#1\enspace}% \ifdim\refindent<\wd0\relax \infuser{^^J\string\refno: Reference `#1' is wider than you pretended in using \startrefid. }% \fi \hangindent\refindent\hangafter=1 \noindent \kern\refindent\llap{#1\unskip\enspace}% \catcode`?=12\relax \ignorespaces} % \refmark produces entries with left-aligned marks in the margin % successive lines are indented by \refindent. "?" is made active % to have a sign of width of a digit as long as the mark is processed. \def\refmark{\w@rning\goodbreak \catcode`?=\active \r@fmark} \def\r@fmark#1{% \setbox0=\hbox{#1\enspace}% \hangindent\refindent\hangafter=1 \noindent \ifdim\refindent<\wd0\relax \infuser{^^J\string\refmark: Reference `#1' is wider than you pretended in using \startrefid.}% \box0\relax \else \hbox to\refindent{#1\hss}% \fi \catcode`?=12\relax \ignorespaces} % \endref ends the bibliography and restores normal print size \def\endref{\goodbreak\endpet} \catcode`@=12 % at signs are no longer letters % This is refer2.tex % is extends the facilities of refer.tex to have % references for both at the end of the book: \begrefbook % as well as at the end of a chapter: \begrefchapter \catcode`@=11 % use @ as a normal character % \reftitleb has to point at the title macro that is actually be % called by \begrefchapter. It must be defined having two arguments % according to its use. This construction enables a change of the % title really used for the references by different macro packages. \let\reftitleb=\titleb \def\begrefbook#1#2{% \bgroup \tdbeforeback=-33pt\relax % corrective space of \nextchapter \setupw@rning{\begrefbook}% \reftitlea{}{#1}% \reftitlea is already defined in refer.tex \petit \setbox0=\hbox{#2\enspace}\refindent=\wd0\relax \let\w@rning\relax \ignorespaces} % % \nextchapter starts a new section of the references \def\nextchapter#1{\w@rning\titled{\ignorespaces#1}\vskip0.5true cm} % \def\begrefchapter#1#2{% \bgroup \setupw@rning{\begrefchapter}% \reftitleb{}{#1}% \petit \setbox0=\hbox{#2\enspace}\refindent=\wd0\relax \let\w@rning\relax \ignorespaces} \catcode`@=12 % at signs are no longer letters % This is placefig.tex % it defines macros for the automatic placement of figures % \catcode`@=11 % use @ as a normal character % % the switch \FIG says whether there are figures pending \let\FIG=N% per default no figures are waiting % % define maximal height of (a) figure(s) plus legend(s) \newdimen\maxfigheight \maxfigheight=\pageheight % at least 5 lines of text plus the space between figure and text % must fit beside the figure on the actual page \advance\maxfigheight by-5\baselineskip \advance\maxfigheight by-\figureafter % % box to stack figures in \newbox\figbox % % macro to concatenate figures in the stack % \box1 is expected to contain a \vbox with figure and legend \def\stackfigbox{% \if Y\FIG% test if already stacked figures exist \global\setbox\figbox=\vbox{\unvbox\figbox % \unvbox old figures \vskip\figurebetween % insert "interfigure \box1}% space" and add the new figure \else % this one is the first figure to be stacked \global\setbox\figbox=\vbox{\box1}% \global\let\FIG=Y% remember the existance of the figure \fi } % macro to test the available space on the page % if the figure does not fit in it is stacked % the macro expects box1 to contain the figure plus the legend \def\placefigure{% \dimen0=\ht1% measure height of figure plus legend \advance\dimen0by\dp1% add depth \ifdim\dimen0>\maxfigheight% if the figure is to large, % place it on an extra page \pageinsert \vbox{\vskip \topskip\hrule height\z@ \nobreak\vskip -\topskip\vskip3.7pt \box1}% \vss\endinsert \else% figure plus text lines can fit on a page \if Y\FIG% are there already stacked figures \stackfigbox% to maintain the sequence \else% there are no figures stacked \dimen0=\pagetotal% height of actual page \ifdim\dimen0=0pt \box1\vskip\figureafter \else \advance\dimen0by-6.5\normalbaselineskip % a figure should not \ifdim\dimen0<0pt % appear on top of page with few than 5 lines \stackfigbox % of text squeezed in \else \dimen0=\pagetotal \ifdim\dimen0<\pagegoal% is there space left on the actual page \advance\dimen0by\ht1% add height of figure \advance\dimen0by\dp1% add depth of figure \advance\dimen0by\figurebefore % provide space above figure \advance\dimen0by\figureafter % and below legend \ifdim\dimen0>\pagegoal % it does not fit on the actual page \stackfigbox \else \ifvmode\removelastskip\fi \vskip\figurebefore \box1 \vskip\figureafter \fi \else% there is already enough material for that page \ifvmode\removelastskip\fi \vskip\figurebefore \box1 \vskip\figureafter% the figure will % appear on the next one \fi \fi \fi \fi \fi \global\let\firstleg=Y% reset flag for figures with two legends % beneath each other } \catcode`@=12 % at signs are no longer letters % This is legend2.tex % it typesets figure legends % % flag for figures with two legends above each other \let\firstleg=Y % \def\figid{\bf Fig.\ts} % default figure legend identifier % \let\afterlegnum=\unskip % default command placed after a legend number % \def\figure#1#2{% \if Y\firstleg% is this the first legend of a figure \vskip\abovelegendskip \else \vskip\betweenlegendskip \fi \vbox{\petit \noindent{\figid\ignorespaces#1\afterlegnum\ }% \ignorespaces #2\par}% \global\let\firstleg=N%any following legend is to be set close to the last \ignorespaces} % This is figure.tex % it prepares the space and the legend of a figure % that is finally placed by placefigure % it is designed for use with eight point petit size % \catcode`@=11 % use @ as a normal character % switch to decide if the current is the first legend of a figure \let\firstleg=Y% % % macro to fill right hand side of text with glue (used by narrow legends) \def\r@gged{\rightskip=0pt plus 2em\relax} % % make interwodspace more flexible (used by narrow figure legends) %\def\d@hnung{\spaceskip=\fontdimen2\eightrm %\advance\spaceskip by 0 pt plus 2\fontdimen3\eightrm %\advance\spaceskip by 0 pt minus \fontdimen4\eightrm %\xspaceskip=\spaceskip} % % set a figure of height #1 cm (indicated by a vertical rule) % and its legend into \box1; then call \placefigure \def\begfig#1cm#2\endfig{% \par \setbox1=\vbox{\rahmen{#1}\relax %\setbox1=\vbox{\hbox{\vrule height#1true cm}% vertical rule of figureheight \offinterlineskip \ignorespaces#2}% this is the legend \placefigure}% place the figure % % % % set two figures besides each other with maximal height of #1 cm % (indicated by one vertical rule) and set it with the two legends % (#2 and #3) of width (\hsize-\figgap)/2 each into \box1; then % call \placefigure \def\begdoublefig#1cm#2#3\enddoublefig{% \dimen0=\hsize % \hsize of the figure legends \advance\dimen0 by-\figgap % is half the full hsize minus \divide\dimen0 by2\relax % a gap of width \figgap \begfig#1cm{%\d@hnung % narrow legends need flexible interword space \line{\vtop{\hsize=\dimen0\relax \ignorespaces#2\unskip}\hss % first legend \global\let\firstleg=Y\relax % cheat \figure macro \vtop{\hsize=\dimen0\relax \ignorespaces#3\unskip}}% \vskip0pt}\endfig} % % set two figures besides each other with maximal height of #1 cm % (indicated by one vertical rule) and set it with the two legends % (#3 and #4) of width #2cm and \hsize-\figgap-#2cm respectively % into \box1; then call \placefigure \def\begtwofig#1cm#2cm#3#4\endtwofig{% \dimen0=#2true cm \ifdim\dimen0<\begfigsidelimita \infuser{^^J\string\begtwofig: No sufficient room for the first legend; using \string\begdoublefig. }% \dimen0=\hsize % \hsize of the figure legends \advance\dimen0 by-\figgap % is half the full hsize minus \divide\dimen0 by2\relax % a gap of width \figgap \fi \dimen1=\hsize \advance\dimen1 by-\figgap \advance\dimen1 by-\dimen0 \ifdim\dimen1<\begfigsidelimita \infuser{^^J\string\begtwofig: No sufficient room for the second legend; using \string\begdoublefig. }% \dimen0=\hsize \advance\dimen0 by-\figgap \divide\dimen0 by2\relax \dimen1=\dimen0\relax \fi \ifdim\dimen0<\begfigsidelimitb \let\r@ggedleft=\r@gged \infuser{^^J\string\begtwofig: Room for first legend to narrow; legend will be set ragged. }% \else \let\r@ggedleft=\relax \fi \ifdim\dimen1<\begfigsidelimitb \let\r@ggedright=\r@gged \infuser{^^J\string\begtwofig: Room for second legend to narrow; legend will be set ragged. }% \else \let\r@ggedright=\relax \fi \begfig#1cm{%\d@hnung % narrow legends need flexible interword space \line{\vtop{\hsize=\dimen0\relax \r@ggedleft \ignorespaces#3\unskip}\hss % first legend \global\let\firstleg=Y\relax % cheat \figure macro \vtop{\hsize=\dimen1\relax \r@ggedright \ignorespaces#4\unskip}}% \vskip0pt}\endfig} % % set a figure of height #1 cm and width #2 cm (indicated by an % angle) and besides its legend #3 with the gap \figgap. If the % legend is higher than the figure itself or the resulting \hsize % for the legend is less than \begfigsidelimita \begfig is used % instead, if the \hsize is less than \begfigsidelimitb it is set % ragged and with more flexible interwordspace. Finally % \placefigure is called \def\begfigside#1cm#2cm#3\endfigside{% \par \bgroup \dimen0=\hsize \advance\dimen0 by-#2true cm \advance\dimen0 by-\figgap\relax \ifdim\dimen0<\begfigsidelimita \infuser{^^J\string\begfigside: No sufficient room for the legend; using \string\begfig. }% \begfig #1cm#3\endfig \else \setbox0=\vbox{\ifdim\dimen0<\begfigsidelimitb % \d@hnung \r@gged \fi \def\figure##1##2{\vbox{\hsize=\dimen0\relax \noindent\petit{\figid \ignorespaces##1\afterlegnum\ }% \ignorespaces##2\par}}% \ignorespaces#3\unskip}% \ifdim#1true cm<\ht0\relax \infuser{^^J\string\begfigside: Text of legend higher than figure; using \string\begfig. }% \begfig #1cm#3\endfig \else \ifdim\dimen0<\begfigsidelimitb \infuser{^^J\string\begfigside: Room for legend to narrow; legend will be set ragged. }% % \d@hnung \r@gged \fi \def\figure##1##2{\vbox{\hsize=\dimen0\relax \noindent\petit{\figid \ignorespaces##1\afterlegnum\ }% \ignorespaces##2\par}}% \setbox1=\vbox{\hbox{{\hsize=#2true cm\rahmen{#1}}% \kern\figgap \vbox{\ignorespaces#3\unskip}}}% \placefigure \fi \fi \egroup} % % \begfigsidetop is identical to \begfigside it simply alignes the % legend with the top of the figure \def\begfigsidetop#1cm#2cm#3\endfigsidetop{% \par \bgroup \dimen0=\hsize \advance\dimen0 by-#2true cm \advance\dimen0 by-\figgap\relax \ifdim\dimen0<\begfigsidelimita \infuser{^^J\string\begfigsidetop: No sufficient room for the legend; using \string\begfig. }% \begfig #1cm#3\endfig \else \setbox0=\vbox{\ifdim\dimen0<\begfigsidelimitb % \d@hnung \r@gged \fi \def\figure##1##2{\vbox{\hsize=\dimen0\relax \noindent\petit{\figid \ignorespaces##1\afterlegnum\ }% \ignorespaces##2\par}}% \ignorespaces#3\unskip}% \ifdim#1true cm<\ht0\relax \infuser{^^J\string\begfigsidetop: Text of legend higher than figure; using \string\begfig. }% \begfig #1cm#3\endfig \else \ifdim\dimen0<\begfigsidelimitb \infuser{^^J\string\begfigsidetop: Room for legend to narrow; legend will be set ragged. }% % \d@hnung \r@gged \fi \def\figure##1##2{\vbox{\hsize=\dimen0\relax \noindent\petit{\figid \ignorespaces##1\afterlegnum\ }% \ignorespaces##2\par}}% \setbox1=\vbox{\hbox{{\hsize=#2true cm\rahmen{#1}}% \kern\figgap \vbox to#1true cm{\ignorespaces#3\vss}}}% \placefigure \fi \fi \egroup} \catcode`@=12 % at signs are no longer letters % This is frames.tex % it defines macros to put text or math stuff inside a frame. % % define some new dimensions and set the defaults \newdimen\linethickness \linethickness=0.4pt \newdimen\hboxitspace \hboxitspace=5pt \newdimen\vboxitspace \vboxitspace=5pt \newdimen\hoch \newdimen\breit % % The argument of \wideframe is indented both right and left and % set inside a frame of width \hsize; additional paragraph % indentation is made at the beginning of the framed text. \def\wideframe#1{% \bigskip\the\everypar \vbox{\hrule height\linethickness % horizontal rule \belowdisplayshortskip=0pt % clear bottom space \hbox{\vrule width\linethickness% vertical rule \kern\stdparindent % indent contents of the frame \vbox{\advance\hsize by-2\linethickness % correct \hsize \advance\hsize by-2\stdparindent \ifx\undefined\mathhsize \else \advance\mathhsize by-2\linethickness \advance\mathhsize by-2\stdparindent \fi \kern\vboxitspace% space above text \centerline{\vbox{\noindent\strut#1\strut}}% set text \kern\vboxitspace}% space below text \kern\stdparindent % indent at the right hand side \vrule width\linethickness}% vertical rule \hrule height\linethickness}% horizontal rule \bigskip} % % the formula (#1) is boxed and \vcenter'd, the equation number (#2) is % processed normally \def\framedformula#1#2{% $$\vcenter{\hrule height\linethickness \hbox{\vrule width\linethickness \kern\hboxitspace \vbox{\kern\vboxitspace \hbox{$\displaystyle#1$}% \kern\vboxitspace}% \kern\hboxitspace \vrule width\linethickness}% \hrule height\linethickness}% \eqno#2$$} % % The argument of \boxit is set in a \hbox and surrounded by rules % with the \linethickness having distances of \hboxitspace and % \vboxitspace respectively \def\boxit#1{{% \setbox0=\hbox{#1}% \hoch=\dp0 \advance\hoch by\vboxitspace \advance\hoch by\linethickness \breit=\wd0 \advance\breit by2\hboxitspace \advance\breit by2\linethickness \lower\hoch \rlap{\vbox{\hrule height\linethickness \hbox to\breit{\advance\hoch by\ht0 \advance\hoch by-\linethickness \advance\hoch by\vboxitspace \vrule height\hoch width\linethickness \hfil \vrule height\hoch width\linethickness}% \hrule height\linethickness}}% \kern\linethickness \kern\hboxitspace \box0 \kern\hboxitspace \kern\linethickness}} % % Any preliminaries (#1) to the framed equation go into the first % argument, the formula (#2) is boxed, additional material % (punctuation) comes next inside a \hbox the equation number % (#4) is processed normally \def\framedeq#1#2#3#4{% $$\hbox{#1}% \boxit{$\displaystyle#2$}% \hbox{#3}% \eqno#4$$} % \rahmen draws a frame of height #1 true cm times \hsize \def\rahmen#1{\vbox{\hrule\line{\vrule\vbox to#1true cm{\vfil}\hfil\vrule}\vfil\hrule}} % This is ucgreek % the definition of versal greek characters \mathchardef\Gamma ="0100 \mathchardef\Delta ="0101 \mathchardef\Theta ="0102 \mathchardef\Lambda ="0103 \mathchardef\Xi ="0104 \mathchardef\Pi ="0105 \mathchardef\Sigma ="0106 \mathchardef\Upsilon="0107 \mathchardef\Phi ="0108 \mathchardef\Psi ="0109 \mathchardef\Omega ="010A % This is newenv.tex % it defines macros to build mini environments. % \catcode`@=11 % use @ as a normal character % First a submacro to handle the gap between the printed % name of the environment and the succeeding text \@llocundefineddimen\envirgap\default{0.5em} % The meaning of the parameters is: % 1 basename of the environment. If we use lemma that % results in the definition of three macros: % \beglemma (Beginning; one parameter) % \endlemma (End; no parameter) % \lemma (Contains the text of paramter #6) % 2 add that before all % 3 add that at the beginning of the first group (where % first argument is called) % 4 add that at the beginning of the second group (text) % 5 add that after all %---------------------------------------------------- % Sample call: % \newenvironment{lemma}{\nlni}{\bf}{\it}{\vskip\baselineskip}{Lemma} % % Evaluated beg-macro: #2{#3 #6\ }\bgroup #4 % \gdef\beglemma#1{\nlni % {\bf\lemma\if!#1!.\else\ % \ignorespaces#1\unskip\fi % \kern\envirgap}% % \bgroup\it\ignorespaces} % % Evaluated name-of-environment-macro: % \gdef\lemma{Lemma} % % Evaluated end-macro: \egroup #5 % \gdef\endlemma{\egroup\vskip\baselineskip} % \def\newenvironment#1#2#3#4#5#6% {\expandafter\gdef\csname beg#1\endcsname##1{#2% {#3\csname #1\endcsname\if!##1!.\else\ \ignorespaces ##1\unskip\fi\kern\envirgap}\bgroup #4% \ignorespaces }% \expandafter\gdef\csname #1\endcsname{#6}% \expandafter\gdef\csname end#1\endcsname{\endgraf\egroup#5}% } % same without an argument for the \beg... macro \def\newmark#1#2#3#4#5#6% {\expandafter\gdef\csname beg#1\endcsname{#2% {#3\csname #1\endcsname.\enspace}\bgroup #4% \ignorespaces }% \expandafter\gdef\csname #1\endcsname{#6}% \expandafter\gdef\csname end#1\endcsname{\endgraf\egroup#5}% } \def\nlni{% \par \if N\lasttitle \unvskip \bigskip \fi \noindent} % % shortcut for the user to define his environments \def\defenva#1#2#3#4{\newenvironment{#1}{\nlni}{#2}{#3}{\bigskip}{#4}} \def\defenvb#1#2#3#4{\newmark{#1}{\nlni}{#2}{#3}{\bigskip}{#4}} % The new environments should be defined using the macros above % in an extra file called e.g.: envir.package \catcode`@=12 % reset catcode % This is envir.m01 % It defines new environments like % Lemma, Proposition, Theorem, Corollary,... \newenvironment{lemma}{\nlni}{\bf}{\it}{\vskip\baselineskip}{Lemma} \newenvironment{proposition}{\nlni}{\bf}{\it}{\vskip\baselineskip}% {Proposition} \newenvironment{theorem}{\nlni}{\bf}{\it}{\vskip\baselineskip}{Theorem} \newenvironment{corollary}{\nlni}{\bf}{\it}{\vskip\baselineskip}{Corollary} \newenvironment{example}{\nlni}{\it}{\rm}{\vskip\baselineskip}{Example} \newenvironment{exercise}{\nlni}{\bf}{\rm}{\vskip\baselineskip}{Exercise} \newenvironment{problem}{\nlni}{\bf}{\rm}{\vskip\baselineskip}{Problem} \newenvironment{solution}{\nlni}{\bf}{\rm}{\vskip\baselineskip}{Solution} \newenvironment{definition}{\nlni}{\bf}{\rm}{\vskip\baselineskip}{Definition} \newenvironment{note}{\nlni}{\it}{\rm}{\vskip\baselineskip}{Note} \newenvironment{question}{\nlni}{\it}{\rm}{\vskip\baselineskip}{Question} \newenvironment{proof}{\nlni}{\it}{\rm}{\vskip\baselineskip}{Proof} \newmark{remark}{\nlni}{\it}{\rm}{\vskip\baselineskip}{Remark} % This is table.tex % is handles tables as floating objects % \catcode`@=11 % use @ as a normal character % \begtab is used for paste-in tables % argument #1 is the height of the table to be pasted in % argument #2 is the table heading, a \tabcap-construction % \def\begtab#1cm#2\endtab{\par \ifvoid\topins % construction to maintain \midinsert \else \topinsert \fi % the sequence of tables \vbox{\vskip\topskip\hrule height\z@ \nobreak\vskip -\topskip\vskip-9pt \petit#2 % \hrule width\tableseprulewidth % \kern#1true cm\relax \rahmen{#1}% % \hrule width\tableseprulewidth \vskip\tablesep}% \endinsert} \def\begtabempty#1cm#2\endtabempty{\begtab#1cm#2\endtab} % % \begtabfull has only one parameter: the whole table construction \def\begtabfull#1\endtabfull{\par \ifvoid\topins \midinsert % construction to maintain \else \topinsert \fi % the sequence of tables \vbox{\vskip\topskip\hrule height\z@ \nobreak\vskip -\topskip\vskip-9pt \petit#1 \vskip\tablesep}\endinsert} \catcode`@=12 % reset catcode % This is tabcap.tex % it produces the table caption % \def\tabid{\bf Table\ts} % default table caption identifier % \def\tabcap#1#2{% \vskip\tabcapbefore \vbox{\noindent {\tabid#1\unskip\ }% \ignorespaces #2\par \vskip\tabcapafter}% } % This is vectormp.tex % it redefines the plain TeX \vec command % to produce bold characters for mathematics packages % or bold italic characters for physics packages, % supplies a switching mechanism between them, % and defines a \tens command for tensors in sans serif typeface % % The following macros switch % normal (roman) text to bold face and % also the math fonts or % the math fonts to bold mathematics % small print shapes are: 9 - 6 - 5 pts \def\vecboldtext{\textfont0=\tenbf\scriptfont0=\sevenbf \scriptscriptfont0=\fivebf} \def\petitvecboldtext{\textfont0=\ninebf\scriptfont0=\sixbf \scriptscriptfont0=\fivebf}% % % Define a switching between mathematics and physics style \def\vectorstylemath{\infuser{^^JVectors are \ifx\Initexing\undefined now \fi represented in mathematics style as boldface characters.}% \def\vecboldmath{\textfont1=\tenbf\scriptfont1=\sevenbf \scriptscriptfont1=\fivebf}% \def\petitvecboldmath{\textfont1=\ninebf\scriptfont1=\sixbf \scriptscriptfont1=\fivebf}} % \def\vectorstylephys{\infuser{^^JVectors are \ifx\Initexing\undefined now \fi represented in physics style as boldface italics.}% \def\vecboldmath{\textfont1=\tenmib\scriptfont1=\sevenmib \scriptscriptfont1=\fivemib}% \def\petitvecboldmath{\textfont1=\ninemib\scriptfont1=\sixmib \scriptscriptfont1=\fivemib}} % % Set up the default (mathematics style) \vectorstylemath % \def\vecbold{\vecboldtext\vecboldmath} % % Redefine plain TeXs \vec command \def\vec#1{{\vecbold \ifmmode % supply all varieties of math sizes \mathchoice{\hbox{$\displaystyle#1$}}{\hbox{$\textstyle#1$}} {\hbox{$\scriptstyle#1$}}{\hbox{$\scriptscriptstyle#1$}} \else\hbox{$#1$}\fi}} % % Define a tensor \def\tens#1{\relax\ifmmode \mathchoice{\hbox{$\displaystyle\sans#1$}}{\hbox{$\textstyle\sans#1$}} {\hbox{$\scriptstyle\sans#1$}}{\hbox{$\scriptscriptstyle\sans#1$}}\else $\sans#1$\fi} % This is symbols.tex % If possible the characters are taken from the AmS fonts, otherwise - % or if not available there - the symbols are constructed % by overprinting some characters \ifx\msxfam\undefined \def\lesssim{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.5pt}\sim\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr \noalign{\vskip1.0pt}\sim\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr \noalign{\vskip0.5pt}\sim\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil \cr<\cr\noalign{\vskip0.5pt}\sim\cr}}}}} \def\gtrsim{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.5pt}\sim\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr \noalign{\vskip1.0pt}\sim\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr \noalign{\vskip0.5pt}\sim\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil \cr>\cr\noalign{\vskip0.5pt}\sim\cr}}}}} \def\leftrightarrows{\mathrel{\mathchoice {\vcenter{\offinterlineskip \halign{\hfil$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr \gets\cr\to\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr \gets\cr\to\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr \gets\cr\to\cr}}}}} \def\leqq{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.5pt}=\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr \noalign{\vskip1pt}=\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr \noalign{\vskip0.5pt}=\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr <\cr\noalign{\vskip0.5pt}=\cr}}}}} \def\geqq{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.5pt}=\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr \noalign{\vskip1pt}=\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr \noalign{\vskip0.5pt}=\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr >\cr\noalign{\vskip0.5pt}=\cr}}}}} \def\gtrless{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1.5pt}<\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr >\cr\noalign{\vskip-1.5pt}<\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr >\cr\noalign{\vskip-1pt}<\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr >\cr\noalign{\vskip-0.5pt}<\cr}}}}} \def\lessgtr{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr<\cr\noalign{\vskip-1.5pt}>\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr <\cr\noalign{\vskip-1.5pt}>\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr <\cr\noalign{\vskip-1pt}>\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr <\cr\noalign{\vskip-0.5pt}>\cr}}}}} \def\lessapprox{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign {\hfil$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.5pt}\approx\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr \noalign{\vskip1.0pt}\approx\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr \noalign{\vskip0.5pt}\approx\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr <\cr\noalign{\vskip0.5pt}\approx\cr}}}}} \def\gtrapprox{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign {\hfil$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.5pt}\approx\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr \noalign{\vskip1.0pt}\approx\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr \noalign{\vskip0.5pt}\approx\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr >\cr\noalign{\vskip0.5pt}\approx\cr}}}}} \def\bbbr{{\rm I\!R}} %reelle Zahlen \def\bbbn{{\rm I\!N}} %natuerliche Zahlen \def\bbbm{{\rm I\!M}} \def\bbbh{{\rm I\!H}} \def\bbbf{{\rm I\!F}} \def\bbbk{{\rm I\!K}} \def\bbbp{{\rm I\!P}} \def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} {\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} \def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} {\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} {\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} {\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}} \def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm Q$}\hbox{\raise 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} {\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} {\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}} {\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}} \def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} {\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} {\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} {\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}} \def\bbbs{{\mathchoice {\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} {\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} {\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}} {\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}} \def\bbbz{{\mathchoice {\hbox{$\sans\textstyle Z\kern-0.4em Z$}} {\hbox{$\sans\textstyle Z\kern-0.4em Z$}} {\hbox{$\sans\scriptstyle Z\kern-0.3em Z$}} {\hbox{$\sans\scriptscriptstyle Z\kern-0.2em Z$}}}} \def\square{\hbox{\rlap{$\sqcap$}$\sqcup$}} \else \ifx\fonttype\fontmt \def\bbbzero{{\spb 0}} \def\bbbone{{\spb 1}} \def\bbbtwo{{\spb 2}} \def\bbbc{{\bb C}} \def\bbbf{{\bb F}} \def\bbbh{{\bb H}} \def\bbbk{{\bb K}} \def\bbbm{{\bb M}} \def\bbbn{{\bb N}} \def\bbbp{{\bb P}} \def\bbbq{{\bb Q}} \def\bbbr{{\bb R}} \def\bbbs{{\bb S}} \def\bbbt{{\bb T}} \def\bbbz{{\bb Z}} \else \def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} {\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} \def\bbbc{{\Bbb C}} \def\bbbf{{\Bbb F}} \def\bbbh{{\Bbb H}} \def\bbbk{{\Bbb K}} \def\bbbm{{\Bbb M}} \def\bbbn{{\Bbb N}} \def\bbbp{{\Bbb P}} \def\bbbq{{\Bbb Q}} \def\bbbr{{\Bbb R}} \def\bbbs{{\Bbb S}} \def\bbbt{{\Bbb T}} \def\bbbz{{\Bbb Z}} \fi \fi \def\sun{\hbox{$\odot$}} \def\degr{\hbox{$^\circ$}} \def\arcmin{\hbox{$^\prime$}} \def\arcsec{\hbox{$^{\prime\prime}$}} \def\utw{\smash{\rlap{\lower5pt\hbox{$\sim$}}}} \def\udtw{\smash{\rlap{\lower6pt\hbox{$\approx$}}}} \def\fd{\hbox{$.\!\!^{\rm d}$}} \def\fh{\hbox{$.\!\!^{\rm h}$}} \def\fm{\hbox{$.\!\!^{\rm m}$}} \def\fs{\hbox{$.\!\!^{\rm s}$}} \def\fdg{\hbox{$.\!\!^\circ$}} \def\farcm{\hbox{$.\mkern-4mu^\prime$}} \def\farcs{\hbox{$.\!\!^{\prime\prime}$}} \def\fp{\hbox{$.\!\!^{\scriptscriptstyle\rm p}$}} \def\cor{\mathrel{\mathchoice {\hbox{$\widehat=$}}{\hbox{$\widehat=$}} {\hbox{$\scriptstyle\hat=$}} {\hbox{$\scriptscriptstyle\hat=$}}}} \def\sol{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr\sim\cr\noalign{\vskip-0.2mm}<\cr}}} {\vcenter{\offinterlineskip \halign{\hfil$\textstyle##$\hfil\cr\sim\cr<\cr}}} {\vcenter{\offinterlineskip \halign{\hfil$\scriptstyle##$\hfil\cr\sim\cr<\cr}}} {\vcenter{\offinterlineskip \halign{\hfil$\scriptscriptstyle##$\hfil\cr\sim\cr<\cr}}}}} \def\sog{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr\sim\cr\noalign{\vskip-0.2mm}>\cr}}} {\vcenter{\offinterlineskip \halign{\hfil$\textstyle##$\hfil\cr\sim\cr>\cr}}} {\vcenter{\offinterlineskip \halign{\hfil$\scriptstyle##$\hfil\cr\sim\cr>\cr}}} {\vcenter{\offinterlineskip \halign{\hfil$\scriptscriptstyle##$\hfil\cr\sim\cr>\cr}}}}} \def\lse{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.5pt}\simeq\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr \noalign{\vskip1pt}\simeq\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr \noalign{\vskip0.5pt}\simeq\cr}}} {\vcenter{\offinterlineskip \halign{\hfil$\scriptscriptstyle##$\hfil\cr<\cr \noalign{\vskip0.5pt}\simeq\cr}}}}} \def\gse{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil $\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.5pt}\simeq\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr \noalign{\vskip1.0pt}\simeq\cr}}} {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr \noalign{\vskip0.5pt}\simeq\cr}}} {\vcenter{\offinterlineskip \halign{\hfil$\scriptscriptstyle##$\hfil\cr>\cr \noalign{\vskip0.5pt}\simeq\cr}}}}} %\def\bbbe{{\mathchoice {\setbox0=\hbox{\smalletextfont e}\hbox{\raise %0.1\ht0\hbox to0pt{\kern0.4\wd0\vrule width0.3pt %height0.7\ht0\hss}\box0}} %{\setbox0=\hbox{\smalletextfont e}\hbox{\raise %0.1\ht0\hbox to0pt{\kern0.4\wd0\vrule width0.3pt %height0.7\ht0\hss}\box0}} %{\setbox0=\hbox{\smallescriptfont e}\hbox{\raise %0.1\ht0\hbox to0pt{\kern0.5\wd0\vrule width0.2pt %height0.7\ht0\hss}\box0}} %{\setbox0=\hbox{\smallescriptscriptfont e}\hbox{\raise %0.1\ht0\hbox to0pt{\kern0.4\wd0\vrule width0.2pt %height0.7\ht0\hss}\box0}}}} \def\diameter{{\ifmmode\oslash\else$\oslash$\fi}} \def\D{{\rm d}} \def\I{{\rm i}} \def\E{{\rm e}} % change symbols of plain TeX when using PostScript fonts \ifx\fontps\fonttype \catcode`@=11 % use @ as a normal character % PostScript version of the "not equal" sign \def\psc@ncel#1#2{\ooalign{\hidewidth$#1/$\hidewidth\crcr$#1#2$}} \def\neq{\mathrel{\mathpalette\psc@ncel=}} \let\ne=\neq % The PostScript version of \AA takes care of the right placement % of the circle accent contrary to TeX's original definition that % is fooled be wrong font dimensions {\catcode`p=12 \catcode`t=12 \csname expandafter\endcsname\gdef \csname getfactor\endcsname#1pt{#1}}% \def\kslant#1{\kern\expandafter\getfactor\the\fontdimen1#1\ht0}% \def\AA{{\ifdim\fontdimen1\font>0pt\dimen0=0.45ex \else\dimen0=0.35ex\fi \setbox0=\hbox{A}\ht0=0.5\ht0\relax \ooalign{\hfil\raise\dimen0 \hbox{\kslant\font\char'27}\hfil\crcr \hbox{A}}}} \def\promille{\leavevmode\hbox{\raise1ex% \hbox{$\scriptstyle0$}\kern-0.1em% \raise0.4ex\hbox{\rm\char"2F}\kern-0.1em\hbox{$\scriptstyle00$}}} \ifx\msxfam\undefined \def\hbar{{\mathchoice{\hbox{$\mkern2mu\displaystyle \mathchar'26\mkern-8muh$}} {\hbox{$\mkern2mu\textstyle \mathchar'26\mkern-8muh$}} {\hbox{$\mkern2mu\scriptstyle \mathchar'26\mkern-7muh$}} {\hbox{$\mkern2mu\scriptscriptstyle \mathchar'26\mkern-7muh$}}}} \fi \catcode`@=12 % at signs are no longer letters \fi % This is verbatim.tex % is defines a various macros for verbatim output % \chardef\other=12 % first some sorts of blanks \def\BlankIsSpace{\def\blankmeaning{\space}} \def\BlankIsControlSpace{\def\blankmeaning{\ }} \def\BlankIsVisible{\def\blankmeaning{{\tt\char32}}} \def\theblankmeaning{\blankmeaning} {\obeyspaces\global\let =\theblankmeaning} \def\obeyspaces{\BlankIsControlSpace\catcode`\ =\active} {\catcode`\`=\active \gdef`{\relax\lq}} % make all special characters printable, with backdoor \def\setupverbatim{\begingroup\catcode`\\=\other \catcode`\{=\other \catcode`\}=\other \catcode`\$=\other \catcode`\&=\other \catcode`\#=\other \catcode`\%=\other \catcode`\~=\other \catcode`\_=\other \catcode`\^=\other \catcode`\^^?=0\relax% ASCII 127 is the new backslash \catcode`\^^S=14\relax% ASCII 19 is the new comment character \obeyspaces\tt} % enable use of a verbatim delimiter \def\doverbatim#1{\def\next##1#1{##1\endgroup}\next} % \verb obeys spaces, that are printed invisible \def\verb{\setupverbatim\doverbatim} % \verbb obeys spaces, that are printed visible \def\verbb{\setupverbatim\BlankIsVisible\doverbatim} % define \endverbatim with "\" of \catcode 12 as delimiter for verbatim {\catcode`\^^?=0 ^^?catcode`^^?\=\other^^?obeylines% ^^?gdef^^?ttfinish#1\endverbatim{#1^^?endgraf^^?bigskip^^?endgroup}} % \begverbatim obeys spaces and lines and can be tailored % by its argument, if this is not defined \rm is used instead. \def\begverbatim#1{\par \if N\lasttitle \bigbreak \fi \setupverbatim \def\newline{\hfil\break\strut}% \let\par=\newline \parindent=0pt \leftskip=\stdparindent \rightskip=0pt plus1fil \advance\baselineskip by0pt plus0.1pt \hyphenchar\tentt=-1 \def\begrm{\bgroup\rm}% easy way to have \rm enclosure in \tt text \def\endrm{\egroup}% by typing \begrm roman text \endrm \ifx#1\undefined \infuser{^^J\string\begverbatim: Typeface `\string#1' undefined, using \string\tt. }% \let\next\relax \else \def\next{#1}% \fi \next \obeylines\ttfinish} % listing prints an external file in verbatim mode \def\listing#1{\par \if N\lasttitle \bigbreak \fi \setupverbatim \obeylines\input#1 \par\bigskip\endgroup} % This is startup.m03 % It defines additional macros and settings that are special for % the PMULT01 package or that have to be changed in the macros % already loaded. A control sequence \firsttodo is defined that is % called first after TeX starts up and is executed by \everyjob for % a format file use of the package. % \catcode`@=11 % use @ as a normal character % Various implicit calls of \maintitleo % (\maintitle with global headline change) \def\foreword{\maintitleo{Foreword}} \def\dedication{\maintitleo{Dedication}} \def\contents{\maintitleo{Contents}} \def\preface{\maintitleo{Preface}} \def\intro{\maintitleo{Introduction}} \let\indtitle=\maintitleo \let\contriblisttitle=\maintitleo % \let\st@rtonrightpage=\relax % allow start of new contribution on every % new page % %% hanging indentation of the titles according to their number %\def\set@title@text#1{\setbox0=\hbox{\ignorespaces#1\unskip % \enspace}% % \hangindent=\wd0\hangafter=1\box0\relax} % \setcontparms{}{10\enspace}{10.1\enspace}{\qquad}{100}% \let\conttitlea=\conttitleb \let\conttitleb=\conttitlec \conttitlebskipb=6pt % \def\SpringerMacroPackageNameA{PMULT01} \def\texttype{text} % \def\firsttodo{% \infuser{^^JThis is \SpringerMacroPackageNameA, the plain TeX macro package from Springer-Verlag,^^Jfor multi author books - \ifx\Initexing\undefined\else format file \fi \fonttype\space version 1.0^^J}% } % \everyjob={\firsttodo}% set the startup variable of TeX \firsttodo % (do things that are first to do :-) \catcode`@=12 % at signs are no longer letters % This is dodump.tex % it clears the first page possibly filled with junk material % adjusts the page counter and calls INITEX's \dump \pageno=0 \let\header=N% \leavevmode \vfil You just produced a \TeX{} format file for the \fonttype\space version of the {\tt\SpringerMacroPackageNameA} macro package from Springer-Verlag. \bigskip\timstamp \vfil \eject \let\Initexing=\undefined \dump