You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
10327 lines
324 KiB
10327 lines
324 KiB
%%
|
|
%% This is file `latex.ltx',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% ltdirchk.dtx (with options: `initex,2ekernel,dircheck')
|
|
%% ltplain.dtx (with options: `2ekernel')
|
|
%% ltvers.dtx (with options: `2ekernel')
|
|
%% ltdefns.dtx (with options: `2ekernel')
|
|
%% ltalloc.dtx (with options: `2ekernel')
|
|
%% ltcntrl.dtx (with options: `2ekernel')
|
|
%% lterror.dtx (with options: `2ekernel')
|
|
%% ltpar.dtx (with options: `2ekernel')
|
|
%% ltspace.dtx (with options: `2ekernel')
|
|
%% ltlogos.dtx (with options: `2ekernel')
|
|
%% ltfiles.dtx (with options: `2ekernel')
|
|
%% ltoutenc.dtx (with options: `2ekernel')
|
|
%% ltcounts.dtx (with options: `2ekernel')
|
|
%% ltlength.dtx (with options: `2ekernel')
|
|
%% ltfssbas.dtx (with options: `2ekernel')
|
|
%% ltfssaxes.dtx (with options: `2ekernel')
|
|
%% ltfsstrc.dtx (with options: `2ekernel')
|
|
%% ltfssdcl.dtx (with options: `compat,2ekernel')
|
|
%% ltfssini.dtx (with options: `compat,2ekernel')
|
|
%% ltfntcmd.dtx (with options: `2ekernel')
|
|
%% lttextcomp.dtx (with options: `2ekernel')
|
|
%% ltpageno.dtx (with options: `2ekernel')
|
|
%% ltxref.dtx (with options: `2ekernel')
|
|
%% ltmiscen.dtx (with options: `2ekernel')
|
|
%% ltmath.dtx (with options: `2ekernel')
|
|
%% ltlists.dtx (with options: `2ekernel')
|
|
%% ltboxes.dtx (with options: `2ekernel')
|
|
%% lttab.dtx (with options: `2ekernel')
|
|
%% ltpictur.dtx (with options: `2ekernel')
|
|
%% ltthm.dtx (with options: `2ekernel')
|
|
%% ltsect.dtx (with options: `2ekernel')
|
|
%% ltfloat.dtx (with options: `2ekernel')
|
|
%% ltidxglo.dtx (with options: `2ekernel')
|
|
%% ltbibl.dtx (with options: `2ekernel')
|
|
%% ltpage.dtx (with options: `2ekernel')
|
|
%% ltoutput.dtx (with options: `2ekernel')
|
|
%% ltclass.dtx (with options: `2ekernel,tracerollback')
|
|
%% ltluatex.dtx (with options: `2ekernel')
|
|
%% ltfinal.dtx (with options: `2ekernel')
|
|
%%
|
|
%% This is a generated file.
|
|
%%
|
|
%% The source is maintained by the LaTeX Project team and bug
|
|
%% reports for it can be opened at https://latex-project.org/bugs.html
|
|
%% (but please observe conditions on bug reports sent to that address!)
|
|
%%
|
|
%%
|
|
%% Copyright (C) 1993-2020
|
|
%% The LaTeX3 Project and any individual authors listed elsewhere
|
|
%% in this file.
|
|
%%
|
|
%% This file was generated from file(s) of the LaTeX base system.
|
|
%% --------------------------------------------------------------
|
|
%%
|
|
%% It may be distributed and/or modified under the
|
|
%% conditions of the LaTeX Project Public License, either version 1.3c
|
|
%% of this license or (at your option) any later version.
|
|
%% The latest version of this license is in
|
|
%% https://www.latex-project.org/lppl.txt
|
|
%% and version 1.3c or later is part of all distributions of LaTeX
|
|
%% version 2008 or later.
|
|
%%
|
|
%% This file has the LPPL maintenance status "maintained".
|
|
%%
|
|
%% This file may only be distributed together with a copy of the LaTeX
|
|
%% base system. You may however distribute the LaTeX base system without
|
|
%% such generated files.
|
|
%%
|
|
%% The list of all files belonging to the LaTeX base distribution is
|
|
%% given in the file `manifest.txt'. See also `legal.txt' for additional
|
|
%% information.
|
|
%%
|
|
%% The list of derived (unpacked) files belonging to the distribution
|
|
%% and covered by LPPL is defined by the unpacking scripts (with
|
|
%% extension .ins) which are part of the distribution.
|
|
%%% From File: ltdirchk.dtx
|
|
\ifnum\catcode`\{=1
|
|
\errmessage
|
|
{LaTeX must be made using an initex with no format preloaded}
|
|
\fi
|
|
\catcode`\{=1
|
|
\catcode`\}=2
|
|
\ifx\directlua\undefined
|
|
\else
|
|
\ifx\luatexversion\undefined
|
|
\directlua{tex.enableprimitives("",%
|
|
tex.extraprimitives('etex', 'pdftex', 'umath'))}
|
|
\directlua{tex.enableprimitives("",%
|
|
tex.extraprimitives("omega", "aleph", "luatex"))}
|
|
\fi
|
|
\fi
|
|
\ifx\eTeXversion\undefined
|
|
\errmessage
|
|
{LaTeX requires e-TeX}
|
|
\expandafter\endinput
|
|
\fi
|
|
\catcode`\#=6
|
|
\catcode`\^=7
|
|
\chardef\active=13
|
|
\catcode`\@=11
|
|
\countdef\count@=255
|
|
\let\bgroup={ \let\egroup=}
|
|
\ifx\@@input\@undefined\let\@@input\input\fi
|
|
\ifx\@@end\@undefined\let\@@end\end\fi
|
|
\chardef\@inputcheck0
|
|
\chardef\sixt@@n=16
|
|
\newlinechar`\^^J
|
|
\def\typeout{\immediate\write17}
|
|
\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
|
|
\do\#\do\^\do\_\do\%\do\~}
|
|
\def\@makeother#1{\catcode`#1=12\relax}
|
|
\def\space{ }
|
|
\def\@tempswafalse{\let\if@tempswa\iffalse}
|
|
\def\@tempswatrue{\let\if@tempswa\iftrue}
|
|
\let\if@tempswa\iffalse
|
|
\def\loop#1\repeat{\def\iterate{#1\relax\expandafter\iterate\fi}%
|
|
\iterate \let\iterate\relax}
|
|
\let\repeat\fi
|
|
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
|
|
\long\def\@firstoftwo#1#2{#1}
|
|
\long\def\@secondoftwo#1#2{#2}
|
|
\def\ProvidesFile#1{%
|
|
\begingroup
|
|
\catcode`\ 10 %
|
|
\ifnum \endlinechar<256 %
|
|
\ifnum \endlinechar>\m@ne
|
|
\catcode\endlinechar 10 %
|
|
\fi
|
|
\fi
|
|
\@makeother\/%
|
|
\@ifnextchar[{\@providesfile{#1}}{\@providesfile{#1}[]}}
|
|
\def\@providesfile#1[#2]{%
|
|
\wlog{File: #1 #2}%
|
|
\@addtofilelist{ #2}%
|
|
\endgroup}
|
|
\long\def\@addtofilelist#1{}
|
|
\def\@empty{}
|
|
\catcode`\%=12
|
|
\def\@percentchar{%}
|
|
\catcode`\%=14
|
|
\let\@currdir\@undefined
|
|
\let\input@path\@undefined
|
|
\let\filename@parse\@undefined
|
|
\def\strip@prefix#1>{}
|
|
\input texsys.cfg
|
|
\begingroup
|
|
\count@\time
|
|
\divide\count@ 60
|
|
\count2=-\count@
|
|
\multiply\count2 60
|
|
\advance\count2 \time
|
|
\edef\today{%
|
|
\the\year/\two@digits{\the\month}/\two@digits{\the\day}:%
|
|
\two@digits{\the\count@}:\two@digits{\the\count2}}
|
|
\immediate\openout15=texsys.aux
|
|
\immediate\write15{\today^^J}
|
|
\immediate\closeout15 %
|
|
\def\IfFileExists#1#2#3{%
|
|
\openin\@inputcheck#1 %
|
|
\ifeof\@inputcheck
|
|
#3\relax
|
|
\else
|
|
\read\@inputcheck to \reserved@a
|
|
\ifx\reserved@a\today
|
|
\typeout{#1 found}#2\relax
|
|
\else
|
|
\typeout{BAD: old file \reserved@a (should be \today)}%
|
|
#3\relax
|
|
\fi
|
|
\fi
|
|
\closein\@inputcheck}
|
|
\endlinechar=-1
|
|
\ifx\@currdir\@undefined
|
|
\IfFileExists{./texsys.aux}{\gdef\@currdir{./}}%
|
|
{\IfFileExists{[]texsys.aux}{\gdef\@currdir{[]}}%
|
|
{\IfFileExists{:texsys.aux}{\gdef\@currdir{:}}{}}}
|
|
\ifx\@currdir\@undefined
|
|
\global\let\@currdir\@empty
|
|
\typeout{^^J^^J%
|
|
!! No syntax for the current directory could be found^^J%
|
|
}%
|
|
\fi
|
|
\else
|
|
\IfFileExists{\@currdir texsys.aux}{}{%
|
|
\edef\reserved@a{\errhelp{%
|
|
texsys.cfg specifies the current directory syntax to be^^J%
|
|
\meaning\@currdir^^J%
|
|
but this does not work on this system.^^J%
|
|
Remove texsys.cfg and restart.}}\reserved@a
|
|
\errmessage{Bad texsys.cfg file: \noexpand\@currdir}\@@end}
|
|
\fi
|
|
\immediate\closeout15 %
|
|
\endgroup
|
|
\typeout{^^J^^J%
|
|
\noexpand\@currdir set to:
|
|
\expandafter\strip@prefix\meaning\@currdir.^^J%
|
|
}
|
|
\typeout{^^J%
|
|
Assuming \noexpand\openin and \noexpand\input^^J%
|
|
\ifx\input@path\@undefined
|
|
have the same search path.^^J%
|
|
\else
|
|
have different search paths.^^J%
|
|
LaTeX will use the path specified by \noexpand\input@path:^^J%
|
|
\fi
|
|
}
|
|
\ifx\filename@parse\@undefined
|
|
\def\reserved@a{./}\ifx\@currdir\reserved@a
|
|
\typeout{^^JDefining UNIX/DOS style filename parser.^^J}
|
|
\def\filename@parse#1{%
|
|
\let\filename@area\@empty
|
|
\expandafter\filename@path#1/\\}
|
|
\def\filename@path#1/#2\\{%
|
|
\ifx\\#2\\%
|
|
\def\reserved@a{\filename@simple#1.\\}%
|
|
\else
|
|
\edef\filename@area{\filename@area#1/}%
|
|
\def\reserved@a{\filename@path#2\\}%
|
|
\fi
|
|
\reserved@a}
|
|
\else\def\reserved@a{[]}\ifx\@currdir\reserved@a
|
|
\typeout{^^JDefining VMS style filename parser.^^J}
|
|
\def\filename@parse#1{%
|
|
\let\filename@area\@empty
|
|
\expandafter\filename@path#1]\\}
|
|
\def\filename@path#1]#2\\{%
|
|
\ifx\\#2\\%
|
|
\def\reserved@a{\filename@simple#1.\\}%
|
|
\else
|
|
\edef\filename@area{\filename@area#1]}%
|
|
\def\reserved@a{\filename@path#2\\}%
|
|
\fi
|
|
\reserved@a}
|
|
\else\def\reserved@a{:}\ifx\@currdir\reserved@a
|
|
\typeout{^^JDefining Mac style filename parser.^^J}
|
|
\def\filename@parse#1{%
|
|
\let\filename@area\@empty
|
|
\expandafter\filename@path#1:\\}
|
|
\def\filename@path#1:#2\\{%
|
|
\ifx\\#2\\%
|
|
\def\reserved@a{\filename@simple#1.\\}%
|
|
\else
|
|
\edef\filename@area{\filename@area#1:}%
|
|
\def\reserved@a{\filename@path#2\\}%
|
|
\fi
|
|
\reserved@a}
|
|
\else
|
|
\typeout{^^JDefining generic filename parser.^^J}
|
|
\def\filename@parse#1{%
|
|
\let\filename@area\@empty
|
|
\expandafter\filename@simple#1.\\}
|
|
\fi\fi\fi
|
|
\def\filename@simple#1.#2\\{%
|
|
\ifx\\#2\\%
|
|
\let\filename@ext\relax
|
|
\edef\filename@base{#1}%
|
|
\else
|
|
\filename@dots{#1}#2\\%
|
|
\fi}
|
|
\def\filename@dots#1#2.#3\\{%
|
|
\ifx\\#3\\%
|
|
\def\filename@ext{#2}%
|
|
\edef\filename@base{#1}%
|
|
\else
|
|
\filename@dots{#1.#2}#3\\%
|
|
\fi}
|
|
\def\filename@dot#1.\\{#1}
|
|
\else
|
|
\typeout{^^J^^J%
|
|
\noexpand\filename@parse was defined in texsys.cfg:^^J%
|
|
\expandafter\strip@prefix\meaning\filename@parse.^^J%
|
|
}
|
|
\fi
|
|
\ifx\@TeXversion\@undefined
|
|
\ifx\@undefined\inputlineno
|
|
\def\@TeXversion{2}
|
|
\else
|
|
{\catcode`\^^J=\active
|
|
\def\reserved@a#1#2\@@{\if#1\string^3\fi}
|
|
\edef\reserved@a{\expandafter\reserved@a\string^^J\@@}
|
|
\ifx\reserved@a\@empty\else\gdef\@TeXversion{3}\fi}
|
|
\fi
|
|
\fi
|
|
%%% From File: ltplain.dtx
|
|
\catcode`\{=1 % left brace is begin-group character
|
|
\catcode`\}=2 % right brace is end-group character
|
|
\catcode`\$=3 % dollar sign is math shift
|
|
\catcode`\&=4 % ampersand is alignment tab
|
|
\catcode`\#=6 % hash mark is macro parameter character
|
|
\catcode`\^=7 % circumflex and uparrow are for superscripts
|
|
\catcode`\_=8 % underline and downarrow are for subscripts
|
|
\catcode`\^^I=10 % ascii tab is a blank space
|
|
\chardef\active=13 \catcode`\~=\active % tilde is active
|
|
\catcode`\^^L=\active \def^^L{\par}% ascii form-feed is \par
|
|
\message{catcodes,}
|
|
\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
|
|
\do\#\do\^\do\_\do\%\do\~}
|
|
\catcode`@=11
|
|
\chardef\@ne=1
|
|
\chardef\tw@=2
|
|
\chardef\thr@@=3
|
|
\chardef\sixt@@n=16
|
|
\chardef\@cclv=255
|
|
\mathchardef\@cclvi=256
|
|
\mathchardef\@m=1000
|
|
\mathchardef\@M=10000
|
|
\mathchardef\@MM=20000
|
|
\message{registers,}
|
|
\count10=22 % allocates \count registers 23, 24, ...
|
|
\count11=9 % allocates \dimen registers 10, 11, ...
|
|
\count12=9 % allocates \skip registers 10, 11, ...
|
|
\count13=9 % allocates \muskip registers 10, 11, ...
|
|
\count14=9 % allocates \box registers 10, 11, ...
|
|
\count15=9 % allocates \toks registers 10, 11, ...
|
|
\count16=-1 % allocates input streams 0, 1, ...
|
|
\count17=-1 % allocates output streams 0, 1, ...
|
|
\count18=3 % allocates math families 4, 5, ...
|
|
\count19=0 % allocates \language codes 1, 2, ...
|
|
\count20=255 % allocates insertions 254, 253, ...
|
|
\countdef\insc@unt=20
|
|
\countdef\allocationnumber=21
|
|
\countdef\m@ne=22 \m@ne=-1
|
|
\def\wlog{\immediate\write\m@ne}
|
|
\countdef\count@=255
|
|
\dimendef\dimen@=0
|
|
\dimendef\dimen@i=1 % global only
|
|
\dimendef\dimen@ii=2
|
|
\skipdef\skip@=0
|
|
\toksdef\toks@=0
|
|
\def\newcount {\e@alloc\count \countdef {\count10}\insc@unt\float@count}
|
|
\def\newdimen {\e@alloc\dimen \dimendef {\count11}\insc@unt\float@count}
|
|
\def\newskip {\e@alloc\skip \skipdef {\count12}\insc@unt\float@count}
|
|
\def\newmuskip
|
|
{\e@alloc\muskip\muskipdef{\count13}\m@ne\e@alloc@top}
|
|
\def\newbox {\e@alloc\box
|
|
{\ifnum\allocationnumber<\@cclvi
|
|
\expandafter\chardef
|
|
\else
|
|
\expandafter\e@alloc@chardef
|
|
\fi}
|
|
{\count14}\insc@unt\float@count}
|
|
\def\newtoks {\e@alloc\toks \toksdef{\count15}\m@ne\e@alloc@top}
|
|
\def\newread {\e@alloc\read \chardef{\count16}\m@ne\sixt@@n}
|
|
\ifx\directlua\@undefined
|
|
\def\newwrite {\e@alloc\write \chardef{\count17}\m@ne\sixt@@n}
|
|
\else
|
|
\def\newwrite {\e@alloc\write
|
|
{\ifnum\allocationnumber=18
|
|
\advance\count17\@ne
|
|
\allocationnumber\count17 %
|
|
\fi
|
|
\global\chardef}%
|
|
{\count17}%
|
|
\m@ne
|
|
{128}}
|
|
\fi
|
|
\def\new@mathgroup
|
|
{\e@alloc\mathgroup\chardef{\count18}\m@ne\e@mathgroup@top}
|
|
\let\newfam\new@mathgroup
|
|
\ifx\directlua\@undefined
|
|
\def\newlanguage {\e@alloc\language \chardef{\count19}\m@ne\@cclvi}
|
|
\else
|
|
\def\newlanguage {\e@alloc\language \chardef{\count19}\m@ne{16384}}
|
|
\fi
|
|
\ifx\directlua\@undefined
|
|
\ifx\widowpenalties\@undefined
|
|
\mathchardef\e@alloc@top=255
|
|
\let\e@alloc@chardef\chardef
|
|
\else
|
|
\mathchardef\e@alloc@top=32767
|
|
\let\e@alloc@chardef\mathchardef
|
|
\fi
|
|
\else
|
|
\chardef\e@alloc@top=65535
|
|
\let\e@alloc@chardef\chardef
|
|
\fi
|
|
\ifx\Umathcode\@undefined
|
|
\chardef\e@mathgroup@top=16
|
|
\else
|
|
\chardef\e@mathgroup@top=256
|
|
\fi
|
|
\def\e@alloc#1#2#3#4#5#6{%
|
|
\global\advance#3\@ne
|
|
\e@ch@ck{#3}{#4}{#5}#1%
|
|
\allocationnumber#3\relax
|
|
\global#2#6\allocationnumber
|
|
\wlog{\string#6=\string#1\the\allocationnumber}}%
|
|
\gdef\e@ch@ck#1#2#3#4{%
|
|
\ifnum#1<#2\else
|
|
\ifnum#1=#2\relax
|
|
\global#1\@cclvi
|
|
\ifx\count#4\global\advance#1 10 \fi
|
|
\fi
|
|
\ifnum#1<#3\relax
|
|
\else
|
|
\errmessage{No room for a new \string#4}%
|
|
\fi
|
|
\fi}%
|
|
\let\float@count\e@alloc@top
|
|
\ifx\numexpr\@undefined
|
|
\def\extrafloats#1{%
|
|
\count@#1\relax
|
|
\ifnum\count@>\z@
|
|
\newinsert\reserved@a
|
|
\global\expandafter\chardef
|
|
\csname bx@\the\allocationnumber\endcsname\allocationnumber
|
|
\@cons\@freelist{\csname bx@\the\allocationnumber\endcsname}%
|
|
\advance\count@\m@ne
|
|
\expandafter\extrafloats
|
|
\expandafter\count@
|
|
\fi
|
|
}%
|
|
\else
|
|
\def\extrafloats#1{%
|
|
\ifnum#1>\z@
|
|
\count@\numexpr\float@count-1\relax
|
|
\ch@ck0\count@\count
|
|
\ch@ck1\count@\dimen
|
|
\ch@ck2\count@\skip
|
|
\ch@ck4\count@\box
|
|
\global\e@alloc@chardef\float@count\count@
|
|
\global\expandafter\e@alloc@chardef
|
|
\csname bx@\the\float@count\endcsname\float@count
|
|
\@cons\@freelist{\csname bx@\the\float@count\endcsname}%
|
|
\expandafter
|
|
\extrafloats\expandafter{\numexpr#1-1\relax}%
|
|
\fi}%
|
|
\fi
|
|
\def\alloc@#1#2#3#4#5{\global\advance\count1#1\@ne
|
|
\ch@ck#1#4#2%
|
|
\allocationnumber\count1#1%
|
|
\global#3#5\allocationnumber
|
|
\wlog{\string#5=\string#2\the\allocationnumber}}
|
|
\ifx\numexpr\@undefined
|
|
\def\newinsert#1{\global\advance\insc@unt \m@ne
|
|
\ch@ck0\insc@unt\count
|
|
\ch@ck1\insc@unt\dimen
|
|
\ch@ck2\insc@unt\skip
|
|
\ch@ck4\insc@unt\box
|
|
\allocationnumber\insc@unt
|
|
\global\chardef#1\allocationnumber
|
|
\wlog{\string#1=\string\insert\the\allocationnumber}}
|
|
\else
|
|
\ifx\directlua\@undefined
|
|
\chardef\e@insert@top255
|
|
\else
|
|
\chardef\e@insert@top\e@alloc@top
|
|
\fi
|
|
\def\newinsert#1{%
|
|
\@tempswafalse
|
|
\global\advance\insc@unt\m@ne
|
|
\ifnum\count10<\insc@unt
|
|
\ifnum\count11<\insc@unt
|
|
\ifnum\count12<\insc@unt
|
|
\ifnum\count14<\insc@unt
|
|
\@tempswatrue
|
|
\fi\fi\fi\fi
|
|
\if@tempswa
|
|
\allocationnumber\insc@unt
|
|
\else
|
|
\global\advance\insc@unt\@ne
|
|
\extrafloats\@ne
|
|
\@next\@currbox\@freelist
|
|
{\ifnum\@currbox<\e@insert@top
|
|
\allocationnumber\@currbox
|
|
\else
|
|
\ch@ck0\m@ne\insert
|
|
\fi}%
|
|
{\ch@ck0\m@ne\insert}%
|
|
\fi
|
|
\global\chardef#1\allocationnumber
|
|
\wlog{\string#1=\string\insert\the\allocationnumber}%
|
|
}
|
|
\fi
|
|
\gdef\ch@ck#1#2#3{%
|
|
\ifnum\count1#1<#2\else
|
|
\errmessage{No room for a new #3}%
|
|
\fi}
|
|
\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
|
|
\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal <dimen>
|
|
\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow
|
|
\newdimen\p@ \p@=1pt % this saves macro space and time
|
|
\newdimen\z@ \z@=0pt % can be used both for 0pt and 0
|
|
\newskip\z@skip \z@skip=0pt plus0pt minus0pt
|
|
\newbox\voidb@x % permanently void box register
|
|
\message{parameters,}
|
|
\pretolerance=100
|
|
\tolerance=200 % INITEX sets this to 10000
|
|
\hbadness=1000
|
|
\vbadness=1000
|
|
\linepenalty=10
|
|
\hyphenpenalty=50
|
|
\exhyphenpenalty=50
|
|
\binoppenalty=700
|
|
\relpenalty=500
|
|
\clubpenalty=150
|
|
\widowpenalty=150
|
|
\displaywidowpenalty=50
|
|
\brokenpenalty=100
|
|
\predisplaypenalty=10000
|
|
\doublehyphendemerits=10000
|
|
\finalhyphendemerits=5000
|
|
\adjdemerits=10000
|
|
\tracinglostchars=1
|
|
\uchyph=1
|
|
\defaulthyphenchar=`\-
|
|
\defaultskewchar=-1
|
|
\delimiterfactor=901
|
|
\showboxbreadth=-1
|
|
\showboxdepth=-1
|
|
\errorcontextlines=-1
|
|
\hfuzz=0.1pt
|
|
\vfuzz=0.1pt
|
|
\overfullrule=5pt
|
|
\maxdepth=4pt
|
|
\splitmaxdepth=\maxdimen
|
|
\boxmaxdepth=\maxdimen
|
|
\delimitershortfall=5pt
|
|
\nulldelimiterspace=1.2pt
|
|
\scriptspace=0.5pt
|
|
\parindent=20pt
|
|
\parskip=0pt plus 1pt
|
|
\abovedisplayskip=12pt plus 3pt minus 9pt
|
|
\abovedisplayshortskip=0pt plus 3pt
|
|
\belowdisplayskip=12pt plus 3pt minus 9pt
|
|
\belowdisplayshortskip=7pt plus 3pt minus 4pt
|
|
\topskip=10pt
|
|
\splittopskip=10pt
|
|
\parfillskip=0pt plus 1fil
|
|
\newskip\normalbaselineskip \normalbaselineskip=12pt
|
|
\newskip\normallineskip \normallineskip=1pt
|
|
\newdimen\normallineskiplimit \normallineskiplimit=0pt
|
|
\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100
|
|
\def\magstephalf{1095 }
|
|
\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or
|
|
2074\or 2488\fi\relax}
|
|
\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m
|
|
\sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m}
|
|
\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000%
|
|
\sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 }
|
|
\def\normalbaselines{\lineskip\normallineskip
|
|
\baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit}
|
|
\def\^^M{\ } % control <return> = control <space>
|
|
\let\^^I\^^M % same for <tab>
|
|
\def\lq{`}
|
|
\def\rq{'}
|
|
\def\lbrack{[}
|
|
\def\rbrack{]}
|
|
\def \aa {\r a}
|
|
\def \AA {\r A}
|
|
\let\endgraf=\par
|
|
\let\endline=\cr
|
|
\def\space{ }
|
|
\let\empty\@empty
|
|
\def\null{\hbox{}}
|
|
\let\bgroup={
|
|
\let\egroup=}
|
|
{\catcode`\^^M=\active % these lines must end with %
|
|
\gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
|
|
\global\let^^M\par} % this is in case ^^M appears in a \write
|
|
\def\obeyspaces{\catcode`\ \active}
|
|
{\obeyspaces\global\let =\space}
|
|
\long\def \loop #1\repeat{%
|
|
\def\iterate{#1\relax % Extra \relax
|
|
\expandafter\iterate\fi
|
|
}%
|
|
\iterate
|
|
\let\iterate\relax
|
|
}
|
|
\let\repeat=\fi
|
|
\def\nointerlineskip{\prevdepth-\@m\p@}
|
|
\def\offinterlineskip{\baselineskip-\@m\p@
|
|
\lineskip\z@ \lineskiplimit\maxdimen}
|
|
\def\vglue{\afterassignment\vgl@\skip@=}
|
|
\def\vgl@{\par \dimen@\prevdepth \hrule \@height\z@
|
|
\nobreak\vskip\skip@ \prevdepth\dimen@}
|
|
\def\hglue{\afterassignment\hgl@\skip@=}
|
|
\def\hgl@{\leavevmode \count@\spacefactor \vrule \@width\z@
|
|
\nobreak\hskip\skip@ \spacefactor\count@}
|
|
\def\slash{/\penalty\exhyphenpenalty}
|
|
\def\break{\penalty-\@M}
|
|
\def\nobreak{\penalty \@M}
|
|
\def\allowbreak{\penalty \z@}
|
|
\def\filbreak{\par\vfil\penalty-200\vfilneg}
|
|
\def\goodbreak{\par\penalty-500 }
|
|
\def\eject{\par\break}
|
|
\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi}
|
|
\def\smallbreak{\par\ifdim\lastskip<\smallskipamount
|
|
\removelastskip\penalty-50\smallskip\fi}
|
|
\def\medbreak{\par\ifdim\lastskip<\medskipamount
|
|
\removelastskip\penalty-100\medskip\fi}
|
|
\def\bigbreak{\par\ifdim\lastskip<\bigskipamount
|
|
\removelastskip\penalty-200\bigskip\fi}
|
|
\def\m@th{\mathsurround\z@}
|
|
\def\underbar#1{\underline{\sbox\tw@{#1}\dp\tw@\z@\box\tw@}}
|
|
\newbox\strutbox
|
|
\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
|
|
\def\hidewidth{\hskip\hideskip}
|
|
\def\narrower{%
|
|
\advance\leftskip\parindent
|
|
\advance\rightskip\parindent}
|
|
\chardef\%=`\%
|
|
\chardef\&=`\&
|
|
\chardef\#=`\#
|
|
\def\leavevmode{\unhbox\voidb@x}
|
|
\def\mathhexbox#1#2#3{\mbox{$\m@th \mathchar"#1#2#3$}}
|
|
\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign
|
|
\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex%
|
|
\ialign{##\crcr#1\crcr}}}
|
|
\def\o@lign{\lineskiplimit\z@ \oalign}
|
|
\def\ooalign{\lineskiplimit-\maxdimen \oalign}
|
|
\def\sh@ft#1{\dimen@.00#1ex\multiply\dimen@\fontdimen1\font
|
|
\kern-.0156\dimen@} % compensate for slant in lowered accents
|
|
\def\ltx@sh@ft #1{%
|
|
\dimen@ #1%
|
|
\kern \strip@pt
|
|
\fontdimen1\font \dimen@
|
|
} % kern by #1 times the current slant
|
|
\def\hrulefill{\leavevmode\leaders\hrule\hfill\kern\z@}
|
|
\def\dotfill{%
|
|
\leavevmode
|
|
\cleaders \hb@xt@ .44em{\hss.\hss}\hfill
|
|
\kern\z@}
|
|
\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0
|
|
\def\showoverfull{\tracingonline\@ne}
|
|
\gdef\loggingoutput{\tracingoutput\@ne
|
|
\showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode}
|
|
\gdef\showoutput{\loggingoutput\showoverfull}
|
|
\ifx\tracingscantokens\@undefined
|
|
\gdef\loggingall{%
|
|
\tracingstats\tw@
|
|
\tracingpages\@ne
|
|
\tracinglostchars\@ne
|
|
\tracingparagraphs\@ne
|
|
\errorcontextlines\maxdimen
|
|
\loggingoutput
|
|
\tracingmacros\tw@
|
|
\tracingcommands\tw@
|
|
\tracingrestores\@ne
|
|
}%
|
|
\else
|
|
\gdef\loggingall{%
|
|
\tracingstats\tw@
|
|
\tracingpages\@ne
|
|
\tracinglostchars\tw@
|
|
\tracingparagraphs\@ne
|
|
\tracinggroups\@ne
|
|
\tracingifs\@ne
|
|
\tracingscantokens\@ne
|
|
\tracingnesting\@ne
|
|
\errorcontextlines\maxdimen
|
|
\loggingoutput
|
|
\tracingmacros\tw@
|
|
\tracingcommands\thr@@
|
|
\tracingrestores\@ne
|
|
\tracingassigns\@ne
|
|
}%
|
|
\fi
|
|
\gdef\tracingall{\showoverfull\loggingall}
|
|
\ifx\tracingscantokens\@undefined
|
|
\def\tracingnone{%
|
|
\tracingonline\z@
|
|
\tracingcommands\z@
|
|
\showboxdepth\m@ne
|
|
\showboxbreadth\m@ne
|
|
\tracingoutput\z@
|
|
\errorcontextlines\m@ne
|
|
\tracingrestores\z@
|
|
\tracingparagraphs\z@
|
|
\tracingmacros\z@
|
|
\tracinglostchars\@ne
|
|
\tracingpages\z@
|
|
\tracingstats\z@
|
|
}%
|
|
\else
|
|
\def\tracingnone{%
|
|
\tracingassigns\z@
|
|
\tracingrestores\z@
|
|
\tracingonline\z@
|
|
\tracingcommands\z@
|
|
\showboxdepth\m@ne
|
|
\showboxbreadth\m@ne
|
|
\tracingoutput\z@
|
|
\errorcontextlines\m@ne
|
|
\tracingnesting\z@
|
|
\tracingscantokens\z@
|
|
\tracingifs\z@
|
|
\tracinggroups\z@
|
|
\tracingparagraphs\z@
|
|
\tracingmacros\z@
|
|
\tracinglostchars\@ne
|
|
\tracingpages\z@
|
|
\tracingstats\z@
|
|
}%
|
|
\fi
|
|
\def\hideoutput{%
|
|
\tracingoutput\z@
|
|
\showboxbreadth\m@ne
|
|
\showboxdepth\m@ne
|
|
\tracingonline\m@ne
|
|
}%
|
|
\nonfrenchspacing
|
|
%%% From File: ltvers.dtx
|
|
\def\fmtname{LaTeX2e}
|
|
\edef\fmtversion
|
|
{2020-02-02}
|
|
\def\patch@level{5}
|
|
\edef\development@branch@name{}
|
|
\iffalse
|
|
\def\reserved@a#1/#2/#3\@nil{%
|
|
\count@\year
|
|
\advance\count@-#1\relax
|
|
\multiply\count@ by 12\relax
|
|
\advance\count@\month
|
|
\advance\count@-#2\relax}
|
|
\expandafter\reserved@a\fmtversion\@nil
|
|
\ifnum\count@>65
|
|
\typeout{^^J%
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
|
|
! You are attempting to make a LaTeX format from a source file^^J%
|
|
! That is more than five years old.^^J%
|
|
!^^J%
|
|
! If you enter <return> to scroll past this message then the format^^J%
|
|
! will be built, but please consider obtaining newer source files^^J%
|
|
! before continuing to build LaTeX.^^J%
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
|
|
}
|
|
\errhelp{To avoid this error message, obtain new LaTeX sources.}
|
|
\errmessage{LaTeX source files more than 5 years old!}
|
|
\fi
|
|
\let\reserved@a\relax
|
|
\fi
|
|
\ifnum0\ifnum\patch@level=0 \ifx\development@branch@name\@empty 1\fi\fi>0 %
|
|
\everyjob\expandafter{\the\everyjob
|
|
\typeout{\fmtname \space<\fmtversion>}}
|
|
\immediate
|
|
\write16{\fmtname \space<\fmtversion>}
|
|
\else\ifnum\patch@level>0
|
|
\everyjob\expandafter{\the\everyjob
|
|
\typeout{\fmtname \space<\fmtversion> patch level \patch@level}}
|
|
\immediate
|
|
\write16{\fmtname \space<\fmtversion> patch level \patch@level}
|
|
\else
|
|
\everyjob\expandafter{\the\everyjob
|
|
\typeout{\fmtname \space<\fmtversion> pre-release-\number-\patch@level\space
|
|
\ifx\development@branch@name\@undefined \else
|
|
\ifx\development@branch@name\@empty \else
|
|
\space (\development@branch@name\space branch)%
|
|
\fi
|
|
\fi
|
|
}}
|
|
\immediate
|
|
\write16{\fmtname \space<\fmtversion> pre-release-\number-\patch@level\space
|
|
\ifx\development@branch@name\@undefined \else
|
|
\ifx\development@branch@name\@empty \else
|
|
\space (\development@branch@name\space branch)%
|
|
\fi
|
|
\fi
|
|
}
|
|
\fi
|
|
\fi
|
|
\let\@currname\@empty
|
|
\def\IncludeInRelease#1{%
|
|
\if@includeinrelease
|
|
\PackageError{latexrelease}{mis-matched IncludeInRelease}%
|
|
{There is an \string\EndIncludeRelease\space missing}%
|
|
\@includeinreleasefalse
|
|
\fi
|
|
\kernel@ifnextchar[%
|
|
{\@IncludeInRelease{#1}}
|
|
{\@IncludeInRelease{#1}[#1]}}
|
|
\def\@IncludeInRelease#1[#2]{\@IncludeInRele@se{#2}}
|
|
\def\@IncludeInRele@se#1#2#3{%
|
|
\toks@{[#1] #3}%
|
|
\expandafter\ifx\csname\string#2+\@currname+IIR\endcsname\relax
|
|
\ifnum\expandafter\@parse@version#1//00\@nil
|
|
>\expandafter\@parse@version\fmtversion//00\@nil
|
|
\GenericInfo{}{Skipping: \the\toks@}%
|
|
\expandafter\expandafter\expandafter\@gobble@IncludeInRelease
|
|
\else
|
|
\GenericInfo{}{Applying: \the\toks@}%
|
|
\@includeinreleasetrue
|
|
\expandafter\let\csname\string#2+\@currname+IIR\endcsname\@empty
|
|
\fi
|
|
\else
|
|
\GenericInfo{}{Already applied: \the\toks@}%
|
|
\expandafter\@gobble@IncludeInRelease
|
|
\fi
|
|
}
|
|
\def\EndIncludeInRelease{%
|
|
\if@includeinrelease
|
|
\@includeinreleasefalse
|
|
\else
|
|
\PackageError{latexrelease}{mis-matched EndIncludeInRelease}{}%
|
|
\fi}
|
|
\long\def\@gobble@IncludeInRelease#1\EndIncludeInRelease{%
|
|
\@includeinreleasefalse
|
|
\@check@IncludeInRelease#1\IncludeInRelease\@check@IncludeInRelease
|
|
\@end@check@IncludeInRelease}
|
|
\long\def\@check@IncludeInRelease#1\IncludeInRelease
|
|
#2#3\@end@check@IncludeInRelease{%
|
|
\ifx\@check@IncludeInRelease#2\else
|
|
\PackageError{latexrelease}{skipped IncludeInRelease for tag \string#2}{}%
|
|
\fi}
|
|
%%% From File: ltdefns.dtx
|
|
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
|
|
\def\typeout#1{\begingroup\set@display@protect
|
|
\immediate\write\@unused{#1}\endgroup}
|
|
\newlinechar`\^^J
|
|
\let\@@par=\par
|
|
\let\@@hyph=\-
|
|
\let\@@italiccorr=\/
|
|
\def\@height{height} \def\@depth{depth} \def\@width{width}
|
|
\def\@minus{minus}
|
|
\def\@plus{plus}
|
|
\def\hb@xt@{\hbox to}
|
|
\message{hacks,}
|
|
\def\typein{%
|
|
\let\@typein\relax
|
|
\@testopt\@xtypein\@typein}
|
|
\ifx\directlua\@undefined
|
|
\def\@xtypein[#1]#2{%
|
|
\typeout{#2}%
|
|
\advance\endlinechar\@M
|
|
\read\@inputcheck to#1%
|
|
\advance\endlinechar-\@M
|
|
\@typein}%
|
|
\else
|
|
\def\@xtypein[#1]#2{%
|
|
\typeout{#2}%
|
|
\begingroup \endlinechar\m@ne
|
|
\read\@inputcheck to#1%
|
|
\expandafter\endgroup
|
|
\expandafter\def\expandafter#1\expandafter{#1}%
|
|
\@typein}%
|
|
\fi
|
|
\def\@namedef#1{\expandafter\def\csname #1\endcsname}
|
|
\def\@nameuse#1{\csname #1\endcsname}
|
|
\def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{#1\@elt #2}\endgroup}
|
|
\def\@car#1#2\@nil{#1}
|
|
\def\@cdr#1#2\@nil{#2}
|
|
\def\@carcube#1#2#3#4\@nil{#1#2#3}
|
|
\def\@preamblecmds{}
|
|
\def\@onlypreamble#1{%
|
|
\expandafter\gdef\expandafter\@preamblecmds\expandafter{%
|
|
\@preamblecmds\do#1}}
|
|
\@onlypreamble\@onlypreamble
|
|
\@onlypreamble\@preamblecmds
|
|
\def\@star@or@long#1{%
|
|
\@ifstar
|
|
{\let\l@ngrel@x\relax#1}%
|
|
{\let\l@ngrel@x\long#1}}
|
|
|
|
\let\l@ngrel@x\relax
|
|
\def\newcommand{\@star@or@long\new@command}
|
|
\def\new@command#1{%
|
|
\@testopt{\@newcommand#1}0}
|
|
\def\@newcommand#1[#2]{%
|
|
\kernel@ifnextchar [{\@xargdef#1[#2]}%
|
|
{\@argdef#1[#2]}}
|
|
\long\def\@argdef#1[#2]#3{%
|
|
\@ifdefinable #1{\@yargdef#1\@ne{#2}{#3}}}
|
|
\long\def\@xargdef#1[#2][#3]#4{%
|
|
\@ifdefinable#1{%
|
|
\expandafter\def\expandafter#1\expandafter{%
|
|
\expandafter
|
|
\@protected@testopt
|
|
\expandafter
|
|
#1%
|
|
\csname\string#1\endcsname
|
|
{#3}}%
|
|
\expandafter\@yargdef
|
|
\csname\string#1\endcsname
|
|
\tw@
|
|
{#2}%
|
|
{#4}}}
|
|
\long\def\@testopt#1#2{%
|
|
\kernel@ifnextchar[{#1}{#1[{#2}]}}
|
|
\def\@protected@testopt#1{%
|
|
\ifx\protect\@typeset@protect
|
|
\expandafter\@testopt
|
|
\else
|
|
\@x@protect#1%
|
|
\fi}
|
|
\long \def \@yargdef #1#2#3{%
|
|
\ifx#2\tw@
|
|
\def\reserved@b##11{[####1]}%
|
|
\else
|
|
\let\reserved@b\@gobble
|
|
\fi
|
|
\expandafter
|
|
\@yargd@f \expandafter{\number #3}#1%
|
|
}
|
|
\long \def \@yargd@f#1#2{%
|
|
\def \reserved@a ##1#1##2##{%
|
|
\expandafter\def\expandafter#2\reserved@b ##1#1%
|
|
}%
|
|
\l@ngrel@x \reserved@a 0##1##2##3##4##5##6##7##8##9###1%
|
|
}
|
|
\long\def\@reargdef#1[#2]{%
|
|
\@yargdef#1\@ne{#2}}
|
|
\def\renewcommand{\@star@or@long\renew@command}
|
|
\def\renew@command#1{%
|
|
\begingroup \escapechar\m@ne\xdef\@gtempa{{\string#1}}\endgroup
|
|
\expandafter\@ifundefined\@gtempa
|
|
{\@latex@error{Command \string#1 undefined}\@ehc}%
|
|
\relax
|
|
\let\@ifdefinable\@rc@ifdefinable
|
|
\new@command#1}
|
|
\long\def\@ifdefinable #1#2{%
|
|
\edef\reserved@a{\expandafter\@gobble\string #1}%
|
|
\@ifundefined\reserved@a
|
|
{\edef\reserved@b{\expandafter\@carcube \reserved@a xxx\@nil}%
|
|
\ifx \reserved@b\@qend \@notdefinable\else
|
|
\ifx \reserved@a\@qrelax \@notdefinable\else
|
|
#2%
|
|
\fi
|
|
\fi}%
|
|
\@notdefinable}
|
|
\let\@@ifdefinable\@ifdefinable
|
|
\long\def\@rc@ifdefinable#1#2{%
|
|
\let\@ifdefinable\@@ifdefinable
|
|
#2}
|
|
\def\newenvironment{\@star@or@long\new@environment}
|
|
\def\new@environment#1{%
|
|
\@testopt{\@newenva#1}0}
|
|
\def\@newenva#1[#2]{%
|
|
\kernel@ifnextchar [{\@newenvb#1[#2]}{\@newenv{#1}{[#2]}}}
|
|
\def\@newenvb#1[#2][#3]{\@newenv{#1}{[#2][{#3}]}}
|
|
\def\renewenvironment{\@star@or@long\renew@environment}
|
|
\def\renew@environment#1{%
|
|
\@ifundefined{#1}%
|
|
{\@latex@error{Environment #1 undefined}\@ehc
|
|
}\relax
|
|
\expandafter\let\csname#1\endcsname\relax
|
|
\expandafter\let\csname end#1\endcsname\relax
|
|
\new@environment{#1}}
|
|
\long\def\@newenv#1#2#3#4{%
|
|
\@ifundefined{#1}%
|
|
{\expandafter\let\csname#1\expandafter\endcsname
|
|
\csname end#1\endcsname}%
|
|
\relax
|
|
\expandafter\new@command
|
|
\csname #1\endcsname#2{#3}%
|
|
\l@ngrel@x\expandafter\def\csname end#1\endcsname{#4}}
|
|
\def\newif#1{%
|
|
\count@\escapechar \escapechar\m@ne
|
|
\let#1\iffalse
|
|
\@if#1\iftrue
|
|
\@if#1\iffalse
|
|
\escapechar\count@}
|
|
\def\@if#1#2{%
|
|
\expandafter\def\csname\expandafter\@gobbletwo\string#1%
|
|
\expandafter\@gobbletwo\string#2\endcsname
|
|
{\let#1#2}}
|
|
\def\providecommand{\@star@or@long\provide@command}
|
|
\def\provide@command#1{%
|
|
\begingroup
|
|
\escapechar\m@ne\xdef\@gtempa{{\string#1}}%
|
|
\endgroup
|
|
\expandafter\@ifundefined\@gtempa
|
|
{\def\reserved@a{\new@command#1}}%
|
|
{\def\reserved@a{\renew@command\reserved@a}}%
|
|
\reserved@a}%
|
|
\def\CheckCommand{\@star@or@long\check@command}
|
|
\@onlypreamble\CheckCommand
|
|
\def\check@command#1#2#{\@check@c#1{#2}}
|
|
\@onlypreamble\check@command
|
|
\long\def\@check@c#1#2#3{%
|
|
\expandafter\let\csname\string\reserved@a\endcsname\relax
|
|
\renew@command\reserved@a#2{#3}%
|
|
\@ifundefined{\string\reserved@a}%
|
|
{\@check@eq#1\reserved@a}%
|
|
{\expandafter\@check@eq
|
|
\csname\string#1\expandafter\endcsname
|
|
\csname\string\reserved@a\endcsname}}
|
|
\@onlypreamble\@check@c
|
|
\def\@check@eq#1#2{%
|
|
\ifx#1#2\else
|
|
\@latex@warning@no@line
|
|
{Command \noexpand#1 has
|
|
changed.\MessageBreak
|
|
Check if current package is valid}%
|
|
\fi}
|
|
\@onlypreamble\@check@eq
|
|
\long\def \@gobble #1{}
|
|
\long\def \@gobbletwo #1#2{}
|
|
\long\def \@gobblethree #1#2#3{}
|
|
\long\def \@gobblefour #1#2#3#4{}
|
|
\long\def\@firstofone#1{#1}
|
|
\long\def\@firstoftwo#1#2{#1}
|
|
\long\def\@secondoftwo#1#2{#2}
|
|
\let\@iden\@firstofone
|
|
\long\def\@thirdofthree#1#2#3{#3}
|
|
\def\@expandtwoargs#1#2#3{%
|
|
\edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a}
|
|
\edef\@backslashchar{\expandafter\@gobble\string\\}
|
|
\def\@unexpandable@protect{\noexpand\protect\noexpand}
|
|
\def\DeclareRobustCommand{\@star@or@long\declare@robustcommand}
|
|
\def\declare@robustcommand#1{%
|
|
\ifx#1\@undefined\else\ifx#1\relax\else
|
|
\@latex@info{Redefining \string#1}%
|
|
\fi\fi
|
|
\edef\reserved@a{\string#1}%
|
|
\def\reserved@b{#1}%
|
|
\edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}%
|
|
\edef#1{%
|
|
\ifx\reserved@a\reserved@b
|
|
\noexpand\x@protect
|
|
\noexpand#1%
|
|
\fi
|
|
\noexpand\protect
|
|
\expandafter\noexpand\csname
|
|
\expandafter\@gobble\string#1 \endcsname
|
|
}%
|
|
\let\@ifdefinable\@rc@ifdefinable
|
|
\expandafter\new@command\csname
|
|
\expandafter\@gobble\string#1 \endcsname
|
|
}
|
|
\def\x@protect#1{%
|
|
\ifx\protect\@typeset@protect\else
|
|
\@x@protect#1%
|
|
\fi
|
|
}
|
|
\def\@x@protect#1\fi#2#3{%
|
|
\fi\protect#1%
|
|
}
|
|
\let\@typeset@protect\relax
|
|
\def\set@display@protect{\let\protect\string}
|
|
\def\set@typeset@protect{\let\protect\@typeset@protect}
|
|
\def\protected@edef{%
|
|
\let\@@protect\protect
|
|
\let\protect\@unexpandable@protect
|
|
\afterassignment\restore@protect
|
|
\edef
|
|
}
|
|
\def\protected@xdef{%
|
|
\let\@@protect\protect
|
|
\let\protect\@unexpandable@protect
|
|
\afterassignment\restore@protect
|
|
\xdef
|
|
}
|
|
\def\unrestored@protected@xdef{%
|
|
\let\protect\@unexpandable@protect
|
|
\xdef
|
|
}
|
|
\def\restore@protect{\let\protect\@@protect}
|
|
\set@typeset@protect
|
|
\def\MakeRobust#1{%
|
|
\@ifundefined{\expandafter\@gobble\string#1}{%
|
|
\@latex@error{The control sequence `\string#1' is undefined!%
|
|
\MessageBreak There is nothing here to make robust}%
|
|
\@eha
|
|
}%
|
|
{%
|
|
\@ifundefined{\expandafter\@gobble\string#1\space}%
|
|
{%
|
|
\global\expandafter\let\csname
|
|
\expandafter\@gobble\string#1\space\endcsname=#1%
|
|
\edef\reserved@a{\string#1}%
|
|
\def\reserved@b{#1}%
|
|
\edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}%
|
|
\xdef#1{%
|
|
\ifx\reserved@a\reserved@b
|
|
\noexpand\x@protect\noexpand#1%
|
|
\fi
|
|
\noexpand\protect\expandafter\noexpand
|
|
\csname\expandafter\@gobble\string#1\space\endcsname}%
|
|
}%
|
|
{\@latex@info{The control sequence `\string#1' is already robust}}%
|
|
}%
|
|
}%
|
|
|
|
\def\kernel@make@fragile#1{%
|
|
\@ifundefined{\expandafter\@gobble\string#1\space}%
|
|
{}%
|
|
{%
|
|
\global\expandafter\let\expandafter #1\csname
|
|
\expandafter\@gobble\string#1\space\endcsname
|
|
\global\expandafter\let\csname
|
|
\expandafter\@gobble\string#1\space\endcsname\@undefined
|
|
}%
|
|
}
|
|
\def\@ifundefined#1{%
|
|
\ifcsname#1\endcsname\@ifundefin@d@i\else\@ifundefin@d@ii\fi{#1}}
|
|
\long\def\@ifundefin@d@i#1\fi#2{\fi
|
|
\expandafter\ifx\csname #2\endcsname\relax
|
|
\@ifundefin@d@ii
|
|
\fi
|
|
\@secondoftwo}
|
|
\long\def\@ifundefin@d@ii\fi#1#2#3{\fi #2}
|
|
\ifx\numexpr\@undefined
|
|
\def\@ifundefined#1{%
|
|
\expandafter\ifx\csname#1\endcsname\relax
|
|
\expandafter\@firstoftwo
|
|
\else
|
|
\expandafter\@secondoftwo
|
|
\fi}
|
|
\else\ifx\directlua\@undefined
|
|
\else
|
|
\def\@ifundefined#1{%
|
|
\ifcsname#1\endcsname
|
|
\expandafter\ifx\lastnamedcs\relax\else\@ifundefin@d@i\fi
|
|
\fi
|
|
\@firstoftwo}
|
|
\long\def\@ifundefin@d@i#1#2#3#4#5{#1#2#5}
|
|
\fi
|
|
\fi
|
|
\edef\@qend{\expandafter\@cdr\string\end\@nil}
|
|
\edef\@qrelax{\expandafter\@cdr\string\relax\@nil}
|
|
\long\def\@ifnextchar#1#2#3{%
|
|
\let\reserved@d=#1%
|
|
\def\reserved@a{#2}%
|
|
\def\reserved@b{#3}%
|
|
\futurelet\@let@token\@ifnch}
|
|
\let\kernel@ifnextchar\@ifnextchar
|
|
\def\@ifnch{%
|
|
\ifx\@let@token\@sptoken
|
|
\let\reserved@c\@xifnch
|
|
\else
|
|
\ifx\@let@token\reserved@d
|
|
\let\reserved@c\reserved@a
|
|
\else
|
|
\let\reserved@c\reserved@b
|
|
\fi
|
|
\fi
|
|
\reserved@c}
|
|
\def\:{\let\@sptoken= } \: % this makes \@sptoken a space token
|
|
\def\:{\@xifnch} \expandafter\def\: {\futurelet\@let@token\@ifnch}
|
|
\def\@ifstar#1{\@ifnextchar *{\@firstoftwo{#1}}}
|
|
\long\def\@dblarg#1{\kernel@ifnextchar[{#1}{\@xdblarg{#1}}}
|
|
\long\def\@xdblarg#1#2{#1[{#2}]{#2}}
|
|
\def\@sanitize{\@makeother\ \@makeother\\\@makeother\$\@makeother\&%
|
|
\@makeother\#\@makeother\^\@makeother\_\@makeother\%\@makeother\~}
|
|
\def \@onelevel@sanitize #1{%
|
|
\edef #1{\expandafter\strip@prefix
|
|
\meaning #1}%
|
|
}
|
|
\DeclareRobustCommand\makeatletter{\catcode`\@11\relax}
|
|
\DeclareRobustCommand\makeatother{\catcode`\@12\relax}
|
|
|
|
\def\@latex@info#1{}
|
|
\DeclareRobustCommand{\-}{%
|
|
\discretionary{%
|
|
\char \ifnum\hyphenchar\font<\z@
|
|
\defaulthyphenchar
|
|
\else
|
|
\hyphenchar\font
|
|
\fi
|
|
}{}{}%
|
|
}
|
|
\let\@dischyph=\-
|
|
\newif\if@includeinrelease
|
|
\@includeinreleasefalse
|
|
\MakeRobust\allowbreak
|
|
\MakeRobust\bigbreak
|
|
\MakeRobust\break
|
|
\MakeRobust\dotfill
|
|
\MakeRobust\frenchspacing
|
|
\MakeRobust\goodbreak
|
|
\MakeRobust\hrulefill
|
|
\MakeRobust\medbreak
|
|
\MakeRobust\nobreak
|
|
\MakeRobust\nonfrenchspacing
|
|
\MakeRobust\obeylines
|
|
\MakeRobust\obeyspaces
|
|
\MakeRobust\slash
|
|
\MakeRobust\smallbreak
|
|
\MakeRobust\strut
|
|
\MakeRobust\underbar
|
|
%%% From File: ltalloc.dtx
|
|
\chardef\@xxxii=32
|
|
\mathchardef\@Mi=10001
|
|
\mathchardef\@Mii=10002
|
|
\mathchardef\@Miii=10003
|
|
\mathchardef\@Miv=10004
|
|
\newcount\@tempcnta
|
|
\newcount\@tempcntb
|
|
\newif\if@tempswa
|
|
\newdimen\@tempdima
|
|
\newdimen\@tempdimb
|
|
\newdimen\@tempdimc
|
|
\newbox\@tempboxa
|
|
\newskip\@tempskipa
|
|
\newskip\@tempskipb
|
|
\newtoks\@temptokena
|
|
\newskip\@flushglue \@flushglue = 0pt plus 1fil
|
|
%%% From File: ltcntrl.dtx
|
|
\message{control,}
|
|
\long\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax
|
|
#2\relax}\fi}
|
|
\long\def\@iwhilenum#1{\ifnum #1\expandafter\@iwhilenum
|
|
\else\expandafter\@gobble\fi{#1}}
|
|
\long\def\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi}
|
|
\long\def\@iwhiledim#1{\ifdim #1\expandafter\@iwhiledim
|
|
\else\expandafter\@gobble\fi{#1}}
|
|
\long\def\@whilesw#1\fi#2{#1#2\@iwhilesw{#1#2}\fi\fi}
|
|
\long\def\@iwhilesw#1\fi{#1\expandafter\@iwhilesw
|
|
\else\@gobbletwo\fi{#1}\fi}
|
|
\def\@nnil{\@nil}
|
|
\def\@empty{}
|
|
\long\def\@fornoop#1\@@#2#3{}
|
|
\long\def\@for#1:=#2\do#3{%
|
|
\expandafter\def\expandafter\@fortmp\expandafter{#2}%
|
|
\ifx\@fortmp\@empty \else
|
|
\expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
|
|
\long\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
|
|
#5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}
|
|
\long\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
|
|
\expandafter\@fornoop \else
|
|
#4\relax\expandafter\@iforloop\fi#2\@@#3{#4}}
|
|
\def\@tfor#1:={\@tf@r#1 }
|
|
\long\def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else
|
|
\@tforloop#2\@nil\@nil\@@#1{#3}\fi}
|
|
\long\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
|
|
\expandafter\@fornoop \else
|
|
#4\relax\expandafter\@tforloop\fi#2\@@#3{#4}}
|
|
\long\def\@break@tfor#1\@@#2#3{\fi\fi}
|
|
\def\@removeelement#1#2#3{%
|
|
\def\reserved@a##1,#1,##2\reserved@a{##1,##2\reserved@b}%
|
|
\def\reserved@b##1,\reserved@b##2\reserved@b{%
|
|
\ifx,##1\@empty\else##1\fi}%
|
|
\edef#3{%
|
|
\expandafter\reserved@b\reserved@a,#2,\reserved@b,#1,\reserved@a}}
|
|
%%% From File: lterror.dtx
|
|
\expandafter\let\csname ver@autoerr.sty\endcsname\fmtversion
|
|
\let\MessageBreak\relax
|
|
\DeclareRobustCommand{\GenericInfo}[2]{%
|
|
\begingroup
|
|
\def\MessageBreak{^^J#1}%
|
|
\set@display@protect
|
|
\immediate\write\m@ne{#2\on@line.}%
|
|
\endgroup
|
|
}
|
|
\DeclareRobustCommand{\GenericWarning}[2]{%
|
|
\begingroup
|
|
\def\MessageBreak{^^J#1}%
|
|
\set@display@protect
|
|
\immediate\write\@unused{^^J#2\on@line.^^J}%
|
|
\endgroup
|
|
}
|
|
\bgroup
|
|
\lccode`\@=`\ %
|
|
\lccode`\~=`\ %
|
|
\lccode`\}=`\ %
|
|
\lccode`\{=`\ %
|
|
\lccode`\T=`\T%
|
|
\lccode`\H=`\H%
|
|
\catcode`\ =11\relax%
|
|
\lowercase{%
|
|
\egroup%
|
|
\dimen@\ifx\@TeXversion\@undefined4\else\@TeXversion\fi\p@%
|
|
\ifdim\dimen@>3.14\p@%
|
|
\DeclareRobustCommand{\GenericError}[4]{%
|
|
\begingroup%
|
|
\immediate\write\@unused{}%
|
|
\def\MessageBreak{^^J}%
|
|
\set@display@protect%
|
|
\edef%
|
|
\@err@ %
|
|
{{#4}}%
|
|
\errhelp
|
|
\@err@ %
|
|
\let
|
|
\@err@ %
|
|
\@empty
|
|
\def\MessageBreak{^^J#1}%
|
|
\def~{\errmessage{%
|
|
#2.^^J^^J%
|
|
#3^^J%
|
|
Type H <return> for immediate help%
|
|
\@err@ %
|
|
}}%
|
|
~%
|
|
\endgroup}%
|
|
\else%
|
|
\DeclareRobustCommand{\GenericError}[4]{%
|
|
\begingroup%
|
|
\immediate\write\@unused{}%
|
|
\def\MessageBreak{^^J}%
|
|
\set@display@protect%
|
|
\edef%
|
|
\@err@ %
|
|
{{#4}}%
|
|
\errhelp
|
|
\@err@ %
|
|
\let
|
|
\@err@ %
|
|
\errmessage
|
|
\def\MessageBreak{^^J#1}%
|
|
\def~{\typeout{! %
|
|
#2.^^J^^J%
|
|
#3^^J%
|
|
Type H <return> for immediate help.}%
|
|
\@err@ %
|
|
{}}%
|
|
~%
|
|
\endgroup}%
|
|
\fi}%
|
|
\gdef\PackageError#1#2#3{%
|
|
\GenericError{%
|
|
(#1)\@spaces\@spaces\@spaces\@spaces
|
|
}{%
|
|
Package #1 Error: #2%
|
|
}{%
|
|
See the #1 package documentation for explanation.%
|
|
}{#3}%
|
|
}
|
|
\def\PackageWarning#1#2{%
|
|
\GenericWarning{%
|
|
(#1)\@spaces\@spaces\@spaces\@spaces
|
|
}{%
|
|
Package #1 Warning: #2%
|
|
}%
|
|
}
|
|
\def\PackageWarningNoLine#1#2{%
|
|
\PackageWarning{#1}{#2\@gobble}%
|
|
}
|
|
\def\PackageInfo#1#2{%
|
|
\GenericInfo{%
|
|
(#1) \@spaces\@spaces\@spaces
|
|
}{%
|
|
Package #1 Info: #2%
|
|
}%
|
|
}
|
|
\gdef\ClassError#1#2#3{%
|
|
\GenericError{%
|
|
(#1) \space\@spaces\@spaces\@spaces
|
|
}{%
|
|
Class #1 Error: #2%
|
|
}{%
|
|
See the #1 class documentation for explanation.%
|
|
}{#3}%
|
|
}
|
|
\def\ClassWarning#1#2{%
|
|
\GenericWarning{%
|
|
(#1) \space\@spaces\@spaces\@spaces
|
|
}{%
|
|
Class #1 Warning: #2%
|
|
}%
|
|
}
|
|
\def\ClassWarningNoLine#1#2{%
|
|
\ClassWarning{#1}{#2\@gobble}%
|
|
}
|
|
\def\ClassInfo#1#2{%
|
|
\GenericInfo{%
|
|
(#1) \space\space\@spaces\@spaces
|
|
}{%
|
|
Class #1 Info: #2%
|
|
}%
|
|
}
|
|
\gdef\@latex@error#1#2{%
|
|
\GenericError{%
|
|
\space\space\space\@spaces\@spaces\@spaces
|
|
}{%
|
|
LaTeX Error: #1%
|
|
}{%
|
|
See the LaTeX manual or LaTeX Companion for explanation.%
|
|
}{#2}%
|
|
}
|
|
\def\@latex@warning#1{%
|
|
\GenericWarning{%
|
|
\space\space\space\@spaces\@spaces\@spaces
|
|
}{%
|
|
LaTeX Warning: #1%
|
|
}%
|
|
}
|
|
\def\@latex@warning@no@line#1{%
|
|
\@latex@warning{#1\@gobble}}
|
|
\def\@latex@info#1{%
|
|
\GenericInfo{%
|
|
\@spaces\@spaces\@spaces
|
|
}{%
|
|
LaTeX Info: #1%
|
|
}%
|
|
}
|
|
\def\@latex@info@no@line#1{%
|
|
\@latex@info{#1\@gobble}}
|
|
\let\c@errorcontextlines\errorcontextlines
|
|
\c@errorcontextlines=-1
|
|
\def\on@line{ on input line \the\inputlineno}
|
|
\let\@warning\@latex@warning
|
|
\let\@@warning\@latex@warning@no@line
|
|
\global\let\@latexerr\@latex@error
|
|
\def\@spaces{\space\space\space\space}
|
|
\gdef\@eha{%
|
|
Your command was ignored.\MessageBreak
|
|
Type \space I <command> <return> \space to replace it %
|
|
with another command,\MessageBreak
|
|
or \space <return> \space to continue without it.}
|
|
\gdef\@ehb{%
|
|
You've lost some text. \space \@ehc}
|
|
\gdef\@ehc{%
|
|
Try typing \space <return> %
|
|
\space to proceed.\MessageBreak
|
|
If that doesn't work, type \space X <return> \space to quit.}
|
|
\gdef\@ehd{%
|
|
You're in trouble here. \space\@ehc}
|
|
\gdef\@notdefinable{%
|
|
\@latex@error{%
|
|
Command \@backslashchar\reserved@a\space
|
|
already defined.\MessageBreak
|
|
Or name \@backslashchar\@qend... illegal,
|
|
see p.192 of the manual}\@eha}
|
|
\gdef\@nolnerr{%
|
|
\@latex@error{There's no line here to end}\@eha}
|
|
\gdef\@nocounterr#1{%
|
|
\@latex@error{No counter '#1' defined}\@eha}
|
|
\gdef\@nocnterr{\@nocounterr?}
|
|
\gdef\@ctrerr{%
|
|
\@latex@error{Counter too large}\@ehb}
|
|
\gdef\@nodocument{%
|
|
\@latex@error{Missing \protect\begin{document}}\@ehd}
|
|
\gdef\@badend#1{%
|
|
\@latex@error{\protect\begin{\@currenvir}\@currenvline
|
|
\space ended by \protect\end{#1}}\@eha}
|
|
\gdef\@badmath{%
|
|
\@latex@error{Bad math environment delimiter}\@eha}
|
|
\gdef\@toodeep{%
|
|
\@latex@error{Too deeply nested}\@ehd}
|
|
\gdef\@badpoptabs{%
|
|
\@latex@error{\protect\pushtabs\space and \protect\poptabs
|
|
\space don't match}\@ehd}
|
|
\gdef\@badtab{%
|
|
\@latex@error{Undefined tab position}\@ehd}
|
|
\gdef\@preamerr#1{%
|
|
\begingroup
|
|
\let\protect\relax
|
|
\@latex@error{\ifcase #1 Illegal character\or
|
|
Missing @-exp\or Missing p-arg\fi\space
|
|
in array arg}\@ehd
|
|
\endgroup}
|
|
\gdef\@badlinearg{%
|
|
\@latex@error{%
|
|
Bad \protect\line\space or \protect\vector
|
|
\space argument}\@ehb}
|
|
\gdef\@parmoderr{%
|
|
\@latex@error{Not in outer par mode}\@ehb}
|
|
\gdef\@fltovf{%
|
|
\@latex@error{Too many unprocessed floats}\@ehb}
|
|
\gdef\@latexbug{%
|
|
\@latex@error{This may be a LaTeX bug}{Call for help}}
|
|
\gdef\@noitemerr{%
|
|
\@latex@error{Something's wrong--perhaps a missing %
|
|
\protect\item}\@ehc}
|
|
\gdef\@notprerr{%
|
|
\@latex@error{Can be used only in preamble}\@eha}
|
|
\gdef\@inmatherr#1{%
|
|
\relax
|
|
\ifmmode
|
|
\@latex@error{Command \protect#1 invalid in math mode}\@ehc
|
|
\fi}
|
|
|
|
\let\conditionally@traceon\@empty
|
|
\let\conditionally@traceoff\@empty
|
|
%%% From File: ltpar.dtx
|
|
\message{par,}
|
|
\def\@setpar#1{\def\par{#1}\def\@par{#1}}
|
|
\def\@par{\let\par\@@par\par}
|
|
\def\@restorepar{\def\par{\@par}}
|
|
%%% From File: ltspace.dtx
|
|
\message{spacing,}
|
|
\DeclareRobustCommand\pagebreak{\@testopt{\@no@pgbk-}4}
|
|
\DeclareRobustCommand\nopagebreak{\@testopt\@no@pgbk4}
|
|
\DeclareRobustCommand\linebreak{\@testopt{\@no@lnbk-}4}
|
|
\DeclareRobustCommand\nolinebreak{\@testopt\@no@lnbk4}
|
|
\DeclareRobustCommand\samepage{\interlinepenalty\@M
|
|
\postdisplaypenalty\@M
|
|
\interdisplaylinepenalty\@M
|
|
\@beginparpenalty\@M
|
|
\@endparpenalty\@M
|
|
\@itempenalty\@M
|
|
\@secpenalty\@M
|
|
\interfootnotelinepenalty\@M}
|
|
\def\@no@pgbk #1[#2]{%
|
|
\ifvmode
|
|
\penalty #1\@getpen{#2}%
|
|
\else
|
|
\@bsphack
|
|
\vadjust{\penalty #1\@getpen{#2}}%
|
|
\@esphack
|
|
\fi}
|
|
\def\@no@lnbk #1[#2]{%
|
|
\ifvmode
|
|
\@nolnerr
|
|
\else
|
|
\@tempskipa\lastskip
|
|
\unskip
|
|
\penalty #1\@getpen{#2}%
|
|
\ifdim\@tempskipa>\z@
|
|
\hskip\@tempskipa
|
|
\ignorespaces
|
|
\fi
|
|
\fi}
|
|
\protected\def\@normalcr{%
|
|
\let \reserved@e \relax
|
|
\let \reserved@f \relax
|
|
\@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak
|
|
\@xnewline}%
|
|
\@xnewline}
|
|
\let\\\@normalcr
|
|
\DeclareRobustCommand\newline{\@normalcr\relax}
|
|
\def\@xnewline{\@ifnextchar[% ] bracket matching
|
|
\@newline
|
|
{\@gnewline\relax}}
|
|
\def\@newline[#1]{\let \reserved@e \vadjust
|
|
\@gnewline {\vskip #1}}
|
|
\def\@gnewline #1{%
|
|
\ifvmode
|
|
\@nolnerr
|
|
\else
|
|
\unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break
|
|
\fi}
|
|
\def\@getpen#1{\ifcase #1 \z@ \or \@lowpenalty\or
|
|
\@medpenalty \or \@highpenalty
|
|
\else \@M \fi}
|
|
\def\@nobreakfalse{\global\let\if@nobreak\iffalse}
|
|
\def\@nobreaktrue {\global\let\if@nobreak\iftrue}
|
|
\@nobreakfalse
|
|
\newdimen\@savsk
|
|
\newcount\@savsf
|
|
\def\@bsphack{%
|
|
\relax
|
|
\ifhmode
|
|
\@savsk\lastskip
|
|
\@savsf\spacefactor
|
|
\fi}
|
|
\def\@esphack{%
|
|
\relax
|
|
\ifhmode
|
|
\spacefactor\@savsf
|
|
\ifdim\@savsk>\z@
|
|
\ifdim\lastskip=\z@
|
|
\nobreak \hskip\z@skip
|
|
\fi
|
|
\ignorespaces
|
|
\fi
|
|
\else
|
|
\ifvmode
|
|
\if@nobreak\nobreak\else\if@noskipsec\nobreak\fi\fi
|
|
\fi
|
|
\fi}%
|
|
\def\@Esphack{%
|
|
\relax
|
|
\ifhmode
|
|
\spacefactor\@savsf
|
|
\ifdim\@savsk>\z@
|
|
\nobreak \hskip\z@skip
|
|
\@ignoretrue
|
|
\ignorespaces
|
|
\fi
|
|
\fi}%
|
|
\def\@xaddvskip{%
|
|
\ifdim\lastskip<\@tempskipb
|
|
\vskip-\lastskip
|
|
\vskip\@tempskipb
|
|
\else
|
|
\ifdim\@tempskipb<\z@
|
|
\ifdim\lastskip<\z@
|
|
\else
|
|
\advance\@tempskipb\lastskip
|
|
\vskip-\lastskip
|
|
\vskip \@tempskipb
|
|
\fi
|
|
\fi
|
|
\fi}
|
|
\def\addvspace#1{%
|
|
\ifvmode
|
|
\if@minipage\else
|
|
\ifdim \lastskip =\z@
|
|
\vskip #1\relax
|
|
\else
|
|
\@tempskipb#1\relax
|
|
\@xaddvskip
|
|
\fi
|
|
\fi
|
|
\else
|
|
\@noitemerr
|
|
\fi}
|
|
\def\addpenalty#1{%
|
|
\ifvmode
|
|
\if@minipage
|
|
\else
|
|
\if@nobreak
|
|
\else
|
|
\ifdim\lastskip=\z@
|
|
\penalty#1\relax
|
|
\else
|
|
\@tempskipb\lastskip
|
|
\begingroup
|
|
\@tempskipa\@tempskipb
|
|
\advance \@tempskipb
|
|
\ifdim\prevdepth>\maxdepth\maxdepth\else
|
|
\ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi
|
|
\fi
|
|
\vskip -\@tempskipb
|
|
\penalty#1%
|
|
\ifdim\@tempskipa=\@tempskipb
|
|
\else
|
|
\advance\@tempskipb -\@tempskipa
|
|
\vskip \@tempskipb
|
|
\fi
|
|
\vskip \@tempskipa
|
|
\endgroup
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\else
|
|
\@noitemerr
|
|
\fi}%
|
|
\DeclareRobustCommand\vspace{\@ifstar\@vspacer\@vspace}
|
|
\def\@vspace #1{%
|
|
\ifvmode
|
|
\vskip #1
|
|
\vskip\z@skip
|
|
\else
|
|
\@bsphack
|
|
\vadjust{\@restorepar
|
|
\vskip #1
|
|
\vskip\z@skip
|
|
}%
|
|
\@esphack
|
|
\fi}
|
|
\def\@vspacer#1{%
|
|
\ifvmode
|
|
\dimen@\prevdepth
|
|
\hrule \@height\z@
|
|
\nobreak
|
|
\vskip #1
|
|
\vskip\z@skip
|
|
\prevdepth\dimen@
|
|
\else
|
|
\@bsphack
|
|
\vadjust{\@restorepar
|
|
\hrule \@height\z@
|
|
\nobreak
|
|
\vskip #1
|
|
\vskip\z@skip}%
|
|
\@esphack
|
|
\fi}
|
|
\def\smallskip{\vspace\smallskipamount}
|
|
\def\medskip{\vspace\medskipamount}
|
|
\def\bigskip{\vspace\bigskipamount}
|
|
\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
|
|
\newskip\medskipamount \medskipamount =6pt plus 2pt minus 2pt
|
|
\newskip\bigskipamount \bigskipamount =12pt plus 4pt minus 4pt
|
|
\DeclareRobustCommand{\nobreakdashes}{%
|
|
\leavevmode
|
|
\toks@{}%
|
|
\def\reserved@a##1{\toks@\expandafter{\the\toks@-}%
|
|
\futurelet\@let@token \reserved@b}%
|
|
\def\reserved@b {\ifx\@let@token -%
|
|
\expandafter\reserved@a
|
|
\else
|
|
\setbox\z@ \hbox{\the\toks@\nobreak}%
|
|
\unhbox\z@
|
|
\spacefactor\sfcode`\-
|
|
\fi}%
|
|
\futurelet\@let@token \reserved@b
|
|
}
|
|
\DeclareRobustCommand{\nobreakspace}{%
|
|
\leavevmode\nobreak\ }
|
|
\catcode `\~=13
|
|
\def~{\nobreakspace{}}
|
|
\expandafter\let\expandafter\@xobeysp\csname nobreakspace \endcsname
|
|
\DeclareRobustCommand{\,}{%
|
|
\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi
|
|
}
|
|
\def\@{\spacefactor\@m{}}%
|
|
\DeclareRobustCommand\hspace{\@ifstar\@hspacer\@hspace}
|
|
\def\@hspace#1{\hskip #1\relax}
|
|
\def\@hspacer#1{\vrule \@width\z@\nobreak
|
|
\hskip #1\hskip \z@skip}
|
|
\newskip\fill
|
|
\fill = 0pt plus 1fill
|
|
\def\stretch#1{\z@ \@plus #1fill\relax}
|
|
\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em }
|
|
\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em }
|
|
\DeclareRobustCommand\enspace{\leavevmode@ifvmode\kern.5em }
|
|
\protected\def\leavevmode@ifvmode{\ifvmode\expandafter\indent\fi}
|
|
\def\enskip{\hskip.5em\relax}
|
|
\def\quad{\hskip1em\relax}
|
|
\def\qquad{\hskip2em\relax}
|
|
{\catcode`\^^M=13 \gdef\obeycr{\catcode`\^^M13 \def^^M{\\\relax}%
|
|
\@gobblecr}%
|
|
{\catcode`\^^M=13 \gdef\@gobblecr{\@ifnextchar
|
|
\@gobble\ignorespaces}}
|
|
\gdef\restorecr{\catcode`\^^M5 }}
|
|
%%% From File: ltlogos.dtx
|
|
\DeclareRobustCommand\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@}
|
|
\DeclareRobustCommand{\LaTeX}{L\kern-.36em%
|
|
{\sbox\z@ T%
|
|
\vbox to\ht\z@{\hbox{\check@mathfonts
|
|
\fontsize\sf@size\z@
|
|
\math@fontsfalse\selectfont
|
|
A}%
|
|
\vss}%
|
|
}%
|
|
\kern-.15em%
|
|
\TeX}
|
|
\DeclareRobustCommand{\LaTeXe}{\mbox{\m@th
|
|
\if b\expandafter\@car\f@series\@nil\boldmath\fi
|
|
\LaTeX\kern.15em2$_{\textstyle\varepsilon}$}}
|
|
%%% From File: ltfiles.dtx
|
|
\message{files,}
|
|
\newread\@inputcheck
|
|
\newwrite\@unused
|
|
\newwrite\@mainaux
|
|
\newwrite\@partaux
|
|
\newif\if@filesw \@fileswtrue
|
|
\newif\if@partsw \@partswfalse
|
|
\newcount\@clubpenalty
|
|
\@clubpenalty \clubpenalty
|
|
\def\document{\endgroup
|
|
\ifx\@unusedoptionlist\@empty\else
|
|
\@latex@warning@no@line{Unused global option(s):^^J%
|
|
\@spaces[\@unusedoptionlist]}%
|
|
\fi
|
|
\@colht\textheight
|
|
\@colroom\textheight \vsize\textheight
|
|
\columnwidth\textwidth
|
|
\@clubpenalty\clubpenalty
|
|
\if@twocolumn
|
|
\advance\columnwidth -\columnsep
|
|
\divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
|
|
\fi
|
|
\hsize\columnwidth \linewidth\hsize
|
|
\begingroup\@floatplacement\@dblfloatplacement
|
|
\makeatletter\let\@writefile\@gobbletwo
|
|
\global \let \@multiplelabels \relax
|
|
\@input{\jobname.aux}%
|
|
\endgroup
|
|
\if@filesw
|
|
\immediate\openout\@mainaux\jobname.aux
|
|
\immediate\write\@mainaux{\relax}%
|
|
\fi
|
|
\process@table
|
|
\let\glb@currsize\@empty % Force math initialization.
|
|
\normalsize
|
|
\everypar{}%
|
|
\ifx\normalsfcodes\@empty
|
|
\ifnum\sfcode`\.=\@m
|
|
\let\normalsfcodes\frenchspacing
|
|
\else
|
|
\let\normalsfcodes\nonfrenchspacing
|
|
\fi
|
|
\fi
|
|
\ifx\document@default@language\m@ne
|
|
\chardef\document@default@language\language
|
|
\fi
|
|
\@noskipsecfalse
|
|
\let \@refundefined \relax
|
|
\let\AtBeginDocument\@firstofone
|
|
\@begindocumenthook
|
|
\ifdim\topskip<1sp\global\topskip 1sp\relax\fi
|
|
\global\@maxdepth\maxdepth
|
|
\global\let\@begindocumenthook\@undefined
|
|
\ifx\@listfiles\@undefined
|
|
\global\let\@filelist\relax
|
|
\global\let\@addtofilelist\@gobble
|
|
\fi
|
|
\gdef\do##1{\global\let ##1\@notprerr}%
|
|
\@preamblecmds
|
|
\global\let \@nodocument \relax
|
|
\global\let\do\noexpand
|
|
\ignorespaces}
|
|
\@onlypreamble\document
|
|
\let\normalsfcodes\@empty
|
|
\def\nofiles{%
|
|
\@fileswfalse
|
|
\typeout{No auxiliary output files.^^J}%
|
|
\long\def\protected@write##1##2##3%
|
|
{\write\m@ne{}\if@nobreak\ifvmode\nobreak\fi\fi}%
|
|
\let\makeindex\relax
|
|
\let\makeglossary\relax}
|
|
\@onlypreamble\nofiles
|
|
\long\def \protected@write#1#2#3{%
|
|
\begingroup
|
|
\let\thepage\relax
|
|
#2%
|
|
\let\protect\@unexpandable@protect
|
|
\edef\reserved@a{\write#1{#3}}%
|
|
\reserved@a
|
|
\endgroup
|
|
\if@nobreak\ifvmode\nobreak\fi\fi
|
|
}
|
|
\let\@auxout=\@mainaux
|
|
\def\includeonly#1{%
|
|
\@partswtrue
|
|
\set@curr@file{\zap@space#1 \@empty}%
|
|
\let\@partlist\@curr@file
|
|
}
|
|
\@onlypreamble\includeonly
|
|
\def\include#1{\relax
|
|
\ifnum\@auxout=\@partaux
|
|
\@latex@error{\string\include\space cannot be nested}\@eha
|
|
\else
|
|
\set@curr@file{#1 }%
|
|
\expandafter\@include\@curr@file
|
|
\fi}
|
|
|
|
\def\@include#1 {%
|
|
\clearpage
|
|
\if@filesw
|
|
\immediate\write\@mainaux{\string\@input{#1.aux}}%
|
|
\fi
|
|
\@tempswatrue
|
|
\if@partsw
|
|
\@tempswafalse
|
|
\edef\reserved@b{#1}%
|
|
\@for\reserved@a:=\@partlist\do
|
|
{\ifx\reserved@a\reserved@b\@tempswatrue\fi}%
|
|
\fi
|
|
\if@tempswa
|
|
\let\@auxout\@partaux
|
|
\if@filesw
|
|
\immediate\openout\@partaux #1.aux
|
|
\immediate\write\@partaux{\relax}%
|
|
\fi
|
|
\@input@{#1.tex}%
|
|
\clearpage
|
|
\@writeckpt{#1}%
|
|
\if@filesw
|
|
\immediate\closeout\@partaux
|
|
\fi
|
|
\else
|
|
\deadcycles\z@
|
|
\@nameuse{cp@#1}%
|
|
\fi
|
|
\let\@auxout\@mainaux}
|
|
\def\@writeckpt#1{%
|
|
\if@filesw
|
|
\immediate\write\@partaux{\string\@setckpt{#1}\@charlb}%
|
|
{\let\@elt\@wckptelt \cl@@ckpt}%
|
|
\immediate\write\@partaux{\@charrb}%
|
|
\fi}
|
|
\def\@wckptelt#1{%
|
|
\immediate\write\@partaux{%
|
|
\string\setcounter{#1}{\the\@nameuse{c@#1}}}}
|
|
\def\@setckpt#1{\global\@namedef{cp@#1}}
|
|
{\catcode`[=1 \catcode`]=2
|
|
\catcode`{=11 \catcode`}=11
|
|
\gdef\@charlb[{]
|
|
\gdef\@charrb[}]
|
|
]% }brace matching
|
|
|
|
\def\set@curr@file#1{%
|
|
\begingroup
|
|
\escapechar\m@ne
|
|
\xdef\@curr@file{%
|
|
\expandafter\expandafter\expandafter\unquote@name
|
|
\expandafter\expandafter\expandafter{%
|
|
\expandafter\string
|
|
\csname\@firstofone#1\@empty\endcsname}}%
|
|
\endgroup
|
|
}
|
|
\def\quote@name#1{"\quote@@name#1\@gobble""}
|
|
\def\quote@@name#1"{#1\quote@@name}
|
|
\def\unquote@name#1{\quote@@name#1\@gobble"}
|
|
\DeclareRobustCommand\IfFileExists[1]{%
|
|
\set@curr@file{#1}%
|
|
\expandafter\IfFileExists@\expandafter{\@curr@file}}
|
|
\long\def \IfFileExists@#1#2#3{%
|
|
\openin\@inputcheck"#1" %
|
|
\ifeof\@inputcheck
|
|
\ifx\input@path\@undefined
|
|
\def\reserved@a{#3}%
|
|
\else
|
|
\def\reserved@a{\@iffileonpath{#1}{#2}{#3}}%
|
|
\fi
|
|
\else
|
|
\closein\@inputcheck
|
|
\edef\@filef@und{"#1" }%
|
|
\def\reserved@a{#2}%
|
|
\fi
|
|
\reserved@a}
|
|
\long\def\@iffileonpath#1{%
|
|
\let\reserved@a\@secondoftwo
|
|
\expandafter\@tfor\expandafter\reserved@b\expandafter
|
|
:\expandafter=\input@path\do{%
|
|
\openin\@inputcheck\expandafter\quote@name\expandafter{\reserved@b#1} %
|
|
\ifeof\@inputcheck\else
|
|
\edef\@filef@und{\expandafter\quote@name\expandafter{\reserved@b#1} }%
|
|
\let\reserved@a\@firstoftwo%
|
|
\closein\@inputcheck
|
|
\@break@tfor
|
|
\fi}%
|
|
\reserved@a}
|
|
\DeclareRobustCommand \InputIfFileExists[2]{%
|
|
\IfFileExists{#1}%
|
|
{%
|
|
\expandafter\@swaptwoargs\expandafter
|
|
{\@filef@und}{#2\@addtofilelist{#1}\@@input}}}
|
|
\long\def\@swaptwoargs#1#2{#2#1}
|
|
\def\input{\@ifnextchar\bgroup\@iinput\@@input}
|
|
\def\@iinput#1{%
|
|
\InputIfFileExists{#1}{}%
|
|
{\filename@parse\@curr@file
|
|
\edef\reserved@a{\noexpand\@missingfileerror
|
|
{\filename@area\filename@base}%
|
|
{\ifx\filename@ext\relax tex\else\filename@ext\fi}}%
|
|
\reserved@a}}
|
|
|
|
\def\@input#1{%
|
|
\IfFileExists{#1}{\@@input\@filef@und}{\typeout{No file #1.}}}
|
|
\def\@input@#1{\InputIfFileExists{#1}{}{\typeout{No file #1.}}}
|
|
\gdef\@missingfileerror#1#2{%
|
|
\typeout{^^J! LaTeX Error: File `#1.#2' not found.^^J^^J%
|
|
Type X to quit or <RETURN> to proceed,^^J%
|
|
or enter new name. (Default extension: #2)^^J}%
|
|
\message{Enter file name: }%
|
|
{\endlinechar\m@ne
|
|
\global\read\m@ne to\@gtempa}%
|
|
\ifx\@gtempa\@empty
|
|
\else
|
|
\def\reserved@a{x}\ifx\reserved@a\@gtempa\batchmode\@@end\fi
|
|
\def\reserved@a{X}\ifx\reserved@a\@gtempa\batchmode\@@end\fi
|
|
\filename@parse\@gtempa
|
|
\edef\filename@ext{%
|
|
\ifx\filename@ext\relax#2\else\filename@ext\fi}%
|
|
\edef\reserved@a{%
|
|
\noexpand\InputIfFileExists
|
|
{\filename@area\filename@base.\filename@ext}%
|
|
{}%
|
|
{\noexpand\@missingfileerror
|
|
{\filename@area\filename@base}{\filename@ext}}}%
|
|
\reserved@a
|
|
\fi}
|
|
\def\@obsoletefile#1#2{%
|
|
\@latex@warning@no@line{inputting `#1' instead of obsolete `#2'}}
|
|
\@onlypreamble\@obsoletefile
|
|
\let\@filelist\@gobble
|
|
\def\listfiles{%
|
|
\let\listfiles\relax
|
|
\def\@listfiles##1##2##3##4##5##6##7##8##9\@@{%
|
|
\def\reserved@d{\\}%
|
|
\@tfor\reserved@c:=##1##2##3##4##5##6##7##8\do{%
|
|
\ifx\reserved@c\reserved@d
|
|
\edef\filename@area{ \filename@area}%
|
|
\fi}}%
|
|
\def\@dofilelist{%
|
|
\typeout{^^J *File List*}%
|
|
\@for\@currname:=\@filelist\do{%
|
|
\filename@parse\@currname
|
|
\edef\reserved@a{%
|
|
\filename@base.%
|
|
\ifx\filename@ext\relax tex\else\filename@ext\fi}%
|
|
\expandafter\let\expandafter\reserved@b
|
|
\csname ver@\reserved@a\endcsname
|
|
\expandafter\expandafter\expandafter\@listfiles\expandafter
|
|
\filename@area\filename@base\\\\\\\\\\\\\\\\\\\@@
|
|
\typeout{%
|
|
\filename@area\reserved@a
|
|
\ifx\reserved@b\relax\else\@spaces\reserved@b\fi}}%
|
|
\typeout{ ***********^^J}}}
|
|
\@onlypreamble\listfiles
|
|
\let\@dofilelist\relax
|
|
%%% From File: ltoutenc.dtx
|
|
\message{font encodings,}
|
|
\def\DeclareTextCommand{%
|
|
\@dec@text@cmd\newcommand}
|
|
\def\ProvideTextCommand{%
|
|
\@dec@text@cmd\providecommand}
|
|
\def\@dec@text@cmd#1#2#3{%
|
|
\expandafter\def\expandafter#2%
|
|
\expandafter{%
|
|
\csname#3-cmd\expandafter\endcsname
|
|
\expandafter#2%
|
|
\csname#3\string#2\endcsname
|
|
}%
|
|
\let\@ifdefinable\@rc@ifdefinable
|
|
\expandafter#1\csname#3\string#2\endcsname}
|
|
\def\chardef@text@cmd{%
|
|
\let\@ifdefinable\@@ifdefinable
|
|
\chardef
|
|
}
|
|
\def\DeclareTextSymbol#1#2#3{%
|
|
\@dec@text@cmd\chardef@text@cmd#1{#2}#3\relax
|
|
}
|
|
\@onlypreamble\DeclareTextCommand
|
|
\@onlypreamble\DeclareTextSymbol
|
|
\def\@current@cmd#1{%
|
|
\ifx\protect\@typeset@protect
|
|
\@inmathwarn#1%
|
|
\else
|
|
\noexpand#1\expandafter\@gobble
|
|
\fi}
|
|
\def\@changed@cmd#1#2{%
|
|
\ifx\protect\@typeset@protect
|
|
\@inmathwarn#1%
|
|
\expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax
|
|
\expandafter\ifx\csname ?\string#1\endcsname\relax
|
|
\expandafter\def\csname ?\string#1\endcsname{%
|
|
\TextSymbolUnavailable#1%
|
|
}%
|
|
\fi
|
|
\global\expandafter\let
|
|
\csname\cf@encoding \string#1\expandafter\endcsname
|
|
\csname ?\string#1\endcsname
|
|
\fi
|
|
\csname\cf@encoding\string#1%
|
|
\expandafter\endcsname
|
|
\else
|
|
\noexpand#1%
|
|
\fi}
|
|
\gdef\TextSymbolUnavailable#1{%
|
|
\@latex@error{%
|
|
Command \protect#1 unavailable in encoding \cf@encoding%
|
|
}\@eha}
|
|
\def\@inmathwarn#1{%
|
|
\ifmmode
|
|
\@latex@warning{Command \protect#1 invalid in math mode}%
|
|
\fi}
|
|
\def\DeclareTextCommandDefault#1{%
|
|
\DeclareTextCommand#1?}
|
|
\def\ProvideTextCommandDefault#1{%
|
|
\ProvideTextCommand#1?}
|
|
\@onlypreamble\DeclareTextCommandDefault
|
|
\expandafter\let\csname?-cmd\endcsname\@changed@cmd
|
|
\def\DeclareTextAccent#1#2#3{%
|
|
\DeclareTextCommand#1{#2}{\add@accent{#3}}}
|
|
\@onlypreamble\DeclareTextAccent
|
|
\def\add@accent#1#2{\hmode@bgroup
|
|
\let\hmode@start@before@group\@firstofone
|
|
\setbox\@tempboxa\hbox{#2%
|
|
\global\mathchardef\accent@spacefactor\spacefactor}%
|
|
\let\maybe@load@fontshape\relax
|
|
\let\ignorespaces\relax
|
|
\accent#1 #2\egroup\spacefactor\accent@spacefactor}
|
|
\let\accent@spacefactor\relax
|
|
\def\hmode@bgroup{\leavevmode\bgroup}
|
|
\def\DeclareTextCompositeCommand#1#2#3#4{%
|
|
\expandafter\let\expandafter\reserved@a\csname#2\string#1\endcsname
|
|
\ifx\reserved@a\relax
|
|
\DeclareTextCommand#1{#2}{%
|
|
\@latex@error{\string#1 undeclared in encoding #2}\@eha}%
|
|
\@latex@info{Composite with undeclared \string#1 in encoding #2}%
|
|
\expandafter\let\expandafter\reserved@a\csname#2\string#1\endcsname
|
|
\fi
|
|
\expandafter\expandafter\expandafter\ifx
|
|
\expandafter\@car\reserved@a\relax\relax\@nil \@text@composite \else
|
|
\edef\reserved@b##1{%
|
|
\def\expandafter\noexpand
|
|
\csname#2\string#1\endcsname####1{%
|
|
\noexpand\@text@composite
|
|
\expandafter\noexpand\csname#2\string#1\endcsname
|
|
####1\noexpand\@empty\noexpand\@text@composite
|
|
{##1}}}%
|
|
\expandafter\reserved@b\expandafter{\reserved@a{##1}}%
|
|
\fi
|
|
\expandafter\def\csname\expandafter\string\csname
|
|
#2\endcsname\string#1-\string#3\@empty\endcsname{#4}%
|
|
}
|
|
\@onlypreamble\DeclareTextCompositeCommand
|
|
\def\@text@composite#1#2#3\@text@composite{%
|
|
\expandafter\@text@composite@x
|
|
\csname\string#1-\string#2\endcsname}
|
|
\def\@text@composite@x#1{%
|
|
\ifx#1\relax
|
|
\expandafter\@secondoftwo
|
|
\else
|
|
\expandafter\@firstoftwo
|
|
\fi
|
|
#1}
|
|
\catcode\z@=11\relax
|
|
\def\DeclareTextComposite#1#2#3#4{%
|
|
\def\reserved@a{\DeclareTextCompositeCommand#1{#2}{#3}}%
|
|
\bgroup
|
|
\lccode\z@#4%
|
|
\lowercase{%
|
|
\egroup
|
|
\reserved@a ^^@}}
|
|
\catcode\z@=15\relax
|
|
\@onlypreamble\DeclareTextComposite
|
|
\DeclareRobustCommand\UseTextAccent[3]{%
|
|
\hmode@start@before@group
|
|
{%
|
|
\let\hmode@start@before@group\@firstofone
|
|
\let\@curr@enc\cf@encoding
|
|
\@use@text@encoding{#1}%
|
|
#2{\@use@text@encoding\@curr@enc#3}%
|
|
}}
|
|
\DeclareRobustCommand\UseTextSymbol[2]{%
|
|
\hmode@start@before@group
|
|
{%
|
|
\def\@wrong@font@char{\MessageBreak
|
|
for \noexpand\symbol`\string#2'}%
|
|
\@use@text@encoding{#1}%
|
|
#2%
|
|
}%
|
|
}
|
|
\def\@use@text@encoding#1{%
|
|
\edef\f@encoding{#1}%
|
|
\xdef\font@name{%
|
|
\csname\curr@fontshape/\f@size\endcsname}%
|
|
\pickup@font
|
|
\font@name
|
|
\@@enc@update}
|
|
\let\hmode@start@before@group\leavevmode
|
|
\def\DeclareTextSymbolDefault#1#2{%
|
|
\DeclareTextCommandDefault#1{\UseTextSymbol{#2}#1}}
|
|
\def\DeclareTextAccentDefault#1#2{%
|
|
\DeclareTextCommandDefault#1{\UseTextAccent{#2}#1}}
|
|
\@onlypreamble\DeclareTextSymbolDefault
|
|
\@onlypreamble\DeclareTextAccentDefault
|
|
\def\UndeclareTextCommand#1#2{%
|
|
\expandafter\ifx\csname#2\string#1\endcsname\relax
|
|
\else
|
|
\global\expandafter\let\csname#2\string#1\endcsname
|
|
\@undefined
|
|
\expandafter\expandafter\expandafter
|
|
\ifx\expandafter\@thirdofthree#1\@undefined
|
|
\expandafter\gdef\expandafter#1\expandafter
|
|
{\csname ?-cmd\expandafter\endcsname\expandafter
|
|
#1\csname?\string#1\endcsname}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\@onlypreamble\UndeclareTextCommand
|
|
\def\@tabacckludge#1{\expandafter\@changed@cmd
|
|
\csname\string#1\endcsname\relax}
|
|
\let\a=\@tabacckludge
|
|
\DeclareTextAccentDefault{\"}{OT1}
|
|
\DeclareTextAccentDefault{\'}{OT1}
|
|
\DeclareTextAccentDefault{\.}{OT1}
|
|
\DeclareTextAccentDefault{\=}{OT1}
|
|
\DeclareTextAccentDefault{\H}{OT1}
|
|
\DeclareTextAccentDefault{\^}{OT1}
|
|
\DeclareTextAccentDefault{\`}{OT1}
|
|
\DeclareTextAccentDefault{\b}{OT1}
|
|
\DeclareTextAccentDefault{\c}{OT1}
|
|
\DeclareTextAccentDefault{\d}{OT1}
|
|
\DeclareTextAccentDefault{\r}{OT1}
|
|
\DeclareTextAccentDefault{\u}{OT1}
|
|
\DeclareTextAccentDefault{\v}{OT1}
|
|
\DeclareTextAccentDefault{\~}{OT1}
|
|
\DeclareTextSymbolDefault{\AE}{OT1}
|
|
\DeclareTextSymbolDefault{\L}{OT1}
|
|
\DeclareTextSymbolDefault{\OE}{OT1}
|
|
\DeclareTextSymbolDefault{\O}{OT1}
|
|
\DeclareTextSymbolDefault{\ae}{OT1}
|
|
\DeclareTextSymbolDefault{\i}{OT1}
|
|
\DeclareTextSymbolDefault{\j}{OT1}
|
|
\DeclareTextSymbolDefault{\ij}{OT1}
|
|
\DeclareTextSymbolDefault{\IJ}{OT1}
|
|
\DeclareTextSymbolDefault{\l}{OT1}
|
|
\DeclareTextSymbolDefault{\oe}{OT1}
|
|
\DeclareTextSymbolDefault{\o}{OT1}
|
|
\DeclareTextSymbolDefault{\ss}{OT1}
|
|
\DeclareTextSymbolDefault{\textdollar}{OT1}
|
|
\DeclareTextSymbolDefault{\textemdash}{OT1}
|
|
\DeclareTextSymbolDefault{\textendash}{OT1}
|
|
\DeclareTextSymbolDefault{\textexclamdown}{OT1}
|
|
\DeclareTextSymbolDefault{\textquestiondown}{OT1}
|
|
\DeclareTextSymbolDefault{\textquotedblleft}{OT1}
|
|
\DeclareTextSymbolDefault{\textquotedblright}{OT1}
|
|
\DeclareTextSymbolDefault{\textquoteleft}{OT1}
|
|
\DeclareTextSymbolDefault{\textquoteright}{OT1}
|
|
\DeclareTextSymbolDefault{\textsterling}{OT1}
|
|
\DeclareTextSymbolDefault{\textasteriskcentered}{OMS}
|
|
\DeclareTextSymbolDefault{\textbackslash}{OMS}
|
|
\DeclareTextSymbolDefault{\textbar}{OMS}
|
|
\DeclareTextSymbolDefault{\textbardbl}{OMS}
|
|
\DeclareTextSymbolDefault{\textbraceleft}{OMS}
|
|
\DeclareTextSymbolDefault{\textbraceright}{OMS}
|
|
\DeclareTextSymbolDefault{\textbullet}{OMS}
|
|
\DeclareTextSymbolDefault{\textdaggerdbl}{OMS}
|
|
\DeclareTextSymbolDefault{\textdagger}{OMS}
|
|
\DeclareTextSymbolDefault{\textparagraph}{OMS}
|
|
\DeclareTextSymbolDefault{\textperiodcentered}{OMS}
|
|
\DeclareTextSymbolDefault{\textsection}{OMS}
|
|
\DeclareTextAccentDefault{\textcircled}{OMS}
|
|
\DeclareTextSymbolDefault{\textless}{OML}
|
|
\DeclareTextSymbolDefault{\textgreater}{OML}
|
|
\DeclareTextAccentDefault{\t}{OML}
|
|
\DeclareTextCommandDefault{\textcopyright}{\textcircled{c}}
|
|
\DeclareTextCommandDefault{\textasciicircum}{\^{}}
|
|
\DeclareTextCommandDefault{\textasciitilde}{\~{}}
|
|
\DeclareTextCommandDefault{\textunderscore}{%
|
|
\leavevmode \kern.06em\vbox{\hrule\@width.3em}}
|
|
\DeclareTextSymbolDefault{\textcompwordmark}{T1}
|
|
\DeclareTextCommandDefault{\textvisiblespace}{%
|
|
\mbox{\kern.06em\vrule \@height.3ex}%
|
|
\vbox{\hrule \@width.3em}%
|
|
\hbox{\vrule \@height.3ex}}
|
|
\DeclareTextCommandDefault{\textellipsis}{%
|
|
.\kern\fontdimen3\font
|
|
.\kern\fontdimen3\font
|
|
.\kern\fontdimen3\font}
|
|
\DeclareTextCommandDefault{\textregistered}{\textcircled{%
|
|
\check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}}
|
|
\DeclareTextCommandDefault{\texttrademark}{\textsuperscript{TM}}
|
|
\DeclareTextCommandDefault{\SS}{SS}
|
|
\DeclareTextCommandDefault{\textordfeminine}{\textsuperscript{a}}
|
|
\DeclareTextCommandDefault{\textordmasculine}{\textsuperscript{o}}
|
|
\DeclareRobustCommand{\$}{\ifmmode\mathdollar\else\textdollar\fi}
|
|
\protected\def\{{\ifmmode\lbrace\else\textbraceleft\fi}
|
|
\protected\def\}{\ifmmode\rbrace\else\textbraceright\fi}
|
|
\DeclareRobustCommand{\P}{\ifmmode\mathparagraph\else\textparagraph\fi}
|
|
\DeclareRobustCommand{\S}{\ifmmode\mathsection\else\textsection\fi}
|
|
\DeclareRobustCommand{\dag}{\ifmmode{\dagger}\else\textdagger\fi}
|
|
\DeclareRobustCommand{\ddag}{\ifmmode{\ddagger}\else\textdaggerdbl\fi}
|
|
\DeclareRobustCommand{\_}{%
|
|
\ifmmode\nfss@text{\textunderscore}\else\textunderscore\fi}
|
|
\DeclareRobustCommand{\copyright}{%
|
|
\ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi}
|
|
\DeclareRobustCommand{\pounds}{%
|
|
\ifmmode\mathsterling\else\textsterling\fi}
|
|
\DeclareRobustCommand{\dots}{%
|
|
\ifmmode\mathellipsis\else\textellipsis\fi}
|
|
\let\ldots\dots
|
|
\DeclareTextCommandDefault\textcommabelow[1]
|
|
{\hmode@bgroup\ooalign{\null#1\crcr\hidewidth\raise-.31ex
|
|
\hbox{\check@mathfonts\fontsize\ssf@size\z@
|
|
\math@fontsfalse\selectfont,}\hidewidth}\egroup}
|
|
\DeclareTextCommandDefault\textcommaabove[1]{%
|
|
\hmode@bgroup
|
|
\ooalign{%
|
|
\hidewidth
|
|
\raise.7ex\hbox{%
|
|
\check@mathfonts\fontsize\ssf@size\z@\math@fontsfalse\selectfont`%
|
|
}%
|
|
\hidewidth\crcr
|
|
\null#1\crcr
|
|
}%
|
|
\egroup
|
|
}
|
|
%%% From File: ltcounts.dtx
|
|
|
|
\def\setcounter#1#2{%
|
|
\@ifundefined{c@#1}%
|
|
{\@nocounterr{#1}}%
|
|
{\global\csname c@#1\endcsname#2\relax}}
|
|
\def\addtocounter#1#2{%
|
|
\@ifundefined{c@#1}%
|
|
{\@nocounterr{#1}}%
|
|
{\global\advance\csname c@#1\endcsname #2\relax}}
|
|
\def\newcounter#1{%
|
|
\expandafter\@ifdefinable \csname c@#1\endcsname
|
|
{\@definecounter{#1}}%
|
|
\@ifnextchar[{\@newctr{#1}}{}}
|
|
\def\value#1{\csname c@#1\endcsname}
|
|
\def\@newctr#1[#2]{%
|
|
\@ifundefined{c@#2}{\@nocounterr{#2}}{\@addtoreset{#1}{#2}}}
|
|
\def\stepcounter#1{%
|
|
\addtocounter{#1}\@ne
|
|
\begingroup
|
|
\let\@elt\@stpelt
|
|
\csname cl@#1\endcsname
|
|
\endgroup}
|
|
\def\@stpelt#1{\global\csname c@#1\endcsname \m@ne\stepcounter{#1}}%
|
|
\def\cl@@ckpt{\@elt{page}}
|
|
\def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname
|
|
\setcounter{#1}\z@
|
|
\global\expandafter\let\csname cl@#1\endcsname\@empty
|
|
\@addtoreset{#1}{@ckpt}%
|
|
\global\expandafter\let\csname p@#1\endcsname\@empty
|
|
\expandafter
|
|
\gdef\csname the#1\expandafter\endcsname\expandafter
|
|
{\expandafter\@arabic\csname c@#1\endcsname}}
|
|
\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}}
|
|
\def\@removefromreset#1#2{%
|
|
\@ifundefined{c@#2}\relax
|
|
{\begingroup
|
|
\expandafter\let\csname c@#1\endcsname\@removefromreset
|
|
\def\@elt##1{%
|
|
\expandafter\ifx\csname c@##1\endcsname\@removefromreset
|
|
\else
|
|
\noexpand\@elt{##1}%
|
|
\fi}%
|
|
\expandafter\xdef\csname cl@#2\endcsname
|
|
{\csname cl@#2\endcsname}%
|
|
\endgroup}}
|
|
|
|
\def\@ifbothcounters#1#2#3{%
|
|
\@ifundefined{c@#1}{\@nocounterr{#1}}%
|
|
{% else counter is defined
|
|
\@ifundefined{c@#2}{\@nocounterr{#2}}%
|
|
{% else both counter and within are defined
|
|
#3}}}
|
|
|
|
\def\counterwithout {\@ifstar\counterwithout@s\counterwithout@x}
|
|
\def\counterwithout@s#1#2{%
|
|
\@ifbothcounters{#1}{#2}{\@removefromreset{#1}{#2}}}
|
|
\def\counterwithout@x#1#2{%
|
|
\@ifbothcounters{#1}{#2}%
|
|
{\@removefromreset{#1}{#2}%
|
|
\expandafter
|
|
\gdef\csname the#1\expandafter\endcsname\expandafter
|
|
{\expandafter
|
|
\@arabic\csname c@#1\endcsname}}}
|
|
|
|
\def\counterwithin{\@ifstar\counterwithin@s\counterwithin@x}
|
|
\def\counterwithin@s#1#2{%
|
|
\@ifbothcounters{#1}{#2}{\@addtoreset{#1}{#2}}}
|
|
\def\counterwithin@x#1#2{%
|
|
\@ifbothcounters{#1}{#2}%
|
|
{\@addtoreset{#1}{#2}%
|
|
\expandafter
|
|
\gdef\csname the#1\expandafter\endcsname\expandafter
|
|
{\csname the#2\expandafter\endcsname\expandafter
|
|
.\expandafter
|
|
\@arabic\csname c@#1\endcsname}}}
|
|
|
|
\def\arabic#1{\expandafter\@arabic\csname c@#1\endcsname}
|
|
\def\roman#1{\expandafter\@roman\csname c@#1\endcsname}
|
|
\def\Roman#1{\expandafter\@Roman\csname c@#1\endcsname}
|
|
\def\alph#1{\expandafter\@alph\csname c@#1\endcsname}
|
|
\def\Alph#1{\expandafter\@Alph\csname c@#1\endcsname}
|
|
\def\fnsymbol#1{\expandafter\@fnsymbol\csname c@#1\endcsname}
|
|
\def\@arabic#1{\number #1} %% changed 29 Apr 86
|
|
\def\@roman#1{\romannumeral #1}
|
|
|
|
\def\@Roman#1{\expandafter\@slowromancap\romannumeral #1@}
|
|
\def\@slowromancap#1{\ifx @#1% then terminate
|
|
\else
|
|
\if i#1I\else\if v#1V\else\if x#1X\else\if l#1L\else\if
|
|
c#1C\else\if d#1D\else \if m#1M\else#1\fi\fi\fi\fi\fi\fi\fi
|
|
\expandafter\@slowromancap
|
|
\fi
|
|
}
|
|
\def\@alph#1{%
|
|
\ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
|
|
k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
|
|
y\or z\else\@ctrerr\fi}
|
|
\def\@Alph#1{%
|
|
\ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
|
|
K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or
|
|
Y\or Z\else\@ctrerr\fi}
|
|
\def\@fnsymbol#1{%
|
|
\ifcase#1\or \TextOrMath\textasteriskcentered *\or
|
|
\TextOrMath \textdagger \dagger\or
|
|
\TextOrMath \textdaggerdbl \ddagger \or
|
|
\TextOrMath \textsection \mathsection\or
|
|
\TextOrMath \textparagraph \mathparagraph\or
|
|
\TextOrMath \textbardbl \|\or
|
|
\TextOrMath {\textasteriskcentered\textasteriskcentered}{**}\or
|
|
\TextOrMath {\textdagger\textdagger}{\dagger\dagger}\or
|
|
\TextOrMath {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger}\else
|
|
\@ctrerr \fi
|
|
}%
|
|
\begingroup\expandafter\expandafter\expandafter\endgroup
|
|
\expandafter\ifx\csname protected\endcsname\relax
|
|
\DeclareRobustCommand\TextOrMath{%
|
|
\ifmmode \expandafter\@secondoftwo
|
|
\else \expandafter\@firstoftwo \fi}
|
|
\protected@edef\TextOrMath#1#2{\TextOrMath{#1}{#2}}
|
|
\else
|
|
\protected\expandafter\def\csname TextOrMath\space\endcsname{%
|
|
\ifmmode \expandafter\@secondoftwo
|
|
\else \expandafter\@firstoftwo \fi}
|
|
\edef\TextOrMath#1#2{%
|
|
\expandafter\noexpand\csname TextOrMath\space\endcsname
|
|
{#1}{#2}}
|
|
\fi
|
|
%%% From File: ltlength.dtx
|
|
\message{lengths,}
|
|
\def\newlength#1{\@ifdefinable#1{\newskip#1}}
|
|
\def\setlength#1#2{#1 #2\relax}
|
|
\def\addtolength#1#2{\advance#1 #2\relax}
|
|
\def\@settodim#1#2#3{\setbox\@tempboxa\hbox{{#3}}#2#1\@tempboxa
|
|
\setbox\@tempboxa\box\voidb@x}
|
|
\DeclareRobustCommand\settoheight{\@settodim\ht}
|
|
\DeclareRobustCommand\settodepth {\@settodim\dp}
|
|
\DeclareRobustCommand\settowidth {\@settodim\wd}
|
|
\def\@settopoint#1{\divide#1\p@\multiply#1\p@}
|
|
%%% From File: ltfssbas.dtx
|
|
%% Copyright (C) 1989-2002 Frank Mittelbach and Rainer Sch\"opf
|
|
\def\@nomath#1{\relax\ifmmode
|
|
\@font@warning{Command \noexpand#1invalid in math mode}\fi}
|
|
\gdef\no@alphabet@error#1{\relax \ifmmode
|
|
\@latex@error{Math\space alphabet\space identifier\space
|
|
\noexpand#1is\space undefined\space in\space math\space
|
|
version\space `\math@version'}%
|
|
{Your\space requested\space math\space alphabet\space
|
|
is\space undefined\space in\space the\space current\space
|
|
math\space version.^^JCheck\space the\space spelling\space
|
|
or\space use\space the\space \noexpand\SetMathAlphabet\space
|
|
command.}
|
|
\fi}
|
|
\let\mathgroup\fam
|
|
\@onlypreamble\new@mathgroup
|
|
\def\DeclareFontShape{\begingroup
|
|
\nfss@catcodes
|
|
\expandafter\endgroup
|
|
\DeclareFontShape@}
|
|
\def\DeclareFontShape@#1#2#3#4#5#6{%
|
|
\expandafter\ifx\csname #1+#2\endcsname\relax
|
|
\@latex@error{Font family `#1+#2' unknown}\@eha
|
|
\else
|
|
\edef\reserved@a{#3}%
|
|
\expandafter\series@maybe@drop@one@m\expandafter{#3}\reserved@b
|
|
\ifx\reserved@a\reserved@b\else
|
|
\@latex@warning{Font shape declaration has incorrect series
|
|
value `#3'.\MessageBreak It should not contain an `m'!
|
|
Please correct it.\MessageBreak Found}%
|
|
\fi
|
|
\expandafter
|
|
\xdef\csname#1/#2/\reserved@b/#4\endcsname
|
|
{\expandafter\noexpand\csname #5\endcsname}%
|
|
\def\reserved@a{#6}%
|
|
\global
|
|
\expandafter\let\csname#5\expandafter\endcsname
|
|
\ifx\reserved@a\@empty
|
|
\@empty
|
|
\else
|
|
\reserved@a
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\DeclareFixedFont#1#2#3#4#5#6{%
|
|
\begingroup
|
|
\math@fontsfalse
|
|
\every@math@size{}%
|
|
\fontsize{#6}\z@
|
|
\usefont{#2}{#3}{#4}{#5}%
|
|
\global\expandafter\let\expandafter#1\the\font
|
|
\endgroup
|
|
}
|
|
\def\do@subst@correction{%
|
|
\xdef\subst@correction{%
|
|
\font@name
|
|
\global\expandafter\font
|
|
\csname \curr@fontshape/\f@size\endcsname
|
|
\noexpand\fontname\font
|
|
\relax}%
|
|
\aftergroup\subst@correction
|
|
}
|
|
\def\DeclareFontFamily#1#2#3{%
|
|
\@ifundefined{T@#1}%
|
|
{%
|
|
\@latex@error{Encoding scheme `#1' unknown}\@eha
|
|
}%
|
|
{%
|
|
\def\reserved@a{#3}%
|
|
\global
|
|
\expandafter\let\csname #1+#2\expandafter\endcsname
|
|
\ifx \reserved@a\@empty
|
|
\@empty
|
|
\else \reserved@a
|
|
\fi
|
|
}%
|
|
}
|
|
\let\cdp@list\@empty
|
|
\@onlypreamble\cdp@list
|
|
\let\cdp@elt\relax
|
|
\@onlypreamble\cdp@elt
|
|
\def\DeclareFontEncoding{%
|
|
\begingroup
|
|
\nfss@catcodes
|
|
\expandafter\endgroup
|
|
\DeclareFontEncoding@}
|
|
\@onlypreamble\DeclareFontEncoding
|
|
\def\DeclareFontEncoding@#1#2#3{%
|
|
\expandafter
|
|
\ifx\csname T@#1\endcsname\relax
|
|
\def\cdp@elt{\noexpand\cdp@elt}%
|
|
\xdef\cdp@list{\cdp@list\cdp@elt{#1}%
|
|
{\default@family}{\default@series}%
|
|
{\default@shape}}%
|
|
\expandafter\let\csname#1-cmd\endcsname\@changed@cmd
|
|
\else
|
|
\@font@info{Redeclaring font encoding #1}%
|
|
\fi
|
|
\global\@namedef{T@#1}{#2}%
|
|
\global\@namedef{M@#1}{\default@M#3}%
|
|
\xdef\LastDeclaredEncoding{#1}%
|
|
}
|
|
\@onlypreamble\DeclareFontEncoding@
|
|
\def\LastDeclaredEncoding{}
|
|
\def\DeclareFontSubstitution#1#2#3#4{%
|
|
\expandafter
|
|
\ifx\csname T@#1\endcsname\relax
|
|
\@latex@error{Encoding scheme `#1' unknown}\@eha
|
|
\else
|
|
\begingroup
|
|
\edef\reserved@a{#1}%
|
|
\toks@{}%
|
|
\def\cdp@elt##1##2##3##4{%
|
|
\def\reserved@b{##1}%
|
|
\ifx\reserved@a\reserved@b
|
|
\addto@hook\toks@{\cdp@elt{##1}{#2}{#3}{#4}}%
|
|
\else
|
|
\addto@hook\toks@{\cdp@elt{##1}{##2}{##3}{##4}}%
|
|
\fi}%
|
|
\cdp@list
|
|
\xdef\cdp@list{\the\toks@}%
|
|
\endgroup
|
|
\global
|
|
\@namedef{D@#1}{%
|
|
\def\default@family{#2}%
|
|
\def\default@series{#3}%
|
|
\def\default@shape{#4}%
|
|
}%
|
|
\fi
|
|
}
|
|
\@onlypreamble\DeclareFontSubstitution
|
|
\def\DeclareFontEncodingDefaults#1#2{%
|
|
\ifx\relax#1\else
|
|
\ifx\default@T\@empty\else
|
|
\@font@info{Overwriting encoding scheme text defaults}%
|
|
\fi
|
|
\gdef\default@T{#1}%
|
|
\fi
|
|
\ifx\relax#2\else
|
|
\ifx\default@M\@empty\else
|
|
\@font@info{Overwriting encoding scheme math defaults}%
|
|
\fi
|
|
\gdef\default@M{#2}%
|
|
\fi
|
|
}
|
|
\@onlypreamble\DeclareFontEncodingDefaults
|
|
\let\default@T\@empty
|
|
\let\default@M\@empty
|
|
\def\DeclarePreloadSizes#1#2#3#4#5{%
|
|
\@ifundefined{T@#1}%
|
|
{\@latex@error{Encoding scheme `#1' unknown}\@eha}%
|
|
{%
|
|
\begingroup
|
|
\def\reserved@f##1,{%
|
|
\if>##1>%
|
|
\let\reserved@f\relax
|
|
\else
|
|
\xdef\font@name{\csname#1/#2/#3/#4/##1\endcsname}%
|
|
\pickup@font
|
|
\global\expandafter\let\font@name\relax
|
|
\fi
|
|
\reserved@f}%
|
|
\reserved@f#5,,%
|
|
\endgroup
|
|
}%
|
|
}
|
|
\@onlypreamble\DeclarePreloadSizes
|
|
\newif\ifmath@fonts \math@fontstrue
|
|
\def\DeclareMathSizes{%
|
|
\@ifstar{\@DeclareMathSizes\math@fontsfalse}%
|
|
{\@DeclareMathSizes{}}}
|
|
\@onlypreamble\DeclareMathSizes
|
|
\def\@DeclareMathSizes #1#2#3#4#5{%
|
|
\@defaultunits\dimen@ #2pt\relax\@nnil
|
|
\if $#3$%
|
|
\expandafter\let\csname S@\strip@pt\dimen@\endcsname\math@fontsfalse
|
|
\else
|
|
\@defaultunits\dimen@ii #3pt\relax\@nnil
|
|
\@defaultunits\@tempdima #4pt\relax\@nnil
|
|
\@defaultunits\@tempdimb #5pt\relax\@nnil
|
|
\toks@{#1}%
|
|
\expandafter\xdef\csname S@\strip@pt\dimen@\endcsname{%
|
|
\gdef\noexpand\tf@size{\strip@pt\dimen@ii}%
|
|
\gdef\noexpand\sf@size{\strip@pt\@tempdima}%
|
|
\gdef\noexpand\ssf@size{\strip@pt\@tempdimb}%
|
|
\the\toks@
|
|
}%
|
|
\fi
|
|
}%
|
|
\@onlypreamble\@DeclareMathSizes
|
|
\DeclareRobustCommand\fontencoding[1]{%
|
|
\expandafter\ifx\csname T@#1\endcsname\relax
|
|
\@latex@error{Encoding scheme `#1' unknown}\@eha
|
|
\else
|
|
\edef\f@encoding{#1}%
|
|
\ifx\cf@encoding\f@encoding
|
|
\let\enc@update\relax
|
|
\else
|
|
\let\enc@update\@@enc@update
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\@@enc@update{%
|
|
\expandafter
|
|
\let
|
|
\csname\cf@encoding -cmd\endcsname
|
|
\@changed@cmd
|
|
\expandafter
|
|
\let
|
|
\csname\f@encoding-cmd\endcsname
|
|
\@current@cmd
|
|
\default@T
|
|
\csname T@\f@encoding\endcsname
|
|
\csname D@\f@encoding\endcsname
|
|
\let\enc@update\relax
|
|
\let\cf@encoding\f@encoding
|
|
}
|
|
\let\enc@update\relax
|
|
\DeclareRobustCommand\fontfamily[1]{\edef\f@family{#1}}
|
|
\DeclareRobustCommand\usefont[4]{\fontencoding{#1}%
|
|
\edef\f@family{#2}%
|
|
\edef\f@series{#3}%
|
|
\edef\f@shape{#4}\selectfont
|
|
\ignorespaces}
|
|
\DeclareRobustCommand\linespread[1]
|
|
{\set@fontsize{#1}\f@size\f@baselineskip}
|
|
\DeclareRobustCommand\fontsize[2]
|
|
{\set@fontsize\baselinestretch{#1}{#2}}
|
|
\let\f@family\@empty
|
|
\let\f@series\@empty
|
|
\let\f@shape\@empty
|
|
\let\f@size\@empty
|
|
\let\f@baselineskip\@empty
|
|
\let\f@linespread\@empty
|
|
\let\f@encoding\@empty
|
|
\let\cf@encoding\@empty
|
|
\def\@defaultunits{\afterassignment\remove@to@nnil}
|
|
\begingroup
|
|
\catcode`P=12
|
|
\catcode`T=12
|
|
\lowercase{
|
|
\def\x{\def\rem@pt##1.##2PT{##1\ifnum##2>\z@.##2\fi}}}
|
|
\expandafter\endgroup\x
|
|
\def\strip@pt{\expandafter\rem@pt\the}
|
|
\DeclareRobustCommand\mathversion[1]
|
|
{\@nomath\mathversion
|
|
\expandafter\ifx\csname mv@#1\endcsname\relax
|
|
\@latex@error{Math version `#1' is not defined}\@eha\else
|
|
\edef\math@version{#1}%
|
|
\gdef\glb@currsize{}%
|
|
\aftergroup\glb@settings
|
|
\fi}
|
|
\let\frozen@everymath\everymath
|
|
\let\frozen@everydisplay\everydisplay
|
|
\newtoks\everymath
|
|
\newtoks\everydisplay
|
|
\frozen@everymath = {\check@mathfonts
|
|
\the\everymath}
|
|
\frozen@everydisplay = {\check@mathfonts
|
|
\the\everydisplay}
|
|
\let\curr@math@size\@empty
|
|
\def\pickup@font{%
|
|
\expandafter \ifx \font@name \relax
|
|
\define@newfont
|
|
\fi}
|
|
{\catcode`\/=12
|
|
\gdef\split@name#1/#2/#3/#4/#5\@nil{\def\f@encoding{#1}%
|
|
\def\f@family{#2}%
|
|
\def\f@series{#3}%
|
|
\def\f@shape{#4}%
|
|
\def\f@size{#5}}}
|
|
\def\curr@fontshape{\f@encoding/\f@family/\f@series/\f@shape}
|
|
\def\define@newfont{%
|
|
\begingroup
|
|
\let\typeout\@font@info
|
|
\escapechar\m@ne
|
|
\expandafter\expandafter\expandafter
|
|
\split@name\expandafter\string\font@name\@nil
|
|
\try@load@fontshape % try always
|
|
\expandafter\ifx
|
|
\csname\curr@fontshape\endcsname \relax
|
|
\wrong@fontshape\else
|
|
\extract@font\fi
|
|
\endgroup}
|
|
\def\try@load@fontshape{%
|
|
\expandafter
|
|
\ifx\csname \f@encoding+\f@family\endcsname\relax
|
|
\@font@info{Trying to load font information for
|
|
\f@encoding+\f@family}%
|
|
\global\expandafter\let
|
|
\csname\f@encoding+\f@family\endcsname\@empty
|
|
\nfss@catcodes
|
|
\let\nfss@catcodes\relax
|
|
\edef\reserved@a{%
|
|
\lowercase{%
|
|
\noexpand\InputIfFileExists{\f@encoding\f@family.fd}}}%
|
|
\reserved@a\relax
|
|
{\@input@{\f@encoding\f@family.fd}}%
|
|
\fi}
|
|
\def\nfss@catcodes{%
|
|
\makeatletter
|
|
\catcode`\ 9%
|
|
\catcode`\^^I9%
|
|
\catcode`\^^M9%
|
|
\catcode`\\\z@
|
|
\catcode`\{\@ne
|
|
\catcode`\}\tw@
|
|
\catcode`\#6%
|
|
\catcode`\^7%
|
|
\catcode`\%14%
|
|
\@makeother\<%
|
|
\@makeother\>%
|
|
\@makeother\*%
|
|
\@makeother\.%
|
|
\@makeother\-%
|
|
\@makeother\/%
|
|
\@makeother\[%
|
|
\@makeother\]%
|
|
\@makeother\`%
|
|
\@makeother\'%
|
|
\@makeother\"%
|
|
}
|
|
\def\LoadFontDefinitionFile#1#2{%
|
|
\begingroup
|
|
\edef\f@encoding{#1}%
|
|
\edef\f@family{#2}%
|
|
\try@load@fontshape
|
|
\endgroup
|
|
}
|
|
|
|
\begingroup
|
|
\nfss@catcodes
|
|
\gdef\DeclareFontFamilySubstitution#1#2#3{%
|
|
\LoadFontDefinitionFile{#1}{#2}%
|
|
\LoadFontDefinitionFile{#1}{#3}%
|
|
\DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}%
|
|
\DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}%
|
|
\DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}%
|
|
\DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}%
|
|
\DeclareFontShape{#1}{#2}{m}{sw}{<->ssub * #3/m/sw}{}%
|
|
\DeclareFontShape{#1}{#2}{m}{scit}{<->ssub * #3/m/scit}{}%
|
|
\DeclareFontShape{#1}{#2}{m}{scsl}{<->ssub * #3/m/scsl}{}%
|
|
\DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/b/it}{}%
|
|
\DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/b/n}{}%
|
|
\DeclareFontShape{#1}{#2}{b}{scit}{<->ssub * #3/b/scit}{}%
|
|
\DeclareFontShape{#1}{#2}{b}{scsl}{<->ssub * #3/b/scsl}{}%
|
|
\DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/b/sc}{}%
|
|
\DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/b/sl}{}%
|
|
\DeclareFontShape{#1}{#2}{b}{sw}{<->ssub * #3/b/sw}{}%
|
|
\DeclareFontShape{#1}{#2}{bx}{it}{<->ssub * #3/bx/it}{}%
|
|
\DeclareFontShape{#1}{#2}{bx}{n}{<->ssub * #3/bx/n}{}%
|
|
\DeclareFontShape{#1}{#2}{bx}{scit}{<->ssub * #3/bx/scit}{}%
|
|
\DeclareFontShape{#1}{#2}{bx}{scsl}{<->ssub * #3/bx/scsl}{}%
|
|
\DeclareFontShape{#1}{#2}{bx}{sc}{<->ssub * #3/bx/sc}{}%
|
|
\DeclareFontShape{#1}{#2}{bx}{sl}{<->ssub * #3/bx/sl}{}%
|
|
\DeclareFontShape{#1}{#2}{bx}{sw}{<->ssub * #3/bx/sw}{}%
|
|
}
|
|
\endgroup
|
|
\def\DeclareErrorFont#1#2#3#4#5{%
|
|
\xdef\error@fontshape{%
|
|
\noexpand\expandafter\noexpand\split@name\noexpand\string
|
|
\expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
|
|
\noexpand\@nil}%
|
|
\gdef\default@family{#2}%
|
|
\gdef\default@series{#3}%
|
|
\gdef\default@shape{#4}%
|
|
}
|
|
\@onlypreamble\DeclareErrorFont
|
|
\def\wrong@fontshape{%
|
|
\csname D@\f@encoding\endcsname % install defaults if in math
|
|
\edef\reserved@a{\csname\curr@fontshape\endcsname}%
|
|
\ifx\last@fontshape\reserved@a
|
|
\errmessage{Corrupted NFSS tables}%
|
|
\error@fontshape
|
|
\else
|
|
\let\f@shape\default@shape
|
|
\expandafter\ifx\csname\curr@fontshape\endcsname\relax
|
|
\let\f@series\default@series
|
|
\expandafter
|
|
\ifx\csname\curr@fontshape\endcsname\relax
|
|
\let\f@family\default@family
|
|
\begingroup
|
|
\try@load@fontshape
|
|
\endgroup
|
|
\fi \fi
|
|
\fi
|
|
\@font@warning{Font shape `\expandafter\string\reserved@a'
|
|
\expandafter\@gobble\string\@undefined\MessageBreak
|
|
using `\curr@fontshape' instead\@wrong@font@char}%
|
|
\global\let\last@fontshape\reserved@a
|
|
\gdef\@defaultsubs{%
|
|
\@font@warning{Some font shapes were not available, defaults
|
|
substituted.\@gobbletwo}}%
|
|
\global\expandafter\expandafter\expandafter\let
|
|
\expandafter\reserved@a
|
|
\csname\curr@fontshape\endcsname
|
|
\xdef\font@name{%
|
|
\csname\curr@fontshape/\f@size\endcsname}%
|
|
\pickup@font}
|
|
\let\@wrong@font@char\@empty
|
|
\let\@defaultsubs\relax
|
|
\def\strip@prefix#1>{}
|
|
\let\install@mathalphabet\gdef
|
|
\let\math@fonts\@empty
|
|
\def\extract@alph@from@version#1#2#3{%
|
|
\def\reserved@a##1\install@mathalphabet#3##2##3\@nil{%
|
|
\def\reserved@b{##2}%
|
|
\def\reserved@c####1{\gdef#1{##1####1##3}}}%
|
|
\expandafter\reserved@a#1\@nil
|
|
\def\reserved@a\select@group#3##1##2\@nil{%
|
|
\reserved@c{%
|
|
\getanddefine@fonts{#2}##2%
|
|
\install@mathalphabet#3{%
|
|
\relax\ifmmode \else \non@alpherr#3\fi
|
|
\use@mathgroup##1{#2}}}%
|
|
\gdef#3{\relax\ifmmode \else \non@alpherr#3\fi
|
|
\use@mathgroup##1{#2}}}%
|
|
\expandafter\reserved@a\reserved@b\@nil
|
|
}
|
|
\let\math@bgroup\bgroup
|
|
\def\math@egroup#1{#1\egroup}
|
|
\gdef\calculate@math@sizes{%
|
|
\@font@info{Calculating\space math\space sizes\space for\space
|
|
size\space <\f@size>}%
|
|
\dimen@\f@size \p@
|
|
\@tempdimb \defaultscriptratio \dimen@
|
|
\dimen@ \defaultscriptscriptratio \dimen@
|
|
\expandafter\xdef\csname S@\f@size\endcsname{%
|
|
\gdef\noexpand\tf@size{\f@size}%
|
|
\gdef\noexpand\sf@size{\strip@pt\@tempdimb}%
|
|
\gdef\noexpand\ssf@size{\strip@pt\dimen@}%
|
|
\noexpand\math@fontstrue}}
|
|
\def\defaultscriptratio{.7}
|
|
\def\defaultscriptscriptratio{.5}
|
|
\ifx\noaccents@\@undefined
|
|
\let\noaccents@\@empty
|
|
\fi
|
|
\ifx\XeTeXcharclass\@undefined
|
|
\DeclareRobustCommand\showhyphens[1]{%
|
|
\setbox0\vbox{%
|
|
\color@begingroup
|
|
\everypar{}%
|
|
\parfillskip\z@skip\hsize\maxdimen
|
|
\normalfont
|
|
\pretolerance\m@ne\tolerance\m@ne\hbadness\z@\showboxdepth\z@\ #1%
|
|
\color@endgroup}}
|
|
\else
|
|
\DeclareRobustCommand\showhyphens[1]{%
|
|
\setbox0\vbox{%
|
|
\usefont{TU}{lmr}{m}{n}%
|
|
\hsize 1sp %
|
|
\hbadness\@M
|
|
\hfuzz\maxdimen
|
|
\tracingonline\z@
|
|
\everypar={}%
|
|
\leftskip\z@skip
|
|
\rightskip\z@skip
|
|
\parfillskip\z@skip
|
|
\hyphenpenalty=-\@M
|
|
\pretolerance\m@ne
|
|
\interlinepenalty\z@
|
|
\clubpenalty\z@
|
|
\widowpenalty\z@
|
|
\brokenpenalty1127 %
|
|
\setbox\z@\hbox{}%
|
|
\noindent
|
|
\hskip\z@skip
|
|
#1%
|
|
\par
|
|
\loop
|
|
\@tempswafalse
|
|
\ifnum\lastnodetype=11\unskip\@tempswatrue\fi
|
|
\ifnum\lastnodetype=12\unkern\@tempswatrue\fi
|
|
\ifnum\lastnodetype=13 %
|
|
\count@\lastpenalty
|
|
\unpenalty\@tempswatrue
|
|
\fi
|
|
\ifnum\lastnodetype=\@ne
|
|
\setbox\tw@\lastbox\@tempswatrue
|
|
\setbox0\hbox{\unhbox\tw@\unskip\unskip\unpenalty
|
|
\ifnum\count@=1127 \else\ \fi
|
|
\unhbox0}%
|
|
\count@\z@
|
|
\fi
|
|
\if@tempswa
|
|
\repeat
|
|
\hbadness\z@
|
|
\hsize\maxdimen
|
|
\showboxdepth\z@
|
|
\tolerance\m@ne
|
|
\hyphenpenalty\z@
|
|
\noindent\unhbox\z@
|
|
}}
|
|
\fi
|
|
\long\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
|
|
\def\@vpt{5}
|
|
\def\@vipt{6}
|
|
\def\@viipt{7}
|
|
\def\@viiipt{8}
|
|
\def\@ixpt{9}
|
|
\def\@xpt{10}
|
|
\def\@xipt{10.95}
|
|
\def\@xiipt{12}
|
|
\def\@xivpt{14.4}
|
|
\def\@xviipt{17.28}
|
|
\def\@xxpt{20.74}
|
|
\def\@xxvpt{24.88}
|
|
%%% From File: ltfssaxes.dtx
|
|
%% Copyright (C) 1999-2020 Frank Mittelbach
|
|
\def\DeclareFontSeriesChangeRule#1#2#3#4{%
|
|
\@namedef{series@#1@#2}{{#3}{#4}}}
|
|
\DeclareFontSeriesChangeRule {bc}{b}{bc}{}
|
|
\DeclareFontSeriesChangeRule {bc}{c}{bc}{}
|
|
\DeclareFontSeriesChangeRule {bc}{eb}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {bc}{ec}{bec} {bc}
|
|
\DeclareFontSeriesChangeRule {bc}{el}{elc}{}
|
|
\DeclareFontSeriesChangeRule {bc}{l}{lc}{}
|
|
\DeclareFontSeriesChangeRule {bc}{sb}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {bc}{sc}{bsc} {bc}
|
|
\DeclareFontSeriesChangeRule {bc}{sl}{slc}{}
|
|
\DeclareFontSeriesChangeRule {bc}{ub}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {bc}{ul}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {bc}{x}{bx}{}
|
|
\DeclareFontSeriesChangeRule {bx}{b}{bx}{}
|
|
\DeclareFontSeriesChangeRule {bx}{c} {bc} {bx} %<-----
|
|
\DeclareFontSeriesChangeRule {bx}{eb}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {bx}{ec} {bec} {bx} %<-----
|
|
\DeclareFontSeriesChangeRule {bx}{el}{elx}{}
|
|
\DeclareFontSeriesChangeRule {bx}{l}{lx}{}
|
|
\DeclareFontSeriesChangeRule {bx}{sb} {sbx} {}
|
|
\DeclareFontSeriesChangeRule {bx}{sc} {bsc} {bx} %<-----
|
|
\DeclareFontSeriesChangeRule {bx}{sl}{slx} {}
|
|
\DeclareFontSeriesChangeRule {bx}{ub}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {bx}{ul}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {bx}{x}{bx}{}
|
|
\DeclareFontSeriesChangeRule {b}{bx} {bx} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {b}{c} {bc} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {b}{ec} {bec} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {b}{sb} {sb} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {b}{sc} {bsc} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {b}{x} {bx} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {c}{bx} {bx} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {c}{b}{bc}{}
|
|
\DeclareFontSeriesChangeRule {c}{eb}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {c}{el}{elc}{}
|
|
\DeclareFontSeriesChangeRule {c}{l}{lc}{}
|
|
\DeclareFontSeriesChangeRule {c}{sb}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {c}{sl}{slc}{}
|
|
\DeclareFontSeriesChangeRule {c}{ub}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {c}{ul}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {c}{x}{x}{m} %<-----
|
|
\DeclareFontSeriesChangeRule {ebc}{b}{bc}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{c}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{eb}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{ec}{ebec}{ebc}
|
|
\DeclareFontSeriesChangeRule {ebc}{el}{elc}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{l}{lc}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{sb}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{sc}{ebsc}{ebc}
|
|
\DeclareFontSeriesChangeRule {ebc}{sl}{slc}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{ub}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{ul}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{x}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {ec}{bx} {bx} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {ec}{b}{bec}{}
|
|
\DeclareFontSeriesChangeRule {ec}{eb}{ebec}{}
|
|
\DeclareFontSeriesChangeRule {ec}{el}{elec}{}
|
|
\DeclareFontSeriesChangeRule {ec}{l}{lec}{}
|
|
\DeclareFontSeriesChangeRule {ec}{sb}{sbec}{}
|
|
\DeclareFontSeriesChangeRule {ec}{sl}{slec}{}
|
|
\DeclareFontSeriesChangeRule {ec}{ub}{ubec}{}
|
|
\DeclareFontSeriesChangeRule {ec}{ul}{ulec}{}
|
|
\DeclareFontSeriesChangeRule {ec}{x}{x}{m} %<-----
|
|
\DeclareFontSeriesChangeRule {sc}{bx} {bx} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {sc}{b}{bsc}{}
|
|
\DeclareFontSeriesChangeRule {sc}{eb}{ebsc}{}
|
|
\DeclareFontSeriesChangeRule {sc}{el}{elsc}{}
|
|
\DeclareFontSeriesChangeRule {sc}{l}{lsc}{}
|
|
\DeclareFontSeriesChangeRule {sc}{sb}{sbsc}{}
|
|
\DeclareFontSeriesChangeRule {sc}{sl}{slsc}{}
|
|
\DeclareFontSeriesChangeRule {sc}{ub}{ubsc}{}
|
|
\DeclareFontSeriesChangeRule {sc}{ul}{ulsc}{}
|
|
\DeclareFontSeriesChangeRule {sc}{x}{x}{m} %<-----
|
|
\DeclareFontSeriesChangeRule {ebx}{b}{bx}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{c}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{eb}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{ec}{ebec}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{el}{elx}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{l}{lx}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{sb}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{sc}{ebsc}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{sl}{slx}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{ub}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{ul}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{x}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {eb}{c}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {eb}{ec}{ebec}{}
|
|
\DeclareFontSeriesChangeRule {eb}{sc}{ebsc}{}
|
|
\DeclareFontSeriesChangeRule {eb}{x}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {elc}{b}{bc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{c}{elc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{eb}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{ec}{elec}{}
|
|
\DeclareFontSeriesChangeRule {elc}{el}{elc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{l}{lc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{sb}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{sc}{elsc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{sl}{slc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{ub}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{ul}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {elc}{x}{elx}{}
|
|
\DeclareFontSeriesChangeRule {elx}{b}{bx}{}
|
|
\DeclareFontSeriesChangeRule {elx}{c}{elc}{}
|
|
\DeclareFontSeriesChangeRule {elx}{eb}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {elx}{ec}{elec}{}
|
|
\DeclareFontSeriesChangeRule {elx}{el}{elx}{}
|
|
\DeclareFontSeriesChangeRule {elx}{l}{lx}{}
|
|
\DeclareFontSeriesChangeRule {elx}{sb}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {elx}{sc}{elsc}{}
|
|
\DeclareFontSeriesChangeRule {elx}{sl}{slx}{}
|
|
\DeclareFontSeriesChangeRule {elx}{ub}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {elx}{ul}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {elx}{x}{elx}{}
|
|
\DeclareFontSeriesChangeRule {el}{c}{elc}{}
|
|
\DeclareFontSeriesChangeRule {el}{ec}{elec}{}
|
|
\DeclareFontSeriesChangeRule {el}{sc}{elsc}{}
|
|
\DeclareFontSeriesChangeRule {el}{x}{elx}{}
|
|
\DeclareFontSeriesChangeRule {lc}{b}{bc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{c}{lc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{eb}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{ec}{lec}{}
|
|
\DeclareFontSeriesChangeRule {lc}{el}{elc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{l}{lc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{sb}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{sc}{lsc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{sl}{slc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{ub}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{ul}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {lc}{x}{lx}{}
|
|
\DeclareFontSeriesChangeRule {lx}{b}{bx}{}
|
|
\DeclareFontSeriesChangeRule {lx}{c}{lc}{}
|
|
\DeclareFontSeriesChangeRule {lx}{eb}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {lx}{ec}{lec}{}
|
|
\DeclareFontSeriesChangeRule {lx}{el}{elx}{}
|
|
\DeclareFontSeriesChangeRule {lx}{l}{lx}{}
|
|
\DeclareFontSeriesChangeRule {lx}{sb}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {lx}{sc}{lsc}{}
|
|
\DeclareFontSeriesChangeRule {lx}{sl}{slx}{}
|
|
\DeclareFontSeriesChangeRule {lx}{ub}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {lx}{ul}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {lx}{x}{lx}{}
|
|
\DeclareFontSeriesChangeRule {l}{bx} {bx} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {l}{b} {b} {bx} %<-----
|
|
\DeclareFontSeriesChangeRule {l}{c} {lc} {l} % ? %<-----
|
|
\DeclareFontSeriesChangeRule {l}{ec} {lec} {l} % ? %<-----
|
|
\DeclareFontSeriesChangeRule {l}{sb} {sb} {b} % ? %<-----
|
|
\DeclareFontSeriesChangeRule {l}{sc} {lsc} {l} % ? %<-----
|
|
\DeclareFontSeriesChangeRule {l}{x} {lx} {l} % ? %<-----
|
|
\DeclareFontSeriesChangeRule {m}{bx} {bx} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {m}{b} {b} {bx} %<-----
|
|
\DeclareFontSeriesChangeRule {m}{c} {c} {m} %<-----
|
|
\DeclareFontSeriesChangeRule {m}{ec} {ec} {m} %<-----
|
|
\DeclareFontSeriesChangeRule {m}{l} {l} {m} %<-----
|
|
\DeclareFontSeriesChangeRule {m}{sb} {sb} {b} %<-----
|
|
\DeclareFontSeriesChangeRule {m}{sc} {sc} {m} %<-----
|
|
\DeclareFontSeriesChangeRule {m}{x} {x} {m} %<-----
|
|
\DeclareFontSeriesChangeRule {sbc}{b}{bc}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{c}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{eb}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{ec}{sbec}{sbc}
|
|
\DeclareFontSeriesChangeRule {sbc}{el}{elc}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{l}{lc}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{sb}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{sc}{sbsc}{sbc}
|
|
\DeclareFontSeriesChangeRule {sbc}{sl}{slc}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{ub}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{ul}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{x}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{b}{bx}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{c}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{eb}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{ec}{sbec}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{el}{elx}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{l}{lx}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{sb}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{sc}{sbsc}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{sl}{slx}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{ub}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{ul}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{x}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {sb}{c} {sbc} {bc} %? %<-----
|
|
\DeclareFontSeriesChangeRule {sb}{ec} {sbec} {sbc} %? %<-----
|
|
\DeclareFontSeriesChangeRule {sb}{sc} {sbsc} {sbc} %? %<-----
|
|
\DeclareFontSeriesChangeRule {sb}{x} {sbx} {bx} %? %<-----
|
|
\DeclareFontSeriesChangeRule {slc}{b}{bc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{c}{slc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{eb}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{ec}{slec}{}
|
|
\DeclareFontSeriesChangeRule {slc}{el}{elc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{l}{lc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{sb}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{sc}{slsc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{sl}{slc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{ub}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{ul}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{x}{slx}{}
|
|
\DeclareFontSeriesChangeRule {slx}{b}{bx}{}
|
|
\DeclareFontSeriesChangeRule {slx}{c}{slc}{}
|
|
\DeclareFontSeriesChangeRule {slx}{eb}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {slx}{ec}{slec}{}
|
|
\DeclareFontSeriesChangeRule {slx}{el}{elx}{}
|
|
\DeclareFontSeriesChangeRule {slx}{l}{lx}{}
|
|
\DeclareFontSeriesChangeRule {slx}{sb}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {slx}{sc}{slsc}{}
|
|
\DeclareFontSeriesChangeRule {slx}{sl}{slx}{}
|
|
\DeclareFontSeriesChangeRule {slx}{ub}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {slx}{ul}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {slx}{x}{slx}{}
|
|
\DeclareFontSeriesChangeRule {sl}{c}{slc}{}
|
|
\DeclareFontSeriesChangeRule {sl}{ec}{slec}{}
|
|
\DeclareFontSeriesChangeRule {sl}{sc}{slsc}{}
|
|
\DeclareFontSeriesChangeRule {sl}{x}{slx}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{b}{bc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{c}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{eb}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{ec}{ubec}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{el}{elc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{l}{lc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{sb}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{sc}{ubsc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{sl}{slc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{ub}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{ul}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{x}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{b}{bx}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{c}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{eb}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{ec}{ubec}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{el}{elx}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{l}{lx}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{sb}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{sc}{ubsc}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{sl}{slx}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{ub}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{ul}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{x}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {ub}{c}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {ub}{ec}{ubec}{}
|
|
\DeclareFontSeriesChangeRule {ub}{sc}{ubsc}{}
|
|
\DeclareFontSeriesChangeRule {ub}{x}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{b}{bc}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{c}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{eb}{ebc}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{ec}{ulec}{ulc}
|
|
\DeclareFontSeriesChangeRule {ulc}{el}{elc}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{l}{lc}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{sb}{sbc}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{sc}{ulsc}{ulc}
|
|
\DeclareFontSeriesChangeRule {ulc}{sl}{slc}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{ub}{ubc}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{ul}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{x}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{b}{bx}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{c}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{eb}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{ec}{ulec}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{el}{elx}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{l}{lx}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{sb}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{sc}{ulsc}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{sl}{slx}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{ub}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{ul}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{x}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {ul}{c}{ulc}{}
|
|
\DeclareFontSeriesChangeRule {ul}{ec}{ulec}{}
|
|
\DeclareFontSeriesChangeRule {ul}{sc}{ulsc}{}
|
|
\DeclareFontSeriesChangeRule {ul}{x}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {x}{b}{bx}{}
|
|
\DeclareFontSeriesChangeRule {x}{c}{c}{}
|
|
\DeclareFontSeriesChangeRule {x}{eb}{ebx}{}
|
|
\DeclareFontSeriesChangeRule {x}{ec}{ec}{}
|
|
\DeclareFontSeriesChangeRule {x}{el}{elx}{}
|
|
\DeclareFontSeriesChangeRule {x}{l}{lx}{}
|
|
\DeclareFontSeriesChangeRule {x}{sb}{sbx}{}
|
|
\DeclareFontSeriesChangeRule {x}{sc}{sc}{}
|
|
\DeclareFontSeriesChangeRule {x}{sl}{slx}{}
|
|
\DeclareFontSeriesChangeRule {x}{ub}{ubx}{}
|
|
\DeclareFontSeriesChangeRule {x}{ul}{ulx}{}
|
|
\DeclareFontSeriesChangeRule {bc}{m?}{c}{}
|
|
\DeclareFontSeriesChangeRule {bec}{m?}{ec}{}
|
|
\DeclareFontSeriesChangeRule {bsc}{m?}{sc}{}
|
|
\DeclareFontSeriesChangeRule {bx}{m?}{x}{}
|
|
\DeclareFontSeriesChangeRule {b}{m?}{m}{}
|
|
\DeclareFontSeriesChangeRule {c}{m?}{c}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{m?}{c}{}
|
|
\DeclareFontSeriesChangeRule {ebec}{m?}{ec}{}
|
|
\DeclareFontSeriesChangeRule {ebsc}{m?}{sc}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{m?}{x}{}
|
|
\DeclareFontSeriesChangeRule {eb}{m?}{m}{}
|
|
\DeclareFontSeriesChangeRule {ec}{m?}{ec}{}
|
|
\DeclareFontSeriesChangeRule {elc}{m?}{c}{}
|
|
\DeclareFontSeriesChangeRule {elec}{m?}{ec}{}
|
|
\DeclareFontSeriesChangeRule {elsc}{m?}{sc}{}
|
|
\DeclareFontSeriesChangeRule {elx}{m?}{x}{}
|
|
\DeclareFontSeriesChangeRule {el}{m?}{m}{}
|
|
\DeclareFontSeriesChangeRule {lc}{m?}{c}{}
|
|
\DeclareFontSeriesChangeRule {lec}{m?}{ec}{}
|
|
\DeclareFontSeriesChangeRule {lsc}{m?}{sc}{}
|
|
\DeclareFontSeriesChangeRule {lx}{m?}{x}{}
|
|
\DeclareFontSeriesChangeRule {l}{m?}{m}{}
|
|
\DeclareFontSeriesChangeRule {m}{m?}{m}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{m?}{c}{}
|
|
\DeclareFontSeriesChangeRule {sbec}{m?}{ec}{}
|
|
\DeclareFontSeriesChangeRule {sbsc}{m?}{sc}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{m?}{x}{}
|
|
\DeclareFontSeriesChangeRule {sb}{m?}{m}{}
|
|
\DeclareFontSeriesChangeRule {sc}{m?}{sc}{}
|
|
\DeclareFontSeriesChangeRule {slc}{m?}{c}{}
|
|
\DeclareFontSeriesChangeRule {slec}{m?}{ec}{}
|
|
\DeclareFontSeriesChangeRule {slsc}{m?}{sc}{}
|
|
\DeclareFontSeriesChangeRule {slx}{m?}{x}{}
|
|
\DeclareFontSeriesChangeRule {sl}{m?}{m}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{m?}{c}{}
|
|
\DeclareFontSeriesChangeRule {ubec}{m?}{ec}{}
|
|
\DeclareFontSeriesChangeRule {ubsc}{m?}{sc}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{m?}{x}{}
|
|
\DeclareFontSeriesChangeRule {ub}{m?}{ub}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{m?}{c}{}
|
|
\DeclareFontSeriesChangeRule {ulec}{m?}{ec}{}
|
|
\DeclareFontSeriesChangeRule {ulsc}{m?}{sc}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{m?}{x}{}
|
|
\DeclareFontSeriesChangeRule {ul}{m?}{m}{}
|
|
\DeclareFontSeriesChangeRule {x}{m?}{x}{}
|
|
\DeclareFontSeriesChangeRule {bc}{?m}{b}{}
|
|
\DeclareFontSeriesChangeRule {bec}{?m}{b}{}
|
|
\DeclareFontSeriesChangeRule {bsc}{?m}{b}{}
|
|
\DeclareFontSeriesChangeRule {bsc}{?m}{b}{}
|
|
\DeclareFontSeriesChangeRule {bx}{?m}{b}{}
|
|
\DeclareFontSeriesChangeRule {b}{?m}{b}{}
|
|
\DeclareFontSeriesChangeRule {c}{?m}{m}{}
|
|
\DeclareFontSeriesChangeRule {ebc}{?m}{eb}{}
|
|
\DeclareFontSeriesChangeRule {ebec}{?m}{eb}{}
|
|
\DeclareFontSeriesChangeRule {ebsc}{?m}{eb}{}
|
|
\DeclareFontSeriesChangeRule {ebsc}{?m}{eb}{}
|
|
\DeclareFontSeriesChangeRule {ebx}{?m}{eb}{}
|
|
\DeclareFontSeriesChangeRule {eb}{?m}{eb}{}
|
|
\DeclareFontSeriesChangeRule {ec}{?m}{m}{}
|
|
\DeclareFontSeriesChangeRule {elc}{?m}{el}{}
|
|
\DeclareFontSeriesChangeRule {elec}{?m}{el}{}
|
|
\DeclareFontSeriesChangeRule {elsc}{?m}{el}{}
|
|
\DeclareFontSeriesChangeRule {elsc}{?m}{el}{}
|
|
\DeclareFontSeriesChangeRule {elx}{?m}{el}{}
|
|
\DeclareFontSeriesChangeRule {el}{?m}{el}{}
|
|
\DeclareFontSeriesChangeRule {lc}{?m}{l}{}
|
|
\DeclareFontSeriesChangeRule {lec}{?m}{l}{}
|
|
\DeclareFontSeriesChangeRule {lsc}{?m}{l}{}
|
|
\DeclareFontSeriesChangeRule {lsc}{?m}{l}{}
|
|
\DeclareFontSeriesChangeRule {lx}{?m}{l}{}
|
|
\DeclareFontSeriesChangeRule {l}{?m}{l}{}
|
|
\DeclareFontSeriesChangeRule {m}{?m}{m}{}
|
|
\DeclareFontSeriesChangeRule {sbc}{?m}{sb}{}
|
|
\DeclareFontSeriesChangeRule {sbec}{?m}{sb}{}
|
|
\DeclareFontSeriesChangeRule {sbsc}{?m}{sb}{}
|
|
\DeclareFontSeriesChangeRule {sbsc}{?m}{sb}{}
|
|
\DeclareFontSeriesChangeRule {sbx}{?m}{sb}{}
|
|
\DeclareFontSeriesChangeRule {sb}{?m}{sb}{}
|
|
\DeclareFontSeriesChangeRule {sc}{?m}{m}{}
|
|
\DeclareFontSeriesChangeRule {sc}{?m}{m}{}
|
|
\DeclareFontSeriesChangeRule {slc}{?m}{sl}{}
|
|
\DeclareFontSeriesChangeRule {slec}{?m}{sl}{}
|
|
\DeclareFontSeriesChangeRule {slsc}{?m}{sl}{}
|
|
\DeclareFontSeriesChangeRule {slsc}{?m}{sl}{}
|
|
\DeclareFontSeriesChangeRule {slx}{?m}{sl}{}
|
|
\DeclareFontSeriesChangeRule {sl}{?m}{sl}{}
|
|
\DeclareFontSeriesChangeRule {ubc}{?m}{ub}{}
|
|
\DeclareFontSeriesChangeRule {ubec}{?m}{ub}{}
|
|
\DeclareFontSeriesChangeRule {ubsc}{?m}{ub}{}
|
|
\DeclareFontSeriesChangeRule {ubsc}{?m}{ub}{}
|
|
\DeclareFontSeriesChangeRule {ubx}{?m}{ub}{}
|
|
\DeclareFontSeriesChangeRule {ub}{?m}{m}{}
|
|
\DeclareFontSeriesChangeRule {ulc}{?m}{ul}{}
|
|
\DeclareFontSeriesChangeRule {ulec}{?m}{ul}{}
|
|
\DeclareFontSeriesChangeRule {ulsc}{?m}{ul}{}
|
|
\DeclareFontSeriesChangeRule {ulsc}{?m}{ul}{}
|
|
\DeclareFontSeriesChangeRule {ulx}{?m}{ul}{}
|
|
\DeclareFontSeriesChangeRule {ul}{?m}{ul}{}
|
|
\DeclareFontSeriesChangeRule {x}{?m}{m}{}
|
|
|
|
|
|
\newif\if@forced@series
|
|
\DeclareRobustCommand\fontseriesforce[1]{\@forced@seriestrue\edef\f@series{#1}}
|
|
\DeclareRobustCommand\fontseries[1]{\@forced@seriesfalse\merge@font@series{#1}}
|
|
|
|
\def\merge@font@series#1{%
|
|
\expandafter\expandafter\expandafter
|
|
\merge@font@series@
|
|
\csname series@\f@series @#1\endcsname
|
|
{#1}%
|
|
\@nil
|
|
}
|
|
|
|
\def\merge@font@series@#1#2#3\@nil{%
|
|
\def\reserved@a{#3}%
|
|
\ifx\reserved@a\@empty
|
|
\set@target@series{#2}%
|
|
\else
|
|
\maybe@load@fontshape
|
|
\edef\reserved@a{\f@encoding /\f@family /#1/\f@shape}%
|
|
\ifcsname \reserved@a \endcsname
|
|
\set@target@series{#1}%
|
|
\else
|
|
\ifcsname \f@encoding /\f@family /#2/\f@shape \endcsname
|
|
\set@target@series{#2}%
|
|
\@font@shape@subst@warning
|
|
\else
|
|
\set@target@series{#3}%
|
|
\@font@shape@subst@warning
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\@font@shape@subst@warning{%
|
|
\edef\reserved@b{\curr@fontshape}%
|
|
\ifx\reserved@a\reserved@b \else
|
|
\@font@warning{Font shape `\reserved@a' undefined\MessageBreak
|
|
using `\reserved@b' instead}%
|
|
\fi
|
|
}
|
|
\def\maybe@load@fontshape{\begingroup\try@load@fontshape\endgroup}
|
|
\DeclareFontSeriesChangeRule {m}{sc}{msc}{mc}
|
|
\def\set@target@series#1{%
|
|
\edef\f@series{#1}%
|
|
\expandafter\series@maybe@drop@one@m\expandafter{\f@series}\f@series
|
|
}
|
|
\def\series@maybe@drop@one@m#1#2{%
|
|
\def\in@@##1,#1,{}%
|
|
\series@check@toks\expandafter{\in@@
|
|
,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}%
|
|
\edef\in@@{\the\series@check@toks}%
|
|
\ifx\in@@\@empty
|
|
\def#2{#1}%
|
|
\else
|
|
\edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}%
|
|
\fi
|
|
}
|
|
\newtoks\series@check@toks
|
|
\def\series@drop@one@m#1m#2m#3\series@drop@one@m{%
|
|
#1#2%
|
|
}
|
|
|
|
\def\DeclareFontShapeChangeRule #1#2#3#4{%
|
|
\@namedef{shape@#1@#2}{{#3}{#4}}}
|
|
\DeclareRobustCommand\ulcshape
|
|
{\not@math@alphabet\ulcshape\relax
|
|
\fontshape\ulcdefault\selectfont}
|
|
\newcommand\ulcdefault{ulc}
|
|
\DeclareRobustCommand\swshape
|
|
{\not@math@alphabet\swshape\relax
|
|
\fontshape\swdefault\selectfont}
|
|
\newcommand\swdefault{sw}
|
|
\DeclareRobustCommand\sscshape
|
|
{\not@math@alphabet\sscshape\relax
|
|
\fontshape\sscdefault\selectfont}
|
|
\newcommand\sscdefault{ssc}
|
|
\DeclareFontShapeChangeRule {n}{it} {it} {sl}
|
|
\DeclareFontShapeChangeRule {n}{sl} {sl} {it}
|
|
\DeclareFontShapeChangeRule {n}{ulc} {n} {}
|
|
\DeclareFontShapeChangeRule {n}{up} {n} {}
|
|
\DeclareFontShapeChangeRule {it}{sl} {sl} {it}
|
|
\DeclareFontShapeChangeRule {it}{sc} {scit} {scsl}
|
|
\DeclareFontShapeChangeRule {it}{ulc} {it} {}
|
|
\DeclareFontShapeChangeRule {it}{up} {n} {}
|
|
\DeclareFontShapeChangeRule {sl}{it} {it} {sl}
|
|
\DeclareFontShapeChangeRule {sl}{sc} {scsl} {scit}
|
|
\DeclareFontShapeChangeRule {sl}{ulc} {sl} {}
|
|
\DeclareFontShapeChangeRule {sl}{up} {n} {}
|
|
\DeclareFontShapeChangeRule {sc}{it} {scit} {scsl}
|
|
\DeclareFontShapeChangeRule {sc}{sl} {scsl} {scit}
|
|
\DeclareFontShapeChangeRule {sc}{sw} {scsw} {sw}
|
|
\DeclareFontShapeChangeRule {sc}{ulc} {n} {}
|
|
\DeclareFontShapeChangeRule {sc}{up} {n} {}
|
|
\DeclareFontShapeChangeRule {scit}{it} {scit} {}
|
|
\DeclareFontShapeChangeRule {scit}{sl} {scsl} {scit}
|
|
\DeclareFontShapeChangeRule {scit}{sw} {scsw} {sc} % or scit?
|
|
\DeclareFontShapeChangeRule {scit}{sc} {scit} {}
|
|
\DeclareFontShapeChangeRule {scit}{ulc} {it} {}
|
|
\DeclareFontShapeChangeRule {scit}{up} {sc} {}
|
|
\DeclareFontShapeChangeRule {scsl}{it} {scit} {scsl}
|
|
\DeclareFontShapeChangeRule {scsl}{sl} {scsl} {}
|
|
\DeclareFontShapeChangeRule {scsl}{sw} {scsw} {sc} % or scsl?
|
|
\DeclareFontShapeChangeRule {scsl}{sc} {scsl} {}
|
|
\DeclareFontShapeChangeRule {scsl}{ulc} {sl} {}
|
|
\DeclareFontShapeChangeRule {scsl}{up} {sc} {}
|
|
\DeclareFontShapeChangeRule {scsw}{it} {scit} {scsw}
|
|
\DeclareFontShapeChangeRule {scsw}{sl} {scsl} {}
|
|
\DeclareFontShapeChangeRule {scsw}{sw} {scsw} {}
|
|
\DeclareFontShapeChangeRule {scsw}{sc} {scsw} {}
|
|
\DeclareFontShapeChangeRule {scsw}{ulc} {sw} {}
|
|
\DeclareFontShapeChangeRule {scsw}{up} {sc} {}
|
|
\DeclareFontShapeChangeRule {sw}{sc} {scsw} {}
|
|
\DeclareFontShapeChangeRule {sw}{ulc} {sw} {}
|
|
\DeclareFontShapeChangeRule {sw}{up} {n} {}
|
|
\DeclareRobustCommand\fontshape[1]{\merge@font@shape{#1}}
|
|
\DeclareRobustCommand\fontshapeforce[1]{\edef\f@shape{#1}}
|
|
\def\merge@font@shape#1{%
|
|
\expandafter\expandafter\expandafter
|
|
\merge@font@shape@
|
|
\csname shape@\f@shape @#1\endcsname
|
|
{#1}%
|
|
\@nil
|
|
}
|
|
|
|
\def\merge@font@shape@#1#2#3\@nil{%
|
|
\def\reserved@a{#3}%
|
|
\ifx\reserved@a\@empty
|
|
\edef\f@shape{#2}%
|
|
\else
|
|
\maybe@load@fontshape
|
|
\edef\reserved@a{\f@encoding /\f@family /\f@series/#1}%
|
|
\ifcsname \reserved@a\endcsname
|
|
\edef\f@shape{#1}%
|
|
\else
|
|
\ifcsname \f@encoding /\f@family /\f@series/#2\endcsname
|
|
\edef\f@shape{#2}%
|
|
\@font@shape@subst@warning
|
|
\else
|
|
\edef\f@shape{#3}%
|
|
\@font@shape@subst@warning
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\protected\def\normalshape
|
|
{\not@math@alphabet\normalshape\relax
|
|
\fontshape\shapedefault\selectfont}%
|
|
\def\reinstall@nfss@defs{%
|
|
\protected\def\upshape
|
|
{\not@math@alphabet\upshape\relax
|
|
\fontshape\updefault\selectfont}%
|
|
\protected\def\slshape
|
|
{\not@math@alphabet\slshape\relax
|
|
\fontshape\sldefault\selectfont}%
|
|
\protected\def\scshape
|
|
{\not@math@alphabet\scshape\relax
|
|
\fontshape\scdefault\selectfont}%
|
|
\protected\def\itshape
|
|
{\not@math@alphabet\itshape\mathit
|
|
\fontshape\itdefault\selectfont}%
|
|
\protected\def\ulcshape
|
|
{\not@math@alphabet\ulcshape\relax
|
|
\fontshape{ulc}\selectfont}%
|
|
\protected\def\swshape
|
|
{\not@math@alphabet\swshape\relax
|
|
\fontshape\swdefault\selectfont}%
|
|
\protected\def\sscshape
|
|
{\not@math@alphabet\sscshape\relax
|
|
\fontshape\sscdefault\selectfont}%
|
|
}
|
|
%%% From File: ltfsstrc.dtx
|
|
%% Copyright (C) 1989-97 by Frank Mittelbach and Rainer Sch\"opf.
|
|
%% Copyright (C) 1994-97 by LaTeX3 project. All rights reserved.
|
|
\def\tracingfonts{%
|
|
\@font@warning{Command \noexpand\tracingfonts
|
|
not provided.\MessageBreak
|
|
Use the `tracefnt' package.\MessageBreak Command found:}%
|
|
\count@}
|
|
\def\@font@info#1{%
|
|
\GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}%
|
|
{LaTeX Font Info: \space\space\space#1}}%
|
|
\def\@font@warning#1{%
|
|
\GenericWarning{(Font)\@spaces\@spaces\@spaces\space\space}%
|
|
{LaTeX Font Warning: #1}}%
|
|
\def\extract@font{%
|
|
\get@external@font
|
|
\global\expandafter\font\font@name\external@font\relax
|
|
\font@name \relax
|
|
\csname \f@encoding+\f@family\endcsname
|
|
\csname\curr@fontshape\endcsname
|
|
\relax
|
|
}
|
|
\def\get@external@font{%
|
|
\let\external@font\@empty
|
|
\edef\font@info{\expandafter\expandafter\expandafter\string
|
|
\csname \curr@fontshape \endcsname}%
|
|
\try@size@range
|
|
\ifx\external@font\@empty
|
|
\try@size@substitution
|
|
\ifx\external@font\@empty
|
|
\@latex@error{Font \expandafter \string\font@name\space
|
|
not found}\@eha
|
|
\error@fontshape
|
|
\get@external@font
|
|
\fi\fi
|
|
}
|
|
\DeclareRobustCommand\selectfont
|
|
{%
|
|
\ifx\f@linespread\baselinestretch \else
|
|
\set@fontsize\baselinestretch\f@size\f@baselineskip \fi
|
|
\xdef\font@name{%
|
|
\csname\curr@fontshape/\f@size\endcsname}%
|
|
\pickup@font
|
|
\font@name
|
|
\size@update
|
|
\enc@update
|
|
}
|
|
\def\set@fontsize#1#2#3{%
|
|
\@defaultunits\@tempdimb#2pt\relax\@nnil
|
|
\edef\f@size{\strip@pt\@tempdimb}%
|
|
\@defaultunits\@tempskipa#3pt\relax\@nnil
|
|
\edef\f@baselineskip{\the\@tempskipa}%
|
|
\edef\f@linespread{#1}%
|
|
\let\baselinestretch\f@linespread
|
|
\def\size@update{%
|
|
\baselineskip\f@baselineskip\relax
|
|
\baselineskip\f@linespread\baselineskip
|
|
\normalbaselineskip\baselineskip
|
|
\setbox\strutbox\hbox{%
|
|
\vrule\@height.7\baselineskip
|
|
\@depth.3\baselineskip
|
|
\@width\z@}%
|
|
\let\size@update\relax}%
|
|
}
|
|
\let\size@update\relax
|
|
\def\glb@settings{%
|
|
\expandafter\ifx\csname S@\f@size\endcsname\relax
|
|
\calculate@math@sizes
|
|
\fi
|
|
\csname S@\f@size\endcsname
|
|
\ifmath@fonts
|
|
\begingroup
|
|
\escapechar\m@ne
|
|
\csname mv@\math@version \endcsname
|
|
\globaldefs\@ne
|
|
\math@fonts
|
|
\let \glb@currsize \f@size
|
|
\endgroup
|
|
\the\every@math@size
|
|
\fi
|
|
}
|
|
\def\baselinestretch{1}
|
|
\newtoks\every@math@size
|
|
\every@math@size={}
|
|
\def\check@mathfonts{%
|
|
\ifx \glb@currsize \f@size
|
|
\else
|
|
\glb@settings
|
|
\init@restore@glb@settings
|
|
\fi
|
|
\let\curr@math@size\f@size
|
|
\def\init@restore@glb@settings{\aftergroup\restglb@settings}%
|
|
}
|
|
\let\init@restore@glb@settings\relax
|
|
\def\restglb@settings{%
|
|
\begingroup
|
|
\let\f@size\curr@math@size
|
|
\ifx\glb@currsize \f@size
|
|
\else
|
|
\glb@settings
|
|
\fi
|
|
\endgroup
|
|
}
|
|
\def\use@mathgroup#1#2{\relax\ifmmode
|
|
\math@bgroup
|
|
\expandafter\ifx\csname M@\f@encoding\endcsname#1\else
|
|
#1\fi
|
|
\mathgroup#2\relax
|
|
\expandafter\math@egroup\fi}%
|
|
\def\getanddefine@fonts#1#2{%
|
|
\xdef\font@name{\csname \string#2/\tf@size\endcsname}%
|
|
\pickup@font \let\textfont@name\font@name
|
|
\xdef\font@name{\csname \string#2/\sf@size\endcsname}%
|
|
\pickup@font \let\scriptfont@name\font@name
|
|
\xdef\font@name{\csname \string#2/\ssf@size\endcsname}%
|
|
\pickup@font
|
|
\edef\math@fonts{\math@fonts
|
|
\textfont#1\textfont@name
|
|
\scriptfont#1\scriptfont@name
|
|
\scriptscriptfont#1\font@name}%
|
|
}
|
|
\def\ifnot@nil#1{\def\reserved@a{#1}%
|
|
\ifx\reserved@a\@nnil \expandafter\@gobble
|
|
\else \expandafter\@firstofone\fi}
|
|
\def\remove@to@nnil#1\@nnil{}
|
|
\def\remove@angles#1>{\set@simple@size@args}
|
|
\def\remove@star#1*{#1}
|
|
\def\extract@sizefn#1*#2\@nil{%
|
|
\if>#2>\set@size@funct@args#1\@nil
|
|
\let\sizefn@info\@empty
|
|
\else\expandafter\set@size@funct@args\remove@star#2\@nil
|
|
\def\sizefn@info{#1}\fi
|
|
}
|
|
\def\try@simple@size{%
|
|
\def\reserved@a{\def\extract@fontinfo####1}%
|
|
\expandafter\reserved@a\expandafter<\f@size>##2<##3\@nnil{%
|
|
\ifnot@nil{##2}%
|
|
{\set@simple@size@args##2<##3\@nnil
|
|
\execute@size@function\sizefn@info
|
|
}}%
|
|
\expandafter\expandafter
|
|
\expandafter\extract@fontinfo\expandafter\font@info
|
|
\expandafter<\f@size>\@nil<\@nnil
|
|
}
|
|
\def\set@simple@size@args#1<{%
|
|
\if<#1<%
|
|
\expandafter\remove@angles
|
|
\else
|
|
\extract@sizefn#1*\@nil
|
|
\expandafter\remove@to@nnil
|
|
\fi}
|
|
\def\extract@rangefontinfo#1<#2>{%
|
|
\is@range#2->\@nil#2>}
|
|
\def\is@range#1-#2\@nil{%
|
|
\if>#2\expandafter\check@single\else
|
|
\expandafter\check@range\fi}
|
|
\def\check@range#1-#2>#3<#4\@nnil{%
|
|
\ifnot@nil{#3}{%
|
|
\def\reserved@f{\extract@rangefontinfo<#4\@nnil}%
|
|
\upper@bound0#2\p@
|
|
\ifdim\upper@bound=\z@ \upper@bound\maxdimen\fi
|
|
\ifdim \f@size \p@<\upper@bound
|
|
\lower@bound0#1\p@
|
|
\ifdim \f@size \p@<\lower@bound
|
|
\else
|
|
\set@simple@size@args#3<#4\@nnil
|
|
\execute@size@function\sizefn@info
|
|
\ifx\external@font\@empty
|
|
\else
|
|
\let\reserved@f\@empty
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\reserved@f}}
|
|
\newdimen\lower@bound
|
|
\newdimen\upper@bound
|
|
\def\check@single#1>#2<#3\@nnil{%
|
|
\def\reserved@f{\extract@rangefontinfo<#3\@nnil}%
|
|
\ifdim \f@size \p@=#1\p@
|
|
\set@simple@size@args#2<#3\@nnil
|
|
\execute@size@function\sizefn@info
|
|
\ifx\external@font\@empty
|
|
\else
|
|
\let\reserved@f\@empty
|
|
\fi
|
|
\fi
|
|
\reserved@f}
|
|
\def\set@size@funct@args{\@ifnextchar[%
|
|
\set@size@funct@args@{\set@size@funct@args@[]}}
|
|
\def\set@size@funct@args@[#1]#2\@nil{%
|
|
\def\mandatory@arg{#2}%
|
|
\def\optional@arg{#1}}
|
|
\def\DeclareSizeFunction#1#2{\@namedef{s@fct@#1}{#2}}
|
|
\@onlypreamble\DeclareSizeFunction
|
|
\def\execute@size@function#1{%
|
|
\csname s@fct@#1\endcsname
|
|
}
|
|
\def\try@size@range{%
|
|
\expandafter\extract@rangefontinfo\font@info <-*>\@nil<\@nnil
|
|
}
|
|
\gdef\try@size@substitution{%
|
|
\@tempdimb \maxdimen
|
|
\let \best@size \@empty
|
|
\expandafter \try@simples \font@info <\number\@M>\@nil<\@nnil
|
|
}
|
|
\def\font@submax{0pt}
|
|
\def\fontsubfuzz{.4pt}
|
|
\gdef\try@simples#1<#2>{%
|
|
\tryif@simple#2->\tryif@simple}
|
|
\gdef\tryif@simple#1-#2\tryif@simple{%
|
|
\let \reserved@f \try@simples
|
|
\if>#2%
|
|
\dimen@ #1\p@
|
|
\ifdim \dimen@<\@M\p@
|
|
\ifdim \f@size\p@<\dimen@
|
|
\@tempdimc \dimen@
|
|
\advance\@tempdimc -\f@size\p@
|
|
\else
|
|
\@tempdimc \f@size\p@
|
|
\advance\@tempdimc -\dimen@
|
|
\fi
|
|
\ifdim \@tempdimc<\@tempdimb
|
|
\@tempdimb \@tempdimc
|
|
\def \best@size{#1}%
|
|
\fi
|
|
\else
|
|
\ifx \external@font\@empty
|
|
\ifx \best@size\@empty
|
|
\else
|
|
\ifdim \@tempdimb>\font@submax \relax
|
|
\xdef \font@submax {\the\@tempdimb}%
|
|
\fi
|
|
\let \f@user@size \f@size
|
|
\let \f@size \best@size
|
|
\ifdim \@tempdimb>\fontsubfuzz\relax
|
|
\@font@warning{Font\space shape\space
|
|
`\curr@fontshape'\space in\space size\space
|
|
<\f@user@size>\space not\space available\MessageBreak
|
|
size\space <\f@size>\space substituted}%
|
|
\fi
|
|
\try@simple@size
|
|
\do@subst@correction
|
|
\fi
|
|
\fi
|
|
\let \reserved@f \remove@to@nnil
|
|
\fi
|
|
\fi
|
|
\reserved@f}
|
|
\DeclareSizeFunction{}{\empty@sfcnt\@font@warning}
|
|
\DeclareSizeFunction{s}{\empty@sfcnt\@font@info}
|
|
\def\empty@sfcnt#1{%
|
|
\@tempdimb \f@size\p@
|
|
\ifx\optional@arg\@empty
|
|
\else
|
|
\@tempdimb \optional@arg\@tempdimb
|
|
#1{Font\space shape\space `\curr@fontshape'\space
|
|
will\space be\MessageBreak
|
|
scaled\space to\space size\space \the\@tempdimb}%
|
|
\fi
|
|
\edef\external@font{\mandatory@arg\space at\the\@tempdimb}}
|
|
\DeclareSizeFunction{gen}{\gen@sfcnt\@font@warning}
|
|
\DeclareSizeFunction{sgen}{\gen@sfcnt\@font@info}
|
|
\def\gen@sfcnt{%
|
|
\edef\mandatory@arg{\mandatory@arg\f@size}%
|
|
\empty@sfcnt}
|
|
\DeclareSizeFunction{genb}{\genb@sfcnt\@font@warning}
|
|
\DeclareSizeFunction{sgenb}{\genb@sfcnt\@font@info}
|
|
\def\genb@sfcnt{%
|
|
\edef\mandatory@arg{\mandatory@arg\expandafter\genb@x\f@size..\@@}%
|
|
\empty@sfcnt}
|
|
\def\genb@x#1.#2.#3\@@{\two@digits{#1}\genb@y#200\@@}
|
|
\def\genb@y#1#2#3\@@{#1#2}
|
|
\DeclareSizeFunction{sub}{\sub@sfcnt\@font@warning}
|
|
\DeclareSizeFunction{ssub}{\sub@sfcnt\@font@info}
|
|
\def\sub@sfcnt#1{%
|
|
\edef\mandatory@arg{\f@encoding/\mandatory@arg}%
|
|
\begingroup
|
|
\expandafter\split@name\mandatory@arg/\@nil
|
|
\try@load@fontshape
|
|
\endgroup
|
|
\let\f@user@size\f@size
|
|
\expandafter
|
|
\ifx\csname\mandatory@arg\endcsname\relax
|
|
\errmessage{No\space declaration\space for\space
|
|
shape\space \mandatory@arg}%
|
|
\error@fontshape
|
|
\else
|
|
#1{Font\space shape\space `\curr@fontshape'\space in\space
|
|
size\space <\f@size>\space not\space available\MessageBreak
|
|
Font\space shape\space `\mandatory@arg'\space tried\space
|
|
instead}%
|
|
\expandafter\split@name\mandatory@arg/\@nil
|
|
\fi
|
|
\edef\f@size{\f@user@size}%
|
|
\get@external@font
|
|
\do@subst@correction
|
|
}
|
|
\DeclareSizeFunction{alias}{\sub@sfcnt\@font@aliasinfo}
|
|
\def\@font@aliasinfo#1{%
|
|
\@font@info{Font\space shape\space `\curr@fontshape'\space
|
|
aliased\space to\MessageBreak `\mandatory@arg'}%
|
|
}
|
|
\DeclareSizeFunction{subf}{\subf@sfcnt\@font@warning}
|
|
\DeclareSizeFunction{ssubf}{\subf@sfcnt\@font@info}
|
|
\def\subf@sfcnt#1{%
|
|
#1{Font\space shape\space `\curr@fontshape'\space in\space
|
|
size\space \f@size\space not\space available\MessageBreak
|
|
external\space font\space `\mandatory@arg'\space used}%
|
|
\empty@sfcnt#1%
|
|
}
|
|
\DeclareSizeFunction{fixed}{\fixed@sfcnt\@font@warning}
|
|
\DeclareSizeFunction{sfixed}{\fixed@sfcnt\@font@info}
|
|
\def\fixed@sfcnt#1{%
|
|
\ifx\optional@arg\@empty
|
|
\let\external@font\mandatory@arg
|
|
\else
|
|
\edef\external@font{\mandatory@arg\space at\optional@arg pt}%
|
|
\fi
|
|
#1{External\space font\space `\external@font'\space loaded\space
|
|
for\space size\MessageBreak
|
|
<\f@size>}%
|
|
}
|
|
%%% From File: ltfssdcl.dtx
|
|
%% Copyright (C) 1989-1998 Frank Mittelbach and Rainer Sch\"opf,
|
|
%% all rights reserved.
|
|
\def\in@#1#2%
|
|
{%
|
|
\begingroup
|
|
\def\in@@##1#1{}%
|
|
\toks@\expandafter{\in@@#2{}{}#1}%
|
|
\edef\in@@{\the\toks@}%
|
|
\expandafter\endgroup
|
|
\ifx\in@@\@empty
|
|
\in@false
|
|
\else
|
|
\in@true
|
|
\fi
|
|
}
|
|
\newif\ifin@
|
|
\let\version@list=\@empty
|
|
\@onlypreamble\version@list
|
|
\let\version@elt\relax
|
|
\@onlypreamble\version@elt
|
|
\let\alpha@list\@empty
|
|
\@onlypreamble\alpha@list
|
|
\let\alpha@elt\relax
|
|
\@onlypreamble\alpha@elt
|
|
\count18=-1
|
|
\def\select@group#1#2#3#4{%
|
|
\ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
|
|
{%
|
|
\ifmmode
|
|
\ifnum\csname c@mv@\math@version\endcsname<\e@mathgroup@top
|
|
\begingroup
|
|
\escapechar\m@ne
|
|
\getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
|
|
\globaldefs\@ne \math@fonts
|
|
\endgroup
|
|
\init@restore@version
|
|
\xdef#1{\noexpand\use@mathgroup\noexpand#2%
|
|
{\number\csname c@mv@\math@version\endcsname}}%
|
|
\global\advance\csname c@mv@\math@version\endcsname\@ne
|
|
\else
|
|
\let#1\relax
|
|
\@latex@error{Too many math alphabets used in
|
|
version \math@version}%
|
|
\@eha
|
|
\fi
|
|
\else \expandafter\non@alpherr\fi
|
|
#1{#4}%
|
|
}%
|
|
}
|
|
\@onlypreamble\restore@mathversion
|
|
\def\init@restore@version{%
|
|
\global\let\init@restore@version\relax
|
|
\xdef\restore@mathversion
|
|
{\expandafter\noexpand\csname mv@\math@version\endcsname
|
|
\global\csname c@mv@\math@version\endcsname
|
|
\number\csname c@mv@\math@version\endcsname\relax}%
|
|
\aftergroup\dorestore@version
|
|
}
|
|
\@onlypreamble\init@restore@version
|
|
\gdef\non@alpherr#1{\@latex@error{%
|
|
\string#1allowed only in math mode}\@ehd}
|
|
\def\dorestore@version
|
|
{\ifmmode
|
|
\aftergroup\dorestore@version
|
|
\else
|
|
\gdef\init@restore@version{%
|
|
\global\let\init@restore@version\relax
|
|
\xdef\restore@mathversion
|
|
{\expandafter\noexpand\csname mv@\math@version\endcsname
|
|
\global\csname c@mv@\math@version\endcsname
|
|
\number\csname c@mv@\math@version\endcsname\relax}%
|
|
\aftergroup\dorestore@version
|
|
}%
|
|
\begingroup
|
|
\let\getanddefine@fonts\@gobbletwo
|
|
\restore@mathversion
|
|
\endgroup
|
|
\fi}%
|
|
\@onlypreamble\dorestore@version
|
|
\def\document@select@group#1#2#3#4{%
|
|
\ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
|
|
{%
|
|
\ifmmode
|
|
\ifnum\csname c@mv@\math@version\endcsname<\e@mathgroup@top
|
|
\begingroup
|
|
\escapechar\m@ne
|
|
\getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
|
|
\globaldefs\@ne \math@fonts
|
|
\endgroup
|
|
\expandafter\extract@alph@from@version
|
|
\csname mv@\math@version\expandafter\endcsname
|
|
\expandafter{\number\csname
|
|
c@mv@\math@version\endcsname}%
|
|
#1%
|
|
\global\advance\csname c@mv@\math@version\endcsname\@ne
|
|
\else
|
|
\let#1\relax
|
|
\@latex@error{Too many math alphabets used
|
|
in version \math@version}%
|
|
\@eha
|
|
\fi
|
|
\else \expandafter\non@alpherr\fi
|
|
#1{#4}%
|
|
}%
|
|
}
|
|
\def\process@table{%
|
|
\def\cdp@elt##1##2##3##4{%
|
|
\@font@info{Checking defaults for
|
|
##1/##2/##3/##4}%
|
|
\expandafter
|
|
\ifx\csname##1/##2/##3/##4\endcsname\relax
|
|
\begingroup
|
|
\def\f@encoding{##1}\def\f@family{##2}%
|
|
\try@load@fontshape
|
|
\endgroup
|
|
\fi
|
|
\expandafter
|
|
\ifx\csname##1/##2/##3/##4\endcsname\relax
|
|
\@latex@error{This NFSS system isn't set up properly}%
|
|
{For encoding scheme ##1 the defaults
|
|
##2/##3/##4 do not form a valid font shape}%
|
|
\else
|
|
\@font@info{... okay}%
|
|
\fi}%
|
|
\cdp@list
|
|
\begingroup
|
|
\escapechar\m@ne
|
|
\error@fontshape
|
|
\expandafter\ifx\csname \curr@fontshape\endcsname\relax
|
|
\begingroup
|
|
\try@load@fontshape
|
|
\endgroup
|
|
\fi
|
|
\expandafter\ifx\csname \curr@fontshape\endcsname\relax
|
|
\@latex@error{This NFSS system isn't set up properly}%
|
|
{The system maintainer forgot to specify a suitable
|
|
substitution
|
|
font shape using the \noexpand\DeclareErrorFont
|
|
command}%
|
|
\fi
|
|
\endgroup
|
|
\let\select@group\document@select@group
|
|
\fontencoding{\encodingdefault}%
|
|
\fontfamily{\familydefault}%
|
|
\fontseries{\seriesdefault}%
|
|
\fontshape{\shapedefault}%
|
|
\everyjob{}%
|
|
}
|
|
\@onlypreamble\process@table
|
|
\def\DeclareMathVersion#1{%
|
|
\expandafter\new@mathversion\csname mv@#1\endcsname}
|
|
\@onlypreamble\DeclareMathVersion
|
|
\def\new@mathversion#1{%
|
|
\expandafter\in@\expandafter#1\expandafter{\version@list}%
|
|
\ifin@
|
|
\@font@info{Redeclaring math version
|
|
`\expandafter\@gobblefour\string#1'}%
|
|
\else
|
|
\expandafter\newcount\csname c@\expandafter
|
|
\@gobble\string#1\endcsname
|
|
\def\version@elt{\noexpand\version@elt\noexpand}%
|
|
\edef\version@list{\version@list\version@elt#1}%
|
|
\fi
|
|
\toks@{}%
|
|
\count@\z@
|
|
\def\group@elt##1##2{%
|
|
\advance\count@\@ne
|
|
\addto@hook\toks@{\getanddefine@fonts##1##2}%
|
|
}%
|
|
\group@list
|
|
\global\csname c@\expandafter\@gobble\string#1\endcsname\count@
|
|
\def\alpha@elt##1##2##3{%
|
|
\ifx##2\no@alphabet@error
|
|
\toks@\expandafter{\the\toks@\install@mathalphabet##1%
|
|
{\no@alphabet@error##1}}%
|
|
\else
|
|
\toks@\expandafter{\the\toks@\install@mathalphabet##1%
|
|
{\select@group##1##2##3}}%
|
|
\fi
|
|
}%
|
|
\alpha@list
|
|
\xdef#1{\the\toks@}%
|
|
}
|
|
\@onlypreamble\new@mathversion
|
|
\def\DeclareSymbolFont#1#2#3#4#5{%
|
|
\@tempswafalse
|
|
\edef\reserved@b{#2}%
|
|
\def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
|
|
\ifx\reserved@b\reserved@c \@tempswatrue\fi}%
|
|
\cdp@list
|
|
\if@tempswa
|
|
\@ifundefined{sym#1}{%
|
|
\ifnum\count18<15 %
|
|
\expandafter\new@mathgroup\csname sym#1\endcsname
|
|
\expandafter\new@symbolfont\csname sym#1\endcsname
|
|
{#2}{#3}{#4}{#5}%
|
|
\else
|
|
\@latex@error{Too many symbol fonts declared}\@eha
|
|
\fi
|
|
}%
|
|
{%
|
|
\@font@info{Redeclaring symbol font `#1'}%
|
|
\def\group@elt##1##2{%
|
|
\noexpand\group@elt\noexpand##1%
|
|
\expandafter\ifx\csname sym#1\endcsname##1%
|
|
\expandafter\noexpand\csname#2/#3/#4/#5\endcsname
|
|
\else
|
|
\noexpand##2%
|
|
\fi}%
|
|
\xdef\group@list{\group@list}%
|
|
\def\version@elt##1{%
|
|
\expandafter
|
|
\SetSymbolFont@\expandafter##1\csname#2/#3/#4/#5\expandafter
|
|
\endcsname \csname sym#1\endcsname
|
|
}%
|
|
\version@list
|
|
}%
|
|
\else
|
|
\@latex@error{Encoding scheme `#2' unknown}\@eha
|
|
\fi
|
|
}
|
|
\@onlypreamble\DeclareSymbolFont
|
|
\let\group@list\@empty
|
|
\@onlypreamble\group@list
|
|
\let\group@elt\relax
|
|
\@onlypreamble\group@elt
|
|
\def\new@symbolfont#1#2#3#4#5{%
|
|
\toks@\expandafter{\group@list}%
|
|
\edef\group@list{\the\toks@\noexpand\group@elt\noexpand#1%
|
|
\expandafter\noexpand\csname#2/#3/#4/#5\endcsname}%
|
|
\def\version@elt##1{\toks@\expandafter{##1}%
|
|
\edef##1{\the\toks@\noexpand\getanddefine@fonts
|
|
#1\expandafter\noexpand\csname#2/#3/#4/#5\endcsname}%
|
|
\global\advance\csname c@\expandafter
|
|
\@gobble\string##1\endcsname\@ne
|
|
}%
|
|
\version@list
|
|
}
|
|
\@onlypreamble\new@symbolfont
|
|
\def\SetSymbolFont#1#2#3#4#5#6{%
|
|
\@tempswafalse
|
|
\edef\reserved@b{#3}%
|
|
\def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
|
|
\ifx\reserved@b\reserved@c \@tempswatrue\fi}%
|
|
\cdp@list
|
|
\if@tempswa
|
|
\expandafter\SetSymbolFont@
|
|
\csname mv@#2\expandafter\endcsname\csname#3/#4/#5/#6\expandafter
|
|
\endcsname \csname sym#1\endcsname
|
|
\else
|
|
\@latex@error{Encoding scheme `#3' unknown}\@eha
|
|
\fi
|
|
}
|
|
\@onlypreamble\SetSymbolFont
|
|
\def\SetSymbolFont@#1#2#3{%
|
|
\expandafter\in@\expandafter#1\expandafter{\version@list}%
|
|
\ifin@
|
|
\expandafter\in@\expandafter#3\expandafter{\group@list}%
|
|
\ifin@
|
|
\begingroup
|
|
\expandafter\get@cdp\string#2\@nil\reserved@a
|
|
\toks@{}%
|
|
\def\install@mathalphabet##1##2{%
|
|
\addto@hook\toks@{\install@mathalphabet##1{##2}}%
|
|
}%
|
|
\def\getanddefine@fonts##1##2{%
|
|
\ifnum##1=#3%
|
|
\addto@hook\toks@{\getanddefine@fonts#3#2}%
|
|
\expandafter\get@cdp\string##2\@nil\reserved@b
|
|
\ifx\reserved@a\reserved@b\else
|
|
\@font@info{Encoding `\reserved@b' has changed
|
|
to `\reserved@a' for symbol font\MessageBreak
|
|
`\expandafter\@gobblefour\string#3' in the
|
|
math version `\expandafter
|
|
\@gobblefour\string#1'}%
|
|
\fi
|
|
\@font@info{%
|
|
Overwriting symbol font
|
|
`\expandafter\@gobblefour\string#3' in
|
|
version `\expandafter
|
|
\@gobblefour\string#1'\MessageBreak
|
|
\@spaces \expandafter\@gobble\string##2 -->
|
|
\expandafter\@gobble\string#2}%
|
|
\else
|
|
\addto@hook\toks@{\getanddefine@fonts##1##2}%
|
|
\fi}%
|
|
#1%
|
|
\xdef#1{\the\toks@}%
|
|
\endgroup
|
|
\else
|
|
\@latex@error{Symbol font `\expandafter\@gobblefour\string#3'
|
|
not defined}\@eha
|
|
\fi
|
|
\else
|
|
\@latex@error{Math version `\expandafter\@gobblefour\string#1'
|
|
is not
|
|
defined}{You probably misspelled the name of the math
|
|
version.^^JOr you have to specify an additional package.}%
|
|
\fi
|
|
}
|
|
\@onlypreamble\SetSymbolFont@
|
|
\def\get@cdp#1#2/#3\@nil#4{\def#4{#2}}
|
|
\@onlypreamble\get@cdp
|
|
\def\DeclareMathAlphabet#1#2#3#4#5{%
|
|
\@tempswafalse
|
|
\edef\reserved@b{#2}%
|
|
\def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
|
|
\ifx\reserved@b\reserved@c \@tempswatrue\fi}%
|
|
\cdp@list
|
|
\if@tempswa
|
|
\expandafter\ifx
|
|
\csname\expandafter\@gobble\string#1\endcsname
|
|
\relax
|
|
\new@mathalphabet#1{#2}{#3}{#4}{#5}%
|
|
\else
|
|
\edef\reserved@a{\noexpand\in@{\string\select@group}%
|
|
{\expandafter\meaning\csname \expandafter
|
|
\@gobble\string#1\space\endcsname}}%
|
|
\reserved@a
|
|
\ifin@
|
|
\@font@info{Redeclaring math alphabet \string#1}%
|
|
\def\version@elt##1{%
|
|
\expandafter\SetMathAlphabet@\expandafter
|
|
##1\csname#2/#3/#4/#5\expandafter\endcsname
|
|
\csname M@#2\expandafter\endcsname
|
|
\csname \expandafter\@gobble\string#1\space\endcsname#1}%
|
|
\version@list
|
|
\else
|
|
\edef\reserved@a{\noexpand\in@{\string\use@mathgroup}%
|
|
{\expandafter\meaning\csname \expandafter
|
|
\@gobble\string#1\space\endcsname}}%
|
|
\reserved@a
|
|
\ifin@
|
|
\@font@info{Redeclaring math alphabet \string#1}%
|
|
\new@mathalphabet#1{#2}{#3}{#4}{#5}%
|
|
\else
|
|
\@latex@error{Command `\string#1' already defined}\@eha
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\else
|
|
\@latex@error{Encoding scheme `#2' unknown}\@eha
|
|
\fi
|
|
}
|
|
\@onlypreamble\DeclareMathAlphabet
|
|
\def\new@mathalphabet#1#2#3#4#5{%
|
|
\toks@\expandafter{\alpha@list}%
|
|
\edef#1{\expandafter\noexpand\csname \expandafter
|
|
\@gobble\string#1\space\endcsname
|
|
\if/#5/%
|
|
\noexpand\no@alphabet@error
|
|
\noexpand\no@alphabet@error
|
|
\else
|
|
\expandafter\noexpand\csname M@#2\endcsname
|
|
\expandafter\noexpand\csname#2/#3/#4/#5\endcsname
|
|
\fi
|
|
}%
|
|
\toks2\expandafter{#1}%
|
|
\edef\alpha@list{\the\toks@\noexpand\alpha@elt\the\toks2}%
|
|
\def\version@elt##1{\toks@\expandafter{##1}%
|
|
\edef##1{\the\toks@\install@mathalphabet
|
|
\expandafter\noexpand
|
|
\csname \expandafter\@gobble
|
|
\string#1\space\endcsname
|
|
{\if/#5/%
|
|
\noexpand\no@alphabet@error
|
|
\noexpand#1%
|
|
\else
|
|
\noexpand\select@group\the\toks2
|
|
\fi}}%
|
|
}%
|
|
\version@list
|
|
\expandafter\edef\csname \expandafter\@gobble
|
|
\string#1\space\endcsname{\if/#5/%
|
|
\noexpand\no@alphabet@error
|
|
\noexpand#1%
|
|
\else
|
|
\noexpand\select@group\the\toks2
|
|
\fi}%
|
|
\edef#1{\noexpand\protect
|
|
\expandafter\noexpand\csname \expandafter
|
|
\@gobble\string#1\space\endcsname}%
|
|
}
|
|
\@onlypreamble\new@mathalphabet
|
|
\def\SetMathAlphabet#1#2#3#4#5#6{%
|
|
\@tempswafalse
|
|
\edef\reserved@b{#3}%
|
|
\def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
|
|
\ifx\reserved@b\reserved@c \@tempswatrue\fi}%
|
|
\cdp@list
|
|
\if@tempswa
|
|
\expandafter\SetMathAlphabet@
|
|
\csname mv@#2\expandafter\endcsname\csname#3/#4/#5/#6\expandafter
|
|
\endcsname \csname M@#3\expandafter\endcsname
|
|
\csname \expandafter\@gobble\string#1\space\endcsname#1%
|
|
\else
|
|
\@latex@error{Encoding scheme `#3' unknown}\@eha
|
|
\fi
|
|
}
|
|
\@onlypreamble\SetMathAlphabet
|
|
\def\SetMathAlphabet@#1#2#3#4#5{%
|
|
\expandafter\in@\expandafter#1\expandafter{\version@list}%
|
|
\ifin@
|
|
\expandafter\in@\expandafter#4\expandafter{\alpha@list}%
|
|
\ifin@
|
|
\begingroup
|
|
\toks@{}%
|
|
\def\getanddefine@fonts##1##2{%
|
|
\addto@hook\toks@{\getanddefine@fonts##1##2}%
|
|
}%
|
|
\def\reserved@c##1##2##3##4{% % for message below
|
|
\expandafter\@gobble\string##4}%
|
|
\def\install@mathalphabet##1##2{%
|
|
\ifx##1#4%
|
|
\addto@hook\toks@
|
|
{\install@mathalphabet#4{\select@group#4#3#2}}%
|
|
\@font@info{Overwriting math alphabet
|
|
`\string#5' in version `\expandafter
|
|
\@gobblefour\string#1'\MessageBreak
|
|
\@spaces \reserved@c##2 -->
|
|
\expandafter\@gobble\string#2}%
|
|
\else
|
|
\addto@hook\toks@{\install@mathalphabet##1{##2}}%
|
|
\fi
|
|
}%
|
|
#1%
|
|
\xdef#1{\the\toks@}%
|
|
\endgroup
|
|
\else
|
|
\edef\reserved@a{%
|
|
\noexpand\in@{\string\use@mathgroup}{\meaning#4}}%
|
|
\reserved@a
|
|
\ifin@
|
|
\def\reserved@b##1\use@mathgroup##2##3{%
|
|
\def\reserved@b{##3}\def\reserved@c{##2}}%
|
|
\expandafter\reserved@b#4%
|
|
\begingroup
|
|
\def\install@mathalphabet##1##2{%
|
|
\addto@hook\toks@{\install@mathalphabet##1{##2}}%
|
|
}%
|
|
\def\getanddefine@fonts##1##2{%
|
|
\addto@hook\toks@{\getanddefine@fonts##1##2}%
|
|
\ifnum##1=\reserved@b
|
|
\expandafter
|
|
\addto@hook\expandafter\toks@
|
|
\expandafter{\expandafter\install@mathalphabet
|
|
\expandafter#4\expandafter
|
|
{\expandafter\select@group\expandafter
|
|
#4\reserved@c##2}}%
|
|
\fi
|
|
}%
|
|
\def\version@elt##1{%
|
|
\toks@{}%
|
|
##1%
|
|
\xdef##1{\the\toks@}%
|
|
}%
|
|
\version@list
|
|
\endgroup
|
|
\expandafter\gdef\expandafter\alpha@list\expandafter
|
|
{\alpha@list
|
|
\alpha@elt #4\no@alphabet@error \no@alphabet@error}%
|
|
\gdef#4{\no@alphabet@error #5}% fake things :-)
|
|
\SetMathAlphabet@{#1}{#2}{#3}#4#5%
|
|
\else
|
|
\@latex@error{Command `\string#5' not defined as a
|
|
math alphabet}%
|
|
{Use \noexpand\DeclareMathAlphabet to define it.}%
|
|
\fi
|
|
\fi
|
|
\else
|
|
\@latex@error{Math version `\expandafter\@gobblefour\string#1'
|
|
is not
|
|
defined}{You probably misspelled the name of the math
|
|
version.^^JOr you have to specify an additional package.}%
|
|
\fi
|
|
}
|
|
\@onlypreamble\SetMathAlphabet@
|
|
\def\DeclareMathAccent#1#2#3#4{%
|
|
\expandafter\in@\csname sym#3\expandafter\endcsname
|
|
\expandafter{\group@list}%
|
|
\ifin@
|
|
\begingroup
|
|
\count\z@=#4\relax
|
|
\count\tw@\count\z@
|
|
\divide\count\z@\sixt@@n
|
|
\count@\count\z@
|
|
\multiply\count@\sixt@@n
|
|
\advance\count\tw@-\count@
|
|
\if\relax\noexpand#1% is command?
|
|
\edef\reserved@a{\noexpand\in@
|
|
{\expandafter\@gobble\string\mathaccent}
|
|
{\expandafter\meaning
|
|
\csname\expandafter\@gobble\string#1\space\endcsname}}%
|
|
\reserved@a
|
|
\ifin@
|
|
\expandafter\let
|
|
\csname\expandafter\@gobble\string#1\space\endcsname
|
|
\@undefined
|
|
\expandafter\set@mathaccent
|
|
\csname sym#3\endcsname#1#2%
|
|
{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
\@font@info{Redeclaring math accent \string#1}%
|
|
\else
|
|
\expandafter\ifx
|
|
\csname\expandafter\@gobble\string#1\endcsname
|
|
\relax
|
|
\expandafter\set@mathaccent
|
|
\csname sym#3\endcsname#1#2%
|
|
{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
\else
|
|
\@latex@error{Command `\string#1' already defined}\@eha
|
|
\fi
|
|
\fi
|
|
\else
|
|
\@latex@error{Not a command name: `\noexpand#1'}\@eha
|
|
\fi
|
|
\endgroup
|
|
\else
|
|
\@latex@error{Symbol font `#3' is not defined}\@eha
|
|
\fi
|
|
}
|
|
\@onlypreamble\DeclareMathAccent
|
|
\def\set@mathaccent#1#2#3#4{%
|
|
\xdef#2{\mathaccent"\mathchar@type#3\hexnumber@#1#4\relax}%
|
|
\MakeRobust#2%
|
|
}
|
|
\@onlypreamble\set@mathaccent
|
|
\def\DeclareMathSymbol#1#2#3#4{%
|
|
\expandafter\in@\csname sym#3\expandafter\endcsname
|
|
\expandafter{\group@list}%
|
|
\ifin@
|
|
\begingroup
|
|
\count\z@=#4\relax
|
|
\count\tw@\count\z@
|
|
\divide\count\z@\sixt@@n
|
|
\count@\count\z@
|
|
\multiply\count@\sixt@@n
|
|
\advance\count\tw@-\count@
|
|
\if\relax\noexpand#1% is command?
|
|
\edef\reserved@b{\expandafter\noexpand
|
|
\csname\expandafter\@gobble\string#1\space\endcsname}%
|
|
\edef\reserved@a
|
|
{\noexpand\in@{\expandafter\@gobble\string\mathchar}%
|
|
{\meaning#1\expandafter\meaning\reserved@b}}%
|
|
\reserved@a
|
|
\global\expandafter\let\reserved@b\@undefined
|
|
\ifin@
|
|
\expandafter\set@mathsymbol
|
|
\csname sym#3\endcsname#1#2%
|
|
{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
\@font@info{Redeclaring math symbol \string#1}%
|
|
\else
|
|
\expandafter\ifx
|
|
\csname\expandafter\@gobble\string#1\endcsname
|
|
\relax
|
|
\expandafter\set@mathsymbol
|
|
\csname sym#3\endcsname#1#2%
|
|
{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
\else
|
|
\@latex@error{Command `\string#1' already defined}\@eha
|
|
\fi
|
|
\fi
|
|
\else
|
|
\expandafter\set@mathchar
|
|
\csname sym#3\endcsname#1#2
|
|
{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
\fi
|
|
\endgroup
|
|
\else
|
|
\@latex@error{Symbol font `#3' is not defined}\@eha
|
|
\fi
|
|
}
|
|
\@onlypreamble\DeclareMathSymbol
|
|
\def\set@mathchar#1#2#3#4{%
|
|
\global\mathcode`#2="\mathchar@type#3\hexnumber@#1#4\relax}
|
|
\@onlypreamble\set@mathchar
|
|
\def\set@mathsymbol#1#2#3#4{%
|
|
\global\mathchardef#2"\mathchar@type#3\hexnumber@#1#4\relax}
|
|
\@onlypreamble\set@mathsymbol
|
|
\def\DeclareMathDelimiter#1{%
|
|
\if\relax\noexpand#1%
|
|
\expandafter\@DeclareMathDelimiter
|
|
\else
|
|
\expandafter\@xxDeclareMathDelimiter
|
|
\fi
|
|
#1}
|
|
\@onlypreamble\DeclareMathDelimiter
|
|
\def\@xxDeclareMathDelimiter#1#2#3#4{%
|
|
\begingroup
|
|
\let\mathalpha\mathord
|
|
\ifnum7=\mathchar@type{#2}%
|
|
\endgroup
|
|
\expandafter\@firstofone
|
|
\else
|
|
\endgroup
|
|
\DeclareMathSymbol#1{#2}{#3}{#4}%
|
|
\expandafter\@firstoftwo
|
|
\fi
|
|
{\@xDeclareMathDelimiter#1}{#2}{#3}{#4}}
|
|
\@onlypreamble\@xxDeclareMathDelimiter
|
|
\def\@DeclareMathDelimiter#1#2#3#4#5#6{%
|
|
\expandafter\in@\csname sym#3\expandafter\endcsname
|
|
\expandafter{\group@list}%
|
|
\ifin@
|
|
\expandafter\in@\csname sym#5\expandafter\endcsname
|
|
\expandafter{\group@list}%
|
|
\ifin@
|
|
\begingroup
|
|
\count\z@=#4\relax
|
|
\count\tw@\count\z@
|
|
\divide\count\z@\sixt@@n
|
|
\count@\count\z@
|
|
\multiply\count@\sixt@@n
|
|
\advance\count\tw@-\count@
|
|
\edef\reserved@c{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
%
|
|
\count\z@=#6\relax
|
|
\count\tw@\count\z@
|
|
\divide\count\z@\sixt@@n
|
|
\count@\count\z@
|
|
\multiply\count@\sixt@@n
|
|
\advance\count\tw@-\count@
|
|
\edef\reserved@d{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
%
|
|
\edef\reserved@a{\noexpand\in@
|
|
{\expandafter\@gobble\string\delimiter}{\meaning#1}}%
|
|
\reserved@a
|
|
\ifin@
|
|
\expandafter\set@mathdelimiter
|
|
\csname sym#3\expandafter\endcsname
|
|
\csname sym#5\endcsname#1#2%
|
|
\reserved@c\reserved@d
|
|
\@font@info{Redeclaring math delimiter \string#1}%
|
|
\else
|
|
\expandafter\ifx
|
|
\csname\expandafter\@gobble\string#1\endcsname
|
|
\relax
|
|
\expandafter\set@mathdelimiter
|
|
\csname sym#3\expandafter\endcsname
|
|
\csname sym#5\endcsname#1#2%
|
|
\reserved@c\reserved@d
|
|
\else
|
|
\@latex@error{Command `\string#1' already defined}\@eha
|
|
\fi
|
|
\fi
|
|
\endgroup
|
|
\else
|
|
\@latex@error{Symbol font `#5' is not defined}\@eha
|
|
\fi
|
|
\else
|
|
\@latex@error{Symbol font `#3' is not defined}\@eha
|
|
\fi
|
|
}
|
|
\@onlypreamble\@DeclareMathDelimiter
|
|
\def\@xDeclareMathDelimiter#1#2#3#4#5{%
|
|
\expandafter\in@\csname sym#2\expandafter\endcsname
|
|
\expandafter{\group@list}%
|
|
\ifin@
|
|
\expandafter\in@\csname sym#4\expandafter\endcsname
|
|
\expandafter{\group@list}%
|
|
\ifin@
|
|
\begingroup
|
|
\count\z@=#3\relax
|
|
\count\tw@\count\z@
|
|
\divide\count\z@\sixt@@n
|
|
\count@\count\z@
|
|
\multiply\count@\sixt@@n
|
|
\advance\count\tw@-\count@
|
|
\edef\reserved@c{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
%
|
|
\count\z@=#5\relax
|
|
\count\tw@\count\z@
|
|
\divide\count\z@\sixt@@n
|
|
\count@\count\z@
|
|
\multiply\count@\sixt@@n
|
|
\advance\count\tw@-\count@
|
|
\edef\reserved@d{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
\expandafter\set@@mathdelimiter
|
|
\csname sym#2\expandafter\endcsname\csname sym#4\endcsname#1%
|
|
\reserved@c\reserved@d
|
|
\endgroup
|
|
\else
|
|
\@latex@error{Symbol font `#4' is not defined}\@eha
|
|
\fi
|
|
\else
|
|
\@latex@error{Symbol font `#2' is not defined}\@eha
|
|
\fi
|
|
}
|
|
\@onlypreamble\@xDeclareMathDelimiter
|
|
\def\set@mathdelimiter#1#2#3#4#5#6{%
|
|
\protected
|
|
\xdef#3{\delimiter"\mathchar@type#4\hexnumber@#1#5%
|
|
\hexnumber@#2#6 }%
|
|
}
|
|
\@onlypreamble\set@mathdelimiter
|
|
\def\set@@mathdelimiter#1#2#3#4#5{%
|
|
\global\delcode`#3="\hexnumber@#1#4\hexnumber@#2#5\relax}
|
|
\@onlypreamble\set@@mathdelimiter
|
|
\def\DeclareMathRadical#1#2#3#4#5{%
|
|
\expandafter\ifx
|
|
\csname\expandafter\@gobble\string#1\endcsname
|
|
\relax
|
|
\let#1\radical
|
|
\fi
|
|
\edef\reserved@a{\noexpand\in@
|
|
{\expandafter\@gobble\string\radical}{\meaning#1}}%
|
|
\reserved@a
|
|
\ifin@
|
|
\expandafter\in@\csname sym#2\expandafter\endcsname
|
|
\expandafter{\group@list}%
|
|
\ifin@
|
|
\expandafter\in@\csname sym#4\expandafter\endcsname
|
|
\expandafter{\group@list}%
|
|
\ifin@
|
|
\begingroup
|
|
\count\z@=#3\relax
|
|
\count\tw@\count\z@
|
|
\divide\count\z@\sixt@@n
|
|
\count@\count\z@
|
|
\multiply\count@\sixt@@n
|
|
\advance\count\tw@-\count@
|
|
\edef\reserved@c{%
|
|
\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
\count\z@=#5\relax
|
|
\count\tw@\count\z@
|
|
\divide\count\z@\sixt@@n
|
|
\count@\count\z@
|
|
\multiply\count@\sixt@@n
|
|
\advance\count\tw@-\count@
|
|
\edef\reserved@d{%
|
|
\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
|
|
\xdef#1{\radical"\expandafter\hexnumber@
|
|
\csname sym#2\endcsname\reserved@c
|
|
\expandafter\hexnumber@
|
|
\csname sym#4\endcsname\reserved@d
|
|
\relax}%
|
|
\endgroup
|
|
\else
|
|
\@latex@error{Symbol font `#4' is not defined}\@eha
|
|
\fi
|
|
\else
|
|
\@latex@error{Symbol font `#2' is not defined}\@eha
|
|
\fi
|
|
\else
|
|
\@latex@error{Command `\string#1' already defined}\@eha
|
|
\fi
|
|
}
|
|
\@onlypreamble\DeclareMathRadical
|
|
\let\mathalpha\relax
|
|
\def\mathchar@type#1{%
|
|
\ifodd 2#11 #1\else % is this non-negative number?
|
|
\ifx#1\mathord 0\else
|
|
\ifx#1\mathop 1\else
|
|
\ifx#1\mathbin 2\else
|
|
\ifx#1\mathrel 3\else
|
|
\ifx#1\mathopen 4\else
|
|
\ifx#1\mathclose 5\else
|
|
\ifx#1\mathpunct 6\else
|
|
7% % anything else is variable ord
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi}
|
|
\@onlypreamble\mathchar@type
|
|
\def\DeclareSymbolFontAlphabet#1#2{%
|
|
\expandafter\DeclareSymbolFontAlphabet@
|
|
\csname \expandafter\@gobble\string#1\space\endcsname{#2}#1}
|
|
\@onlypreamble\DeclareSymbolFontAlphabet
|
|
\def\DeclareSymbolFontAlphabet@#1#2#3{%
|
|
\@tempswatrue
|
|
\expandafter\in@\csname sym#2\expandafter\endcsname
|
|
\expandafter{\group@list}%
|
|
\ifin@
|
|
\expandafter\in@\expandafter#1\expandafter{\alpha@list}%
|
|
\ifin@
|
|
\@font@info{Redeclaring math alphabet \string#3}%
|
|
\toks@{}%
|
|
\def\alpha@elt##1##2##3{%
|
|
\ifx##1#1\else\addto@hook\toks@{\alpha@elt##1##2##3}\fi}%
|
|
\alpha@list
|
|
\xdef\alpha@list{\the\toks@}%
|
|
\def\version@elt##1{%
|
|
\begingroup
|
|
\toks@{}%
|
|
\def\getanddefine@fonts####1####2{%
|
|
\addto@hook\toks@{\getanddefine@fonts####1####2}}%
|
|
\def\install@mathalphabet####1####2{%
|
|
\ifx####1#1\else
|
|
\addto@hook\toks@{\install@mathalphabet
|
|
####1{####2}}\fi}%
|
|
##1%
|
|
\xdef##1{\the\toks@}%
|
|
\endgroup
|
|
}%
|
|
\version@list
|
|
\else
|
|
\expandafter\ifx
|
|
\csname\expandafter\@gobble\string#1\space\endcsname
|
|
\relax
|
|
\else
|
|
\edef\reserved@a{%
|
|
\noexpand\in@{\string\use@mathgroup}{\meaning#1}}%
|
|
\reserved@a
|
|
\ifin@
|
|
\@font@info{Redeclaring math alphabet \string#3}%
|
|
\else
|
|
\@tempswafalse
|
|
\@latex@error{Command `\string#3' already defined}\@eha
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\else
|
|
\@tempswafalse
|
|
\@latex@error{Unknown symbol font `#2'}\@eha
|
|
\fi
|
|
\if@tempswa
|
|
\def\group@elt##1##2{%
|
|
\expandafter\ifx\csname sym#2\endcsname##1%
|
|
\expandafter\reserved@a\string##2\@nil
|
|
\fi}%
|
|
\def\reserved@a##1##2/##3\@nil{%
|
|
\def\reserved@a{##2}}%
|
|
\group@list
|
|
\toks@{\relax\ifmmode \else \non@alpherr#1\fi}%
|
|
\edef#1{\the\toks@
|
|
\noexpand\use@mathgroup
|
|
\expandafter\noexpand\csname M@\reserved@a\endcsname
|
|
\csname sym#2\endcsname}%
|
|
\def#3{\protect#1}%
|
|
\fi
|
|
}
|
|
\@onlypreamble\DeclareSymbolFontAlphabet@
|
|
%%% From File: ltfssini.dtx
|
|
%% Copyright (C) 1989-2001 Frank Mittelbach and Rainer Sch\"opf,
|
|
%% all rights reserved.
|
|
\DeclareMathVersion{normal}
|
|
\DeclareMathVersion{bold}
|
|
\DeclareRobustCommand\upshape
|
|
{\not@math@alphabet\upshape\relax
|
|
\fontshape\updefault\selectfont}
|
|
\DeclareRobustCommand\slshape
|
|
{\not@math@alphabet\slshape\relax
|
|
\fontshape\sldefault\selectfont}
|
|
\DeclareRobustCommand\scshape
|
|
{\not@math@alphabet\scshape\relax
|
|
\fontshape\scdefault\selectfont}
|
|
\DeclareRobustCommand\itshape
|
|
{\not@math@alphabet\itshape\mathit
|
|
\fontshape\itdefault\selectfont}
|
|
\newcommand\DeclareFontSeriesDefault[3][]{%
|
|
\def\reserved@a{#1}%
|
|
\ifx\reserved@a\@empty
|
|
\ifcsname #2series\endcsname % supported are
|
|
% \[md/bf]default
|
|
\expandafter\def
|
|
\csname #2default\endcsname{#3}%
|
|
\else
|
|
\@latex@error{Wrong syntax for \string\DeclareFontSeriesDefault}%
|
|
{Mandatory first argument must be 'md' or 'bf'.}
|
|
\fi
|
|
\else
|
|
\ifcsname #2series@#1\endcsname % supported are
|
|
% \[md/bf]series@[rm/sf/tt]
|
|
\expandafter\edef
|
|
\csname #2series@#1\endcsname{#3}%
|
|
\expandafter\let
|
|
\csname #2series@#1@kernel\endcsname\@undefined
|
|
\else
|
|
\@latex@error{Wrong syntax for \string\DeclareFontSeriesDefault}%
|
|
{Optional argument must be 'rm', 'sf', or 'tt'. \MessageBreak
|
|
Mandatory first argument must be 'md' or 'bf'.}
|
|
\fi
|
|
\fi
|
|
}
|
|
|
|
\def\bfseries@rm{bx}
|
|
\def\bfseries@sf{bx}
|
|
\def\bfseries@tt{bx}
|
|
\let\bfseries@rm@kernel\bfseries@rm
|
|
\let\bfseries@sf@kernel\bfseries@sf
|
|
\let\bfseries@tt@kernel\bfseries@tt
|
|
\def\mdseries@rm{m}
|
|
\def\mdseries@sf{m}
|
|
\def\mdseries@tt{m}
|
|
|
|
\def\expand@font@defaults{%
|
|
\edef\rmdef@ult{\rmdefault}%
|
|
\edef\sfdef@ult{\sfdefault}%
|
|
\edef\ttdef@ult{\ttdefault}%
|
|
\edef\bfdef@ult{\bfdefault}%
|
|
\edef\mddef@ult{\mddefault}%
|
|
\edef\famdef@ult{\familydefault}%
|
|
}
|
|
|
|
\DeclareRobustCommand\bfseries{%
|
|
\not@math@alphabet\bfseries\mathbf
|
|
\expand@font@defaults
|
|
\ifx\f@family\rmdef@ult \fontseries\bfseries@rm
|
|
\else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
|
|
\else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt
|
|
\else \fontseries\bfdefault
|
|
\fi\fi\fi
|
|
\selectfont
|
|
}
|
|
|
|
\DeclareRobustCommand\mdseries{%
|
|
\not@math@alphabet\mdseries\relax
|
|
\expand@font@defaults
|
|
\ifx\f@family\rmdef@ult \fontseries\mdseries@rm
|
|
\else\ifx\f@family\sfdef@ult \fontseries\mdseries@sf
|
|
\else\ifx\f@family\ttdef@ult \fontseries\mdseries@tt
|
|
\else \fontseries\mddefault
|
|
\fi\fi\fi
|
|
\selectfont
|
|
}
|
|
|
|
\DeclareRobustCommand\rmfamily{%
|
|
\not@math@alphabet\rmfamily\mathrm
|
|
\prepare@family@series@update{rm}\rmdefault
|
|
\@rmfamilyhook
|
|
\selectfont}
|
|
\DeclareRobustCommand\sffamily{%
|
|
\not@math@alphabet\sffamily\mathsf
|
|
\prepare@family@series@update{sf}\sfdefault
|
|
\@sffamilyhook
|
|
\selectfont}
|
|
\DeclareRobustCommand\ttfamily{%
|
|
\not@math@alphabet\ttfamily\mathtt
|
|
\prepare@family@series@update{tt}\ttdefault
|
|
\@ttfamilyhook
|
|
\selectfont}
|
|
\let\@rmfamilyhook\@empty
|
|
\let\@sffamilyhook\@empty
|
|
\let\@ttfamilyhook\@empty
|
|
\def\@meta@family@list{\@elt{rm}\@elt{sf}\@elt{tt}}
|
|
\def\prepare@family@series@update#1#2{%
|
|
\if@forced@series
|
|
\fontfamily#2%
|
|
\else
|
|
\expand@font@defaults
|
|
\let\target@series@value\@empty
|
|
\def\target@meta@family@value{#1}%
|
|
\expandafter\edef\csname ??def@ult\endcsname{\f@family}%
|
|
\let\@elt\update@series@target@value
|
|
\@meta@family@list
|
|
\@elt{??}%
|
|
\let\@elt\relax
|
|
\fontfamily#2%
|
|
\ifx\target@series@value\@empty
|
|
\else
|
|
\ifx \f@series\target@series@value
|
|
\else
|
|
\maybe@load@fontshape
|
|
\let\f@series\target@series@value
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\update@series@target@value#1{%
|
|
\def\reserved@a{#1}%
|
|
\ifx\target@meta@family@value\reserved@a % rm -> rm do nothing
|
|
\else
|
|
\expandafter\ifx\csname#1def@ult\endcsname\f@family
|
|
\let\@elt\@gobble
|
|
\expandafter\let\expandafter\reserved@b
|
|
\csname mdseries@\target@meta@family@value\endcsname
|
|
\expandafter\let\expandafter\reserved@c
|
|
\csname bfseries@\target@meta@family@value\endcsname
|
|
\expandafter\ifx\csname mdseries@#1\endcsname\f@series
|
|
\let\target@series@value\reserved@b
|
|
\else\expandafter\ifx\csname bfseries@#1\endcsname\f@series
|
|
\let\target@series@value\reserved@c
|
|
\else\ifx\f@series\mddef@ult \let\target@series@value\reserved@b
|
|
\else\ifx\f@series\bfdef@ult \let\target@series@value\reserved@c
|
|
\fi\fi\fi\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\init@series@setup{%
|
|
\ifx\bfseries@rm@kernel\bfseries@rm
|
|
\expandafter\in@\expandafter{\rmdefault}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
|
|
\ifin@ \else \def\bfseries@rm{b}\fi\fi
|
|
\ifx\bfseries@sf@kernel\bfseries@sf
|
|
\expandafter\in@\expandafter{\sfdefault}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
|
|
\ifin@ \else \def\bfseries@sf{b}\fi\fi
|
|
\ifx\bfseries@tt@kernel\bfseries@tt
|
|
\expandafter\in@\expandafter{\ttdefault}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
|
|
\ifin@ \else \def\bfseries@tt{b}\fi\fi
|
|
|
|
\expand@font@defaults
|
|
\ifx\famdef@ult\rmdef@ult \rmfamily
|
|
\else\ifx\famdef@ult\sfdef@ult \sffamily
|
|
\else\ifx\famdef@ult\ttdef@ult \ttfamily
|
|
\fi\fi\fi
|
|
}%
|
|
\expandafter\let\csname ver@mweights.sty\endcsname\fmtversion
|
|
|
|
\def\DeclareEmphSequence#1{%
|
|
\protected@edef\emfontdeclare@clist{\zap@space#1, \@empty\emforce\emreset}%
|
|
}
|
|
\let\emfontdeclare@clist\@empty
|
|
|
|
\DeclareRobustCommand\emreset{\upshape\ulcshape}
|
|
|
|
\DeclareRobustCommand\em{%
|
|
\@nomath\em
|
|
\ifx\emfontdeclare@clist\@empty
|
|
\ifdim \fontdimen\@ne\font >\z@
|
|
\eminnershape \else \itshape \fi
|
|
\else
|
|
\edef\em@currfont{\csname\curr@fontshape/\f@size\endcsname}%
|
|
\expandafter\do@emfont@update\emfontdeclare@clist\do@emfont@update
|
|
\fi
|
|
}
|
|
\def\eminnershape{\upshape}
|
|
\def\do@emfont@update#1,#2\do@emfont@update{%
|
|
\def\emfontdeclare@clist{#2,#1}%
|
|
#1\selectfont
|
|
\expandafter\ifx\csname \curr@fontshape/\f@size\em@force
|
|
\expandafter\endcsname
|
|
\em@currfont
|
|
\expandafter\do@emfont@update\emfontdeclare@clist\do@emfont@update
|
|
\else
|
|
\let\em@force\@empty
|
|
\fi
|
|
}
|
|
|
|
\protected\def\emforce{\def\em@force{/}}
|
|
\let\em@force\@empty
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\def\not@math@alphabet#1#2{%
|
|
\relax
|
|
\ifmmode
|
|
\@latex@error{Command \noexpand#1invalid in math mode}%
|
|
{%
|
|
Please
|
|
\ifx#2\relax
|
|
define a new math alphabet^^J%
|
|
if you want to use a special font in math mode%
|
|
\else
|
|
use the math alphabet \noexpand#2instead of
|
|
the #1command%
|
|
\fi
|
|
.
|
|
}%
|
|
\fi}
|
|
\DeclareRobustCommand\boldmath{\@nomath\boldmath
|
|
\mathversion{bold}}
|
|
\DeclareRobustCommand\unboldmath{\@nomath\unboldmath
|
|
\mathversion{normal}}
|
|
\def\math@version{normal}
|
|
\def\newfont#1#2{\@ifdefinable#1{\font#1=#2\relax}}
|
|
\DeclareRobustCommand\symbol[1]{\char #1\relax}
|
|
\def\@setfontsize#1#2#3{\@nomath#1%
|
|
\ifx\protect\@typeset@protect
|
|
\let\@currsize#1%
|
|
\fi
|
|
\fontsize{#2}{#3}\selectfont}
|
|
\def\@setsize#1#2#3#4{\@setfontsize#1{#4}{#2}}
|
|
\def\hexnumber@#1{\ifcase\number#1
|
|
0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
|
|
9\or A\or B\or C\or D\or E\or F\fi}
|
|
\def\nfss@text#1{{\mbox{#1}}}
|
|
\DeclareRobustCommand\normalfont{%
|
|
\fontencoding\encodingdefault
|
|
\edef\f@family{\familydefault}%
|
|
\edef\f@series{\seriesdefault}%
|
|
\edef\f@shape{\shapedefault}%
|
|
\@defaultfamilyhook
|
|
\selectfont}
|
|
\let\reset@font\normalfont
|
|
\let\@defaultfamilyhook\@empty
|
|
\def\not@base#1{\@latex@error
|
|
{Command \noexpand#1not provided in base LaTeX2e}%
|
|
{Load the latexsym or the amsfonts package to
|
|
define this symbol}}
|
|
\def\mho{\not@base\mho}
|
|
\def\Join{\not@base\Join}
|
|
\def\Box{\not@base\Box}
|
|
\def\Diamond{\not@base\Diamond}
|
|
\def\leadsto{\not@base\leadsto}
|
|
\def\sqsubset{\not@base\sqsubset}
|
|
\def\sqsupset{\not@base\sqsupset}
|
|
\def\lhd{\not@base\lhd}
|
|
\def\unlhd{\not@base\unlhd}
|
|
\def\rhd{\not@base\rhd}
|
|
\def\unrhd{\not@base\unrhd}
|
|
\DeclareErrorFont{OT1}{cmr}{m}{n}{10} %% don't modify this setting
|
|
%% overwrite it in fontdef.cfg
|
|
%% if necessary
|
|
\fontfamily{cmr}
|
|
\fontseries{m}
|
|
\fontshape{n}
|
|
\fontsize{10}{10}
|
|
\def\@fontenc@load@list{\@elt{T1,OT1}}
|
|
\InputIfFileExists{fonttext.cfg}
|
|
{\typeout{====================================^^J%
|
|
^^J%
|
|
Local config file fonttext.cfg used^^J%
|
|
^^J%
|
|
====================================}%
|
|
\def\@addtofilelist##1{\xdef\@filelist{\@filelist,##1}}%
|
|
}
|
|
{\input{fonttext.ltx}}
|
|
\let\@addtofilelist\@gobble
|
|
\InputIfFileExists{fontmath.cfg}
|
|
{\typeout{====================================^^J%
|
|
^^J%
|
|
Local config file fontmath.cfg used^^J%
|
|
^^J%
|
|
====================================}%
|
|
\def\@addtofilelist##1{\xdef\@filelist{\@filelist,##1}}%
|
|
}
|
|
{\input{fontmath.ltx}}
|
|
\let\@addtofilelist\@gobble
|
|
\InputIfFileExists{preload.cfg}
|
|
{\typeout{====================================^^J%
|
|
^^J%
|
|
Local config file preload.cfg used^^J%
|
|
^^J%
|
|
=====================================}%
|
|
\def\@addtofilelist##1{\xdef\@filelist{\@filelist,##1}}%
|
|
}
|
|
{\input{preload.ltx}}
|
|
\let\@addtofilelist\@gobble
|
|
\let\@acci\' \let\@accii\` \let\@acciii\=
|
|
%%% From File: ltfntcmd.dtx
|
|
%%
|
|
\def \DeclareTextFontCommand #1#2{%
|
|
\DeclareRobustCommand#1[1]{%
|
|
\ifmmode
|
|
\nfss@text{#2##1}%
|
|
\else
|
|
\hmode@bgroup
|
|
\text@command{##1}%
|
|
#2\check@icl ##1\check@icr
|
|
\expandafter
|
|
\egroup
|
|
\fi
|
|
}%
|
|
}
|
|
\DeclareTextFontCommand{\textrm}{\rmfamily}
|
|
\DeclareTextFontCommand{\textsf}{\sffamily}
|
|
\DeclareTextFontCommand{\texttt}{\ttfamily}
|
|
\DeclareTextFontCommand{\textnormal}{\normalfont}
|
|
\DeclareTextFontCommand{\textbf}{\bfseries}
|
|
\DeclareTextFontCommand{\textmd}{\mdseries}
|
|
\DeclareTextFontCommand{\textit}{\itshape}
|
|
\DeclareTextFontCommand{\textsl}{\slshape}
|
|
\DeclareTextFontCommand{\textsc}{\scshape}
|
|
\DeclareTextFontCommand{\textup}{\upshape}
|
|
|
|
\DeclareTextFontCommand{\textulc}{\ulcshape}
|
|
\DeclareTextFontCommand{\textsw}{\swshape}
|
|
\DeclareTextFontCommand{\textssc}{\sscshape}
|
|
\DeclareTextFontCommand{\emph}{\em}
|
|
\let \nocorr \relax
|
|
\let \check@icl \@empty
|
|
\let \check@icr \@empty
|
|
\def \text@command #1{%
|
|
\def \reserved@a {#1}%
|
|
\ifx \reserved@a \@empty
|
|
\let \check@icl \@empty
|
|
\let \check@icr \@empty
|
|
\else
|
|
\ifx \reserved@a \space
|
|
\let \check@icl \@empty
|
|
\let \check@icr \@empty
|
|
\else
|
|
\check@nocorr@ #1\nocorr\@nil
|
|
\fi
|
|
\fi
|
|
}
|
|
\def \check@nocorr@ #1#2\nocorr#3\@nil {%
|
|
\let \check@icl \maybe@ic
|
|
\def \check@icr {\ifvmode \else \aftergroup \maybe@ic \fi}%
|
|
\def \reserved@a {\nocorr}%
|
|
\def \reserved@b {#1}%
|
|
\def \reserved@c {#3}%
|
|
\ifx \reserved@a \reserved@b
|
|
\ifx \reserved@c \@empty
|
|
\let \check@icl \@empty
|
|
\else
|
|
\let \check@icl \@empty
|
|
\let \check@icr \@empty
|
|
\fi
|
|
\else
|
|
\ifx \reserved@c \@empty
|
|
\else
|
|
\let \check@icr \@empty
|
|
\fi
|
|
\fi
|
|
}
|
|
\newif\ifmaybe@ic
|
|
|
|
\def \maybe@ic {\futurelet\@let@token\maybe@ic@}
|
|
\def \maybe@ic@ {%
|
|
\ifdim \fontdimen\@ne\font>\z@
|
|
\else
|
|
\maybe@ictrue
|
|
\expandafter\@tfor\expandafter\reserved@a\expandafter:\expandafter=%
|
|
\nocorrlist
|
|
\do \t@st@ic
|
|
\ifmaybe@ic \sw@slant \fi
|
|
\fi
|
|
}
|
|
\def \t@st@ic {%
|
|
\expandafter\let\expandafter\reserved@b\expandafter=\reserved@a\relax
|
|
\ifx\reserved@b\@let@token
|
|
\maybe@icfalse
|
|
\@break@tfor
|
|
\fi
|
|
}
|
|
\def \sw@slant {%
|
|
\ifdim \lastskip=\z@
|
|
\fix@penalty
|
|
\else
|
|
\skip@ \lastskip
|
|
\unskip
|
|
\fix@penalty
|
|
\hskip \skip@
|
|
\fi
|
|
}
|
|
\def \fix@penalty {%
|
|
\ifnum \lastpenalty=\z@
|
|
\@@italiccorr
|
|
\else
|
|
\count@ \lastpenalty
|
|
\unpenalty
|
|
\@@italiccorr
|
|
\penalty \count@
|
|
\fi
|
|
}
|
|
\def \nocorrlist {,.}
|
|
\ifx \nfss@text\@undefined
|
|
\def \nfss@text {\leavevmode\hbox}
|
|
\fi
|
|
\def \DeclareOldFontCommand #1#2#3{%
|
|
\DeclareRobustCommand #1{\@fontswitch {#2}{#3}}%
|
|
}
|
|
\def \@fontswitch #1#2{%
|
|
\ifmmode
|
|
\let \math@bgroup \relax
|
|
\def \math@egroup {\let \math@bgroup \@@math@bgroup
|
|
\let \math@egroup \@@math@egroup}%
|
|
#2\relax
|
|
\else
|
|
#1%
|
|
\fi
|
|
}
|
|
\let \@@math@bgroup \math@bgroup
|
|
\let \@@math@egroup \math@egroup
|
|
\@onlypreamble \DeclareTextFontCommand
|
|
\@onlypreamble \DeclareOldFontCommand
|
|
\def\normalsize{%
|
|
\@latex@error {The font size command \protect\normalsize\space
|
|
is not defined:\MessageBreak
|
|
there is probably something wrong with
|
|
the class file}\@eha
|
|
}
|
|
\DeclareRobustCommand\legacyoldstylenums[1]{%
|
|
\begingroup
|
|
\spaceskip\fontdimen\tw@\font
|
|
\usefont{OML}{\rmdefault}{\f@series}{it}%
|
|
\mathgroup\symletters #1%
|
|
\endgroup
|
|
}
|
|
\DeclareRobustCommand\oldstylenums[1]{%
|
|
\begingroup
|
|
\ifmmode
|
|
\mathgroup\symletters #1%
|
|
\else
|
|
\CheckEncodingSubset\@use@text@encoding{TS1}\tc@oldstylesubst2{{#1}}%
|
|
\fi
|
|
\endgroup
|
|
}
|
|
\def\tc@oldstylesubst#1{%
|
|
\tc@errorwarn
|
|
{Oldstyle digits unavailable for
|
|
family \f@family.\MessageBreak
|
|
Default oldstyle digits used instead}\@eha
|
|
\bgroup
|
|
\expand@font@defaults
|
|
\ifx\f@family\rmdef@ult
|
|
\fontfamily\rmsubstdefault
|
|
\else\ifx\f@family\sfdef@ult
|
|
\fontfamily\sfsubstdefault
|
|
\else\ifx\f@family\ttdef@ult
|
|
\fontfamily\ttsubstdefault
|
|
\else
|
|
\fontfamily\textcompsubstdefault
|
|
\fi\fi\fi
|
|
\fontencoding{TS1}\selectfont#1%
|
|
\egroup
|
|
}
|
|
\def\textcompsubstdefault{\rmsubstdefault}
|
|
|
|
\def\DeclareEncodingSubset#1#2{%
|
|
\DeclareEncodingSubset@aux{#1}#2*\DeclareEncodingSubset@aux
|
|
}
|
|
\def\DeclareEncodingSubset@aux#1#2*#3\DeclareEncodingSubset@aux#4{%
|
|
\expandafter\ifx\expandafter X\detokenize{#3}X%
|
|
\@DeclareEncodingSubset{#1}{#2}{#4}%
|
|
\else
|
|
\@DeclareEncodingSubset{#1}{#2LF}{#4}%
|
|
\@DeclareEncodingSubset{#1}{#2TLF}{#4}%
|
|
\@DeclareEncodingSubset{#1}{#2OsF}{#4}%
|
|
\@DeclareEncodingSubset{#1}{#2TOsF}{#4}%
|
|
\fi
|
|
}
|
|
\def\@DeclareEncodingSubset#1#2#3{%
|
|
\@ifundefined{#1:#2}%
|
|
{\@font@info{Setting #2 sub-encoding to #1/#3}}%
|
|
{\@font@info{Changing #2 sub-encoding to #1/#3}}%
|
|
\@namedef{#1:#2}{#3}}
|
|
\@onlypreamble\DeclareEncodingSubset
|
|
\@onlypreamble\DeclareEncodingSubset@aux
|
|
\@onlypreamble\@DeclareEncodingSubset
|
|
|
|
|
|
\def\CheckEncodingSubset#1#2#3#4#5{%
|
|
\ifnum #4>%
|
|
\expandafter\ifx\csname #2:\f@family\endcsname\relax
|
|
0\csname #2:?\endcsname
|
|
\else
|
|
\csname #2:\f@family\endcsname
|
|
\fi
|
|
\relax
|
|
\expandafter\@firstoftwo
|
|
\else
|
|
\expandafter\@secondoftwo
|
|
\fi
|
|
{#1{#2}}{#3}%
|
|
#5%
|
|
}
|
|
|
|
\def\tc@errorwarn#1#2{\@latex@info{#1}}
|
|
|
|
\def\tc@subst#1{%
|
|
\tc@errorwarn
|
|
{Symbol \string#1 not provided by\MessageBreak
|
|
font family \f@family\space
|
|
in TS1 encoding.\MessageBreak Default family used instead}\@eha
|
|
\bgroup
|
|
\expand@font@defaults
|
|
\ifx\f@family\rmdef@ult
|
|
\fontfamily\rmsubstdefault
|
|
\else\ifx\f@family\sfdef@ult
|
|
\fontfamily\sfsubstdefault
|
|
\else\ifx\f@family\ttdef@ult
|
|
\fontfamily\ttsubstdefault
|
|
\else
|
|
\fontfamily\textcompsubstdefault
|
|
\fi\fi\fi
|
|
\@namedef{TS1:\f@family}{0}%
|
|
\selectfont#1%
|
|
\egroup
|
|
}
|
|
|
|
\def\tc@fake@euro#1{%
|
|
\leavevmode
|
|
\@font@info{Faking \noexpand#1for font family
|
|
\f@family\MessageBreak in TS1 encoding}%
|
|
\valign{##\cr
|
|
\vfil\hbox to 0.07em{\dimen@\f@size\p@
|
|
\math@fontsfalse
|
|
\fontsize{.7\dimen@}\z@\selectfont=\hss}%
|
|
\vfil\cr%
|
|
\hbox{C}\crcr
|
|
}%
|
|
}
|
|
|
|
\def\tc@check@symbol{\CheckEncodingSubset\UseTextSymbol{TS1}\tc@subst}
|
|
\def\tc@check@accent#1{\CheckEncodingSubset\UseTextAccent{TS1}{\tc@swap@accent#1}}
|
|
\def\tc@swap@accent#1#2{\UseTextAccent{T1}#1}
|
|
|
|
\DeclareTextSymbolDefault{\textdollar}{TS1}
|
|
\UndeclareTextCommand{\textdollar} {OT1} % don't use the OT1 def any longer
|
|
\DeclareTextSymbolDefault{\textsterling}{TS1}
|
|
\UndeclareTextCommand{\textsterling}{OT1} % don't use the OT1 def any longer
|
|
\DeclareTextSymbolDefault{\textperthousand}{TS1}
|
|
\UndeclareTextCommand{\textperthousand}{T1} % don't use the T1 def
|
|
\DeclareTextSymbolDefault{\textasteriskcentered}{TS1}
|
|
\DeclareTextSymbolDefault{\textbullet}{TS1}
|
|
\DeclareTextSymbolDefault{\textdaggerdbl}{TS1}
|
|
\DeclareTextSymbolDefault{\textdagger}{TS1}
|
|
\DeclareTextSymbolDefault{\textparagraph}{TS1}
|
|
\DeclareTextSymbolDefault{\textperiodcentered}{TS1}
|
|
\DeclareTextSymbolDefault{\textsection}{TS1}
|
|
%%\DeclareTextSymbolDefault{\textbardbl}{TS1} % subst in sub-enc 9 above
|
|
\DeclareTextSymbolDefault{\textbrokenbar}{TS1}
|
|
%%\DeclareTextSymbolDefault{\textcelsius}{TS1} % subst in sub-enc 9 above
|
|
\DeclareTextSymbolDefault{\textcent}{TS1}
|
|
\DeclareTextSymbolDefault{\textcopyright}{TS1}
|
|
\DeclareTextSymbolDefault{\textdegree}{TS1}
|
|
\DeclareTextSymbolDefault{\textdiv}{TS1}
|
|
\DeclareTextSymbolDefault{\textlnot}{TS1}
|
|
\DeclareTextSymbolDefault{\textonehalf}{TS1}
|
|
\DeclareTextSymbolDefault{\textonequarter}{TS1}
|
|
%%\DeclareTextSymbolDefault{\textonesuperior}{TS1} % subst in sub-enc 9 above
|
|
\DeclareTextSymbolDefault{\textordfeminine}{TS1}
|
|
\DeclareTextSymbolDefault{\textordmasculine}{TS1}
|
|
\DeclareTextSymbolDefault{\textpm}{TS1}
|
|
\DeclareTextSymbolDefault{\textquotesingle}{TS1}
|
|
\DeclareTextSymbolDefault{\textquotestraightbase}{TS1}
|
|
\DeclareTextSymbolDefault{\textquotestraightdblbase}{TS1}
|
|
\DeclareTextSymbolDefault{\textregistered}{TS1}
|
|
%%\DeclareTextSymbolDefault{\textthreequartersemdash}{TS1} % subst in sub-enc 9 above
|
|
\DeclareTextSymbolDefault{\textthreequarters}{TS1}
|
|
%%\DeclareTextSymbolDefault{\textthreesuperior}{TS1} % subst in sub-enc 9 above
|
|
\DeclareTextSymbolDefault{\texttimes}{TS1}
|
|
\DeclareTextSymbolDefault{\texttrademark}{TS1}
|
|
%%\DeclareTextSymbolDefault{\texttwelveudash}{TS1} % subst in sub-enc 9 above
|
|
%%\DeclareTextSymbolDefault{\texttwosuperior}{TS1} % subst in sub-enc 9 above
|
|
\DeclareTextSymbolDefault{\textyen}{TS1}
|
|
\DeclareTextSymbolDefault{\textcapitalcompwordmark}{TS1}
|
|
\DeclareTextSymbolDefault{\textascendercompwordmark}{TS1}
|
|
\DeclareTextCommandDefault{\textcircled}
|
|
{\CheckEncodingSubset\UseTextAccent{TS1}{\UseTextAccent{OMS}}1\textcircled}
|
|
\DeclareTextCommandDefault{\t}
|
|
{\CheckEncodingSubset\UseTextAccent{TS1}{\UseTextAccent{OML}}2\t}
|
|
\ifx\Umathcode\@undefined
|
|
\DeclareTextCommandDefault{\capitalacute} {\tc@check@accent{\'}2\capitalacute}
|
|
\DeclareTextCommandDefault{\capitalbreve} {\tc@check@accent{\u}2\capitalbreve}
|
|
\DeclareTextCommandDefault{\capitalcaron} {\tc@check@accent{\v}2\capitalcaron}
|
|
\DeclareTextCommandDefault{\capitalcedilla} {\tc@check@accent{\c}2\capitalcedilla}
|
|
\DeclareTextCommandDefault{\capitalcircumflex} {\tc@check@accent{\^}2\capitalcircumflex}
|
|
\DeclareTextCommandDefault{\capitaldieresis} {\tc@check@accent{\"}2\capitaldieresis}
|
|
\DeclareTextCommandDefault{\capitaldotaccent} {\tc@check@accent{\.}2\capitaldotaccent}
|
|
\DeclareTextCommandDefault{\capitalgrave} {\tc@check@accent{\`}2\capitalgrave}
|
|
\DeclareTextCommandDefault{\capitalhungarumlaut}{\tc@check@accent{\H}2\capitalhungarumlaut}
|
|
\DeclareTextCommandDefault{\capitalmacron} {\tc@check@accent{\=}2\capitalmacron}
|
|
\DeclareTextCommandDefault{\capitalogonek} {\tc@check@accent{\k}2\capitalogonek}
|
|
\DeclareTextCommandDefault{\capitalring} {\tc@check@accent{\r}2\capitalring}
|
|
\DeclareTextCommandDefault{\capitaltie} {\tc@check@accent{\t}2\capitaltie}
|
|
\DeclareTextCommandDefault{\capitaltilde} {\tc@check@accent{\~}2\capitaltilde}
|
|
\DeclareTextCommandDefault{\newtie} {\tc@check@accent{\t}2\newtie}
|
|
\DeclareTextCommandDefault{\capitalnewtie} {\tc@check@accent{\t}2\capitalnewtie}
|
|
\else
|
|
\def\capitalacute{\@tabacckludge'}
|
|
\def\capitalbreve{\u}
|
|
\def\capitalcaron{\v}
|
|
\def\capitalcedilla{\c}
|
|
\def\capitalcircumflex{\^}
|
|
\def\capitaldieresis{\"}
|
|
\def\capitaldotaccent{\.}
|
|
\def\capitalgrave{\@tabacckludge`}
|
|
\def\capitalhungarumlaut{\H}
|
|
\def\capitalmacron{\@tabacckludge=}
|
|
\def\capitalnewtie{\t}
|
|
\def\capitalogonek{\k}
|
|
\def\capitalring{\r}
|
|
\def\capitaltie{\t}
|
|
\def\capitaltilde{\~}
|
|
\def\newtie{\t}
|
|
\fi
|
|
\DeclareTextCommandDefault{\textlbrackdbl} {\tc@check@symbol2\textlbrackdbl}
|
|
\DeclareTextCommandDefault{\textrbrackdbl} {\tc@check@symbol2\textrbrackdbl}
|
|
\DeclareTextCommandDefault{\texteightoldstyle} {\tc@check@symbol2\texteightoldstyle}
|
|
\DeclareTextCommandDefault{\textfiveoldstyle} {\tc@check@symbol2\textfiveoldstyle}
|
|
\DeclareTextCommandDefault{\textfouroldstyle} {\tc@check@symbol2\textfouroldstyle}
|
|
\DeclareTextCommandDefault{\textnineoldstyle} {\tc@check@symbol2\textnineoldstyle}
|
|
\DeclareTextCommandDefault{\textoneoldstyle} {\tc@check@symbol2\textoneoldstyle}
|
|
\DeclareTextCommandDefault{\textsevenoldstyle} {\tc@check@symbol2\textsevenoldstyle}
|
|
\DeclareTextCommandDefault{\textsixoldstyle} {\tc@check@symbol2\textsixoldstyle}
|
|
\DeclareTextCommandDefault{\textthreeoldstyle} {\tc@check@symbol2\textthreeoldstyle}
|
|
\DeclareTextCommandDefault{\texttwooldstyle} {\tc@check@symbol2\texttwooldstyle}
|
|
\DeclareTextCommandDefault{\textzerooldstyle} {\tc@check@symbol2\textzerooldstyle}
|
|
\DeclareTextCommandDefault{\textacutedbl} {\tc@check@symbol2\textacutedbl}
|
|
\DeclareTextCommandDefault{\textasciiacute} {\tc@check@symbol2\textasciiacute}
|
|
\DeclareTextCommandDefault{\textasciibreve} {\tc@check@symbol2\textasciibreve}
|
|
\DeclareTextCommandDefault{\textasciicaron} {\tc@check@symbol2\textasciicaron}
|
|
\DeclareTextCommandDefault{\textasciidieresis} {\tc@check@symbol2\textasciidieresis}
|
|
\DeclareTextCommandDefault{\textasciigrave} {\tc@check@symbol2\textasciigrave}
|
|
\DeclareTextCommandDefault{\textasciimacron} {\tc@check@symbol2\textasciimacron}
|
|
\DeclareTextCommandDefault{\textgravedbl} {\tc@check@symbol2\textgravedbl}
|
|
\DeclareTextCommandDefault{\texttildelow} {\tc@check@symbol2\texttildelow}
|
|
\DeclareTextCommandDefault{\textbaht} {\tc@check@symbol2\textbaht}
|
|
\DeclareTextCommandDefault{\textbigcircle} {\tc@check@symbol2\textbigcircle}
|
|
\DeclareTextCommandDefault{\textborn} {\tc@check@symbol2\textborn}
|
|
\DeclareTextCommandDefault{\textcentoldstyle} {\tc@check@symbol2\textcentoldstyle}
|
|
\DeclareTextCommandDefault{\textcircledP} {\tc@check@symbol2\textcircledP}
|
|
\DeclareTextCommandDefault{\textcopyleft} {\tc@check@symbol2\textcopyleft}
|
|
\DeclareTextCommandDefault{\textdblhyphenchar} {\tc@check@symbol2\textdblhyphenchar}
|
|
\DeclareTextCommandDefault{\textdblhyphen} {\tc@check@symbol2\textdblhyphen}
|
|
\DeclareTextCommandDefault{\textdied} {\tc@check@symbol2\textdied}
|
|
\DeclareTextCommandDefault{\textdiscount} {\tc@check@symbol2\textdiscount}
|
|
\DeclareTextCommandDefault{\textdivorced} {\tc@check@symbol2\textdivorced}
|
|
\DeclareTextCommandDefault{\textdollaroldstyle} {\tc@check@symbol2\textdollaroldstyle}
|
|
\DeclareTextCommandDefault{\textguarani} {\tc@check@symbol2\textguarani}
|
|
\DeclareTextCommandDefault{\textleaf} {\tc@check@symbol2\textleaf}
|
|
\DeclareTextCommandDefault{\textlquill} {\tc@check@symbol2\textlquill}
|
|
\DeclareTextCommandDefault{\textmarried} {\tc@check@symbol2\textmarried}
|
|
\DeclareTextCommandDefault{\textmho} {\tc@check@symbol2\textmho}
|
|
\DeclareTextCommandDefault{\textmusicalnote} {\tc@check@symbol2\textmusicalnote}
|
|
\DeclareTextCommandDefault{\textnaira} {\tc@check@symbol2\textnaira}
|
|
\DeclareTextCommandDefault{\textopenbullet} {\tc@check@symbol2\textopenbullet}
|
|
\DeclareTextCommandDefault{\textpeso} {\tc@check@symbol2\textpeso}
|
|
\DeclareTextCommandDefault{\textpilcrow} {\tc@check@symbol2\textpilcrow}
|
|
\DeclareTextCommandDefault{\textrecipe} {\tc@check@symbol2\textrecipe}
|
|
\DeclareTextCommandDefault{\textreferencemark} {\tc@check@symbol2\textreferencemark}
|
|
\DeclareTextCommandDefault{\textrquill} {\tc@check@symbol2\textrquill}
|
|
\DeclareTextCommandDefault{\textservicemark} {\tc@check@symbol2\textservicemark}
|
|
\DeclareTextCommandDefault{\textsurd} {\tc@check@symbol2\textsurd}
|
|
\DeclareTextCommandDefault{\textpertenthousand} {\tc@check@symbol2\textpertenthousand}
|
|
\UndeclareTextCommand{\textpertenthousand}{T1}
|
|
\DeclareTextCommandDefault{\textlangle} {\tc@check@symbol3\textlangle}
|
|
\DeclareTextCommandDefault{\textrangle} {\tc@check@symbol3\textrangle}
|
|
\DeclareTextCommandDefault{\textcolonmonetary} {\tc@check@symbol4\textcolonmonetary}
|
|
\DeclareTextCommandDefault{\textdong} {\tc@check@symbol4\textdong}
|
|
\DeclareTextCommandDefault{\textdownarrow} {\tc@check@symbol4\textdownarrow}
|
|
\DeclareTextCommandDefault{\textleftarrow} {\tc@check@symbol4\textleftarrow}
|
|
\DeclareTextCommandDefault{\textlira} {\tc@check@symbol4\textlira}
|
|
\DeclareTextCommandDefault{\textrightarrow} {\tc@check@symbol4\textrightarrow}
|
|
\DeclareTextCommandDefault{\textuparrow} {\tc@check@symbol4\textuparrow}
|
|
\DeclareTextCommandDefault{\textwon} {\tc@check@symbol4\textwon}
|
|
\DeclareTextCommandDefault{\textestimated} {\tc@check@symbol5\textestimated}
|
|
\DeclareTextCommandDefault{\textnumero} {\tc@check@symbol5\textnumero}
|
|
\DeclareTextCommandDefault{\textflorin} {\tc@check@symbol6\textflorin}
|
|
\DeclareTextCommandDefault{\textcurrency} {\tc@check@symbol6\textcurrency}
|
|
\DeclareTextCommandDefault{\textfractionsolidus}{\tc@check@symbol7\textfractionsolidus}
|
|
\DeclareTextCommandDefault{\textohm} {\tc@check@symbol7\textohm}
|
|
\DeclareTextCommandDefault{\textmu} {\tc@check@symbol7\textmu}
|
|
\DeclareTextCommandDefault{\textminus} {\tc@check@symbol7\textminus}
|
|
\DeclareTextCommandDefault{\textblank} {\tc@check@symbol{8}\textblank}
|
|
\DeclareTextCommandDefault{\textinterrobangdown}{\tc@check@symbol{8}\textinterrobangdown}
|
|
\DeclareTextCommandDefault{\textinterrobang} {\tc@check@symbol{8}\textinterrobang}
|
|
\DeclareTextCommandDefault{\texteuro}
|
|
{\CheckEncodingSubset\UseTextSymbol{TS1}\tc@fake@euro{8}\texteuro}
|
|
\DeclareTextCommandDefault{\textcelsius}{\tc@check@symbol{9}\textcelsius}
|
|
\DeclareTextCommandDefault{\textonesuperior}{\tc@check@symbol{9}\textonesuperior}
|
|
\DeclareTextCommandDefault{\textthreequartersemdash}{\tc@check@symbol{9}\textthreequartersemdash}
|
|
\DeclareTextCommandDefault{\textthreesuperior}{\tc@check@symbol{9}\textthreesuperior}
|
|
\DeclareTextCommandDefault{\texttwelveudash}{\tc@check@symbol{9}\texttwelveudash}
|
|
\DeclareTextCommandDefault{\texttwosuperior}{\tc@check@symbol{9}\texttwosuperior}
|
|
\DeclareTextCommandDefault{\textbardbl}{\tc@check@symbol{9}\textbardbl}
|
|
|
|
\ifx \Umathcode\@undefined \else
|
|
\DeclareTextCommand{\textzerooldstyle} \UnicodeEncodingName{\oldstylenums{0}}
|
|
\DeclareTextCommand{\textoneoldstyle} \UnicodeEncodingName{\oldstylenums{1}}
|
|
\DeclareTextCommand{\texttwooldstyle} \UnicodeEncodingName{\oldstylenums{2}}
|
|
\DeclareTextCommand{\textthreeoldstyle}\UnicodeEncodingName{\oldstylenums{3}}
|
|
\DeclareTextCommand{\textfouroldstyle} \UnicodeEncodingName{\oldstylenums{4}}
|
|
\DeclareTextCommand{\textfiveoldstyle} \UnicodeEncodingName{\oldstylenums{5}}
|
|
\DeclareTextCommand{\textsixoldstyle} \UnicodeEncodingName{\oldstylenums{6}}
|
|
\DeclareTextCommand{\textsevenoldstyle}\UnicodeEncodingName{\oldstylenums{7}}
|
|
\DeclareTextCommand{\texteightoldstyle}\UnicodeEncodingName{\oldstylenums{8}}
|
|
\DeclareTextCommand{\textnineoldstyle} \UnicodeEncodingName{\oldstylenums{9}}
|
|
\DeclareTextSymbol{\textpilcrow} \UnicodeEncodingName{"00B6}
|
|
\DeclareTextSymbol{\textborn} \UnicodeEncodingName{"002A}
|
|
\DeclareTextSymbol{\textdied} \UnicodeEncodingName{"2020}
|
|
\DeclareTextSymbol{\textlbrackdbl} \UnicodeEncodingName{"27E6}
|
|
\DeclareTextSymbol{\textrbrackdbl} \UnicodeEncodingName{"27E7}
|
|
\DeclareTextSymbol{\textguarani} \UnicodeEncodingName{"20B2}
|
|
\DeclareTextSymbol{\textdollaroldstyle}{TS1}{138}
|
|
\DeclareTextSymbol{\textcentoldstyle} {TS1}{139}
|
|
\fi % --- END of Unicode engines specials
|
|
\DeclareEncodingSubset{TS1}{?}{9}
|
|
\DeclareEncodingSubset{TS1}{ccr} {0}
|
|
\DeclareEncodingSubset{TS1}{cmbr} {0}
|
|
\DeclareEncodingSubset{TS1}{cmr} {0}
|
|
\DeclareEncodingSubset{TS1}{cmss} {0}
|
|
\DeclareEncodingSubset{TS1}{cmtl} {0}
|
|
\DeclareEncodingSubset{TS1}{cmtt} {0}
|
|
\DeclareEncodingSubset{TS1}{cmvtt} {0}
|
|
\DeclareEncodingSubset{TS1}{pxr} {0}
|
|
\DeclareEncodingSubset{TS1}{pxss} {0}
|
|
\DeclareEncodingSubset{TS1}{pxtt} {0}
|
|
\DeclareEncodingSubset{TS1}{qag} {0}
|
|
\DeclareEncodingSubset{TS1}{qbk} {0}
|
|
\DeclareEncodingSubset{TS1}{qcr} {0}
|
|
\DeclareEncodingSubset{TS1}{qcs} {0}
|
|
\DeclareEncodingSubset{TS1}{qhvc} {0}
|
|
\DeclareEncodingSubset{TS1}{qhv} {0}
|
|
\DeclareEncodingSubset{TS1}{qpl} {0}
|
|
\DeclareEncodingSubset{TS1}{qtm} {0}
|
|
\DeclareEncodingSubset{TS1}{qzc} {0}
|
|
\DeclareEncodingSubset{TS1}{txr} {0}
|
|
\DeclareEncodingSubset{TS1}{txss} {0}
|
|
\DeclareEncodingSubset{TS1}{txtt} {0}
|
|
\DeclareEncodingSubset{TS1}{lmr} {1}
|
|
\DeclareEncodingSubset{TS1}{lmdh} {1}
|
|
\DeclareEncodingSubset{TS1}{lmss} {1}
|
|
\DeclareEncodingSubset{TS1}{lmssq} {1}
|
|
\DeclareEncodingSubset{TS1}{lmvtt} {1}
|
|
\DeclareEncodingSubset{TS1}{lmtt} {1} % missing TM, SM, pertenthousand for some reason
|
|
\DeclareEncodingSubset{TS1}{ptmx} {2}
|
|
\DeclareEncodingSubset{TS1}{ptmj} {2}
|
|
\DeclareEncodingSubset{TS1}{ul8} {2}
|
|
\DeclareEncodingSubset{TS1}{bch} {5} % tofu for blank, ohm
|
|
\DeclareEncodingSubset{TS1}{futj} {5} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{futs} {5} % tofu for blank, ohm
|
|
\DeclareEncodingSubset{TS1}{futx} {5} % probably (currently broken distrib)
|
|
\DeclareEncodingSubset{TS1}{pag} {5} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{pbk} {5} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{pcr} {5} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{phv} {5} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{pnc} {5} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{pplj} {5} % tofu for blank
|
|
\DeclareEncodingSubset{TS1}{pplx} {5} % tofu for blank
|
|
\DeclareEncodingSubset{TS1}{ppl} {5} % tofu for blank interrobang/down
|
|
\DeclareEncodingSubset{TS1}{ptm} {5} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{pzc} {5} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{ul9} {5} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{dayroms} {6} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{dayrom} {6} % tofu for blank, interrobang/down, ohm
|
|
\DeclareEncodingSubset{TS1}{augie} {8} % really only missing euro
|
|
\DeclareEncodingSubset{TS1}{put} {8}
|
|
\DeclareEncodingSubset{TS1}{uag} {8} % probably (currently broken distrib)
|
|
\DeclareEncodingSubset{TS1}{ugq} {8}
|
|
\DeclareEncodingSubset{TS1}{zi4} {9}
|
|
\DeclareEncodingSubset{TS1}{hls} {5}
|
|
\DeclareEncodingSubset{TS1}{hlst} {5}
|
|
\DeclareEncodingSubset{TS1}{hlct} {5}
|
|
\DeclareEncodingSubset{TS1}{hlh} {5}
|
|
\DeclareEncodingSubset{TS1}{hlx} {8}
|
|
\DeclareEncodingSubset{TS1}{hlce} {8}
|
|
\DeclareEncodingSubset{TS1}{hlcn} {8}
|
|
\DeclareEncodingSubset{TS1}{hlcw} {8}
|
|
\DeclareEncodingSubset{TS1}{hlcf} {8}
|
|
\DeclareEncodingSubset{TS1}{lato-*} {0} % with a bunch of tofu inside
|
|
\DeclareEncodingSubset{TS1}{opensans-*} {0} % with a bunch of tofu inside
|
|
\DeclareEncodingSubset{TS1}{cantarell-*} {0} % with a bunch of tofu inside
|
|
\DeclareEncodingSubset{TS1}{fbb-*} {0} % missing centoldstyle
|
|
\DeclareEncodingSubset{TS1}{tli} {1} % with lots of tofu inside
|
|
\DeclareEncodingSubset{TS1}{Alegreya-*} {2}
|
|
\DeclareEncodingSubset{TS1}{AlegreyaSans-*} {2}
|
|
\DeclareEncodingSubset{TS1}{DejaVuSans-TLF} {2}
|
|
\DeclareEncodingSubset{TS1}{DejaVuSansCondensed-TLF} {2}
|
|
\DeclareEncodingSubset{TS1}{DejaVuSansMono-TLF} {2}
|
|
\DeclareEncodingSubset{TS1}{EBGaramond-*} {2}
|
|
\DeclareEncodingSubset{TS1}{Tempora-TLF} {2}
|
|
\DeclareEncodingSubset{TS1}{Tempora-TOsF} {2}
|
|
\DeclareEncodingSubset{TS1}{Arimo-TLF} {3}
|
|
\DeclareEncodingSubset{TS1}{Carlito-*} {3}
|
|
\DeclareEncodingSubset{TS1}{FiraSans-*} {3}
|
|
\DeclareEncodingSubset{TS1}{IBMPlexSans-TLF} {3}
|
|
\DeclareEncodingSubset{TS1}{Merriweather-OsF} {3}
|
|
\DeclareEncodingSubset{TS1}{Montserrat-*} {3}
|
|
\DeclareEncodingSubset{TS1}{MontserratAlternates-*} {3}
|
|
\DeclareEncodingSubset{TS1}{SourceCodePro-TLF} {3}
|
|
\DeclareEncodingSubset{TS1}{SourceCodePro-TOsF} {3}
|
|
\DeclareEncodingSubset{TS1}{SourceSansPro-*} {3}
|
|
\DeclareEncodingSubset{TS1}{SourceSerifPro-*} {3}
|
|
\DeclareEncodingSubset{TS1}{Tinos-TLF} {3}
|
|
\DeclareEncodingSubset{TS1}{AccanthisADFStdNoThree-LF}{4}
|
|
\DeclareEncodingSubset{TS1}{Cabin-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{Caladea-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{Chivo-*} {4}
|
|
\DeclareEncodingSubset{TS1}{ClearSans-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{Coelacanth-LF} {4}
|
|
\DeclareEncodingSubset{TS1}{CrimsonPro-*} {4}
|
|
\DeclareEncodingSubset{TS1}{FiraMono-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{FiraMono-TOsF} {4}
|
|
\DeclareEncodingSubset{TS1}{Go-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{GoMono-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{InriaSans-*} {4}
|
|
\DeclareEncodingSubset{TS1}{InriaSerif-*} {4}
|
|
\DeclareEncodingSubset{TS1}{LibertinusSans-*} {4}
|
|
\DeclareEncodingSubset{TS1}{LibertinusSerif-*} {4}
|
|
\DeclareEncodingSubset{TS1}{LibreBodoni-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{LibreFranklin-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{LinguisticsPro-LF} {4}
|
|
\DeclareEncodingSubset{TS1}{LinguisticsPro-OsF} {4}
|
|
\DeclareEncodingSubset{TS1}{LinuxBiolinumT-*} {4}
|
|
\DeclareEncodingSubset{TS1}{LinuxLibertineT-*} {4}
|
|
\DeclareEncodingSubset{TS1}{MerriweatherSans-OsF} {4}
|
|
\DeclareEncodingSubset{TS1}{MintSpirit-*} {4}
|
|
\DeclareEncodingSubset{TS1}{MintSpiritNoTwo-*} {4}
|
|
\DeclareEncodingSubset{TS1}{PTMono-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{PTSans-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{PTSansCaption-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{PTSansNarrow-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{PTSerif-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{PTSerifCaption-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{Raleway-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{Raleway-TOsF} {4}
|
|
\DeclareEncodingSubset{TS1}{Roboto-*} {4}
|
|
\DeclareEncodingSubset{TS1}{RobotoMono-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{RobotoSlab-TLF} {4}
|
|
\DeclareEncodingSubset{TS1}{Rosario-*} {4}
|
|
\DeclareEncodingSubset{TS1}{SticksTooText-*} {4}
|
|
\DeclareEncodingSubset{TS1}{UniversalisADFStd-LF} {4}
|
|
\DeclareEncodingSubset{TS1}{Almendra-OsF} {5}
|
|
\DeclareEncodingSubset{TS1}{Baskervaldx-*} {5}
|
|
\DeclareEncodingSubset{TS1}{BaskervilleF-*} {5}
|
|
\DeclareEncodingSubset{TS1}{Bitter-TLF} {5}
|
|
\DeclareEncodingSubset{TS1}{Cinzel-LF} {5}
|
|
\DeclareEncodingSubset{TS1}{CinzelDecorative-LF} {5}
|
|
\DeclareEncodingSubset{TS1}{DejaVuSerif-TLF} {5}
|
|
\DeclareEncodingSubset{TS1}{DejaVuSerifCondensed-TLF} {5}
|
|
\DeclareEncodingSubset{TS1}{GilliusADF-LF} {5}
|
|
\DeclareEncodingSubset{TS1}{GilliusADFCond-LF} {5}
|
|
\DeclareEncodingSubset{TS1}{GilliusADFNoTwo-LF} {5}
|
|
\DeclareEncodingSubset{TS1}{GilliusADFNoTwoCond-LF} {5}
|
|
\DeclareEncodingSubset{TS1}{LobsterTwo-LF} {5}
|
|
\DeclareEncodingSubset{TS1}{OldStandard-TLF} {5}
|
|
\DeclareEncodingSubset{TS1}{PlayfairDisplay-TLF} {5}
|
|
\DeclareEncodingSubset{TS1}{PlayfairDisplay-TOsF} {5}
|
|
\DeclareEncodingSubset{TS1}{TheanoDidot-TLF} {5}
|
|
\DeclareEncodingSubset{TS1}{TheanoDidot-TOsF} {5}
|
|
\DeclareEncodingSubset{TS1}{TheanoModern-TLF} {5}
|
|
\DeclareEncodingSubset{TS1}{TheanoModern-TOsF} {5}
|
|
\DeclareEncodingSubset{TS1}{TheanoOldStyle-TLF} {5}
|
|
\DeclareEncodingSubset{TS1}{TheanoOldStyle-TOsF} {5}
|
|
\DeclareEncodingSubset{TS1}{Crimson-TLF} {6}
|
|
\DeclareEncodingSubset{TS1}{IBMPlexMono-TLF} {6}
|
|
\DeclareEncodingSubset{TS1}{IBMPlexSerif-TLF} {6}
|
|
\DeclareEncodingSubset{TS1}{LibertinusMono-TLF} {6}
|
|
\DeclareEncodingSubset{TS1}{LibertinusSerifDisplay-LF}{6}
|
|
\DeclareEncodingSubset{TS1}{LinuxLibertineDisplayT-*} {6}
|
|
\DeclareEncodingSubset{TS1}{LinuxLibertineMonoT-LF} {6}
|
|
\DeclareEncodingSubset{TS1}{LinuxLibertineMonoT-TLF} {6}
|
|
\DeclareEncodingSubset{TS1}{Overlock-LF} {6}
|
|
\DeclareEncodingSubset{TS1}{CormorantGaramond-*} {7}
|
|
\DeclareEncodingSubset{TS1}{Heuristica-TLF} {7}
|
|
\DeclareEncodingSubset{TS1}{Heuristica-TOsF} {7}
|
|
\DeclareEncodingSubset{TS1}{IMFELLEnglish-TLF} {7}
|
|
\DeclareEncodingSubset{TS1}{LibreBaskerville-TLF} {7}
|
|
\DeclareEncodingSubset{TS1}{LibreCaslon-*} {7}
|
|
\DeclareEncodingSubset{TS1}{Marcellus-LF} {7}
|
|
\DeclareEncodingSubset{TS1}{NotoSans-*} {7}
|
|
\DeclareEncodingSubset{TS1}{NotoSansMono-TLF} {7}
|
|
\DeclareEncodingSubset{TS1}{NotoSansMono-TOsF} {7}
|
|
\DeclareEncodingSubset{TS1}{NotoSerif-*} {7}
|
|
\DeclareEncodingSubset{TS1}{Quattrocento-TLF} {7}
|
|
\DeclareEncodingSubset{TS1}{QuattrocentoSans-TLF} {7}
|
|
\DeclareEncodingSubset{TS1}{XCharter-TLF} {7}
|
|
\DeclareEncodingSubset{TS1}{XCharter-TOsF} {7}
|
|
\DeclareEncodingSubset{TS1}{erewhon-*} {7}
|
|
\DeclareEncodingSubset{TS1}{ComicNeue-TLF} {7}
|
|
\DeclareEncodingSubset{TS1}{ComicNeueAngular-TLF} {7}
|
|
\DeclareEncodingSubset{TS1}{Forum-LF} {7} % the superiors are missing
|
|
\DeclareEncodingSubset{TS1}{Cochineal-*} {8}
|
|
\DeclareEncodingSubset{TS1}{AlgolRevived-TLF} {9}
|
|
\def\UseLegacyTextSymbols{%
|
|
\DeclareTextSymbolDefault{\textasteriskcentered}{OMS}%
|
|
\DeclareTextSymbolDefault{\textbardbl}{OMS}%
|
|
\DeclareTextSymbolDefault{\textbullet}{OMS}%
|
|
\DeclareTextSymbolDefault{\textdaggerdbl}{OMS}%
|
|
\DeclareTextSymbolDefault{\textdagger}{OMS}%
|
|
\DeclareTextSymbolDefault{\textparagraph}{OMS}%
|
|
\DeclareTextSymbolDefault{\textperiodcentered}{OMS}%
|
|
\DeclareTextSymbolDefault{\textsection}{OMS}%
|
|
\UndeclareTextCommand{\textsection}{T1}%
|
|
\expandafter\let\csname oldstylenums \expandafter\endcsname
|
|
\csname legacyoldstylenums \endcsname
|
|
}
|
|
|
|
\DeclareTextSymbol{\textlegacyasteriskcentered}{OMS}{3} % "03
|
|
\DeclareTextSymbol{\textlegacybardbl}{OMS}{107} % "6B
|
|
\DeclareTextSymbol{\textlegacybullet}{OMS}{15} % "0F
|
|
\DeclareTextSymbol{\textlegacydaggerdbl}{OMS}{122} % "7A
|
|
\DeclareTextSymbol{\textlegacydagger}{OMS}{121} % "79
|
|
\DeclareTextSymbol{\textlegacyparagraph}{OMS}{123} % "7B
|
|
\DeclareTextSymbol{\textlegacyperiodcentered}{OMS}{1} % "01
|
|
\DeclareTextSymbol{\textlegacysection}{OMS}{120} % "78
|
|
\DeclareTextSymbolDefault{\textlegacyasteriskcentered}{OMS}
|
|
\DeclareTextSymbolDefault{\textlegacybardbl}{OMS}
|
|
\DeclareTextSymbolDefault{\textlegacybullet}{OMS}
|
|
\DeclareTextSymbolDefault{\textlegacydaggerdbl}{OMS}
|
|
\DeclareTextSymbolDefault{\textlegacydagger}{OMS}
|
|
\DeclareTextSymbolDefault{\textlegacyparagraph}{OMS}
|
|
\DeclareTextSymbolDefault{\textlegacyperiodcentered}{OMS}
|
|
\DeclareTextSymbolDefault{\textlegacysection}{OMS}
|
|
|
|
|
|
|
|
%%% From File: ltpageno.dtx
|
|
\message{page nos.,}
|
|
\countdef\c@page=0 \c@page=1
|
|
\def\cl@page{}
|
|
\def\pagenumbering#1{%
|
|
\global\c@page \@ne \gdef\thepage{\csname @#1\endcsname
|
|
\c@page}}
|
|
%%% From File: ltxref.dtx
|
|
\message{x-ref,}
|
|
|
|
\def\G@refundefinedtrue{%
|
|
\gdef\@refundefined{%
|
|
\@latex@warning@no@line{There were undefined references}}}
|
|
\let\@refundefined\relax
|
|
\def\@setref#1#2#3{%
|
|
\ifx#1\relax
|
|
\protect\G@refundefinedtrue
|
|
\nfss@text{\reset@font\bfseries ??}%
|
|
\@latex@warning{Reference `#3' on page \thepage \space
|
|
undefined}%
|
|
\else
|
|
\expandafter#2#1\null
|
|
\fi}
|
|
\def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
|
|
\def\pageref#1{\expandafter\@setref\csname r@#1\endcsname
|
|
\@secondoftwo{#1}}
|
|
\def\@newl@bel#1#2#3{{%
|
|
\@ifundefined{#1@#2}%
|
|
\relax
|
|
{\gdef \@multiplelabels {%
|
|
\@latex@warning@no@line{There were multiply-defined labels}}%
|
|
\@latex@warning@no@line{Label `#2' multiply defined}}%
|
|
\global\@namedef{#1@#2}{#3}}}
|
|
\def\newlabel{\@newl@bel r}
|
|
\@onlypreamble\@newl@bel
|
|
\let \@multiplelabels \relax
|
|
\def\label#1{\@bsphack
|
|
\protected@write\@auxout{}%
|
|
{\string\newlabel{#1}{{\@currentlabel}{\thepage}}}%
|
|
\@esphack}
|
|
\def\refstepcounter#1{\stepcounter{#1}%
|
|
\protected@edef\@currentlabel
|
|
{\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
|
|
}
|
|
\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1}
|
|
\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}%
|
|
\expandafter\MakeUppercase\@tempa}
|
|
\def\@currentlabel{}
|
|
%%% From File: ltmiscen.dtx
|
|
\message{environments,}
|
|
\def\@currenvir{document}
|
|
\def\@ignorefalse{\global\let\if@ignore\iffalse}
|
|
\def\@ignoretrue {\global\let\if@ignore\iftrue}
|
|
\@ignorefalse
|
|
\let\ignorespacesafterend\@ignoretrue
|
|
\def\enddocument{%
|
|
\let\AtEndDocument\@firstofone
|
|
\@enddocumenthook
|
|
\@checkend{document}%
|
|
\clearpage
|
|
\begingroup
|
|
\if@filesw
|
|
\immediate\closeout\@mainaux
|
|
\let\@setckpt\@gobbletwo
|
|
\let\@newl@bel\@testdef
|
|
\@tempswafalse
|
|
\makeatletter \@@input\jobname.aux
|
|
\fi
|
|
\@dofilelist
|
|
\ifdim \font@submax >\fontsubfuzz\relax
|
|
\@font@warning{Size substitutions with differences\MessageBreak
|
|
up to \font@submax\space have occurred.\@gobbletwo}%
|
|
\fi
|
|
\@defaultsubs
|
|
\@refundefined
|
|
\if@filesw
|
|
\ifx \@multiplelabels \relax
|
|
\if@tempswa
|
|
\@latex@warning@no@line{Label(s) may have changed.
|
|
Rerun to get cross-references right}%
|
|
\fi
|
|
\else
|
|
\@multiplelabels
|
|
\fi
|
|
\fi
|
|
\endgroup
|
|
\deadcycles\z@\@@end}
|
|
\def\@testdef #1#2#3{%
|
|
\def\reserved@a{#3}\expandafter \ifx \csname #1@#2\endcsname
|
|
\reserved@a \else \@tempswatrue \fi}
|
|
\protected\def\protected@file@percent{}
|
|
|
|
\catcode`\^^A=9
|
|
\long\gdef\add@percent@to@temptokena
|
|
#1\protected@file@percent#2\add@percent@to@temptokena
|
|
{\expandafter\ifx\expandafter X\detokenize{#2}X\expandafter\dont@add@percent@to@temptokena\else
|
|
\expandafter\do@add@percent@to@temptokena\fi{#1}}
|
|
\long\def\dont@add@percent@to@temptokena#1{%
|
|
\@temptokena\expandafter{#1}}
|
|
\begingroup
|
|
\catcode`\%=12
|
|
\catcode`\^^A=14
|
|
\long\gdef\do@add@percent@to@temptokena#1{\@temptokena\expandafter{#1%^^A
|
|
}}
|
|
\endgroup
|
|
\long\def\@writefile#1#2{%
|
|
\@ifundefined{tf@#1}\relax
|
|
{%
|
|
\add@percent@to@temptokena
|
|
\@empty#2\protected@file@percent
|
|
\add@percent@to@temptokena
|
|
\immediate\write\csname tf@#1\endcsname{\the\@temptokena}%
|
|
}%
|
|
}
|
|
\def\stop{\clearpage\deadcycles\z@\let\par\@@par\@@end}
|
|
\everypar{\@nodocument} %% To get an error if text appears before the
|
|
\nullfont %% \begin{document}
|
|
\DeclareRobustCommand\begin[1]{%
|
|
\@ifundefined{#1}%
|
|
{\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}%
|
|
{\def\reserved@a{\def\@currenvir{#1}%
|
|
\edef\@currenvline{\on@line}%
|
|
\csname #1\endcsname}}%
|
|
\@ignorefalse
|
|
\begingroup\@endpefalse\reserved@a}
|
|
\edef\end
|
|
{\unexpanded{%
|
|
\romannumeral
|
|
\ifx\protect\@typeset@protect
|
|
\expandafter %1
|
|
\expandafter %2
|
|
\expandafter %1
|
|
\expandafter %3 expands the \csname inside \end<space>
|
|
\expandafter %1
|
|
\expandafter %2 expands \end<space>
|
|
\expandafter %1 expands the \else
|
|
\z@
|
|
\else
|
|
\expandafter\z@\expandafter\protect
|
|
\fi
|
|
}%
|
|
\expandafter\noexpand\csname end \endcsname
|
|
}
|
|
\@namedef{end }#1{%
|
|
\csname end#1\endcsname\@checkend{#1}%
|
|
\expandafter\endgroup\if@endpe\@doendpe\fi
|
|
\if@ignore\@ignorefalse\ignorespaces\fi}
|
|
\def\@checkend#1{\def\reserved@a{#1}\ifx
|
|
\reserved@a\@currenvir \else\@badend{#1}\fi}
|
|
\let\@currenvline\@empty
|
|
\message{center,}
|
|
\protected\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
|
|
\par\@ifstar{\nobreak\@xcentercr}\@xcentercr}
|
|
\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
|
|
[\@icentercr\ignorespaces}
|
|
\def\@icentercr[#1]{\vskip #1\ignorespaces}
|
|
\def\center{\trivlist \centering\item\relax}
|
|
\def\endcenter{\endtrivlist}
|
|
\DeclareRobustCommand\centering{%
|
|
\let\\\@centercr
|
|
\rightskip\@flushglue\leftskip\@flushglue
|
|
\parindent\z@\parfillskip\z@skip}
|
|
\DeclareRobustCommand\raggedright{%
|
|
\let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip
|
|
\leftskip\z@skip
|
|
\parindent\z@}
|
|
\DeclareRobustCommand\raggedleft{%
|
|
\let\\\@centercr
|
|
\rightskip\z@skip\leftskip\@flushglue
|
|
\parindent\z@\parfillskip\z@skip}
|
|
\newskip\@rightskip \@rightskip \z@skip
|
|
\def\flushleft{\trivlist \raggedright\item\relax}
|
|
\def\endflushleft{\endtrivlist}
|
|
\def\flushright{\trivlist \raggedleft\item\relax}
|
|
\def\endflushright{\endtrivlist}
|
|
\message{verbatim,}
|
|
{\catcode`\ =\active%
|
|
\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
|
|
\begingroup \catcode `|=0 \catcode `[= 1
|
|
\catcode`]=2 \catcode `\{=12 \catcode `\}=12
|
|
\catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]]
|
|
|gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]]
|
|
|endgroup
|
|
\def\@verbatim{\trivlist \item\relax
|
|
\if@minipage\else\vskip\parskip\fi
|
|
\leftskip\@totalleftmargin\rightskip\z@skip
|
|
\parindent\z@\parfillskip\@flushglue\parskip\z@skip
|
|
\@@par
|
|
\language\l@nohyphenation
|
|
\@tempswafalse
|
|
\def\par{%
|
|
\if@tempswa
|
|
\leavevmode \null \@@par\penalty\interlinepenalty
|
|
\else
|
|
\@tempswatrue
|
|
\ifhmode\@@par\penalty\interlinepenalty\fi
|
|
\fi}%
|
|
\let\do\@makeother \dospecials
|
|
\obeylines \verbatim@font \@noligs
|
|
\everypar \expandafter{\the\everypar \unpenalty}%
|
|
}
|
|
\def\verbatim{\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
|
|
\def\endverbatim{\if@newlist \leavevmode\fi\endtrivlist}
|
|
\def\verbatim@font{\normalfont\ttfamily}
|
|
\DeclareRobustCommand\asciispace{\char 32 }
|
|
\ifx\Umathcode\@undefined
|
|
\let\verbvisiblespace\asciispace % Pdftex version
|
|
\else
|
|
\DeclareRobustCommand\verbvisiblespace
|
|
{\leavevmode{\usefont{OT1}{cmtt}{m}{n}\asciispace}} % xetex/luatex version
|
|
\fi
|
|
|
|
\def\@setupverbvisiblespace{%
|
|
\ifx\verbvisiblespace\asciispace
|
|
\let\@xobeysp\asciispace
|
|
\else
|
|
\setbox\z@\hbox{x}%
|
|
\setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}%
|
|
\def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}%
|
|
\fi
|
|
}
|
|
|
|
\newbox\@verbvisiblespacebox
|
|
\def\@sverb#1{%
|
|
\catcode`#1\active
|
|
\lccode`\~`#1%
|
|
\gdef\verb@balance@group{\verb@egroup
|
|
\@latex@error{\noexpand\verb illegal in command argument}\@ehc}%
|
|
\aftergroup\verb@balance@group
|
|
\lowercase{\let~\verb@egroup}%
|
|
\ifnum\catcode`\ =\active
|
|
\else \@setupverbvisiblespace \@vobeyspaces \fi
|
|
}
|
|
\@namedef{verbatim*}{\@verbatim
|
|
\@setupverbvisiblespace
|
|
\frenchspacing\@vobeyspaces\@sxverbatim}
|
|
\expandafter\let\csname endverbatim*\endcsname =\endverbatim
|
|
\def\@makeother#1{\catcode`#112\relax}
|
|
\let\verb@balance@group\@empty
|
|
\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup}
|
|
\begingroup
|
|
\obeylines%
|
|
\gdef\verb@eol@error{\obeylines%
|
|
\def^^M{\verb@egroup\@latex@error{%
|
|
\noexpand\verb ended by end of line}\@ehc}}%
|
|
\endgroup
|
|
\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
|
|
\bgroup
|
|
\verb@eol@error \let\do\@makeother \dospecials
|
|
\verbatim@font\@noligs
|
|
\language\l@nohyphenation
|
|
\@ifstar\@sverb\@verb}
|
|
\def\@verb{\@vobeyspaces \frenchspacing \@sverb}
|
|
\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
|
|
\def\do@noligs#1{%
|
|
\catcode`#1\active
|
|
\begingroup
|
|
\lccode`\~`#1\relax
|
|
\lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
|
|
\def\@noligs{\let\do\do@noligs \verbatim@nolig@list}
|
|
%%% From File: ltmath.dtx
|
|
\message{math definitions,}
|
|
\DeclareRobustCommand\log{\mathop{\operator@font log}\nolimits}
|
|
\DeclareRobustCommand\lg{\mathop{\operator@font lg}\nolimits}
|
|
\DeclareRobustCommand\ln{\mathop{\operator@font ln}\nolimits}
|
|
\DeclareRobustCommand\lim{\mathop{\operator@font lim}}
|
|
\DeclareRobustCommand\limsup{\mathop{\operator@font lim\,sup}}
|
|
\DeclareRobustCommand\liminf{\mathop{\operator@font lim\,inf}}
|
|
\DeclareRobustCommand\sin{\mathop{\operator@font sin}\nolimits}
|
|
\DeclareRobustCommand\arcsin{\mathop{\operator@font arcsin}\nolimits}
|
|
\DeclareRobustCommand\sinh{\mathop{\operator@font sinh}\nolimits}
|
|
\DeclareRobustCommand\cos{\mathop{\operator@font cos}\nolimits}
|
|
\DeclareRobustCommand\arccos{\mathop{\operator@font arccos}\nolimits}
|
|
\DeclareRobustCommand\cosh{\mathop{\operator@font cosh}\nolimits}
|
|
\DeclareRobustCommand\tan{\mathop{\operator@font tan}\nolimits}
|
|
\DeclareRobustCommand\arctan{\mathop{\operator@font arctan}\nolimits}
|
|
\DeclareRobustCommand\tanh{\mathop{\operator@font tanh}\nolimits}
|
|
\DeclareRobustCommand\cot{\mathop{\operator@font cot}\nolimits}
|
|
\DeclareRobustCommand\coth{\mathop{\operator@font coth}\nolimits}
|
|
\DeclareRobustCommand\sec{\mathop{\operator@font sec}\nolimits}
|
|
\DeclareRobustCommand\csc{\mathop{\operator@font csc}\nolimits}
|
|
\DeclareRobustCommand\max{\mathop{\operator@font max}}
|
|
\DeclareRobustCommand\min{\mathop{\operator@font min}}
|
|
\DeclareRobustCommand\sup{\mathop{\operator@font sup}}
|
|
\DeclareRobustCommand\inf{\mathop{\operator@font inf}}
|
|
\DeclareRobustCommand\arg{\mathop{\operator@font arg}\nolimits}
|
|
\DeclareRobustCommand\ker{\mathop{\operator@font ker}\nolimits}
|
|
\DeclareRobustCommand\dim{\mathop{\operator@font dim}\nolimits}
|
|
\DeclareRobustCommand\hom{\mathop{\operator@font hom}\nolimits}
|
|
\DeclareRobustCommand\det{\mathop{\operator@font det}}
|
|
\DeclareRobustCommand\exp{\mathop{\operator@font exp}\nolimits}
|
|
\DeclareRobustCommand\Pr{\mathop{\operator@font Pr}}
|
|
\DeclareRobustCommand\gcd{\mathop{\operator@font gcd}}
|
|
\DeclareRobustCommand\deg{\mathop{\operator@font deg}\nolimits}
|
|
\DeclareRobustCommand\bmod{%
|
|
\nonscript\mskip-\medmuskip\mkern5mu%
|
|
\mathbin{\operator@font mod}\penalty900\mkern5mu%
|
|
\nonscript\mskip-\medmuskip}
|
|
\DeclareRobustCommand\pmod[1]{%
|
|
\allowbreak\mkern18mu({\operator@font mod}\,\,#1)}
|
|
\DeclareRobustCommand\bigl{\mathopen\big}
|
|
\DeclareRobustCommand\bigm{\mathrel\big}
|
|
\DeclareRobustCommand\bigr{\mathclose\big}
|
|
\DeclareRobustCommand\Bigl{\mathopen\Big}
|
|
\DeclareRobustCommand\Bigm{\mathrel\Big}
|
|
\DeclareRobustCommand\Bigr{\mathclose\Big}
|
|
\DeclareRobustCommand\biggl{\mathopen\bigg}
|
|
\DeclareRobustCommand\biggm{\mathrel\bigg}
|
|
\DeclareRobustCommand\biggr{\mathclose\bigg}
|
|
\DeclareRobustCommand\Biggl{\mathopen\Bigg}
|
|
\DeclareRobustCommand\Biggm{\mathrel\Bigg}
|
|
\DeclareRobustCommand\Biggr{\mathclose\Bigg}
|
|
\newdimen\jot
|
|
\jot=3pt
|
|
\newcount\interdisplaylinepenalty
|
|
\interdisplaylinepenalty=100
|
|
\def\choose{\atopwithdelims()}
|
|
\def\brack{\atopwithdelims[]}
|
|
\def\brace{\atopwithdelims\{\}}
|
|
\def\mathpalette#1#2{%
|
|
\mathchoice
|
|
{#1\displaystyle{#2}}%
|
|
{#1\textstyle{#2}}%
|
|
{#1\scriptstyle{#2}}%
|
|
{#1\scriptscriptstyle{#2}}}
|
|
\newbox\rootbox
|
|
\def\root#1\of{%
|
|
\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
|
|
\mathpalette\r@@t}
|
|
\def\r@@t#1#2{%
|
|
\setbox\z@\hbox{$\m@th#1\sqrtsign{#2}$}%
|
|
\dimen@\ht\z@ \advance\dimen@-\dp\z@
|
|
\mkern5mu\raise.6\dimen@\copy\rootbox
|
|
\mkern-10mu\box\z@}
|
|
|
|
\newif\ifv@
|
|
\newif\ifh@
|
|
\DeclareRobustCommand\vphantom{\v@true\h@false\ph@nt}
|
|
\DeclareRobustCommand\hphantom{\v@false\h@true\ph@nt}
|
|
\DeclareRobustCommand\phantom{\v@true\h@true\ph@nt}
|
|
\DeclareRobustCommand\mathstrut{\vphantom(}
|
|
\def\ph@nt{%
|
|
\ifmmode
|
|
\expandafter\mathpalette\expandafter\mathph@nt
|
|
\else
|
|
\expandafter\makeph@nt
|
|
\fi}
|
|
\def\makeph@nt#1{%
|
|
\setbox\z@\hbox{\color@begingroup#1\color@endgroup}\finph@nt}
|
|
\def\mathph@nt#1#2{%
|
|
\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt}
|
|
\def\finph@nt{%
|
|
\setbox\tw@\null
|
|
\ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
|
|
\ifh@ \wd\tw@\wd\z@\fi
|
|
\leavevmode@ifvmode\box\tw@}
|
|
\DeclareRobustCommand\smash{%
|
|
\relax % \relax, in case this comes first in \halign
|
|
\ifmmode
|
|
\expandafter\mathpalette\expandafter\mathsm@sh
|
|
\else
|
|
\expandafter\makesm@sh
|
|
\fi}
|
|
\def\makesm@sh#1{%
|
|
\setbox\z@\hbox{\color@begingroup#1\color@endgroup}\finsm@sh}
|
|
\def\mathsm@sh#1#2{%
|
|
\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
|
|
\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \leavevmode@ifvmode\box\z@}
|
|
\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}}
|
|
\DeclareRobustCommand\cases[1]{\left\{\,\vcenter{\normalbaselines\m@th
|
|
\ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\right.}
|
|
\DeclareRobustCommand\matrix[1]{\null\,\vcenter{\normalbaselines\m@th
|
|
\ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
|
|
\mathstrut\crcr\noalign{\kern-\baselineskip}
|
|
#1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
|
|
\DeclareRobustCommand\pmatrix[1]{\left(\matrix{#1}\right)}
|
|
\def\bordermatrix#1{\begingroup \m@th
|
|
\@tempdima 8.75\p@
|
|
\setbox\z@\vbox{%
|
|
\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
|
|
\ialign{$##$\hfil\kern2\p@\kern\@tempdima&\thinspace\hfil$##$\hfil
|
|
&&\quad\hfil$##$\hfil\crcr
|
|
\omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
|
|
#1\crcr\omit\strut\cr}}%
|
|
\setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}%
|
|
\setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
|
|
\setbox\tw@\hbox{$\kern\wd\@ne\kern-\@tempdima\left(\kern-\wd\@ne
|
|
\global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
|
|
\vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}%
|
|
\null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
|
|
\def\openup{\afterassignment\@penup\dimen@}
|
|
\def\@penup{\advance\lineskip\dimen@
|
|
\advance\baselineskip\dimen@
|
|
\advance\lineskiplimit\dimen@}
|
|
\newif\ifdt@p
|
|
\def\displ@y{\global\dt@ptrue\openup\jot\m@th
|
|
\everycr{\noalign{\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-1000\p@
|
|
\vskip-\lineskiplimit \vskip\normallineskiplimit \fi
|
|
\else \penalty\interdisplaylinepenalty \fi}}}
|
|
\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y
|
|
\def\displaylines#1{\displ@y \tabskip\z@skip
|
|
\halign{\hb@xt@\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
|
|
#1\crcr}}
|
|
\let\sp=^
|
|
\let\sb=_
|
|
\def\>{\mskip\medmuskip}
|
|
\def\;{\mskip\thickmuskip}
|
|
\def\!{\mskip-\thinmuskip}
|
|
\DeclareRobustCommand\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}
|
|
\let\:=\>
|
|
\def\active@math@prime{^\bgroup\prim@s}
|
|
{\catcode`\'=\active \global\let'\active@math@prime}
|
|
\def\prim@s{%
|
|
\prime\futurelet\@let@token\pr@m@s}
|
|
\def\pr@m@s{%
|
|
\ifx'\@let@token
|
|
\expandafter\pr@@@s
|
|
\else
|
|
\ifx^\@let@token
|
|
\expandafter\expandafter\expandafter\pr@@@t
|
|
\else
|
|
\egroup
|
|
\fi
|
|
\fi}
|
|
\def\pr@@@s#1{\prim@s}
|
|
\def\pr@@@t#1#2{#2\egroup}
|
|
{\catcode`\_=\active \gdef_{\_}} % _ in math is
|
|
% either subscript or \_
|
|
\DeclareRobustCommand\({%
|
|
\relax\ifmmode\@badmath\else$\fi}%
|
|
\DeclareRobustCommand\){%
|
|
\relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}%
|
|
\DeclareRobustCommand\[{%
|
|
\relax\ifmmode
|
|
\@badmath
|
|
\else
|
|
\ifvmode
|
|
\nointerlineskip
|
|
\makebox[.6\linewidth]{}%
|
|
\fi
|
|
$$%%$$ BRACE MATCH HACK
|
|
\fi
|
|
}%
|
|
\DeclareRobustCommand\]{%
|
|
\relax\ifmmode
|
|
\ifinner
|
|
\@badmath
|
|
\else
|
|
$$%%$$ BRACE MATCH HACK
|
|
\fi
|
|
\else
|
|
\@badmath
|
|
\fi
|
|
\ignorespaces
|
|
}%
|
|
\let\math=\(
|
|
\let\endmath=\)
|
|
\def\displaymath{\[}
|
|
\def\enddisplaymath{\]\@ignoretrue}
|
|
\@definecounter{equation}
|
|
\def\equation{$$\refstepcounter{equation}}
|
|
\def\endequation{\eqno \hbox{\@eqnnum}$$\@ignoretrue}
|
|
\def\@eqnnum{{\normalfont \normalcolor (\theequation)}}
|
|
\DeclareRobustCommand\stackrel[2]{\mathrel{\mathop{#2}\limits^{#1}}}
|
|
\DeclareRobustCommand\frac[2]{{\begingroup#1\endgroup\over#2}}
|
|
\DeclareRobustCommand\sqrt{\@ifnextchar[\@sqrt\sqrtsign}
|
|
\def\@sqrt[#1]{\root #1\of}
|
|
\newcount\@eqcnt
|
|
\newcount\@eqpen
|
|
\newif\if@eqnsw\@eqnswtrue
|
|
\newskip\@centering
|
|
\@centering = 0pt plus 1000pt
|
|
\def\eqnarray{%
|
|
\stepcounter{equation}%
|
|
\def\@currentlabel{\p@equation\theequation}%
|
|
\global\@eqnswtrue
|
|
\m@th
|
|
\global\@eqcnt\z@
|
|
\tabskip\@centering
|
|
\let\\\@eqncr
|
|
$$\everycr{}\halign to\displaywidth\bgroup
|
|
\hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
|
|
&\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil
|
|
&\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
|
|
$\displaystyle{##}$\hfil\tabskip\@centering
|
|
&\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
|
|
\tabskip\z@skip
|
|
\cr
|
|
}
|
|
\def\endeqnarray{%
|
|
\@@eqncr
|
|
\egroup
|
|
\global\advance\c@equation\m@ne
|
|
$$\@ignoretrue
|
|
}
|
|
\let\@eqnsel=\relax
|
|
\def\nonumber{\global\@eqnswfalse}
|
|
\def\@eqncr{%
|
|
{\ifnum0=`}\fi
|
|
\@ifstar{%
|
|
\global\@eqpen\@M\@yeqncr
|
|
}{%
|
|
\global\@eqpen\interdisplaylinepenalty \@yeqncr
|
|
}%
|
|
}
|
|
\def\@yeqncr{\@testopt\@xeqncr\z@skip}
|
|
\def\@xeqncr[#1]{%
|
|
\ifnum0=`{\fi}%
|
|
\@@eqncr
|
|
\noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}%
|
|
}
|
|
\def\@@eqncr{\let\reserved@a\relax
|
|
\ifcase\@eqcnt \def\reserved@a{& & &}\or \def\reserved@a{& &}%
|
|
\or \def\reserved@a{&}\else
|
|
\let\reserved@a\@empty
|
|
\@latex@error{Too many columns in eqnarray environment}\@ehc\fi
|
|
\reserved@a \if@eqnsw\@eqnnum\stepcounter{equation}\fi
|
|
\global\@eqnswtrue\global\@eqcnt\z@\cr}
|
|
\let\@seqncr=\@eqncr
|
|
\@namedef{eqnarray*}{\def\@eqncr{\nonumber\@seqncr}\eqnarray}
|
|
\@namedef{endeqnarray*}{\nonumber\endeqnarray}
|
|
\def\lefteqn#1{\rlap{$\displaystyle #1$}}
|
|
\DeclareRobustCommand{\ensuremath}{%
|
|
\ifmmode
|
|
\expandafter\@firstofone
|
|
\else
|
|
\expandafter\@ensuredmath
|
|
\fi}
|
|
\long\def\@ensuredmath#1{$\relax#1$}
|
|
%%% From File: ltlists.dtx
|
|
\newskip\topsep
|
|
\newskip\partopsep
|
|
\newskip\itemsep
|
|
\newskip\parsep
|
|
\newskip\@topsep
|
|
\newskip\@topsepadd
|
|
\newskip\@outerparskip
|
|
\newdimen\leftmargin
|
|
\newdimen\rightmargin
|
|
\newdimen\listparindent
|
|
\newdimen\itemindent
|
|
\newdimen\labelwidth
|
|
\newdimen\labelsep
|
|
\newdimen\linewidth
|
|
\newdimen\@totalleftmargin \@totalleftmargin=\z@
|
|
\newdimen\leftmargini
|
|
\newdimen\leftmarginii
|
|
\newdimen\leftmarginiii
|
|
\newdimen\leftmarginiv
|
|
\newdimen\leftmarginv
|
|
\newdimen\leftmarginvi
|
|
\newcount\@listdepth \@listdepth=0
|
|
\newcount\@itempenalty
|
|
\newcount\@beginparpenalty
|
|
\newcount\@endparpenalty
|
|
\newbox\@labels
|
|
\newif\if@inlabel \@inlabelfalse
|
|
\newif\if@newlist \@newlistfalse
|
|
\newif\if@noparitem \@noparitemfalse
|
|
\newif\if@noparlist \@noparlistfalse
|
|
\newif\if@noitemarg \@noitemargfalse
|
|
\newif\if@nmbrlist \@nmbrlistfalse
|
|
\def\list#1#2{%
|
|
\ifnum \@listdepth >5\relax
|
|
\@toodeep
|
|
\else
|
|
\global\advance\@listdepth\@ne
|
|
\fi
|
|
\rightmargin\z@
|
|
\listparindent\z@
|
|
\itemindent\z@
|
|
\csname @list\romannumeral\the\@listdepth\endcsname
|
|
\def\@itemlabel{#1}%
|
|
\let\makelabel\@mklab
|
|
\@nmbrlistfalse
|
|
#2\relax
|
|
\@trivlist
|
|
\parskip\parsep
|
|
\parindent\listparindent
|
|
\advance\linewidth -\rightmargin
|
|
\advance\linewidth -\leftmargin
|
|
\advance\@totalleftmargin \leftmargin
|
|
\parshape \@ne \@totalleftmargin \linewidth
|
|
\ignorespaces}
|
|
\newcount\par@deathcycles
|
|
\def\@trivlist{%
|
|
\if@noskipsec \leavevmode \fi
|
|
\@topsepadd \topsep
|
|
\ifvmode
|
|
\advance\@topsepadd \partopsep
|
|
\else
|
|
\unskip \par
|
|
\fi
|
|
\if@inlabel
|
|
\@noparitemtrue
|
|
\@noparlisttrue
|
|
\else
|
|
\if@newlist \@noitemerr \fi
|
|
\@noparlistfalse
|
|
\@topsep \@topsepadd
|
|
\fi
|
|
\advance\@topsep \parskip
|
|
\leftskip \z@skip
|
|
\rightskip \@rightskip
|
|
\parfillskip \@flushglue
|
|
\par@deathcycles \z@
|
|
\@setpar{\if@newlist
|
|
\advance\par@deathcycles \@ne
|
|
\ifnum \par@deathcycles >\@m
|
|
\@noitemerr
|
|
{\@@par}%
|
|
\fi
|
|
\else
|
|
{\@@par}%
|
|
\fi}%
|
|
\global \@newlisttrue
|
|
\@outerparskip \parskip}
|
|
\def\trivlist{%
|
|
\parsep\parskip
|
|
\@nmbrlistfalse
|
|
\@trivlist
|
|
\labelwidth\z@
|
|
\leftmargin\z@
|
|
\itemindent\z@
|
|
\let\@itemlabel\@empty
|
|
\def\makelabel##1{##1}}
|
|
\def\endlist{%
|
|
\global\advance\@listdepth\m@ne
|
|
\endtrivlist}
|
|
\def\endtrivlist{%
|
|
\if@inlabel
|
|
\leavevmode
|
|
\global \@inlabelfalse
|
|
\fi
|
|
\if@newlist
|
|
\@noitemerr
|
|
\global \@newlistfalse
|
|
\fi
|
|
\ifhmode\unskip \par
|
|
\else
|
|
\@inmatherr{\end{\@currenvir}}%
|
|
\fi
|
|
\if@noparlist \else
|
|
\ifdim\lastskip >\z@
|
|
\@tempskipa\lastskip \vskip -\lastskip
|
|
\advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip
|
|
\vskip\@tempskipa
|
|
\fi
|
|
\@endparenv
|
|
\fi
|
|
}
|
|
\def\@endparenv{%
|
|
\addpenalty\@endparpenalty\addvspace\@topsepadd\@endpetrue}
|
|
\def\@doendpe{\@endpetrue
|
|
\def\par{\@restorepar
|
|
\clubpenalty\@clubpenalty
|
|
\everypar{}\par\@endpefalse}\everypar
|
|
{{\setbox\z@\lastbox}%
|
|
\everypar{}\@endpefalse}}
|
|
\newif\if@endpe
|
|
\@endpefalse
|
|
\def\@mklab#1{\hfil #1}
|
|
\def\item{%
|
|
\@inmatherr\item
|
|
\@ifnextchar [\@item{\@noitemargtrue \@item[\@itemlabel]}}
|
|
\def\@donoparitem{%
|
|
\@noparitemfalse
|
|
\global\setbox\@labels\hbox{\hskip -\leftmargin
|
|
\unhbox\@labels
|
|
\hskip \leftmargin}%
|
|
\if@minipage\else
|
|
\@tempskipa\lastskip
|
|
\vskip -\lastskip
|
|
\advance\@tempskipa\@outerparskip
|
|
\advance\@tempskipa -\parskip
|
|
\vskip\@tempskipa
|
|
\fi}
|
|
\def\@item[#1]{%
|
|
\if@noparitem
|
|
\@donoparitem
|
|
\else
|
|
\if@inlabel
|
|
\indent \par
|
|
\fi
|
|
\ifhmode
|
|
\unskip\unskip \par
|
|
\fi
|
|
\if@newlist
|
|
\if@nobreak
|
|
\@nbitem
|
|
\else
|
|
\addpenalty\@beginparpenalty
|
|
\addvspace\@topsep
|
|
\addvspace{-\parskip}%
|
|
\fi
|
|
\else
|
|
\addpenalty\@itempenalty
|
|
\addvspace\itemsep
|
|
\fi
|
|
\global\@inlabeltrue
|
|
\fi
|
|
\everypar{%
|
|
\@minipagefalse
|
|
\global\@newlistfalse
|
|
\if@inlabel
|
|
\global\@inlabelfalse
|
|
{\setbox\z@\lastbox
|
|
\ifvoid\z@
|
|
\kern-\itemindent
|
|
\fi}%
|
|
\box\@labels
|
|
\penalty\z@
|
|
\fi
|
|
\if@nobreak
|
|
\@nobreakfalse
|
|
\clubpenalty \@M
|
|
\else
|
|
\clubpenalty \@clubpenalty
|
|
\everypar{}%
|
|
\fi}%
|
|
\if@noitemarg
|
|
\@noitemargfalse
|
|
\if@nmbrlist
|
|
\refstepcounter\@listctr
|
|
\fi
|
|
\fi
|
|
\sbox\@tempboxa{\makelabel{#1}}%
|
|
\global\setbox\@labels\hbox{%
|
|
\unhbox\@labels
|
|
\hskip \itemindent
|
|
\hskip -\labelwidth
|
|
\hskip -\labelsep
|
|
\ifdim \wd\@tempboxa >\labelwidth
|
|
\box\@tempboxa
|
|
\else
|
|
\hbox to\labelwidth {\unhbox\@tempboxa}%
|
|
\fi
|
|
\hskip \labelsep}%
|
|
\ignorespaces}
|
|
\def\makelabel#1{%
|
|
\@latex@error{Lonely \string\item--perhaps a missing
|
|
list environment}\@ehc}
|
|
\def\@nbitem{%
|
|
\@tempskipa\@outerparskip
|
|
\advance\@tempskipa -\parskip
|
|
\addvspace\@tempskipa}
|
|
\def\usecounter#1{\@nmbrlisttrue\def\@listctr{#1}\setcounter{#1}\z@}
|
|
\newcount\@enumdepth \@enumdepth = 0
|
|
\@definecounter{enumi}
|
|
\@definecounter{enumii}
|
|
\@definecounter{enumiii}
|
|
\@definecounter{enumiv}
|
|
\def\enumerate{%
|
|
\ifnum \@enumdepth >\thr@@\@toodeep\else
|
|
\advance\@enumdepth\@ne
|
|
\edef\@enumctr{enum\romannumeral\the\@enumdepth}%
|
|
\expandafter
|
|
\list
|
|
\csname label\@enumctr\endcsname
|
|
{\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
|
|
\fi}
|
|
\let\endenumerate =\endlist
|
|
\newcount\@itemdepth \@itemdepth = 0
|
|
\def\itemize{%
|
|
\ifnum \@itemdepth >\thr@@\@toodeep\else
|
|
\advance\@itemdepth\@ne
|
|
\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
|
|
\expandafter
|
|
\list
|
|
\csname\@itemitem\endcsname
|
|
{\def\makelabel##1{\hss\llap{##1}}}%
|
|
\fi}
|
|
\let\enditemize =\endlist
|
|
%%% From File: ltboxes.dtx
|
|
\message{boxes,}
|
|
\DeclareRobustCommand\makebox{%
|
|
\leavevmode
|
|
\@ifnextchar(%)
|
|
\@makepicbox
|
|
{\@ifnextchar[\@makebox\mbox}}%
|
|
\DeclareRobustCommand\mbox[1]{\leavevmode\hbox{#1}}
|
|
\def\@makebox[#1]{%
|
|
\@ifnextchar [{\@imakebox[#1]}{\@imakebox[#1][c]}}
|
|
\long\def\@begin@tempboxa#1#2{%
|
|
\begingroup
|
|
\setbox\@tempboxa#1{\color@begingroup#2\color@endgroup}%
|
|
\def\width{\wd\@tempboxa}%
|
|
\def\height{\ht\@tempboxa}%
|
|
\def\depth{\dp\@tempboxa}%
|
|
\let\totalheight\@ovri
|
|
\totalheight\height
|
|
\advance\totalheight\depth}
|
|
\let\@end@tempboxa\endgroup
|
|
\def\bm@c{\hss\unhbox\@tempboxa\hss}
|
|
\def\bm@l{\unhbox\@tempboxa\hss}\let\bm@t\bm@l
|
|
\def\bm@r{\hss\unhbox\@tempboxa}\let\bm@b\bm@r
|
|
\def\bm@s{\unhbox\@tempboxa}
|
|
\long\def\@imakebox[#1][#2]#3{%
|
|
\@begin@tempboxa\hbox{#3}%
|
|
\setlength\@tempdima{#1}% support calc
|
|
\hb@xt@\@tempdima{\csname bm@#2\endcsname}%
|
|
\@end@tempboxa}
|
|
\def\@makepicbox(#1,#2){%
|
|
\@ifnextchar[{\@imakepicbox(#1,#2)}{\@imakepicbox(#1,#2)[]}}
|
|
\long\def\@imakepicbox(#1,#2)[#3]#4{%
|
|
\vbox to#2\unitlength
|
|
{\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
|
|
\let\mb@t\vss
|
|
\@tfor\reserved@a :=#3\do{%
|
|
\if s\reserved@a
|
|
\let\mb@l\relax\let\mb@r\relax
|
|
\else
|
|
\expandafter\let\csname mb@\reserved@a\endcsname\relax
|
|
\fi}%
|
|
\mb@t
|
|
\hb@xt@ #1\unitlength{\mb@l #4\mb@r}%
|
|
\mb@b
|
|
\kern\z@}}
|
|
\let\set@color\relax
|
|
\let\color@begingroup\relax
|
|
\let\color@endgroup\relax
|
|
\let\color@setgroup\relax
|
|
\let\normalcolor\relax
|
|
\let\color@hbox\relax
|
|
\let\color@vbox\relax
|
|
\let\color@endbox\relax
|
|
\def\newsavebox#1{\@ifdefinable{#1}{\newbox#1}}
|
|
\DeclareRobustCommand\savebox[1]{%
|
|
\@ifnextchar(%)
|
|
{\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}%
|
|
\DeclareRobustCommand\sbox[2]{\setbox#1\hbox{%
|
|
\color@setgroup#2\color@endgroup}}
|
|
\def\@savebox#1[#2]{%
|
|
\@ifnextchar [{\@isavebox#1[#2]}{\@isavebox#1[#2][c]}}
|
|
\long\def\@isavebox#1[#2][#3]#4{%
|
|
\sbox#1{\@imakebox[#2][#3]{#4}}}
|
|
\def\@savepicbox#1(#2,#3){%
|
|
\@ifnextchar[%]
|
|
{\@isavepicbox#1(#2,#3)}{\@isavepicbox#1(#2,#3)[]}}
|
|
\long\def\@isavepicbox#1(#2,#3)[#4]#5{%
|
|
\sbox#1{\@imakepicbox(#2,#3)[#4]{#5}}}
|
|
\def\lrbox#1{%
|
|
\edef\reserved@a{%
|
|
\endgroup
|
|
\setbox#1\hbox{%
|
|
\begingroup\aftergroup}%
|
|
\def\noexpand\@currenvir{\@currenvir}%
|
|
\def\noexpand\@currenvline{\on@line}}%
|
|
\reserved@a
|
|
\@endpefalse
|
|
\color@setgroup
|
|
\ignorespaces}
|
|
\def\endlrbox{\unskip\color@endgroup}
|
|
\DeclareRobustCommand\usebox[1]{\leavevmode\copy #1\relax}
|
|
\DeclareRobustCommand\frame[1]{%
|
|
\leavevmode
|
|
\hbox{%
|
|
\hskip-\@wholewidth
|
|
\vbox{%
|
|
\vskip-\@wholewidth
|
|
\hrule \@height\@wholewidth
|
|
\hbox{%
|
|
\vrule\@width\@wholewidth
|
|
#1%
|
|
\vrule\@width\@wholewidth}%
|
|
\hrule\@height\@wholewidth
|
|
\vskip-\@wholewidth}%
|
|
\hskip-\@wholewidth}}
|
|
\newdimen\fboxrule
|
|
\newdimen\fboxsep
|
|
\DeclareRobustCommand\fbox[1]{%
|
|
\leavevmode
|
|
\setbox\@tempboxa\hbox{%
|
|
\color@begingroup
|
|
\kern\fboxsep{#1}\kern\fboxsep
|
|
\color@endgroup}%
|
|
\@frameb@x\relax}
|
|
\DeclareRobustCommand\framebox{%
|
|
\@ifnextchar(%)
|
|
\@framepicbox{\@ifnextchar[\@framebox\fbox}}%
|
|
\def\@framebox[#1]{%
|
|
\@ifnextchar[%]
|
|
{\@iframebox[#1]}%
|
|
{\@iframebox[#1][c]}}
|
|
\long\def\@iframebox[#1][#2]#3{%
|
|
\leavevmode
|
|
\@begin@tempboxa\hbox{#3}%
|
|
\setlength\@tempdima{#1}%
|
|
\setbox\@tempboxa\hb@xt@\@tempdima
|
|
{\kern\fboxsep\csname bm@#2\endcsname\kern\fboxsep}%
|
|
\@frameb@x{\kern-\fboxrule}%
|
|
\@end@tempboxa}
|
|
\def\@frameb@x#1{%
|
|
\@tempdima\fboxrule
|
|
\advance\@tempdima\fboxsep
|
|
\advance\@tempdima\dp\@tempboxa
|
|
\hbox{%
|
|
\lower\@tempdima\hbox{%
|
|
\vbox{%
|
|
\hrule\@height\fboxrule
|
|
\hbox{%
|
|
\vrule\@width\fboxrule
|
|
#1%
|
|
\vbox{%
|
|
\vskip\fboxsep
|
|
\box\@tempboxa
|
|
\vskip\fboxsep}%
|
|
#1%
|
|
\vrule\@width\fboxrule}%
|
|
\hrule\@height\fboxrule}%
|
|
}%
|
|
}%
|
|
}
|
|
\def\@framepicbox(#1,#2){%
|
|
\@ifnextchar[{\@iframepicbox(#1,#2)}{\@iframepicbox(#1,#2)[]}}
|
|
\long\def\@iframepicbox(#1,#2)[#3]#4{%
|
|
\frame{\@imakepicbox(#1,#2)[#3]{#4}}}
|
|
\DeclareRobustCommand\parbox{%
|
|
\@ifnextchar[%]
|
|
\@iparbox
|
|
{\@iiiparbox c\relax[s]}}%
|
|
\def\@iparbox[#1]{%
|
|
\@ifnextchar[%]
|
|
{\@iiparbox{#1}}%
|
|
{\@iiiparbox{#1}\relax[s]}}
|
|
\def\@iiparbox#1[#2]{%
|
|
\@ifnextchar[%]
|
|
{\@iiiparbox{#1}{#2}}%
|
|
{\@iiiparbox{#1}{#2}[#1]}}
|
|
\let\@parboxto\@empty
|
|
\long\def\@iiiparbox#1#2[#3]#4#5{%
|
|
\leavevmode
|
|
\@pboxswfalse
|
|
\setlength\@tempdima{#4}%
|
|
\@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}%
|
|
\ifx\relax#2\else
|
|
\setlength\@tempdimb{#2}%
|
|
\edef\@parboxto{to\the\@tempdimb}%
|
|
\fi
|
|
\if#1b\vbox
|
|
\else\if #1t\vtop
|
|
\else\ifmmode\vcenter
|
|
\else\@pboxswtrue $\vcenter
|
|
\fi\fi\fi
|
|
\@parboxto{\let\hss\vss\let\unhbox\unvbox
|
|
\csname bm@#3\endcsname}%
|
|
\if@pboxsw \m@th$\fi
|
|
\@end@tempboxa}
|
|
\def\@arrayparboxrestore{%
|
|
\let\if@nobreak\iffalse
|
|
\let\if@noskipsec\iffalse
|
|
\let\par\@@par
|
|
\let\-\@dischyph
|
|
\let\'\@acci\let\`\@accii\let\=\@acciii
|
|
\parindent\z@ \parskip\z@skip
|
|
\everypar{}%
|
|
\linewidth\hsize
|
|
\@totalleftmargin\z@
|
|
\leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
|
|
\parfillskip\@flushglue
|
|
\lineskip\normallineskip
|
|
\lineskiplimit\normallineskiplimit
|
|
\baselineskip\normalbaselineskip
|
|
\sloppy}
|
|
\def\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
|
|
\def\@minipagefalse{\global\let\if@minipage\iffalse}
|
|
\def\@minipagetrue {\global\let\if@minipage\iftrue}
|
|
\@minipagefalse
|
|
\def\minipage{%
|
|
\@ifnextchar[%]
|
|
\@iminipage
|
|
{\@iiiminipage c\relax[s]}}
|
|
\def\@iminipage[#1]{%
|
|
\@ifnextchar[%]
|
|
{\@iiminipage{#1}}%
|
|
{\@iiiminipage{#1}\relax[s]}}
|
|
\def\@iiminipage#1[#2]{%
|
|
\@ifnextchar[%]
|
|
{\@iiiminipage{#1}{#2}}%
|
|
{\@iiiminipage{#1}{#2}[#1]}}
|
|
\def\@iiiminipage#1#2[#3]#4{%
|
|
\leavevmode
|
|
\@pboxswfalse
|
|
\setlength\@tempdima{#4}%
|
|
\def\@mpargs{{#1}{#2}[#3]{#4}}%
|
|
\setbox\@tempboxa\vbox\bgroup
|
|
\color@begingroup
|
|
\hsize\@tempdima
|
|
\textwidth\hsize \columnwidth\hsize
|
|
\@parboxrestore
|
|
\def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
|
|
\let\@footnotetext\@mpfootnotetext
|
|
\let\@listdepth\@mplistdepth \@mplistdepth\z@
|
|
\@minipagerestore
|
|
\@setminipage}
|
|
\let\@minipagerestore=\relax
|
|
\def\endminipage{%
|
|
\par
|
|
\unskip
|
|
\ifvoid\@mpfootins\else
|
|
\vskip\skip\@mpfootins
|
|
\normalcolor
|
|
\footnoterule
|
|
\unvbox\@mpfootins
|
|
\fi
|
|
\@minipagefalse %% added 24 May 89
|
|
\color@endgroup
|
|
\egroup
|
|
\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
|
|
\newcount\@mplistdepth
|
|
\newinsert\@mpfootins
|
|
\long\def\@mpfootnotetext#1{%
|
|
\global\setbox\@mpfootins\vbox{%
|
|
\unvbox\@mpfootins
|
|
\reset@font\footnotesize
|
|
\hsize\columnwidth
|
|
\@parboxrestore
|
|
\protected@edef\@currentlabel
|
|
{\csname p@mpfootnote\endcsname\@thefnmark}%
|
|
\color@begingroup
|
|
\@makefntext{%
|
|
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
|
|
\color@endgroup}}
|
|
\newif\if@pboxsw
|
|
\DeclareRobustCommand\rule{\@ifnextchar[\@rule{\@rule[\z@]}}%
|
|
\def\@rule[#1]#2#3{%
|
|
\leavevmode
|
|
\hbox{%
|
|
\setlength\@tempdima{#1}%
|
|
\setlength\@tempdimb{#2}%
|
|
\setlength\@tempdimc{#3}%
|
|
\advance\@tempdimc\@tempdima
|
|
\vrule\@width\@tempdimb\@height\@tempdimc\@depth-\@tempdima}}
|
|
\let\@@underline\underline
|
|
\DeclareRobustCommand\underline[1]{%
|
|
\relax
|
|
\ifmmode\@@underline{#1}%
|
|
\else $\@@underline{\hbox{#1}}\m@th$\relax\fi}
|
|
\DeclareRobustCommand\raisebox[1]{%
|
|
\leavevmode
|
|
\@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
|
|
\def\@rsbox#1[#2]{%
|
|
\@ifnextchar[{\@iirsbox{#1}[#2]}{\@irsbox{#1}[#2]}}
|
|
\long\def\@irsbox#1[#2]#3{%
|
|
\@begin@tempboxa\hbox{#3}%
|
|
\setlength\@tempdima{#1}%
|
|
\ifx\\#2\\\else\setlength\@tempdimb{#2}\fi
|
|
\setbox\@tempboxa\hbox{\raise\@tempdima\box\@tempboxa}%
|
|
\ifx\\#2\\\else\ht\@tempboxa\@tempdimb\fi
|
|
\box\@tempboxa
|
|
\@end@tempboxa}
|
|
\long\def\@iirsbox#1[#2][#3]#4{%
|
|
\@begin@tempboxa\hbox{#4}%
|
|
\setlength\@tempdima{#1}%
|
|
\setlength\@tempdimb{#2}%
|
|
\setlength\dimen@{#3}%
|
|
\setbox\@tempboxa\hbox{\raise\@tempdima\box\@tempboxa}%
|
|
\ht\@tempboxa\@tempdimb
|
|
\dp\@tempboxa\dimen@
|
|
\box\@tempboxa
|
|
\@end@tempboxa}
|
|
\def\@finalstrut#1{%
|
|
\unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\dp#1}
|
|
\def\@@line{\hb@xt@\hsize}
|
|
\DeclareRobustCommand\leftline[1]{\@@line{#1\hss}}
|
|
\DeclareRobustCommand\rightline[1]{\@@line{\hss#1}}
|
|
\DeclareRobustCommand\centerline[1]{\@@line{\hss#1\hss}}
|
|
\DeclareRobustCommand\rlap[1]{\hb@xt@\z@{#1\hss}}
|
|
\DeclareRobustCommand\llap[1]{\hb@xt@\z@{\hss#1}}
|
|
%%% From File: lttab.dtx
|
|
\expandafter\let\csname ver@autotabg.sty\endcsname\fmtversion
|
|
\newdimen\@gtempa
|
|
\chardef\@firsttab=\the\allocationnumber
|
|
\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
|
|
\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
|
|
\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
|
|
\newdimen\@gtempa
|
|
\chardef\@maxtab=\the\allocationnumber
|
|
\dimen\@firsttab=0pt
|
|
\newcount\@nxttabmar
|
|
\newcount\@curtabmar
|
|
\newcount\@curtab
|
|
\newcount\@hightab
|
|
\newcount\@tabpush
|
|
\newbox\@curline
|
|
\newbox\@curfield
|
|
\newbox\@tabfbox
|
|
\newif\if@rjfield
|
|
\def\@startline{%
|
|
\ifnum \@nxttabmar >\@hightab
|
|
\@badtab
|
|
\global\@nxttabmar \@hightab
|
|
\fi
|
|
\global\@curtabmar \@nxttabmar
|
|
\global\@curtab \@curtabmar
|
|
\global\setbox\@curline \hbox {}%
|
|
\@startfield
|
|
\strut}
|
|
\def\@stopline{%
|
|
\unskip
|
|
\@stopfield
|
|
\if@rjfield
|
|
\global\@rjfieldfalse
|
|
\@tempdima\@totalleftmargin
|
|
\advance\@tempdima\linewidth
|
|
\hb@xt@\@tempdima{%
|
|
\@itemfudge\hskip\dimen\@curtabmar
|
|
\box\@curline
|
|
\hfil
|
|
\box\@curfield}%
|
|
\else
|
|
\@addfield
|
|
\hbox{\@itemfudge\hskip\dimen\@curtabmar\box\@curline}%
|
|
\fi}
|
|
\def\@startfield{%
|
|
\global\setbox\@curfield\hbox\bgroup\color@begingroup}
|
|
\def\@stopfield{%
|
|
\color@endgroup\egroup}
|
|
\def\@contfield{%
|
|
\global\setbox\@curfield\hbox\bgroup\color@begingroup
|
|
\unhbox\@curfield}
|
|
\def\@addfield{\global\setbox\@curline\hbox{\unhbox
|
|
\@curline\unhbox\@curfield}}
|
|
\def\@ifatmargin{\ifdim \wd\@curline =\z@}
|
|
\def\@tabcr{\@stopline \@ifstar{\penalty \@M \@xtabcr}\@xtabcr}
|
|
\def\@xtabcr{\@ifnextchar[\@itabcr{\@startline\ignorespaces}}
|
|
\def\@itabcr[#1]{\vskip #1\@startline\ignorespaces}
|
|
\def\tabbing{\lineskip \z@skip\let\>\@rtab\let\<\@ltab\let\=\@settab
|
|
\let\+\@tabplus\let\-\@tabminus\let\`\@tabrj\let\'\@tablab
|
|
\let\\=\@tabcr
|
|
\@hightab\@firsttab
|
|
\global\@nxttabmar\@firsttab
|
|
\dimen\@firsttab\@totalleftmargin
|
|
\global\@tabpush\z@ \global\@rjfieldfalse
|
|
\trivlist \item\relax
|
|
\if@minipage\else\vskip\parskip\fi
|
|
\setbox\@tabfbox\hbox{%
|
|
\rlap{\hskip\@totalleftmargin\indent\the\everypar}}%
|
|
\def\@itemfudge{\box\@tabfbox}%
|
|
\@startline\ignorespaces}
|
|
\def\endtabbing{%
|
|
\@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist}
|
|
\def\@rtab{\@stopfield\@addfield\ifnum \@curtab<\@hightab
|
|
\global\advance\@curtab \@ne \else\@badtab\fi
|
|
\@tempdima\dimen\@curtab
|
|
\advance\@tempdima -\dimen\@curtabmar
|
|
\advance\@tempdima -\wd\@curline
|
|
\global\setbox\@curline\hbox{\unhbox\@curline\hskip\@tempdima}%
|
|
\@startfield\ignorespaces}
|
|
\def\@settab{\@stopfield\@addfield
|
|
\ifnum \@curtab <\@maxtab
|
|
\ifnum\@curtab =\@hightab
|
|
\advance\@hightab \@ne
|
|
\fi
|
|
\global\advance\@curtab \@ne
|
|
\else
|
|
\@latex@error{Tab overflow}\@ehd
|
|
\fi
|
|
\dimen\@curtab \dimen\@curtabmar
|
|
\advance\dimen\@curtab \wd\@curline
|
|
\@startfield
|
|
\ignorespaces}
|
|
\def\@ltab{\@ifatmargin\ifnum\@curtabmar >\@firsttab
|
|
\global\advance\@curtab \m@ne \global\advance\@curtabmar\m@ne\else
|
|
\@badtab\fi\else
|
|
\@latex@error{\string\<\space in mid line}\@ehd\fi\ignorespaces}
|
|
\def\@tabplus{%
|
|
\ifnum\@nxttabmar<\@hightab
|
|
\global\advance\@nxttabmar\@ne
|
|
\else
|
|
\@badtab
|
|
\fi
|
|
\ignorespaces}
|
|
\def\@tabminus{%
|
|
\ifnum\@nxttabmar>\@firsttab
|
|
\global\advance\@nxttabmar\m@ne
|
|
\else
|
|
\@badtab
|
|
\fi
|
|
\ignorespaces}
|
|
\def\@tabrj{%
|
|
\@stopfield\@addfield\global\@rjfieldtrue\@startfield\ignorespaces}
|
|
\def\@tablab{%
|
|
\@stopfield
|
|
\global\setbox\@curline\hbox{%
|
|
\box\@curline
|
|
\hskip-\wd\@curfield \hskip-\tabbingsep
|
|
\box\@curfield
|
|
\hskip\tabbingsep}%
|
|
\@startfield
|
|
\ignorespaces}
|
|
\DeclareRobustCommand\pushtabs{%
|
|
\@stopfield\@addfield\global\advance\@tabpush \@ne \begingroup
|
|
\@contfield}
|
|
\DeclareRobustCommand\poptabs{\@stopfield\@addfield
|
|
\ifnum \@tabpush >\z@
|
|
\endgroup
|
|
\global\advance\@tabpush \m@ne
|
|
\ifnum \@curtab >\@hightab
|
|
\global \@curtab \@hightab
|
|
\@badtab
|
|
\fi
|
|
\else
|
|
\@badpoptabs
|
|
\fi
|
|
\@contfield}
|
|
\DeclareRobustCommand\kill{\@stopfield\@startline\ignorespaces}
|
|
\newdimen\tabbingsep
|
|
\def\extracolsep#1{\tabskip #1\relax}
|
|
\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
|
|
\let\@classiv\@arrayclassiv
|
|
\let\\\@arraycr\let\@halignto\@empty\@tabarray}
|
|
\def\endarray{\crcr\egroup\egroup}
|
|
\def\endtabular{\crcr\egroup\egroup $\egroup}
|
|
\expandafter \let \csname endtabular*\endcsname = \endtabular
|
|
\def\tabular{\let\@halignto\@empty\@tabular}
|
|
\@namedef{tabular*}#1{%
|
|
\setlength\dimen@{#1}%
|
|
\edef\@halignto{to\the\dimen@}\@tabular}
|
|
\def\@tabular{\leavevmode \hbox \bgroup $\let\@acol\@tabacol
|
|
\let\@classz\@tabclassz
|
|
\let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray}
|
|
\def\@tabarray{\m@th\@ifnextchar[\@array{\@array[c]}}
|
|
\def\@array[#1]#2{%
|
|
\if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
|
|
\bgroup
|
|
\setbox\@arstrutbox\hbox{%
|
|
\vrule \@height\arraystretch\ht\strutbox
|
|
\@depth\arraystretch \dp\strutbox
|
|
\@width\z@}%
|
|
\@mkpream{#2}%
|
|
\edef\@preamble{%
|
|
\ialign \noexpand\@halignto
|
|
\bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
|
|
\let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
|
|
\let\tabularnewline\\%
|
|
\let\par\@empty
|
|
\let\@sharp##%
|
|
\set@typeset@protect
|
|
\lineskip\z@skip\baselineskip\z@skip
|
|
\ifhmode \@preamerr\z@ \@@par\fi
|
|
\@preamble}
|
|
\def\@arraycr{%
|
|
${\ifnum0=`}\fi\@ifstar\@xarraycr\@xarraycr}
|
|
\def\@xarraycr{\@ifnextchar[\@argarraycr{\ifnum0=`{\fi}${}\cr}}
|
|
\def\@argarraycr[#1]{%
|
|
\ifnum0=`{\fi}${}\ifdim #1>\z@ \@xargarraycr{#1}\else
|
|
\@yargarraycr{#1}\fi}
|
|
\let\tabularnewline\relax
|
|
\def\@tabularcr{%
|
|
{\ifnum0=`}\fi\@ifstar\@xtabularcr\@xtabularcr}
|
|
\def\@xtabularcr{\@ifnextchar[\@argtabularcr{\ifnum0=`{\fi}\cr}}
|
|
\def\@argtabularcr[#1]{%
|
|
\ifnum0=`{\fi}%
|
|
\ifdim #1>\z@
|
|
\unskip\@xargarraycr{#1}%
|
|
\else
|
|
\@yargarraycr{#1}%
|
|
\fi}
|
|
\def\@xargarraycr#1{\@tempdima #1\advance\@tempdima \dp \@arstrutbox
|
|
\vrule \@height\z@ \@depth\@tempdima \@width\z@ \cr}
|
|
\def\@yargarraycr#1{\cr\noalign{\vskip #1}}
|
|
\long\def\multicolumn#1#2#3{\multispan{#1}\begingroup
|
|
\@mkpream{#2}%
|
|
\def\@sharp{#3}\set@typeset@protect
|
|
\let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
|
|
\@arstrut \@preamble\hbox{}\endgroup\ignorespaces}
|
|
\def\@xexnoop #1\@@{}
|
|
\def\@expast#1{\@xexpast #1*0x\@@}
|
|
\def\@xexpast#1*#2#3#4\@@{%
|
|
\edef\reserved@a{#1}%
|
|
\@tempcnta#2\relax
|
|
\ifnum\@tempcnta>\z@
|
|
\@whilenum\@tempcnta>\z@\do
|
|
{\edef\reserved@a{\reserved@a#3}\advance\@tempcnta \m@ne}%
|
|
\let\reserved@b\@xexpast
|
|
\else
|
|
\let\reserved@b\@xexnoop
|
|
\fi
|
|
\expandafter\reserved@b\reserved@a #4\@@}
|
|
\newif\if@firstamp
|
|
\def\@addamp{%
|
|
\if@firstamp
|
|
\@firstampfalse
|
|
\else
|
|
\edef\@preamble{\@preamble &}%
|
|
\fi}
|
|
\def\@arrayacol{\edef\@preamble{\@preamble \hskip \arraycolsep}}
|
|
\def\@tabacol{\edef\@preamble{\@preamble \hskip \tabcolsep}}
|
|
\def\@ampacol{\@addamp \@acol}
|
|
\def\@acolampacol{\@acol\@addamp\@acol}
|
|
\def\@mkpream#1{\@firstamptrue\@lastchclass6
|
|
\let\@preamble\@empty
|
|
\let\protect\@unexpandable@protect
|
|
\let\@sharp\relax
|
|
\let\@startpbox\relax\let\@endpbox\relax
|
|
\@expast{#1}%
|
|
\expandafter\@tfor \expandafter
|
|
\@nextchar \expandafter:\expandafter=\reserved@a\do
|
|
{\@testpach\@nextchar
|
|
\ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii
|
|
\or \@classiv \or\@classv \fi\@lastchclass\@chclass}%
|
|
\ifcase \@lastchclass \@acol
|
|
\or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi}
|
|
\def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
|
|
\or \or \@addamp \or
|
|
\@acolampacol \or \@firstampfalse \@acol \fi
|
|
\edef\@preamble{\@preamble
|
|
\ifcase \@chnum
|
|
\hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil
|
|
\or \hfil$\relax\@sharp$\fi}}
|
|
\def\@tabclassz{%
|
|
\ifcase\@lastchclass
|
|
\@acolampacol
|
|
\or
|
|
\@ampacol
|
|
\or
|
|
\or
|
|
\or
|
|
\@addamp
|
|
\or
|
|
\@acolampacol
|
|
\or
|
|
\@firstampfalse\@acol
|
|
\fi
|
|
\edef\@preamble{%
|
|
\@preamble{%
|
|
\ifcase\@chnum
|
|
\hfil
|
|
\hskip1sp%
|
|
\ignorespaces\@sharp\unskip\hfil
|
|
\or
|
|
\hskip1sp\ignorespaces\@sharp\unskip\hfil
|
|
\or
|
|
\hfil\hskip1sp\ignorespaces\@sharp\unskip
|
|
\fi}}}
|
|
\def\@classi{%
|
|
\ifcase\@lastchclass
|
|
\@acol\@arrayrule
|
|
\or
|
|
\@addtopreamble{\hskip \doublerulesep}\@arrayrule
|
|
\or
|
|
\or
|
|
\or
|
|
\@arrayrule
|
|
\or
|
|
\@acol\@arrayrule
|
|
\or
|
|
\@arrayrule
|
|
\fi}
|
|
\def\@classii{%
|
|
\ifcase\@lastchclass
|
|
\or
|
|
\@addtopreamble{\hskip .5\arrayrulewidth}%
|
|
\fi}
|
|
\def\@classiii{\ifcase \@lastchclass \@acolampacol \or
|
|
\@addamp\@acol \or
|
|
\or \or \@addamp \or
|
|
\@acolampacol \or \@ampacol \fi}
|
|
\def\@tabclassiv{\@addtopreamble\@nextchar}
|
|
\def\@arrayclassiv{\@addtopreamble{$\@nextchar$}}
|
|
\def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\ignorespaces
|
|
\@sharp\@endpbox}}
|
|
\def\@addtopreamble#1{\edef\@preamble{\@preamble #1}}
|
|
\newcount\@chclass
|
|
\newcount\@lastchclass
|
|
\newcount\@chnum
|
|
\newdimen\arraycolsep
|
|
\newdimen\tabcolsep
|
|
\newdimen\arrayrulewidth
|
|
\newdimen\doublerulesep
|
|
\def\arraystretch{1} % Default value.
|
|
\newbox\@arstrutbox
|
|
\def\@arstrut{%
|
|
\relax\ifmmode\copy\@arstrutbox\else\unhcopy\@arstrutbox\fi}
|
|
\def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth
|
|
\vrule \@width \arrayrulewidth\hskip -.5\arrayrulewidth}}
|
|
\def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4 \else
|
|
\ifnum \@lastchclass=3 5 \else
|
|
\z@ \if #1c\@chnum \z@ \else
|
|
\if #1l\@chnum \@ne \else
|
|
\if #1r\@chnum \tw@ \else
|
|
\@chclass \if #1|\@ne \else
|
|
\if #1@\tw@ \else
|
|
\if #1p3 \else \z@ \@preamerr 0\fi
|
|
\fi \fi \fi \fi \fi \fi
|
|
\fi}
|
|
\def\hline{%
|
|
\noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet
|
|
\reserved@a\@xhline}
|
|
\def\@xhline{\ifx\reserved@a\hline
|
|
\vskip\doublerulesep
|
|
\vskip-\arrayrulewidth
|
|
\fi
|
|
\ifnum0=`{\fi}}
|
|
\def\vline{\vrule \@width \arrayrulewidth}
|
|
\def\cline#1{\@cline#1\@nil}
|
|
\def\@cline#1-#2\@nil{%
|
|
\omit
|
|
\@multicnt#1%
|
|
\advance\@multispan\m@ne
|
|
\ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi
|
|
\@multicnt#2%
|
|
\advance\@multicnt-#1%
|
|
\advance\@multispan\@ne
|
|
\leaders\hrule\@height\arrayrulewidth\hfill
|
|
\cr
|
|
\noalign{\vskip-\arrayrulewidth}}
|
|
\def\multispan{\omit\@multispan}
|
|
\def\@multispan#1{%
|
|
\@multicnt#1\relax
|
|
\loop\ifnum\@multicnt>\@ne \sp@n\repeat}
|
|
\def\sp@n{\span\omit\advance\@multicnt\m@ne}
|
|
|
|
\def\@startpbox#1{\vtop\bgroup \setlength\hsize{#1}\@arrayparboxrestore}
|
|
\def\@endpbox{\@finalstrut\@arstrutbox\par\egroup\hfil}
|
|
\let\@@startpbox=\@startpbox
|
|
\let\@@endpbox=\@endpbox
|
|
%%% From File: ltpictur.dtx
|
|
\expandafter\let\csname ver@autopict.sty\endcsname\fmtversion
|
|
\newdimen\@wholewidth
|
|
\newdimen\@halfwidth
|
|
\newdimen\unitlength \unitlength =1pt
|
|
\newbox\@picbox
|
|
\newdimen\@picht
|
|
\long\def\picture#1{\pictur@#1}
|
|
\def\pictur@(#1){%
|
|
\@ifnextchar({\@picture(#1)}{\@picture(#1)(0,0)}}
|
|
\def\@picture(#1,#2)(#3,#4){%
|
|
\@picht#2\unitlength
|
|
\setbox\@picbox\hb@xt@#1\unitlength\bgroup
|
|
\hskip -#3\unitlength
|
|
\lower #4\unitlength\hbox\bgroup
|
|
\ignorespaces}
|
|
\def\endpicture{%
|
|
\egroup\hss\egroup
|
|
\ht\@picbox\@picht\dp\@picbox\z@
|
|
\mbox{\box\@picbox}}
|
|
\long\def\put(#1,#2)#3{%
|
|
\@killglue\raise#2\unitlength
|
|
\hb@xt@\z@{\kern#1\unitlength #3\hss}%
|
|
\ignorespaces}
|
|
\def\multiput(#1,#2)#3{%
|
|
\@xdim #1\unitlength
|
|
\@ydim #2\unitlength
|
|
\@multiput(}
|
|
\long\def\@multiput(#1,#2)#3#4{%
|
|
\@killglue\@multicnt #3\relax
|
|
\@whilenum \@multicnt >\z@\do
|
|
{\raise\@ydim\hb@xt@\z@{\kern\@xdim #4\hss}%
|
|
\advance\@multicnt\m@ne
|
|
\advance\@xdim#1\unitlength\advance\@ydim#2\unitlength}%
|
|
\ignorespaces}
|
|
\def\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}}
|
|
\DeclareRobustCommand\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
|
|
\@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth}
|
|
\DeclareRobustCommand\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
|
|
\@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth}
|
|
\DeclareRobustCommand\linethickness[1]
|
|
{\@wholewidth #1\relax \@halfwidth .5\@wholewidth}
|
|
\def\shortstack{\@ifnextchar[\@shortstack{\@shortstack[c]}}
|
|
\def\@shortstack[#1]{%
|
|
\leavevmode
|
|
\vbox\bgroup
|
|
\baselineskip-\p@\lineskip 3\p@
|
|
\let\mb@l\hss\let\mb@r\hss
|
|
\expandafter\let\csname mb@#1\endcsname\relax
|
|
\let\\\@stackcr
|
|
\@ishortstack}
|
|
\def\@ishortstack#1{\ialign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\egroup}
|
|
\def\@stackcr{\@ifstar\@ixstackcr\@ixstackcr}
|
|
\def\@ixstackcr{\@ifnextchar[\@istackcr{\cr\ignorespaces}}
|
|
\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
|
|
\newif\if@negarg
|
|
\def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
|
|
\@linelen #3\unitlength
|
|
\ifdim\@linelen<\z@\@badlinearg\else
|
|
\ifnum\@xarg =\z@ \@vline
|
|
\else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
|
|
\fi
|
|
\fi}
|
|
\def\@sline{%
|
|
\ifnum\@xarg<\z@ \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg
|
|
\else \@negargfalse \@yyarg \@yarg \fi
|
|
\ifnum \@yyarg >\z@ \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi
|
|
\ifnum\@tempcnta>6 \@badlinearg\@tempcnta\z@ \fi
|
|
\ifnum\@xarg>6 \@badlinearg\@xarg \@ne \fi
|
|
\setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}%
|
|
\ifdim\wd\@linechar=\z@
|
|
\setbox\@linechar\hbox{.}%
|
|
\@badlinearg
|
|
\fi
|
|
\ifnum \@yarg >\z@ \let\@upordown\raise \@clnht\z@
|
|
\else\let\@upordown\lower \@clnht \ht\@linechar\fi
|
|
\@clnwd \wd\@linechar
|
|
\if@negarg
|
|
\hskip -\wd\@linechar \def\reserved@a{\hskip -2\wd\@linechar}%
|
|
\else
|
|
\let\reserved@a\relax
|
|
\fi
|
|
\@whiledim \@clnwd <\@linelen \do
|
|
{\@upordown\@clnht\copy\@linechar
|
|
\reserved@a
|
|
\advance\@clnht \ht\@linechar
|
|
\advance\@clnwd \wd\@linechar}%
|
|
\advance\@clnht -\ht\@linechar
|
|
\advance\@clnwd -\wd\@linechar
|
|
\@tempdima\@linelen\advance\@tempdima -\@clnwd
|
|
\@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar
|
|
\if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi
|
|
\multiply\@tempdima \@m
|
|
\@tempcnta \@tempdima
|
|
\@tempdima \wd\@linechar \divide\@tempcnta \@tempdima
|
|
\@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta
|
|
\divide\@tempdima \@m
|
|
\advance\@clnht \@tempdima
|
|
\ifdim \@linelen <\wd\@linechar
|
|
\hskip \wd\@linechar
|
|
\ifdim \@linelen = \z@
|
|
\else
|
|
\@picture@warn
|
|
\fi
|
|
\else\@upordown\@clnht\copy\@linechar\fi}
|
|
\def\@hline{\ifnum \@xarg <\z@ \hskip -\@linelen \fi
|
|
\vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen
|
|
\ifnum \@xarg <\z@ \hskip -\@linelen \fi}
|
|
\def\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8%
|
|
\advance\@tempcnta -9\ifnum #2>\z@ \advance\@tempcnta #2\relax\else
|
|
\advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi
|
|
\char\@tempcnta}
|
|
\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
|
|
\@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
|
|
\ifnum\@tempcnta<5\relax
|
|
\@linelen #3\unitlength
|
|
\ifdim\@linelen<\z@\@badlinearg\else
|
|
\ifnum\@xarg =\z@ \@vvector
|
|
\else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
|
|
\fi
|
|
\fi
|
|
\else\@badlinearg\fi}
|
|
\def\@hvector{\@hline\hb@xt@\z@{\@linefnt
|
|
\ifnum \@xarg <\z@ \@getlarrow(1,0)\hss\else
|
|
\hss\@getrarrow(1,0)\fi}}
|
|
\def\@vvector{\ifnum \@yarg <\z@ \@downvector \else \@upvector \fi}
|
|
\def\@svector{\@sline
|
|
\@tempcnta\@yarg \ifnum\@tempcnta <\z@ \@tempcnta -\@tempcnta\fi
|
|
\ifnum\@tempcnta <5%
|
|
\hskip -\wd\@linechar
|
|
\@upordown\@clnht \hbox{\@linefnt \if@negarg
|
|
\@getlarrow(\@xarg,\@yyarg)\else \@getrarrow(\@xarg,\@yyarg)\fi}%
|
|
\else\@badlinearg\fi}
|
|
\def\@getlarrow(#1,#2){\ifnum #2=\z@ \@tempcnta 27 % '33
|
|
\else
|
|
\@tempcnta #1\relax\multiply\@tempcnta \sixt@@n
|
|
\advance\@tempcnta -9 \@tempcntb #2\relax\multiply\@tempcntb \tw@
|
|
\ifnum \@tempcntb >\z@ \advance\@tempcnta \@tempcntb
|
|
\else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64
|
|
\fi\fi\char\@tempcnta}
|
|
\def\@getrarrow(#1,#2){\@tempcntb #2\relax
|
|
\ifnum\@tempcntb <\z@ \@tempcntb -\@tempcntb\relax\fi
|
|
\ifcase \@tempcntb\relax \@tempcnta 45 % '55
|
|
\or
|
|
\ifnum #1<\thr@@ \@tempcnta #1\relax\multiply\@tempcnta
|
|
24\advance\@tempcnta -6 \else \ifnum #1=\thr@@ \@tempcnta 49
|
|
\else\@tempcnta 58 \fi\fi\or
|
|
\ifnum #1<\thr@@ \@tempcnta=#1\relax\multiply\@tempcnta
|
|
24\advance\@tempcnta -\thr@@ \else \@tempcnta 51 \fi\or
|
|
\@tempcnta #1\relax\multiply\@tempcnta
|
|
\sixt@@n \advance\@tempcnta -\tw@ \else
|
|
\@tempcnta #1\relax\multiply\@tempcnta
|
|
\sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<\z@ \advance\@tempcnta 64 \fi
|
|
\char\@tempcnta}
|
|
\def\@vline{\ifnum \@yarg <\z@ \@downline \else \@upline\fi}
|
|
\def\@upline{%
|
|
\hb@xt@\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
|
|
\@height \@linelen \@depth \z@\hss}}
|
|
\def\@downline{%
|
|
\hb@xt@\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
|
|
\@height \z@ \@depth \@linelen \hss}}
|
|
\def\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char 54}% '66
|
|
\raise \@linelen \hb@xt@\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}}
|
|
\def\@downvector{\@downline\lower \@linelen
|
|
\hb@xt@\z@{\@linefnt\char 63 % '77
|
|
\hss}}
|
|
\def\dashbox#1(#2,#3){\leavevmode\hb@xt@\z@{\baselineskip \z@skip
|
|
\lineskip \z@skip
|
|
\@dashdim #2\unitlength
|
|
\@dashcnt \@dashdim \advance\@dashcnt 200
|
|
\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
|
|
\ifodd\@dashcnt\@dashdim \z@
|
|
\advance\@dashcnt \@ne \divide\@dashcnt \tw@
|
|
\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
|
|
\advance\@dashcnt \m@ne
|
|
\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
|
|
\@width \@dashdim}\put(0,0){\copy\@dashbox}%
|
|
\put(0,#3){\copy\@dashbox}%
|
|
\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
|
|
\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
|
|
\multiply\@dashdim \thr@@
|
|
\fi
|
|
\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
|
|
\@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@
|
|
\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
|
|
\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
|
|
\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
|
|
\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
|
|
\@dashdim #3\unitlength
|
|
\@dashcnt \@dashdim \advance\@dashcnt 200
|
|
\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
|
|
\ifodd\@dashcnt \@dashdim \z@
|
|
\advance\@dashcnt \@ne \divide\@dashcnt \tw@
|
|
\else
|
|
\divide\@dashdim \tw@ \divide\@dashcnt \tw@
|
|
\advance\@dashcnt \m@ne
|
|
\setbox\@dashbox\hbox{\hskip -\@halfwidth
|
|
\vrule \@width \@wholewidth
|
|
\@height \@dashdim}\put(0,0){\copy\@dashbox}%
|
|
\put(#2,0){\copy\@dashbox}%
|
|
\put(0,#3){\lower\@dashdim\copy\@dashbox}%
|
|
\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
|
|
\multiply\@dashdim \thr@@
|
|
\fi
|
|
\setbox\@dashbox\hbox{\vrule \@width \@wholewidth
|
|
\@height #1\unitlength}\@tempcnta\z@
|
|
\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt
|
|
\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
|
|
\vskip\@dashdim}}\@tempcnta\z@
|
|
\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt
|
|
\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
|
|
\vskip\@dashdim}}}\@makepicbox(#2,#3)}
|
|
\newif\if@ovt
|
|
\newif\if@ovb
|
|
\newif\if@ovl
|
|
\newif\if@ovr
|
|
\newdimen\@ovxx
|
|
\newdimen\@ovyy
|
|
\newdimen\@ovdx
|
|
\newdimen\@ovdy
|
|
\newdimen\@ovro
|
|
\newdimen\@ovri
|
|
\def\@getcirc#1{\@tempdima #1\relax \advance\@tempdima 2\p@
|
|
\@tempcnta\@tempdima
|
|
\@tempdima 4\p@ \divide\@tempcnta\@tempdima
|
|
\ifnum \@tempcnta >10\relax
|
|
\@picture@warn
|
|
\@tempcnta 10\relax
|
|
\fi
|
|
\ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne
|
|
\else \@picture@warn \fi
|
|
\multiply\@tempcnta 4\relax
|
|
\setbox \@tempboxa \hbox{\@circlefnt
|
|
\char \@tempcnta}\@tempdima \wd \@tempboxa}
|
|
\def\@picture@warn{\@latex@warning{%
|
|
\string\oval, \string\circle, or \string\line\space
|
|
size unavailable}}
|
|
\def\@put#1#2#3{\raise #2\hb@xt@\z@{\hskip #1#3\hss}}
|
|
\def\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}}
|
|
\newif\if@ovvline \@ovvlinetrue
|
|
\newif\if@ovhline \@ovhlinetrue
|
|
\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
|
|
\@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
|
|
\@ovvlinefalse \@ovhlinefalse
|
|
\@tfor\reserved@a :=#3\do{\csname @ov\reserved@a false\endcsname}%
|
|
\@ovxx #1\unitlength
|
|
\@ovyy #2\unitlength
|
|
\@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx \@ovvlinetrue
|
|
\else \@ovyy \ifdim \@ovyy =\@ovxx \else \@ovhlinetrue \fi\fi
|
|
\advance \@tempdimb -2\p@
|
|
\@getcirc \@tempdimb
|
|
\@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
|
|
\@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
|
|
\@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
|
|
\ifdim \@ovdx >\z@ \@ovhlinetrue \fi
|
|
\ifdim \@ovdy >\z@ \@ovvlinetrue \fi
|
|
\@circlefnt \setbox\@tempboxa
|
|
\hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
|
|
\if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
|
|
\if@ovt \@ovhorz \kern -\@ovxx \fi
|
|
\if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
|
|
\advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
|
|
\@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
|
|
\endgroup}
|
|
\def\@ovvert#1#2{\vbox to\@ovyy{%
|
|
\if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
|
|
\kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
|
|
\else \kern \@ovri \kern \@ovdy \fi
|
|
\if@ovvline \leaders\vrule \@width \@wholewidth \fi
|
|
\vfil \nointerlineskip
|
|
\if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
|
|
\hbox{\char \@tempcntb}%
|
|
\else \kern \@ovdy \kern \@ovro \fi}}
|
|
\def\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro
|
|
\if@ovr \else \kern \@ovdx \fi
|
|
\if@ovhline \leaders \hrule \@height \@wholewidth \fi
|
|
\hfil
|
|
\if@ovl \else \kern \@ovdx \fi
|
|
\kern \@ovri}}
|
|
\def\circle{\@inmatherr\circle\@ifstar\@dot\@circle}
|
|
\def\@circle#1{%
|
|
\begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength
|
|
\ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb
|
|
\@ovro\ht\@tempboxa
|
|
\setbox\@tempboxa\hbox{\@circlefnt
|
|
\advance\@tempcnta\tw@ \char \@tempcnta
|
|
\advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima
|
|
\advance\@tempcnta\tw@
|
|
\raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima
|
|
\box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
|
|
\@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
|
|
\else \@circ\@tempdimb{96}\fi\endgroup}
|
|
\def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}}
|
|
\def\@circ#1#2{\@tempdima #1\relax \advance\@tempdima .5\p@
|
|
\@tempcnta\@tempdima \@tempdima \p@
|
|
\divide\@tempcnta\@tempdima
|
|
\ifnum\@tempcnta >15\relax \@tempcnta 15\relax \fi
|
|
\ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne\fi
|
|
\advance\@tempcnta #2\relax
|
|
\@circlefnt \char\@tempcnta}
|
|
\newcount\@xarg
|
|
\newcount\@yarg
|
|
\newcount\@yyarg
|
|
\newcount\@multicnt
|
|
\newdimen\@xdim
|
|
\newdimen\@ydim
|
|
\newbox\@linechar
|
|
\newdimen\@linelen
|
|
\newdimen\@clnwd
|
|
\newdimen\@clnht
|
|
\newdimen\@dashdim
|
|
\newbox\@dashbox
|
|
\newcount\@dashcnt
|
|
\let\@linefnt\tenln
|
|
\let\@circlefnt\tencirc
|
|
\@wholewidth\fontdimen8\tenln
|
|
\@halfwidth .5\@wholewidth
|
|
\def\qbeziermax{500}
|
|
\newcommand\qbezier[2][0]{\bezier{#1}#2}
|
|
\def\bezier#1)#2(#3)#4({\@bezier#1)(#3)(}
|
|
\def\@bezier#1(#2,#3)(#4,#5)(#6,#7){%
|
|
\ifnum #1=\z@
|
|
\@ovxx #4\unitlength
|
|
\advance\@ovxx -#2\unitlength
|
|
\ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi
|
|
\@ovdx #6\unitlength
|
|
\advance\@ovdx -#4\unitlength
|
|
\ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi
|
|
\ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi
|
|
\@ovyy #5\unitlength
|
|
\advance\@ovyy -#3\unitlength
|
|
\ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi
|
|
\@ovdy #7\unitlength
|
|
\advance\@ovdy -#5\unitlength
|
|
\ifdim \@ovdy<\z@ \@ovdy -\@ovdy \fi
|
|
\ifdim \@ovyy<\@ovdy \@ovyy \@ovdy \fi
|
|
\@multicnt
|
|
\ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi
|
|
\@ovxx .5\@halfwidth \divide\@multicnt\@ovxx
|
|
\ifnum \qbeziermax<\@multicnt \@multicnt\qbeziermax\relax \fi
|
|
\else \@multicnt#1\relax \fi
|
|
\@tempcnta\@multicnt \advance\@tempcnta\@ne
|
|
\@ovdx #4\unitlength \advance\@ovdx -#2\unitlength
|
|
\multiply\@ovdx \tw@
|
|
\@ovxx #6\unitlength \advance\@ovxx -#2\unitlength
|
|
\advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt
|
|
\@ovdy #5\unitlength \advance\@ovdy -#3\unitlength
|
|
\multiply\@ovdy \tw@
|
|
\@ovyy #7\unitlength \advance\@ovyy -#3\unitlength
|
|
\advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt
|
|
\setbox\@tempboxa\hbox{%
|
|
\hskip -\@halfwidth
|
|
\vrule \@height\@halfwidth
|
|
\@depth \@halfwidth
|
|
\@width \@wholewidth}%
|
|
\put(#2,#3){%
|
|
\count@\z@
|
|
\@whilenum{\count@<\@tempcnta}\do
|
|
{\@xdim\count@\@ovxx
|
|
\advance\@xdim\@ovdx
|
|
\divide\@xdim\@multicnt
|
|
\multiply\@xdim\count@
|
|
\@ydim\count@\@ovyy
|
|
\advance\@ydim\@ovdy
|
|
\divide\@ydim\@multicnt
|
|
\multiply\@ydim\count@
|
|
\raise \@ydim
|
|
\hb@xt@\z@{\kern\@xdim
|
|
\unhcopy\@tempboxa\hss}%
|
|
\advance\count@\@ne}}}
|
|
\MakeRobust\bezier
|
|
\MakeRobust\circle
|
|
\MakeRobust\dashbox
|
|
\MakeRobust\line
|
|
\MakeRobust\linethickness
|
|
\MakeRobust\multiput
|
|
\MakeRobust\oval
|
|
\MakeRobust\put
|
|
\MakeRobust\qbezier
|
|
\MakeRobust\shortstack
|
|
\MakeRobust\thinlines
|
|
\MakeRobust\vector
|
|
%%% From File: ltthm.dtx
|
|
\def\newtheorem#1{%
|
|
\@ifnextchar[{\@othm{#1}}{\@nthm{#1}}}
|
|
\def\@nthm#1#2{%
|
|
\@ifnextchar[{\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}}
|
|
\def\@xnthm#1#2[#3]{%
|
|
\expandafter\@ifdefinable\csname #1\endcsname
|
|
{\@definecounter{#1}\@newctr{#1}[#3]%
|
|
\expandafter\xdef\csname the#1\endcsname{%
|
|
\expandafter\noexpand\csname the#3\endcsname \@thmcountersep
|
|
\@thmcounter{#1}}%
|
|
\global\@namedef{#1}{\@thm{#1}{#2}}%
|
|
\global\@namedef{end#1}{\@endtheorem}}}
|
|
\def\@ynthm#1#2{%
|
|
\expandafter\@ifdefinable\csname #1\endcsname
|
|
{\@definecounter{#1}%
|
|
\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
|
|
\global\@namedef{#1}{\@thm{#1}{#2}}%
|
|
\global\@namedef{end#1}{\@endtheorem}}}
|
|
\def\@othm#1[#2]#3{%
|
|
\@ifundefined{c@#2}{\@nocounterr{#2}}%
|
|
{\expandafter\@ifdefinable\csname #1\endcsname
|
|
{\global\@namedef{the#1}{\@nameuse{the#2}}%
|
|
\global\@namedef{#1}{\@thm{#2}{#3}}%
|
|
\global\@namedef{end#1}{\@endtheorem}}}}
|
|
\def\@thm#1#2{%
|
|
\refstepcounter{#1}%
|
|
\@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
|
|
\def\@xthm#1#2{%
|
|
\@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces}
|
|
\def\@ythm#1#2[#3]{%
|
|
\@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
|
|
\def\@thmcounter#1{\noexpand\arabic{#1}}
|
|
\def\@thmcountersep{.}
|
|
\def\@begintheorem#1#2{\trivlist
|
|
\item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
|
|
\def\@opargbegintheorem#1#2#3{\trivlist
|
|
\item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
|
|
\def\@endtheorem{\endtrivlist}
|
|
%%% From File: ltsect.dtx
|
|
\message{title,}
|
|
\DeclareRobustCommand\title[1]{\gdef\@title{#1}}
|
|
\DeclareRobustCommand\author[1]{\gdef\@author{#1}}
|
|
\DeclareRobustCommand\date[1]{\gdef\@date{#1}}
|
|
\DeclareRobustCommand\thanks[1]{\footnotemark
|
|
\protected@xdef\@thanks{\@thanks
|
|
\protect\footnotetext[\the\c@footnote]{#1}}%
|
|
}
|
|
\DeclareRobustCommand\and{% % \begin{tabular}
|
|
\end{tabular}%
|
|
\hskip 1em \@plus.17fil%
|
|
\begin{tabular}[t]{c}}% % \end{tabular}
|
|
\def\@title{\@latex@error{No \noexpand\title given}\@ehc}
|
|
\def\@author{\@latex@warning@no@line{No \noexpand\author given}}
|
|
\gdef\@date{\today}
|
|
\let\@thanks\@empty
|
|
\message{sectioning,}
|
|
\newcount\@secpenalty
|
|
\@secpenalty = -300
|
|
\newif\if@noskipsec \@noskipsectrue
|
|
\def\@startsection#1#2#3#4#5#6{%
|
|
\if@noskipsec \leavevmode \fi
|
|
\par
|
|
\@tempskipa #4\relax
|
|
\@afterindenttrue
|
|
\ifdim \@tempskipa <\z@
|
|
\@tempskipa -\@tempskipa \@afterindentfalse
|
|
\fi
|
|
\if@nobreak
|
|
\everypar{}%
|
|
\else
|
|
\addpenalty\@secpenalty\addvspace\@tempskipa
|
|
\fi
|
|
\@ifstar
|
|
{\@ssect{#3}{#4}{#5}{#6}}%
|
|
{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
|
|
\def\@sect#1#2#3#4#5#6[#7]#8{%
|
|
\ifnum #2>\c@secnumdepth
|
|
\let\@svsec\@empty
|
|
\else
|
|
\refstepcounter{#1}%
|
|
\protected@edef\@svsec{\@seccntformat{#1}\relax}%
|
|
\fi
|
|
\@tempskipa #5\relax
|
|
\ifdim \@tempskipa>\z@
|
|
\begingroup
|
|
#6{%
|
|
\@hangfrom{\hskip #3\relax\@svsec}%
|
|
\interlinepenalty \@M #8\@@par}%
|
|
\endgroup
|
|
\csname #1mark\endcsname{#7}%
|
|
\addcontentsline{toc}{#1}{%
|
|
\ifnum #2>\c@secnumdepth \else
|
|
\protect\numberline{\csname the#1\endcsname}%
|
|
\fi
|
|
#7}%
|
|
\else
|
|
\def\@svsechd{%
|
|
#6{\hskip #3\relax
|
|
\@svsec #8}%
|
|
\csname #1mark\endcsname{#7}%
|
|
\addcontentsline{toc}{#1}{%
|
|
\ifnum #2>\c@secnumdepth \else
|
|
\protect\numberline{\csname the#1\endcsname}%
|
|
\fi
|
|
#7}}%
|
|
\fi
|
|
\@xsect{#5}}
|
|
\def\@xsect#1{%
|
|
\@tempskipa #1\relax
|
|
\ifdim \@tempskipa>\z@
|
|
\par \nobreak
|
|
\vskip \@tempskipa
|
|
\@afterheading
|
|
\else
|
|
\@nobreakfalse
|
|
\global\@noskipsectrue
|
|
\everypar{%
|
|
\if@noskipsec
|
|
\global\@noskipsecfalse
|
|
{\setbox\z@\lastbox}%
|
|
\clubpenalty\@M
|
|
\begingroup \@svsechd \endgroup
|
|
\unskip
|
|
\@tempskipa #1\relax
|
|
\hskip -\@tempskipa
|
|
\else
|
|
\clubpenalty \@clubpenalty
|
|
\everypar{}%
|
|
\fi}%
|
|
\fi
|
|
\ignorespaces}
|
|
\def\@seccntformat#1{\csname the#1\endcsname\quad}
|
|
\def\@ssect#1#2#3#4#5{%
|
|
\@tempskipa #3\relax
|
|
\ifdim \@tempskipa>\z@
|
|
\begingroup
|
|
#4{%
|
|
\@hangfrom{\hskip #1}%
|
|
\interlinepenalty \@M #5\@@par}%
|
|
\endgroup
|
|
\else
|
|
\def\@svsechd{#4{\hskip #1\relax #5}}%
|
|
\fi
|
|
\@xsect{#3}}
|
|
\newif\if@afterindent \@afterindenttrue
|
|
\def\@afterheading{%
|
|
\@nobreaktrue
|
|
\everypar{%
|
|
\if@nobreak
|
|
\@nobreakfalse
|
|
\clubpenalty \@M
|
|
\if@afterindent \else
|
|
{\setbox\z@\lastbox}%
|
|
\fi
|
|
\else
|
|
\clubpenalty \@clubpenalty
|
|
\everypar{}%
|
|
\fi}}
|
|
\def\@hangfrom#1{\setbox\@tempboxa\hbox{{#1}}%
|
|
\hangindent \wd\@tempboxa\noindent\box\@tempboxa}
|
|
\newcount\c@secnumdepth
|
|
\newcount\c@tocdepth
|
|
\def\secdef#1#2{\@ifstar{#2}{\@dblarg{#1}}}
|
|
\let\sectionmark\@gobble
|
|
\let\subsectionmark\@gobble
|
|
\let\subsubsectionmark\@gobble
|
|
\let\paragraphmark\@gobble
|
|
\let\subparagraphmark\@gobble
|
|
\message{contents,}
|
|
\def\@starttoc#1{%
|
|
\begingroup
|
|
\makeatletter
|
|
\@input{\jobname.#1}%
|
|
\if@filesw
|
|
\expandafter\newwrite\csname tf@#1\endcsname
|
|
\immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
|
|
\fi
|
|
\@nobreakfalse
|
|
\endgroup}
|
|
\def\addcontentsline#1#2#3{%
|
|
\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}%
|
|
\protected@file@percent}}
|
|
\long\def\addtocontents#1#2{%
|
|
\protected@write\@auxout
|
|
{\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}%
|
|
{\string\@writefile{#1}{#2}}}
|
|
\def\contentsline#1{\csname l@#1\endcsname}
|
|
\def\@dottedtocline#1#2#3#4#5{%
|
|
\ifnum #1>\c@tocdepth \else
|
|
\vskip \z@ \@plus.2\p@
|
|
{\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
|
|
\parindent #2\relax\@afterindenttrue
|
|
\interlinepenalty\@M
|
|
\leavevmode
|
|
\@tempdima #3\relax
|
|
\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
|
|
{#4}\nobreak
|
|
\leaders\hbox{$\m@th
|
|
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
|
|
mu$}\hfill
|
|
\nobreak
|
|
\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5%
|
|
\kern-\p@\kern\p@}%
|
|
\par}%
|
|
\fi}
|
|
|
|
\DeclareRobustCommand\noprotrusion{\leavevmode\kern-\p@\kern\p@}
|
|
\def\numberline#1{\hb@xt@\@tempdima{#1\hfil}}
|
|
%%% From File: ltfloat.dtx
|
|
\message{floats,}
|
|
\newcount\@floatpenalty
|
|
\def\caption{%
|
|
\ifx\@captype\@undefined
|
|
\@latex@error{\noexpand\caption outside float}\@ehd
|
|
\expandafter\@gobble
|
|
\else
|
|
\refstepcounter\@captype
|
|
\expandafter\@firstofone
|
|
\fi
|
|
{\@dblarg{\@caption\@captype}}%
|
|
}
|
|
\long\def\@caption#1[#2]#3{%
|
|
\par
|
|
\addcontentsline{\csname ext@#1\endcsname}{#1}%
|
|
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
|
|
\begingroup
|
|
\@parboxrestore
|
|
\if@minipage
|
|
\@setminipage
|
|
\fi
|
|
\normalsize
|
|
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
|
|
\endgroup}
|
|
\def\@float#1{%
|
|
\@ifnextchar[%
|
|
{\@xfloat{#1}}%
|
|
{\edef\reserved@a{\noexpand\@xfloat{#1}[\csname fps@#1\endcsname]}%
|
|
\reserved@a}}
|
|
\def\@dblfloat{%
|
|
\if@twocolumn\let\reserved@a\@dbflt\else\let\reserved@a\@float\fi
|
|
\reserved@a}
|
|
\def\@xfloat #1[#2]{%
|
|
\@nodocument
|
|
\def \@captype {#1}%
|
|
\def \@fps {#2}%
|
|
\@onelevel@sanitize \@fps
|
|
\def \reserved@b {!}%
|
|
\ifx \reserved@b \@fps
|
|
\@fpsadddefault
|
|
\else
|
|
\ifx \@fps \@empty
|
|
\@fpsadddefault
|
|
\fi
|
|
\fi
|
|
\ifhmode
|
|
\@bsphack
|
|
\@floatpenalty -\@Mii
|
|
\else
|
|
\@floatpenalty-\@Miii
|
|
\fi
|
|
\ifinner
|
|
\@parmoderr\@floatpenalty\z@
|
|
\else
|
|
\@next\@currbox\@freelist
|
|
{%
|
|
\@tempcnta \sixt@@n
|
|
\expandafter \@tfor \expandafter \reserved@a
|
|
\expandafter :\expandafter =\@fps
|
|
\do
|
|
{%
|
|
\if \reserved@a h%
|
|
\ifodd \@tempcnta
|
|
\else
|
|
\advance \@tempcnta \@ne
|
|
\fi
|
|
\else\if \reserved@a t%
|
|
\@setfpsbit \tw@
|
|
\else\if \reserved@a b%
|
|
\@setfpsbit 4%
|
|
\else\if \reserved@a p%
|
|
\@setfpsbit 8%
|
|
\else\if \reserved@a !%
|
|
\ifnum \@tempcnta>15
|
|
\advance\@tempcnta -\sixt@@n\relax
|
|
\fi
|
|
\else
|
|
\@latex@error{Unknown float option `\reserved@a'}%
|
|
{Option `\reserved@a' ignored and `p' used.}%
|
|
\@setfpsbit 8%
|
|
\fi\fi\fi\fi\fi
|
|
}%
|
|
\@tempcntb \csname ftype@\@captype \endcsname
|
|
\multiply \@tempcntb \@xxxii
|
|
\advance \@tempcnta \@tempcntb
|
|
\global \count\@currbox \@tempcnta
|
|
}%
|
|
\@fltovf
|
|
\fi
|
|
\global \setbox\@currbox
|
|
\color@vbox
|
|
\normalcolor
|
|
\vbox \bgroup
|
|
\hsize\columnwidth
|
|
\@parboxrestore
|
|
\@floatboxreset
|
|
}%
|
|
\def \@floatboxreset {%
|
|
\reset@font
|
|
\normalsize
|
|
\@setminipage
|
|
}
|
|
\def \@setnobreak{%
|
|
\if@nobreak
|
|
\let\outer@nobreak\@nobreaktrue
|
|
\@nobreakfalse
|
|
\fi
|
|
}
|
|
\def \@setminipage{%
|
|
\@minipagetrue
|
|
\everypar{\@minipagefalse\everypar{}}%
|
|
}
|
|
\def\end@float{%
|
|
\@endfloatbox
|
|
\ifnum\@floatpenalty <\z@
|
|
\@largefloatcheck
|
|
\@cons\@currlist\@currbox
|
|
\ifnum\@floatpenalty <-\@Mii
|
|
\penalty -\@Miv
|
|
\@tempdima\prevdepth
|
|
\vbox{}%
|
|
\prevdepth\@tempdima
|
|
\penalty\@floatpenalty
|
|
\else
|
|
\vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\end@dblfloat{%
|
|
\if@twocolumn
|
|
\@endfloatbox
|
|
\ifnum\@floatpenalty <\z@
|
|
\@largefloatcheck
|
|
\global\dp\@currbox1sp %
|
|
\@cons\@currlist\@currbox
|
|
\ifnum\@floatpenalty <-\@Mii
|
|
\penalty -\@Miv
|
|
\@tempdima\prevdepth
|
|
\vbox{}%
|
|
\prevdepth\@tempdima
|
|
\penalty\@floatpenalty
|
|
\else
|
|
\vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
|
|
\fi
|
|
\fi
|
|
\else
|
|
\end@float
|
|
\fi
|
|
}%
|
|
\def \@endfloatbox{%
|
|
\par\vskip\z@skip %% \par\vskip\z@ added 15 Dec 87
|
|
\@minipagefalse
|
|
\outer@nobreak
|
|
\egroup %% end of vbox
|
|
\color@endbox
|
|
}
|
|
\let\outer@nobreak\@empty
|
|
\def \@largefloatcheck{%
|
|
\ifdim \ht\@currbox>\textheight
|
|
\@tempdima -\textheight
|
|
\advance \@tempdima \ht\@currbox
|
|
\@latex@warning {Float too large for page by \the\@tempdima}%
|
|
\ht\@currbox \textheight
|
|
\fi
|
|
}
|
|
\def\@dbflt#1{\@ifnextchar[{\@xdblfloat{#1}}{\@xdblfloat{#1}[tp]}}
|
|
\def\@xdblfloat#1[#2]{%
|
|
\@xfloat{#1}[#2]\hsize\textwidth\linewidth\textwidth}
|
|
\def\@floatplacement{\global\@topnum\c@topnumber
|
|
% Textpage bit, global:
|
|
\global\@toproom \topfraction\@colht
|
|
\global\@botnum \c@bottomnumber
|
|
\global\@botroom \bottomfraction\@colht
|
|
\global\@colnum \c@totalnumber
|
|
% Floatpage bit, local:
|
|
\@fpmin \floatpagefraction\@colht}
|
|
\def\@dblfloatplacement{\global\@dbltopnum\c@dbltopnumber
|
|
\global\@dbltoproom \dbltopfraction\@colht
|
|
\@textmin \@colht
|
|
\advance \@textmin -\@dbltoproom
|
|
\@fpmin \dblfloatpagefraction\textheight
|
|
\@fptop \@dblfptop
|
|
\@fpsep \@dblfpsep
|
|
\@fpbot \@dblfpbot
|
|
\def\f@depth{1sp}}%
|
|
\def\marginpar{%
|
|
\ifhmode
|
|
\@bsphack
|
|
\@floatpenalty -\@Mii
|
|
\else
|
|
\@floatpenalty-\@Miii
|
|
\fi
|
|
\ifinner
|
|
\@parmoderr
|
|
\@floatpenalty\z@
|
|
\else
|
|
\@next\@currbox\@freelist{}{}%
|
|
\@next\@marbox\@freelist{\global\count\@marbox\m@ne}%
|
|
{\@floatpenalty\z@
|
|
\@fltovf\def\@currbox{\@tempboxa}\def\@marbox{\@tempboxa}}%
|
|
\fi
|
|
\@ifnextchar [\@xmpar\@ympar}
|
|
\long\def\@xmpar[#1]#2{%
|
|
\@savemarbox\@marbox{#1}%
|
|
\@savemarbox\@currbox{#2}%
|
|
\@xympar}
|
|
\long\def\@ympar#1{%
|
|
\@savemarbox\@marbox{#1}%
|
|
\global\setbox\@currbox\copy\@marbox
|
|
\@xympar}
|
|
\long\def \@savemarbox #1#2{%
|
|
\global\setbox #1%
|
|
\color@vbox
|
|
\vtop{%
|
|
\hsize\marginparwidth
|
|
\@parboxrestore
|
|
\@marginparreset
|
|
#2%
|
|
\@minipagefalse
|
|
\outer@nobreak
|
|
}%
|
|
\color@endbox
|
|
}
|
|
\def \@marginparreset {%
|
|
\reset@font
|
|
\normalsize
|
|
\@setminipage
|
|
}
|
|
\def \@xympar{%
|
|
\ifnum\@floatpenalty <\z@\@cons\@currlist\@marbox\fi
|
|
\setbox\@tempboxa
|
|
\color@vbox
|
|
\vbox \bgroup
|
|
\end@float
|
|
\@ignorefalse
|
|
\@esphack
|
|
}
|
|
\def\reversemarginpar{\global\@mparbottom\z@ \@reversemargintrue}
|
|
\def\normalmarginpar{\global\@mparbottom\z@ \@reversemarginfalse}
|
|
\message{footnotes,}
|
|
\newinsert\footins
|
|
\skip\footins=\bigskipamount % space added when footnote is present
|
|
\count\footins=1000 % footnote magnification factor (1 to 1)
|
|
\dimen\footins=8in % maximum footnotes per page
|
|
\def\footnoterule{\kern-3\p@
|
|
\hrule \@width 2in \kern 2.6\p@} % the \hrule is .4pt high
|
|
\@definecounter{footnote}
|
|
\def\thefootnote{\@arabic\c@footnote}
|
|
\@definecounter{mpfootnote}
|
|
\def\thempfootnote{{\itshape\@alph\c@mpfootnote}}
|
|
\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
|
|
\DeclareRobustCommand*\textsuperscript[1]{%
|
|
\@textsuperscript{\selectfont#1}}
|
|
\def\@textsuperscript#1{%
|
|
{\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}
|
|
\DeclareRobustCommand*\textsubscript[1]{%
|
|
\@textsubscript{\selectfont#1}}%
|
|
\def\@textsubscript#1{%
|
|
{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
|
|
\newdimen\footnotesep
|
|
\def\footnote{\@ifnextchar[\@xfootnote{\stepcounter\@mpfn
|
|
\protected@xdef\@thefnmark{\thempfn}%
|
|
\@footnotemark\@footnotetext}}
|
|
\def\@xfootnote[#1]{%
|
|
\begingroup
|
|
\csname c@\@mpfn\endcsname #1\relax
|
|
\unrestored@protected@xdef\@thefnmark{\thempfn}%
|
|
\endgroup
|
|
\@footnotemark\@footnotetext}
|
|
\long\def\@footnotetext#1{\insert\footins{%
|
|
\reset@font\footnotesize
|
|
\interlinepenalty\interfootnotelinepenalty
|
|
\splittopskip\footnotesep
|
|
\splitmaxdepth \dp\strutbox \floatingpenalty \@MM
|
|
\hsize\columnwidth \@parboxrestore
|
|
\protected@edef\@currentlabel{%
|
|
\csname p@footnote\endcsname\@thefnmark
|
|
}%
|
|
\color@begingroup
|
|
\@makefntext{%
|
|
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
|
|
\color@endgroup}}%
|
|
\def\footnotemark{%
|
|
\@ifnextchar[\@xfootnotemark
|
|
{\stepcounter{footnote}%
|
|
\protected@xdef\@thefnmark{\thefootnote}%
|
|
\@footnotemark}}
|
|
\def\@xfootnotemark[#1]{%
|
|
\begingroup
|
|
\c@footnote #1\relax
|
|
\unrestored@protected@xdef\@thefnmark{\thefootnote}%
|
|
\endgroup
|
|
\@footnotemark}
|
|
\def\@footnotemark{%
|
|
\leavevmode
|
|
\ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
|
|
\@makefnmark
|
|
\ifhmode\spacefactor\@x@sf\fi
|
|
\relax}
|
|
\def\footnotetext{%
|
|
\@ifnextchar [\@xfootnotenext
|
|
{\protected@xdef\@thefnmark{\thempfn}%
|
|
\@footnotetext}}
|
|
\def\@xfootnotenext[#1]{%
|
|
\begingroup
|
|
\csname c@\@mpfn\endcsname #1\relax
|
|
\unrestored@protected@xdef\@thefnmark{\thempfn}%
|
|
\endgroup
|
|
\@footnotetext}
|
|
\def\@mpfn{footnote}
|
|
\def\thempfn{\thefootnote}
|
|
%%% From File: ltidxglo.dtx
|
|
\message{index,}
|
|
\def\makeindex{%
|
|
\newwrite\@indexfile
|
|
\immediate\openout\@indexfile=\jobname.idx
|
|
\def\index{\@bsphack\begingroup
|
|
\@sanitize
|
|
\@wrindex}\typeout
|
|
{Writing index file \jobname.idx}%
|
|
\let\makeindex\@empty
|
|
}
|
|
\@onlypreamble\makeindex
|
|
\def\@wrindex#1{%
|
|
\protected@write\@indexfile{}%
|
|
{\string\indexentry{#1}{\thepage}}%
|
|
\endgroup
|
|
\@esphack}
|
|
\def\index{\@bsphack\begingroup \@sanitize\@index}
|
|
\def\@index#1{\endgroup\@esphack}
|
|
\def\makeglossary{%
|
|
\newwrite\@glossaryfile
|
|
\immediate\openout\@glossaryfile=\jobname.glo
|
|
\def\glossary{\@bsphack\begingroup
|
|
\@sanitize
|
|
\@wrglossary}\typeout
|
|
{Writing glossary file \jobname.glo }%
|
|
\let\makeglossary\@empty
|
|
}
|
|
\@onlypreamble\makeglossary
|
|
\def\@wrglossary#1{%
|
|
\protected@write\@glossaryfile{}%
|
|
{\string\glossaryentry{#1}{\thepage}}%
|
|
\endgroup
|
|
\@esphack}
|
|
\def\glossary{\@bsphack\begingroup\@sanitize\@index}
|
|
%%% From File: ltbibl.dtx
|
|
\message{bibliography,}
|
|
\def\bibitem{\@ifnextchar[\@lbibitem\@bibitem}
|
|
\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw
|
|
{\let\protect\noexpand
|
|
\immediate
|
|
\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
|
|
\def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
|
|
{\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
|
|
\def\bibcite{\@newl@bel b}
|
|
\let\citation\@gobble
|
|
\DeclareRobustCommand\cite{%
|
|
\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
|
|
\def\@citex[#1]#2{\leavevmode
|
|
\let\@citea\@empty
|
|
\@cite{\@for\@citeb:=#2\do
|
|
{\@citea\def\@citea{,\penalty\@m\ }%
|
|
\edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
|
|
\if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
|
|
\@ifundefined{b@\@citeb}{\hbox{\reset@font\bfseries ?}%
|
|
\G@refundefinedtrue
|
|
\@latex@warning
|
|
{Citation `\@citeb' on page \thepage \space undefined}}%
|
|
{\@cite@ofmt{\csname b@\@citeb\endcsname}}}}{#1}}
|
|
\let\bibdata=\@gobble
|
|
\let\bibstyle=\@gobble
|
|
\def\bibliography#1{%
|
|
\if@filesw
|
|
\immediate\write\@auxout{\string\bibdata{\zap@space#1 \@empty}}%
|
|
\fi
|
|
\@input@{\jobname.bbl}}
|
|
\def\bibliographystyle#1{%
|
|
\ifx\@begindocumenthook\@undefined\else
|
|
\expandafter\AtBeginDocument
|
|
\fi
|
|
{\if@filesw
|
|
\immediate\write\@auxout{\string\bibstyle{#1}}%
|
|
\fi}}
|
|
\def\nocite#1{\@bsphack
|
|
\ifx\@onlypreamble\document
|
|
\@for\@citeb:=#1\do{%
|
|
\edef\@citeb{\expandafter\@firstofone\@citeb}%
|
|
\if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
|
|
\@ifundefined{b@\@citeb}{\G@refundefinedtrue
|
|
\@latex@warning{Citation `\@citeb' undefined}}{}}%
|
|
\else
|
|
\@latex@error{Cannot be used in preamble}\@eha
|
|
% \AtBeginDocument{\nocite{#1}}
|
|
\fi
|
|
\@esphack}
|
|
\expandafter\let\csname b@*\endcsname\@empty
|
|
\def\@cite#1#2{[{#1\if@tempswa , #2\fi}]}
|
|
\let\@cite@ofmt\hbox
|
|
\def\@biblabel#1{[#1]}
|
|
%%% From File: ltpage.dtx
|
|
\def\pagestyle#1{%
|
|
\@ifundefined{ps@#1}%
|
|
\undefinedpagestyle
|
|
{\@nameuse{ps@#1}}}
|
|
\def\thispagestyle#1{%
|
|
\@ifundefined{ps@#1}%
|
|
\undefinedpagestyle
|
|
{\global\@specialpagetrue\gdef\@specialstyle{#1}}}
|
|
\def\ps@empty{%
|
|
\let\@mkboth\@gobbletwo\let\@oddhead\@empty\let\@oddfoot\@empty
|
|
\let\@evenhead\@empty\let\@evenfoot\@empty}
|
|
\def\ps@plain{\let\@mkboth\@gobbletwo
|
|
\let\@oddhead\@empty\def\@oddfoot{\reset@font\hfil\thepage
|
|
\hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
|
|
\let\@leftmark\@firstoftwo
|
|
\let\@rightmark\@secondoftwo
|
|
\DeclareRobustCommand\markboth[2]{%
|
|
\begingroup
|
|
\let\label\relax \let\index\relax \let\glossary\relax
|
|
\unrestored@protected@xdef\@themark {{#1}{#2}}%
|
|
\@temptokena \expandafter{\@themark}%
|
|
\mark{\the\@temptokena}%
|
|
\endgroup
|
|
\if@nobreak\ifvmode\nobreak\fi\fi}
|
|
\DeclareRobustCommand\markright[1]{%
|
|
\begingroup
|
|
\let\label\relax \let\index\relax \let\glossary\relax
|
|
\expandafter\@markright\@themark {#1}%
|
|
\@temptokena \expandafter{\@themark}%
|
|
\mark{\the\@temptokena}%
|
|
\endgroup
|
|
\if@nobreak\ifvmode\nobreak\fi\fi}
|
|
\def\@markright#1#2#3{\@temptokena {#1}%
|
|
\unrestored@protected@xdef\@themark{{\the\@temptokena}{#3}}}
|
|
\def\leftmark{\expandafter\@leftmark\botmark\@empty\@empty}
|
|
\def\rightmark{\expandafter\@rightmark\firstmark\@empty\@empty}
|
|
\def\@themark{{}{}}
|
|
\DeclareRobustCommand\raggedbottom{%
|
|
\def\@textbottom{\vskip \z@ \@plus.0001fil}\let\@texttop\relax}
|
|
\DeclareRobustCommand\flushbottom{%
|
|
\let\@textbottom\relax \let\@texttop\relax}
|
|
\DeclareRobustCommand\sloppy{%
|
|
\tolerance 9999%
|
|
\emergencystretch 3em%
|
|
\hfuzz .5\p@
|
|
\vfuzz\hfuzz}
|
|
\def\sloppypar{\par\sloppy}
|
|
\def\endsloppypar{\par}
|
|
\DeclareRobustCommand\fussy{%
|
|
\emergencystretch\z@
|
|
\tolerance 200%
|
|
\hfuzz .1\p@
|
|
\vfuzz\hfuzz}
|
|
\overfullrule 0pt
|
|
%%% From File: ltoutput.dtx
|
|
\expandafter\let\csname ver@autoout1.sty\endcsname\fmtversion
|
|
\message{output,}
|
|
\maxdeadcycles = 100
|
|
\let\@elt\relax
|
|
\def\@next#1#2#3#4{\ifx#2\@empty #4\else
|
|
\expandafter\@xnext #2\@@#1#2#3\fi}
|
|
\def\@xnext \@elt #1#2\@@#3#4{\def#3{#1}\gdef#4{#2}}
|
|
\def\@testfalse{\global\let\if@test\iffalse}
|
|
\def\@testtrue {\global\let\if@test\iftrue}
|
|
\@testfalse
|
|
\def\@bitor#1#2{\@testfalse {\let\@elt\@xbitor
|
|
\@tempcnta #1\relax #2}}
|
|
\def\@xbitor #1{\@tempcntb \count#1
|
|
\ifnum \@tempcnta =\z@
|
|
\else
|
|
\divide\@tempcntb\@tempcnta
|
|
\ifodd\@tempcntb \@testtrue\fi
|
|
\fi}
|
|
\let\@elt\newinsert
|
|
\def\@freelist{%
|
|
\@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E
|
|
\@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J
|
|
\@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N
|
|
\@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R}
|
|
\@freelist
|
|
\ifx\numexpr\@undefined\else
|
|
\def\reserved@a{%
|
|
\@elt\bx@S\@elt\bx@T\@elt\bx@U\@elt\bx@V
|
|
\@elt\bx@W\@elt\bx@X\@elt\bx@Y\@elt\bx@Z
|
|
\@elt\bx@AA\@elt\bx@BB\@elt\bx@CC\@elt\bx@DD\@elt\bx@EE
|
|
\@elt\bx@FF\@elt\bx@GG\@elt\bx@HH\@elt\bx@II\@elt\bx@JJ
|
|
\@elt\bx@KK\@elt\bx@LL\@elt\bx@MM\@elt\bx@NN
|
|
\@elt\bx@OO\@elt\bx@PP\@elt\bx@QQ\@elt\bx@RR
|
|
\@elt\bx@SS\@elt\bx@TT\@elt\bx@UU\@elt\bx@VV
|
|
\@elt\bx@WW\@elt\bx@XX\@elt\bx@YY\@elt\bx@ZZ}
|
|
\reserved@a
|
|
\def\@elt{\noexpand\@elt\noexpand}
|
|
\edef\@freelist{\@freelist\reserved@a}
|
|
\fi
|
|
\let\reserved@a\relax
|
|
\let\@elt\relax
|
|
\gdef\@toplist{}
|
|
\gdef\@botlist{}
|
|
\gdef\@midlist{}
|
|
\gdef\@currlist{}
|
|
\gdef\@deferlist{}
|
|
\gdef\@dbltoplist{}
|
|
\gdef\@dbldeferlist{}
|
|
\newdimen\topmargin
|
|
\newdimen\oddsidemargin
|
|
\newdimen\evensidemargin
|
|
\let\@themargin=\oddsidemargin
|
|
\newdimen\headheight
|
|
\newdimen\headsep
|
|
\newdimen\footskip
|
|
\newdimen\textheight
|
|
\newdimen\textwidth
|
|
\newdimen\columnwidth
|
|
\newdimen\columnsep
|
|
\newdimen\columnseprule
|
|
\newdimen\marginparwidth
|
|
\newdimen\marginparsep
|
|
\newdimen\marginparpush
|
|
\newbox\@begindvibox
|
|
\DeclareRobustCommand \AtBeginDvi [1]{%
|
|
\global \setbox \@begindvibox
|
|
\vbox{\unvbox \@begindvibox #1}%
|
|
}
|
|
\newdimen\@maxdepth
|
|
\@maxdepth = \maxdepth
|
|
\newdimen\paperheight
|
|
\newdimen\paperwidth
|
|
\newif \if@insert
|
|
\newif \if@fcolmade
|
|
\newif \if@specialpage \@specialpagefalse
|
|
\newif \if@firstcolumn \@firstcolumntrue
|
|
\newif \if@twocolumn \@twocolumnfalse
|
|
\newif \if@twoside \@twosidefalse
|
|
\newif \if@reversemargin \@reversemarginfalse
|
|
\newif \if@mparswitch \@mparswitchfalse
|
|
\newcount \col@number
|
|
\col@number \@ne
|
|
\newcount\@topnum
|
|
\newdimen\@toproom
|
|
\newcount\@dbltopnum
|
|
\newdimen\@dbltoproom
|
|
\newcount\@botnum
|
|
\newdimen\@botroom
|
|
\newcount\@colnum
|
|
\newdimen\@textmin
|
|
\newdimen\@fpmin
|
|
\newdimen\@colht
|
|
\newdimen\@colroom
|
|
\newdimen\@pageht
|
|
\newdimen\@pagedp
|
|
\newdimen\@mparbottom \@mparbottom\z@
|
|
\newcount\@currtype
|
|
\newbox\@outputbox
|
|
\newbox\@leftcolumn
|
|
\newbox\@holdpg
|
|
\def\@thehead{\@oddhead} % initialization
|
|
\def\@thefoot{\@oddfoot}
|
|
\def\clearpage{%
|
|
\ifvmode
|
|
\ifnum \@dbltopnum =\m@ne
|
|
\ifdim \pagetotal <\topskip
|
|
\hbox{}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\newpage
|
|
\write\m@ne{}%
|
|
\vbox{}%
|
|
\penalty -\@Mi
|
|
}
|
|
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
|
|
\hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
|
|
\def\onecolumn{%
|
|
\clearpage
|
|
\global\columnwidth\textwidth
|
|
\global\hsize\columnwidth
|
|
\global\linewidth\columnwidth
|
|
\global\@twocolumnfalse
|
|
\col@number \@ne
|
|
\@floatplacement}
|
|
\def \newpage {%
|
|
\if@noskipsec
|
|
\ifx \@nodocument\relax
|
|
\leavevmode
|
|
\global \@noskipsecfalse
|
|
\fi
|
|
\fi
|
|
\if@inlabel
|
|
\leavevmode
|
|
\global \@inlabelfalse
|
|
\fi
|
|
\if@nobreak \@nobreakfalse \everypar{}\fi
|
|
\par
|
|
\ifdim\prevdepth>\z@
|
|
\vskip -%
|
|
\ifdim\prevdepth>\maxdepth
|
|
\maxdepth
|
|
\else
|
|
\prevdepth
|
|
\fi
|
|
\fi
|
|
\vfil
|
|
\penalty -\@M}
|
|
\def \@emptycol {\vbox{}\penalty -\@M}
|
|
\def \twocolumn {%
|
|
\clearpage
|
|
\global\columnwidth\textwidth
|
|
\global\advance\columnwidth-\columnsep
|
|
\global\divide\columnwidth\tw@
|
|
\global\hsize\columnwidth
|
|
\global\linewidth\columnwidth
|
|
\global\@twocolumntrue
|
|
\global\@firstcolumntrue
|
|
\col@number \tw@
|
|
\@ifnextchar [\@topnewpage\@floatplacement
|
|
}
|
|
\long\def \@topnewpage [#1]{%
|
|
\@nodocument
|
|
\@next\@currbox\@freelist{}{}%
|
|
\global \setbox\@currbox
|
|
\color@vbox
|
|
\normalcolor
|
|
\vbox {%
|
|
\hsize\textwidth
|
|
\@parboxrestore
|
|
\col@number \@ne
|
|
#1%
|
|
\vskip -\dbltextfloatsep
|
|
}%
|
|
\color@endbox
|
|
\ifdim \ht\@currbox>\textheight
|
|
\ht\@currbox \textheight
|
|
\fi
|
|
\global \count\@currbox \tw@
|
|
\@tempdima -\ht\@currbox
|
|
\advance \@tempdima -\dbltextfloatsep
|
|
\global \advance \@colht \@tempdima
|
|
\ifx \@dbltoplist \@empty
|
|
\else
|
|
\@latexerr{Float(s) lost}\@ehb
|
|
\let \@dbltoplist \@empty
|
|
\fi
|
|
\@cons \@dbltoplist \@currbox
|
|
\global \@dbltopnum \m@ne
|
|
\ifdim \@colht<2.5\baselineskip
|
|
\@latex@warning@no@line {Optional argument of \noexpand\twocolumn
|
|
too tall on page \thepage}%
|
|
\@emptycol
|
|
\if@firstcolumn
|
|
\else
|
|
\@emptycol
|
|
\fi
|
|
\else
|
|
\global \vsize \@colht
|
|
\global \@colroom \@colht
|
|
\@floatplacement
|
|
\fi
|
|
}
|
|
\output {%
|
|
\let \par \@@par
|
|
\ifnum \outputpenalty<-\@M
|
|
\@specialoutput
|
|
\else
|
|
\@makecol
|
|
\@opcol
|
|
\@startcolumn
|
|
\@whilesw \if@fcolmade \fi
|
|
{%
|
|
\@opcol\@startcolumn}%
|
|
\fi
|
|
\ifnum \outputpenalty>-\@Miv
|
|
\ifdim \@colroom<1.5\baselineskip
|
|
\ifdim \@colroom<\textheight
|
|
\@latex@warning@no@line {Text page \thepage\space
|
|
contains only floats}%
|
|
\@emptycol
|
|
\else
|
|
\global \vsize \@colroom
|
|
\fi
|
|
\else
|
|
\global \vsize \@colroom
|
|
\fi
|
|
\else
|
|
\global \vsize \maxdimen
|
|
\fi
|
|
}
|
|
\gdef\@specialoutput{%
|
|
\ifnum \outputpenalty>-\@Mii
|
|
\@doclearpage
|
|
\else
|
|
\ifnum \outputpenalty<-\@Miii
|
|
\ifnum \outputpenalty<-\@MM \deadcycles \z@ \fi
|
|
\global \setbox\@holdpg \vbox {\unvbox\@cclv}%
|
|
\else
|
|
\global \setbox\@holdpg \vbox{%
|
|
\unvbox\@holdpg
|
|
\unvbox\@cclv
|
|
\setbox\@tempboxa \lastbox
|
|
\unskip
|
|
}%
|
|
\@pagedp \dp\@holdpg
|
|
\@pageht \ht\@holdpg
|
|
\unvbox \@holdpg
|
|
\@next\@currbox\@currlist{%
|
|
\ifnum \count\@currbox>\z@
|
|
\advance \@pageht \@pagedp
|
|
\ifvoid\footins \else
|
|
\advance \@pageht \ht\footins
|
|
\advance \@pageht \skip\footins
|
|
\advance \@pageht \dp\footins
|
|
\fi
|
|
\ifvbox \@kludgeins
|
|
\ifdim \wd\@kludgeins=\z@
|
|
\advance \@pageht \ht\@kludgeins
|
|
\fi
|
|
\fi
|
|
\@reinserts
|
|
\@addtocurcol
|
|
\else
|
|
\@reinserts
|
|
\@addmarginpar
|
|
\fi
|
|
}\@latexbug
|
|
\ifnum \outputpenalty<\z@
|
|
\if@nobreak
|
|
\nobreak
|
|
\else
|
|
\addpenalty \interlinepenalty
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\@testwrongwidth #1{%
|
|
\ifdim\dp#1=\f@depth
|
|
\else
|
|
\global\@testtrue
|
|
\fi}%
|
|
\let\f@depth\z@
|
|
\def \@doclearpage {%
|
|
\ifvoid\footins
|
|
\ifvbox\@kludgeins
|
|
{\setbox \@tempboxa \box \@kludgeins}%
|
|
\fi
|
|
\setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
|
|
\setbox\@tempboxa\box\@cclv
|
|
\xdef\@deferlist{\@toplist\@botlist\@deferlist}%
|
|
\global \let \@toplist \@empty
|
|
\global \let \@botlist \@empty
|
|
\global \@colroom \@colht
|
|
\ifx \@currlist\@empty
|
|
\else
|
|
\@latexerr{Float(s) lost}\@ehb
|
|
\global \let \@currlist \@empty
|
|
\fi
|
|
\@makefcolumn\@deferlist
|
|
\@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
|
|
\if@twocolumn
|
|
\if@firstcolumn
|
|
\xdef\@deferlist{\@dbltoplist\@deferlist}%
|
|
\global \let \@dbltoplist \@empty
|
|
\global \@colht \textheight
|
|
\begingroup
|
|
\@dblfloatplacement
|
|
\@makefcolumn\@deferlist
|
|
\@whilesw\if@fcolmade \fi{\@outputpage
|
|
\@makefcolumn\@deferlist}%
|
|
\endgroup
|
|
\else
|
|
\vbox{}\clearpage
|
|
\fi
|
|
\fi
|
|
\ifx\@deferlist\@empty \else\clearpage \fi
|
|
\else
|
|
\setbox\@cclv\vbox{\box\@cclv\vfil}%
|
|
\@makecol\@opcol
|
|
\clearpage
|
|
\fi
|
|
}%
|
|
\def \@opcol {%
|
|
\if@twocolumn
|
|
\@outputdblcol
|
|
\else
|
|
\@outputpage
|
|
\fi
|
|
\global \@mparbottom \z@ \global \@textfloatsheight \z@
|
|
\@floatplacement
|
|
}
|
|
\gdef \@makecol {%
|
|
\ifvoid\footins
|
|
\setbox\@outputbox \box\@cclv
|
|
\else
|
|
\setbox\@outputbox \vbox {%
|
|
\boxmaxdepth \@maxdepth
|
|
\unvbox \@cclv
|
|
\vskip \skip\footins
|
|
\color@begingroup
|
|
\normalcolor
|
|
\footnoterule
|
|
\unvbox \footins
|
|
\color@endgroup
|
|
}%
|
|
\fi
|
|
\let\@elt\relax
|
|
\xdef\@freelist{\@freelist\@midlist}%
|
|
\global \let \@midlist \@empty
|
|
\@combinefloats
|
|
\ifvbox\@kludgeins
|
|
\@makespecialcolbox
|
|
\else
|
|
\setbox\@outputbox \vbox to\@colht {%
|
|
\@texttop
|
|
\dimen@ \dp\@outputbox
|
|
\unvbox \@outputbox
|
|
\vskip -\dimen@
|
|
\@textbottom
|
|
}%
|
|
\fi
|
|
\global \maxdepth \@maxdepth
|
|
}
|
|
\gdef \@reinserts{%
|
|
\ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
|
|
\ifvbox\@kludgeins\insert\@kludgeins
|
|
{\unvbox\@kludgeins}\fi
|
|
}
|
|
\gdef \@makespecialcolbox {%
|
|
\setbox\@outputbox \vbox {%
|
|
\@texttop
|
|
\dimen@ \dp\@outputbox
|
|
\unvbox\@outputbox
|
|
\vskip-\dimen@
|
|
}%
|
|
\@tempdima \@colht
|
|
\ifdim \wd\@kludgeins>\z@
|
|
\advance \@tempdima -\ht\@outputbox
|
|
\advance \@tempdima \pageshrink
|
|
\setbox\@outputbox \vbox to \@colht {%
|
|
\unvbox\@outputbox
|
|
\vskip \@tempdima
|
|
\@textbottom
|
|
}%
|
|
\else
|
|
\advance \@tempdima -\ht\@kludgeins
|
|
\setbox \@outputbox \vbox to \@colht {%
|
|
\vbox to \@tempdima {%
|
|
\unvbox\@outputbox
|
|
\@textbottom}%
|
|
\vss}%
|
|
\fi
|
|
{\setbox \@tempboxa \box \@kludgeins}%
|
|
}
|
|
\let \@texttop \relax
|
|
\let \@textbottom \relax
|
|
\def\@activechar@info #1{%
|
|
\@latex@info@no@line {Active #1 character found while
|
|
output routine is active
|
|
\MessageBreak
|
|
This may be a bug in a package file
|
|
you are using}%
|
|
}
|
|
\begingroup
|
|
\obeylines\obeyspaces%
|
|
\catcode`\'\active%
|
|
\gdef\@resetactivechars{%
|
|
\def^^M{\@activechar@info{EOL}\space}%
|
|
\def {\@activechar@info{space}\space}%
|
|
\let'\active@math@prime}%
|
|
\endgroup
|
|
\def\@outputpage{%
|
|
\begingroup
|
|
\let \protect \noexpand
|
|
\language\document@default@language
|
|
\@resetactivechars
|
|
\global\let\@@if@newlist\if@newlist
|
|
\global\@newlistfalse
|
|
\@parboxrestore
|
|
\shipout \vbox{%
|
|
\set@typeset@protect
|
|
\aftergroup \endgroup
|
|
\aftergroup \set@typeset@protect
|
|
\if@specialpage
|
|
\global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
|
|
\fi
|
|
\if@twoside
|
|
\ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot
|
|
\let\@themargin\oddsidemargin
|
|
\else \let\@thehead\@evenhead
|
|
\let\@thefoot\@evenfoot \let\@themargin\evensidemargin
|
|
\fi
|
|
\fi
|
|
\reset@font
|
|
\normalsize
|
|
\normalsfcodes
|
|
\let\label\@gobble
|
|
\let\index\@gobble
|
|
\let\glossary\@gobble
|
|
\baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
|
|
\@begindvi
|
|
\vskip \topmargin
|
|
\moveright\@themargin \vbox {%
|
|
\setbox\@tempboxa \vbox to\headheight{%
|
|
\vfil
|
|
\color@hbox
|
|
\normalcolor
|
|
\hb@xt@\textwidth{\@thehead}%
|
|
\color@endbox
|
|
}%
|
|
\dp\@tempboxa \z@
|
|
\box\@tempboxa
|
|
\vskip \headsep
|
|
\box\@outputbox
|
|
\baselineskip \footskip
|
|
\color@hbox
|
|
\normalcolor
|
|
\hb@xt@\textwidth{\@thefoot}%
|
|
\color@endbox
|
|
}%
|
|
}%
|
|
\global\let\if@newlist\@@if@newlist
|
|
\global \@colht \textheight
|
|
\stepcounter{page}%
|
|
\let\firstmark\botmark
|
|
}
|
|
\def \@begindvi{%
|
|
\unvbox \@begindvibox
|
|
\global\let \@begindvi \@empty
|
|
}
|
|
\def \@combinefloats {%
|
|
\ifx \@toplist\@empty \else \@cflt \fi
|
|
\ifx \@botlist\@empty \else \@cflb \fi
|
|
}
|
|
\def \@cflt{%
|
|
\let \@elt \@comflelt
|
|
\setbox\@tempboxa \vbox{}%
|
|
\@toplist
|
|
\setbox\@outputbox \vbox{%
|
|
\boxmaxdepth \maxdepth
|
|
\unvbox\@tempboxa
|
|
\vskip -\floatsep
|
|
\topfigrule
|
|
\vskip \textfloatsep
|
|
\unvbox\@outputbox
|
|
}%
|
|
\let\@elt\relax
|
|
\xdef\@freelist{\@freelist\@toplist}%
|
|
\global\let\@toplist\@empty
|
|
}
|
|
\def \@cflb {%
|
|
\let\@elt\@comflelt
|
|
\setbox\@tempboxa \vbox{}%
|
|
\@botlist
|
|
\setbox\@outputbox \vbox{%
|
|
\unvbox\@outputbox
|
|
\vskip \textfloatsep
|
|
\botfigrule
|
|
\unvbox\@tempboxa
|
|
\vskip -\floatsep
|
|
}%
|
|
\let\@elt\relax
|
|
\xdef\@freelist{\@freelist\@botlist}%
|
|
\global \let \@botlist\@empty
|
|
}
|
|
\def\@comflelt#1{\setbox\@tempboxa
|
|
\vbox{\unvbox\@tempboxa\box #1\vskip\floatsep}}
|
|
\def\@comdblflelt#1{\setbox\@tempboxa
|
|
\vbox{\unvbox\@tempboxa\box #1\vskip\dblfloatsep}}
|
|
\def \@combinedblfloats{%
|
|
\ifx \@dbltoplist \@empty
|
|
\else
|
|
\setbox\@tempboxa \vbox{}%
|
|
\let \@elt \@comdblflelt
|
|
\@dbltoplist
|
|
\let \@elt \relax
|
|
\xdef \@freelist {\@freelist\@dbltoplist}%
|
|
\global\let \@dbltoplist \@empty
|
|
\setbox\@outputbox \vbox to\textheight
|
|
{%\boxmaxdepth\maxdepth %% probably not needed, CAR
|
|
\unvbox\@tempboxa\vskip-\dblfloatsep
|
|
\ifnum \@dbltopnum>\m@ne
|
|
\dblfigrule
|
|
\fi
|
|
\vskip \dbltextfloatsep
|
|
\unvbox\@outputbox
|
|
}%
|
|
\fi
|
|
}
|
|
\def \@startcolumn {%
|
|
\global \@colroom \@colht
|
|
\@tryfcolumn \@deferlist
|
|
\if@fcolmade
|
|
\else
|
|
\begingroup
|
|
\let \reserved@b \@deferlist
|
|
\global \let \@deferlist \@empty
|
|
\let \@elt \@scolelt
|
|
\reserved@b
|
|
\endgroup
|
|
\fi
|
|
}
|
|
\def \@startdblcolumn {%
|
|
\@tryfcolumn \@deferlist
|
|
\if@fcolmade
|
|
\else
|
|
\begingroup
|
|
\let \reserved@b \@deferlist
|
|
\global \let \@deferlist \@empty
|
|
\let \@elt \@sdblcolelt
|
|
\reserved@b
|
|
\endgroup
|
|
\fi
|
|
}%
|
|
\def \@tryfcolumn #1{%
|
|
\global \@fcolmadefalse
|
|
\ifx #1\@empty
|
|
\else
|
|
\xdef\@trylist{#1}%
|
|
\global \let \@failedlist \@empty
|
|
\begingroup
|
|
\let \@elt \@xtryfc \@trylist
|
|
\endgroup
|
|
\if@fcolmade
|
|
\@vtryfc #1%
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\@scolelt#1{\def\@currbox{#1}\@addtonextcol}
|
|
\def\@sdblcolelt#1{\def\@currbox{#1}\@addtodblcol}
|
|
\def\@vtryfc #1{%
|
|
\global\setbox\@outputbox\vbox{}%
|
|
\let\@elt\@wtryfc
|
|
\@flsucceed
|
|
\global\setbox\@outputbox \vbox to\@colht{%
|
|
\vskip \@fptop
|
|
\vskip -\@fpsep
|
|
\unvbox \@outputbox
|
|
\vskip \@fpbot}%
|
|
\let\@elt\relax
|
|
\xdef #1{\@failedlist\@flfail}%
|
|
\xdef\@freelist{\@freelist\@flsucceed}}
|
|
\def\@wtryfc #1{%
|
|
\global\setbox\@outputbox\vbox{%
|
|
\unvbox\@outputbox
|
|
\vskip\@fpsep
|
|
\box #1}}
|
|
\def\@xtryfc #1{%
|
|
\@next\reserved@a\@trylist{}{}%
|
|
\@currtype \count #1%
|
|
\divide\@currtype\@xxxii
|
|
\multiply\@currtype\@xxxii
|
|
\@bitor \@currtype \@failedlist
|
|
\@testfp #1%
|
|
\@testwrongwidth #1%
|
|
\ifdim \ht #1>\@colht
|
|
\@testtrue
|
|
\fi
|
|
\if@test
|
|
\@cons\@failedlist #1%
|
|
\else
|
|
\@ytryfc #1%
|
|
\fi}%
|
|
\def\@ytryfc #1{%
|
|
\begingroup
|
|
\gdef\@flsucceed{\@elt #1}%
|
|
\global\let\@flfail\@empty
|
|
\@tempdima\ht #1%
|
|
\let\@elt\@ztryfc
|
|
\@trylist
|
|
\ifdim \@tempdima >\@fpmin
|
|
\global\@fcolmadetrue
|
|
\else
|
|
\@cons\@failedlist #1%
|
|
\fi
|
|
\endgroup
|
|
\if@fcolmade
|
|
\let\@elt\@gobble
|
|
\fi}
|
|
\def\@ztryfc #1{%
|
|
\@tempcnta\count #1%
|
|
\divide\@tempcnta\@xxxii
|
|
\multiply\@tempcnta\@xxxii
|
|
\@bitor \@tempcnta {\@failedlist \@flfail}%
|
|
\@testfp #1%
|
|
\@testwrongwidth #1%
|
|
\@tempdimb\@tempdima
|
|
\advance\@tempdimb\ht #1%
|
|
\advance\@tempdimb\@fpsep
|
|
\ifdim \@tempdimb >\@colht
|
|
\@testtrue
|
|
\fi
|
|
\if@test
|
|
\@cons\@flfail #1%
|
|
\else
|
|
\@cons\@flsucceed #1%
|
|
\@tempdima\@tempdimb
|
|
\fi}%
|
|
\def \@addtobot {%
|
|
\@getfpsbit 4\relax
|
|
\ifodd \@tempcnta
|
|
\@flsetnum \@botnum
|
|
\ifnum \@botnum>\z@
|
|
\@tempswafalse
|
|
\@flcheckspace \@botroom \@botlist
|
|
\if@tempswa
|
|
\global \maxdepth \z@
|
|
\@flupdates \@botnum \@botroom \@botlist
|
|
\@inserttrue
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\def \@addtotoporbot {%
|
|
\@getfpsbit \tw@
|
|
\ifodd \@tempcnta
|
|
\@flsetnum \@topnum
|
|
\ifnum \@topnum>\z@
|
|
\@tempswafalse
|
|
\@flcheckspace \@toproom \@toplist
|
|
\if@tempswa
|
|
\@bitor\@currtype{\@midlist\@botlist}%
|
|
\if@test
|
|
\else
|
|
\@flupdates \@topnum \@toproom \@toplist
|
|
\@inserttrue
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\if@insert
|
|
\else
|
|
\@addtobot
|
|
\fi
|
|
}
|
|
\def \@addtocurcol {%
|
|
\@insertfalse
|
|
\@setfloattypecounts
|
|
\ifnum \@fpstype=8
|
|
\else
|
|
\ifnum \@fpstype=24
|
|
\else
|
|
\@flsettextmin
|
|
\advance \@textmin \@textfloatsheight
|
|
\@reqcolroom \@pageht
|
|
\ifdim \@textmin>\@reqcolroom
|
|
\@reqcolroom \@textmin
|
|
\fi
|
|
\advance \@reqcolroom \ht\@currbox
|
|
\ifdim \@colroom>\@reqcolroom
|
|
\@flsetnum \@colnum
|
|
\ifnum \@colnum>\z@
|
|
\@bitor\@currtype\@deferlist
|
|
\@testwrongwidth\@currbox
|
|
\if@test
|
|
\else
|
|
\@bitor\@currtype\@botlist
|
|
\if@test
|
|
\@addtobot
|
|
\else
|
|
\ifodd \count\@currbox
|
|
\advance \@reqcolroom \intextsep
|
|
\ifdim \@colroom>\@reqcolroom
|
|
\global \advance \@colnum \m@ne
|
|
\global \advance \@textfloatsheight \ht\@currbox
|
|
\global \advance \@textfloatsheight 2\intextsep
|
|
\@cons \@midlist \@currbox
|
|
\if@nobreak
|
|
\nobreak
|
|
\@nobreakfalse
|
|
\everypar{}%
|
|
\else
|
|
\addpenalty \interlinepenalty
|
|
\fi
|
|
\vskip \intextsep
|
|
\box\@currbox
|
|
\penalty\interlinepenalty
|
|
\vskip\intextsep
|
|
\ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
|
|
\outputpenalty \z@
|
|
\@inserttrue
|
|
\fi
|
|
\fi
|
|
\if@insert
|
|
\else
|
|
\@addtotoporbot
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\if@insert
|
|
\else
|
|
\@resethfps
|
|
\@cons\@deferlist\@currbox
|
|
\fi
|
|
}%
|
|
\def\@addtonextcol{%
|
|
\begingroup
|
|
\@insertfalse
|
|
\@setfloattypecounts
|
|
\ifnum \@fpstype=8
|
|
\else
|
|
\ifnum \@fpstype=24
|
|
\else
|
|
\@flsettextmin
|
|
\@reqcolroom \ht\@currbox
|
|
\advance \@reqcolroom \@textmin
|
|
\ifdim \@colroom>\@reqcolroom
|
|
\@flsetnum \@colnum
|
|
\ifnum\@colnum>\z@
|
|
\@bitor\@currtype\@deferlist
|
|
\@testwrongwidth\@currbox
|
|
\if@test
|
|
\else
|
|
\@addtotoporbot
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\if@insert
|
|
\else
|
|
\@cons\@deferlist\@currbox
|
|
\fi
|
|
\endgroup
|
|
}%
|
|
\def\@addtodblcol{%
|
|
\begingroup
|
|
\@insertfalse
|
|
\@setfloattypecounts
|
|
\@getfpsbit \tw@
|
|
\ifodd\@tempcnta
|
|
\@flsetnum \@dbltopnum
|
|
\ifnum \@dbltopnum>\z@
|
|
\@tempswafalse
|
|
\ifdim \@dbltoproom>\ht\@currbox
|
|
\@tempswatrue
|
|
\else
|
|
\ifnum \@fpstype<\sixt@@n
|
|
\advance \@dbltoproom \@textmin
|
|
\ifdim \@dbltoproom>\ht\@currbox
|
|
\@tempswatrue
|
|
\fi
|
|
\advance \@dbltoproom -\@textmin
|
|
\fi
|
|
\fi
|
|
\if@tempswa
|
|
\@bitor \@currtype \@deferlist
|
|
\@testwrongwidth\@currbox
|
|
\if@test
|
|
\else
|
|
\@tempdima -\ht\@currbox
|
|
\advance\@tempdima
|
|
-\ifx \@dbltoplist\@empty \dbltextfloatsep \else
|
|
\dblfloatsep \fi
|
|
\global \advance \@dbltoproom \@tempdima
|
|
\global \advance \@colht \@tempdima
|
|
\global \advance \@dbltopnum \m@ne
|
|
\@cons \@dbltoplist \@currbox
|
|
\@inserttrue
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\if@insert
|
|
\else
|
|
\@cons\@deferlist\@currbox
|
|
\fi
|
|
\endgroup
|
|
}%
|
|
\def\@addmarginpar{\@next\@marbox\@currlist{\@cons\@freelist\@marbox
|
|
\@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne
|
|
\if@twocolumn
|
|
\if@firstcolumn \@tempcnta\m@ne \fi
|
|
\else
|
|
\if@mparswitch
|
|
\ifodd\c@page \else\@tempcnta\m@ne \fi
|
|
\fi
|
|
\if@reversemargin \@tempcnta -\@tempcnta \fi
|
|
\fi
|
|
\ifnum\@tempcnta <\z@ \global\setbox\@marbox\box\@currbox \fi
|
|
\@tempdima\@mparbottom
|
|
\advance\@tempdima -\@pageht
|
|
\advance\@tempdima\ht\@marbox
|
|
\ifdim\@tempdima >\z@
|
|
\@latex@warning@no@line {Marginpar on page \thepage\space moved}%
|
|
\else
|
|
\@tempdima\z@
|
|
\fi
|
|
\global\@mparbottom\@pageht
|
|
\global\advance\@mparbottom\@tempdima
|
|
\global\advance\@mparbottom\dp\@marbox
|
|
\global\advance\@mparbottom\marginparpush
|
|
\advance\@tempdima -\ht\@marbox
|
|
\global\setbox \@marbox
|
|
\vbox {\vskip \@tempdima
|
|
\box \@marbox}%
|
|
\global \ht\@marbox \z@
|
|
\global \dp\@marbox \z@
|
|
\kern -\@pagedp
|
|
\nointerlineskip
|
|
\hb@xt@\columnwidth
|
|
{\ifnum \@tempcnta >\z@
|
|
\hskip\columnwidth \hskip\marginparsep
|
|
\else
|
|
\hskip -\marginparsep \hskip -\marginparwidth
|
|
\fi
|
|
\box\@marbox \hss}%
|
|
\nointerlineskip
|
|
\hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}}
|
|
\newinsert \@kludgeins
|
|
\global\dimen\@kludgeins \maxdimen
|
|
\global\count\@kludgeins 1000
|
|
\gdef \enlargethispage {%
|
|
\@ifstar
|
|
{%
|
|
\@enlargepage{\hbox{\kern\p@}}}%
|
|
{%
|
|
\@enlargepage\@empty}%
|
|
}
|
|
\gdef\@enlargepage#1#2{%
|
|
\@tempskipa#2\relax
|
|
\ifdim \@tempskipa>.5\maxdimen
|
|
\@latexerr{Suggested\space extra\space height\space
|
|
(\the\@tempskipa)\space dangerously\space
|
|
large}\@eha
|
|
\else
|
|
\ifdim \vsize<.5\maxdimen
|
|
\@bsphack
|
|
\insert\@kludgeins{#1\vskip-\@tempskipa}%
|
|
\@esphack
|
|
\else
|
|
\@latexerr{Page\space height\space already\space
|
|
too\space large}\@eha
|
|
\fi
|
|
\fi
|
|
}
|
|
\def \suppressfloats {%
|
|
\@ifnextchar [%
|
|
\@flstop
|
|
{\global \@colnum \z@}%
|
|
}
|
|
\def \@flstop [#1]{%
|
|
\if t#1%
|
|
\global \@topnum \z@
|
|
\fi
|
|
\if b#1%
|
|
\global \@botnum \z@
|
|
\fi
|
|
}
|
|
\newcount \@fpstype
|
|
\newdimen \@reqcolroom
|
|
\newdimen \@textfloatsheight
|
|
\def \@fpsadddefault {%
|
|
\edef \@fps {\@fps\csname fps@\@captype \endcsname}%
|
|
\@latex@warning {%
|
|
No positions in optional float specifier.\MessageBreak
|
|
Default added (so using `\@fps')}%
|
|
}
|
|
\def \@setfloattypecounts {%
|
|
\@currtype \count\@currbox
|
|
\@fpstype \count\@currbox
|
|
\divide\@currtype\@xxxii \multiply\@currtype\@xxxii
|
|
\advance \@fpstype -\@currtype
|
|
}
|
|
\def \@getfpsbit {%
|
|
\@boxfpsbit \@currbox
|
|
}
|
|
\def \@boxfpsbit #1#2{%
|
|
\@tempcnta \count#1%
|
|
\divide \@tempcnta #2\relax
|
|
}
|
|
\def \@testfp #1{%
|
|
\@boxfpsbit #18\relax % Really `#1 8' for human readers!
|
|
\ifodd \@tempcnta
|
|
\else
|
|
\@testtrue
|
|
\fi
|
|
}
|
|
\def \@setfpsbit #1{%
|
|
\@tempcntb \@tempcnta
|
|
\divide \@tempcntb #1\relax
|
|
\ifodd \@tempcntb
|
|
\else
|
|
\advance \@tempcnta #1\relax
|
|
\fi
|
|
}
|
|
\def \@resethfps {%
|
|
\let\reserved@a\@empty
|
|
\ifnum \@fpstype=\@ne
|
|
\def \reserved@a {!}%
|
|
\@fpstype 17
|
|
\fi
|
|
\ifnum \@fpstype=17
|
|
\global \advance \count\@currbox \tw@
|
|
\@latex@warning@no@line {%
|
|
`\reserved@a h' float specifier changed to `\reserved@a ht'}%
|
|
\fi
|
|
}
|
|
\def \@flsetnum #1{%
|
|
\ifnum \@fpstype<\sixt@@n
|
|
\ifnum #1=\z@
|
|
#1\@ne
|
|
\fi
|
|
\fi
|
|
}
|
|
\def \@flsettextmin {%
|
|
\ifnum \@fpstype<\sixt@@n
|
|
\@textmin \z@
|
|
\else
|
|
\@textmin \textfraction\@colht
|
|
\fi
|
|
}
|
|
\def \@flcheckspace #1#2{%
|
|
\advance \@reqcolroom
|
|
\ifx #2\@empty \textfloatsep \else \floatsep \fi
|
|
\ifdim \@colroom>\@reqcolroom
|
|
\ifdim #1>\ht\@currbox
|
|
\@tempswatrue
|
|
\else
|
|
\ifnum \@fpstype<\sixt@@n
|
|
\@tempswatrue
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\def \@flupdates #1#2#3{%
|
|
\global \advance #1\m@ne
|
|
\global \advance \@colnum \m@ne
|
|
\@tempdima -\ht\@currbox
|
|
\advance \@tempdima
|
|
-\ifx #3\@empty \textfloatsep \else \floatsep \fi
|
|
\global \advance #2\@tempdima
|
|
\global \advance \@colroom \@tempdima
|
|
\@cons #3\@currbox
|
|
}
|
|
\def\@makefcolumn #1{%
|
|
\begingroup
|
|
\@fpmin -\maxdimen
|
|
\let \@testfp \@gobble
|
|
\@tryfcolumn #1%
|
|
\endgroup
|
|
}
|
|
\def\@outputdblcol{%
|
|
\if@firstcolumn
|
|
\global\@firstcolumnfalse
|
|
\global\setbox\@leftcolumn\copy\@outputbox
|
|
\splitmaxdepth\maxdimen
|
|
\vbadness\maxdimen
|
|
\setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}%
|
|
\setbox\@outputbox\vsplit\@outputbox to\maxdimen
|
|
\toks@\expandafter{\topmark}%
|
|
\xdef\@firstcoltopmark{\the\toks@}%
|
|
\toks@\expandafter{\splitfirstmark}%
|
|
\xdef\@firstcolfirstmark{\the\toks@}%
|
|
\ifx\@firstcolfirstmark\@empty
|
|
\global\let\@setmarks\relax
|
|
\else
|
|
\gdef\@setmarks{%
|
|
\let\firstmark\@firstcolfirstmark
|
|
\let\topmark\@firstcoltopmark}%
|
|
\fi
|
|
\else
|
|
\global\@firstcolumntrue
|
|
\setbox\@outputbox\vbox{%
|
|
\hb@xt@\textwidth{%
|
|
\hb@xt@\columnwidth{\box\@leftcolumn \hss}%
|
|
\hfil
|
|
{\normalcolor\vrule \@width\columnseprule}%
|
|
\hfil
|
|
\hb@xt@\columnwidth{\box\@outputbox \hss}}}%
|
|
\@combinedblfloats
|
|
\@setmarks
|
|
\@outputpage
|
|
\begingroup
|
|
\@dblfloatplacement
|
|
\@startdblcolumn
|
|
\@whilesw\if@fcolmade \fi{\@outputpage
|
|
\@startdblcolumn}%
|
|
\endgroup
|
|
\fi}%
|
|
\newcount\c@topnumber
|
|
\setcounter{topnumber}{2}
|
|
\newcommand\topfraction{.7}
|
|
\newcount\c@bottomnumber
|
|
\setcounter{bottomnumber}{1}
|
|
\newcommand\bottomfraction{.3}
|
|
\newcount\c@totalnumber
|
|
\setcounter{totalnumber}{3}
|
|
\newcommand\textfraction{.2}
|
|
\newcommand\floatpagefraction{.5}
|
|
\newcount\c@dbltopnumber
|
|
\setcounter{dbltopnumber}{2}
|
|
\newcommand\dbltopfraction{.7}
|
|
\newcommand\dblfloatpagefraction{.5}
|
|
\newskip\floatsep
|
|
\newskip\textfloatsep
|
|
\newskip\intextsep
|
|
\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
|
|
\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
|
|
\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
|
|
\newskip\dblfloatsep
|
|
\newskip\dbltextfloatsep
|
|
\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
|
|
\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
|
|
\newskip\@fptop
|
|
\newskip\@fpsep
|
|
\newskip\@fpbot
|
|
\setlength\@fptop{0\p@ \@plus 1fil}
|
|
\setlength\@fpsep{8\p@ \@plus 2fil}
|
|
\setlength\@fpbot{0\p@ \@plus 1fil}
|
|
\newskip\@dblfptop
|
|
\newskip\@dblfpsep
|
|
\newskip\@dblfpbot
|
|
\setlength\@dblfptop{0\p@ \@plus 1fil}
|
|
\setlength\@dblfpsep{8\p@ \@plus 2fil}
|
|
\setlength\@dblfpbot{0\p@ \@plus 1fil}
|
|
\let\topfigrule=\relax
|
|
\let\botfigrule=\relax
|
|
\let\dblfigrule=\relax
|
|
%%% From File: ltclass.dtx
|
|
\newif\if@compatibility
|
|
\def\@documentclasshook{%
|
|
\ifx\@normalsize\@undefined
|
|
\let\@normalsize\normalsize
|
|
\fi
|
|
}
|
|
\let\@declaredoptions\@empty
|
|
\let\@classoptionslist\relax
|
|
\@onlypreamble\@classoptionslist
|
|
\let\@unusedoptionlist\@empty
|
|
\@onlypreamble\@unusedoptionlist
|
|
\let\CurrentOption\@empty
|
|
\let\@currname\@empty
|
|
\global\let\@currext=\@empty
|
|
\def\@clsextension{cls}
|
|
\def\@pkgextension{sty}
|
|
\@onlypreamble\@clsextension
|
|
\@onlypreamble\@pkgextension
|
|
\def\@pushfilename{%
|
|
\xdef\@currnamestack{%
|
|
{\@currname}%
|
|
{\@currext}%
|
|
{\the\catcode`\@}%
|
|
\@currnamestack}}
|
|
\@onlypreamble\@pushfilename
|
|
\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil}
|
|
\@onlypreamble\@popfilename
|
|
\def\@p@pfilename#1#2#3#4\@nil{%
|
|
\gdef\@currname{#1}%
|
|
\gdef\@currext{#2}%
|
|
\catcode`\@#3\relax
|
|
\gdef\@currnamestack{#4}}
|
|
\@onlypreamble\@p@pfilename
|
|
\gdef\@currnamestack{}
|
|
\@onlypreamble\@currnamestack
|
|
\def\@ptionlist#1{%
|
|
\@ifundefined{opt@#1}\@empty{\csname opt@#1\endcsname}}
|
|
\@onlypreamble\@ptionlist
|
|
\def\@ifpackageloaded{\@ifl@aded\@pkgextension}
|
|
\def\@ifclassloaded{\@ifl@aded\@clsextension}
|
|
\@onlypreamble\@ifpackageloaded
|
|
\@onlypreamble\@ifclassloaded
|
|
\def\@ifl@aded#1#2{%
|
|
\expandafter\ifx\csname ver@#2.#1\endcsname\relax
|
|
\expandafter\@secondoftwo
|
|
\else
|
|
\expandafter\@firstoftwo
|
|
\fi}
|
|
\@onlypreamble\@ifl@aded
|
|
\def\@ifpackagelater{\@ifl@ter\@pkgextension}
|
|
\def\@ifclasslater{\@ifl@ter\@clsextension}
|
|
\@onlypreamble\@ifpackagelater
|
|
\@onlypreamble\@ifclasslater
|
|
\def\@ifl@ter#1#2{%
|
|
\expandafter\@ifl@t@r
|
|
\csname ver@#2.#1\endcsname}
|
|
\@onlypreamble\@ifl@ter
|
|
\def\@ifl@t@r#1#2{%
|
|
\ifnum\expandafter\@parse@version@#1//00\@nil<%
|
|
\expandafter\@parse@version@#2//00\@nil
|
|
\expandafter\@secondoftwo
|
|
\else
|
|
\expandafter\@firstoftwo
|
|
\fi}
|
|
\def\@parse@version@#1{\@parse@version0#1}
|
|
\@onlypreamble\@ifl@t@r
|
|
\def\@parse@version#1/#2/#3#4#5\@nil{%
|
|
\@parse@version@dash#1-#2-#3#4\@nil
|
|
}
|
|
\def\@parse@version@dash#1-#2-#3#4#5\@nil{%
|
|
\if\relax#2\relax\else#1\fi#2#3#4 }
|
|
\def\@ifpackagewith{\@if@ptions\@pkgextension}
|
|
\def\@ifclasswith{\@if@ptions\@clsextension}
|
|
\@onlypreamble\@ifpackagewith
|
|
\@onlypreamble\@ifclasswith
|
|
\def\@if@ptions#1#2{%
|
|
\@expandtwoargs\@if@pti@ns{\@ptionlist{#2.#1}}}
|
|
\@onlypreamble\@if@ptions
|
|
\def\@if@pti@ns#1#2{%
|
|
\let\reserved@a\@firstoftwo
|
|
\edef\reserved@b{\zap@space#2 \@empty}%
|
|
\@for\reserved@b:=\reserved@b\do{%
|
|
\ifx\reserved@b\@empty
|
|
\else
|
|
\expandafter\in@\expandafter{\expandafter,\reserved@b,}{,#1,}%
|
|
\ifin@
|
|
\else
|
|
\let\reserved@a\@secondoftwo
|
|
\fi
|
|
\fi
|
|
}%
|
|
\reserved@a}
|
|
\@onlypreamble\@if@pti@ns
|
|
\def\ProvidesPackage#1{%
|
|
\xdef\@gtempa{#1}%
|
|
\ifx\@gtempa\@currname\else
|
|
\@latex@warning@no@line{You have requested
|
|
\@cls@pkg\space`\@currname',\MessageBreak
|
|
but the \@cls@pkg\space provides `#1'}%
|
|
\fi
|
|
\@ifnextchar[\@pr@videpackage{\@pr@videpackage[]}}%]
|
|
\@onlypreamble\ProvidesPackage
|
|
\def\@pr@videpackage[#1]{%
|
|
\expandafter\protected@xdef % <-- protected...
|
|
\csname ver@\@currname.\@currext\endcsname{#1}%
|
|
\ifx\@currext\@clsextension
|
|
\typeout{Document Class: \@gtempa\space#1}%
|
|
\else
|
|
\protected@wlog{Package: \@gtempa\space#1}% <--- protected
|
|
\fi}
|
|
\long\def\protected@wlog#1{\begingroup
|
|
\set@display@protect
|
|
\immediate \write \m@ne {#1}\endgroup }
|
|
\@onlypreamble\@pr@videpackage
|
|
\let\ProvidesClass\ProvidesPackage
|
|
\@onlypreamble\ProvidesClass
|
|
\def\ProvidesFile#1{%
|
|
\begingroup
|
|
\catcode`\ 10 %
|
|
\ifnum \endlinechar<256 %
|
|
\ifnum \endlinechar>\m@ne
|
|
\catcode\endlinechar 10 %
|
|
\fi
|
|
\fi
|
|
\@makeother\/%
|
|
\@makeother\&%
|
|
\kernel@ifnextchar[{\@providesfile{#1}}{\@providesfile{#1}[]}}
|
|
\def\@pass@ptions#1#2#3{%
|
|
\expandafter\xdef\csname opt@#3.#1\endcsname{%
|
|
\@ifundefined{opt@#3.#1}\@empty
|
|
{\csname opt@#3.#1\endcsname,}%
|
|
\zap@space#2 \@empty}}
|
|
\@onlypreamble\@pass@ptions
|
|
\def\PassOptionsToPackage{\@pass@ptions\@pkgextension}
|
|
\def\PassOptionsToClass{\@pass@ptions\@clsextension}
|
|
\@onlypreamble\PassOptionsToPackage
|
|
\@onlypreamble\PassOptionsToClass
|
|
\def\DeclareOption{%
|
|
\let\@fileswith@pti@ns\@badrequireerror
|
|
\@ifstar\@defdefault@ds\@declareoption}
|
|
\long\def\@declareoption#1#2{%
|
|
\xdef\@declaredoptions{\@declaredoptions,#1}%
|
|
\toks@{#2}%
|
|
\expandafter\edef\csname ds@#1\endcsname{\the\toks@}}
|
|
\long\def\@defdefault@ds#1{%
|
|
\toks@{#1}%
|
|
\edef\default@ds{\the\toks@}}
|
|
\@onlypreamble\DeclareOption
|
|
\@onlypreamble\@declareoption
|
|
\@onlypreamble\@defdefault@ds
|
|
\def\OptionNotUsed{%
|
|
\ifx\@currext\@clsextension
|
|
\xdef\@unusedoptionlist{%
|
|
\ifx\@unusedoptionlist\@empty\else\@unusedoptionlist,\fi
|
|
\CurrentOption}%
|
|
\fi}
|
|
\@onlypreamble\OptionNotUsed
|
|
\def\ProcessOptions{%
|
|
\let\ds@\@empty
|
|
\edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
|
|
\@ifstar\@xprocess@ptions\@process@ptions}
|
|
\@onlypreamble\ProcessOptions
|
|
\def\@process@ptions{%
|
|
\@for\CurrentOption:=\@declaredoptions\do{%
|
|
\ifx\CurrentOption\@empty\else
|
|
\@expandtwoargs\in@{,\CurrentOption,}{%
|
|
,\ifx\@currext\@clsextension\else\@classoptionslist,\fi
|
|
\@curroptions,}%
|
|
\ifin@
|
|
\@use@ption
|
|
\expandafter\let\csname ds@\CurrentOption\endcsname\@empty
|
|
\fi
|
|
\fi}%
|
|
\@process@pti@ns}
|
|
\@onlypreamble\@process@ptions
|
|
\def\@xprocess@ptions{%
|
|
\ifx\@currext\@clsextension\else
|
|
\@for\CurrentOption:=\@classoptionslist\do{%
|
|
\ifx\CurrentOption\@empty\else
|
|
\@expandtwoargs\in@{,\CurrentOption,}{,\@declaredoptions,}%
|
|
\ifin@
|
|
\@use@ption
|
|
\expandafter\let\csname ds@\CurrentOption\endcsname\@empty
|
|
\fi
|
|
\fi}%
|
|
\fi
|
|
\@process@pti@ns}
|
|
\@onlypreamble\@xprocess@ptions
|
|
\def\@process@pti@ns{%
|
|
\@for\CurrentOption:=\@curroptions\do{%
|
|
\@ifundefined{ds@\CurrentOption}%
|
|
{\@use@ption
|
|
\default@ds}%
|
|
\@use@ption}%
|
|
\@for\CurrentOption:=\@declaredoptions\do{%
|
|
\expandafter\let\csname ds@\CurrentOption\endcsname\relax}%
|
|
\let\CurrentOption\@empty
|
|
\let\@fileswith@pti@ns\@@fileswith@pti@ns
|
|
\AtEndOfPackage{\let\@unprocessedoptions\relax}}
|
|
\@onlypreamble\@process@pti@ns
|
|
\def\@options{\ProcessOptions*}
|
|
\@onlypreamble\@options
|
|
\def\@use@ption{%
|
|
\@expandtwoargs\@removeelement\CurrentOption
|
|
\@unusedoptionlist\@unusedoptionlist
|
|
\csname ds@\CurrentOption\endcsname}
|
|
\@onlypreamble\@use@ption
|
|
\def\ExecuteOptions#1{%
|
|
\edef\@fortmp{\zap@space#1 \@empty}%
|
|
\def\reserved@a##1\@nil{%
|
|
\@for\CurrentOption:=\@fortmp\do
|
|
{\csname ds@\CurrentOption\endcsname}%
|
|
\edef\CurrentOption{##1}}%
|
|
\expandafter\reserved@a\CurrentOption\@nil}
|
|
\@onlypreamble\ExecuteOptions
|
|
\def\documentclass{%
|
|
\let\documentclass\@twoclasseserror
|
|
\if@compatibility\else\let\usepackage\RequirePackage\fi
|
|
\@fileswithoptions\@clsextension}
|
|
\@onlypreamble\documentclass
|
|
\def\documentstyle{%
|
|
\makeatletter\input{latex209.def}\makeatother
|
|
\documentclass}
|
|
\@onlypreamble\documentstyle
|
|
\def\RequirePackage{%
|
|
\@fileswithoptions\@pkgextension}
|
|
\@onlypreamble\RequirePackage
|
|
\def\LoadClass{%
|
|
\ifx\@currext\@pkgextension
|
|
\@latex@error
|
|
{\noexpand\LoadClass in package file}%
|
|
{You may only use \noexpand\LoadClass in a class file.}%
|
|
\fi
|
|
\@fileswithoptions\@clsextension}
|
|
\@onlypreamble\LoadClass
|
|
\def\@loadwithoptions#1#2#3{%
|
|
\expandafter\let\csname opt@#3.#1\expandafter\endcsname
|
|
\csname opt@\@currname.\@currext\endcsname
|
|
#2{#3}}
|
|
\@onlypreamble\@loadwithoptions
|
|
\def\LoadClassWithOptions{%
|
|
\@loadwithoptions\@clsextension\LoadClass}
|
|
\@onlypreamble\LoadClassWithOptions
|
|
\def\RequirePackageWithOptions{%
|
|
\AtEndOfPackage{\let\@unprocessedoptions\relax}%
|
|
\@loadwithoptions\@pkgextension\RequirePackage}
|
|
\@onlypreamble\RequirePackageWithOptions
|
|
\def\usepackage#1#{%
|
|
\@latex@error
|
|
{\noexpand \usepackage before \string\documentclass}%
|
|
{\noexpand \usepackage may only appear in the document
|
|
preamble, i.e.,\MessageBreak
|
|
between \noexpand\documentclass and
|
|
\string\begin{document}.}%
|
|
\@gobble}
|
|
\@onlypreamble\usepackage
|
|
\def\NeedsTeXFormat#1{%
|
|
\def\reserved@a{#1}%
|
|
\ifx\reserved@a\fmtname
|
|
\expandafter\@needsformat
|
|
\else
|
|
\@latex@error{This file needs format `\reserved@a'%
|
|
\MessageBreak but this is `\fmtname'}{%
|
|
The current input file will not be processed
|
|
further,\MessageBreak
|
|
because it was written for some other flavor of
|
|
TeX.\MessageBreak\@ehd}%
|
|
\endinput \fi}
|
|
\@onlypreamble\NeedsTeXFormat
|
|
\def\@needsformat{%
|
|
\@ifnextchar[%]
|
|
\@needsf@rmat
|
|
{}}
|
|
\@onlypreamble\@needsformat
|
|
\def\@needsf@rmat[#1]{%
|
|
\@ifl@t@r\fmtversion{#1}{}%
|
|
{\@latex@warning@no@line
|
|
{You have requested release `#1' of LaTeX,\MessageBreak
|
|
but only release `\fmtversion' is available}}}
|
|
\@onlypreamble\@needsf@rmat
|
|
\def\zap@space#1 #2{%
|
|
#1%
|
|
\ifx#2\@empty\else\expandafter\zap@space\fi
|
|
#2}
|
|
\def\@fileswithoptions#1{%
|
|
\@ifnextchar[%]
|
|
{\@fileswith@ptions#1}%
|
|
{\@fileswith@ptions#1[]}}
|
|
\@onlypreamble\@fileswithoptions
|
|
\def\@fileswith@ptions#1[#2]#3{%
|
|
\@ifnextchar[%]
|
|
{\@fileswith@pti@ns#1[{#2}]#3}%
|
|
{\@fileswith@pti@ns#1[{#2}]#3[]}}
|
|
\@onlypreamble\@fileswith@ptions
|
|
\def\@fileswith@pti@ns#1[#2]#3[#4]{%
|
|
\ifx#1\@clsextension
|
|
\ifx\@classoptionslist\relax
|
|
\xdef\@classoptionslist{\zap@space#2 \@empty}%
|
|
\def\reserved@a{%
|
|
\@onefilewithoptions#3[{#2}][{#4}]#1%
|
|
\@documentclasshook}%
|
|
\else
|
|
\def\reserved@a{%
|
|
\@onefilewithoptions#3[{#2}][{#4}]#1}%
|
|
\fi
|
|
\else
|
|
\def\reserved@b##1,{%
|
|
\ifx\@nnil##1\relax\else
|
|
\ifx\@nnil##1\@nnil\else
|
|
\noexpand\@onefilewithoptions##1[{#2}][{#4}]%
|
|
\noexpand\@pkgextension
|
|
\fi
|
|
\expandafter\reserved@b
|
|
\fi}%
|
|
\edef\reserved@a{\zap@space#3 \@empty}%
|
|
\edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nnil,}%
|
|
\fi
|
|
\reserved@a}
|
|
\@onlypreamble\@fileswith@pti@ns
|
|
\def\@onefilewithoptions#1[#2][#3]#4{%
|
|
\@pushfilename
|
|
\xdef\@currname{#1}%
|
|
\global\let\@currext#4%
|
|
\let\CurrentOption\@empty
|
|
\@reset@ptions
|
|
\makeatletter
|
|
\def\reserved@a{%
|
|
\@ifl@aded\@currext{#1}%
|
|
{\@if@ptions\@currext{#1}{#2}{}%
|
|
{\@latex@error
|
|
{Option clash for \@cls@pkg\space #1}%
|
|
{The package #1 has already been loaded
|
|
with options:\MessageBreak
|
|
\space\space[\@ptionlist{#1.\@currext}]\MessageBreak
|
|
There has now been an attempt to load it
|
|
with options\MessageBreak
|
|
\space\space[#2]\MessageBreak
|
|
Adding the global options:\MessageBreak
|
|
\space\space
|
|
\@ptionlist{#1.\@currext},#2\MessageBreak
|
|
to your \noexpand\documentclass declaration may fix this.%
|
|
\MessageBreak
|
|
Try typing \space <return> \space to proceed.}}}%
|
|
{\@pass@ptions\@currext{#2}{#1}%
|
|
\global\expandafter
|
|
\let\csname ver@\@currname.\@currext\endcsname\@empty
|
|
\expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
|
|
\InputIfFileExists
|
|
{\@currname.\@currext}%
|
|
{}%
|
|
{\@missingfileerror\@currname\@currext}%
|
|
\let\@unprocessedoptions\@@unprocessedoptions
|
|
\csname\@currname.\@currext-h@@k\endcsname
|
|
\expandafter\let\csname\@currname.\@currext-h@@k\endcsname
|
|
\@undefined
|
|
\@unprocessedoptions}%
|
|
\@ifl@ter\@currext{#1}{#3}{}%
|
|
{\@latex@warning@no@line
|
|
{You have requested,\on@line,
|
|
version\MessageBreak
|
|
`#3' of \@cls@pkg\space #1,\MessageBreak
|
|
but only version\MessageBreak
|
|
`\csname ver@#1.\@currext\endcsname'\MessageBreak
|
|
is available}}%
|
|
\ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi
|
|
\@popfilename
|
|
\@reset@ptions}%
|
|
\reserved@a}
|
|
\@onlypreamble\@onefilewithoptions
|
|
\let\@@fileswith@pti@ns\@fileswith@pti@ns
|
|
\@onlypreamble\@@fileswith@pti@ns
|
|
\def\@reset@ptions{%
|
|
\global\ifx\@currext\@clsextension
|
|
\let\default@ds\OptionNotUsed
|
|
\else
|
|
\let\default@ds\@unknownoptionerror
|
|
\fi
|
|
\global\let\ds@\@empty
|
|
\global\let\@declaredoptions\@empty}
|
|
\@onlypreamble\@reset@ptions
|
|
\ifx\@begindocumenthook\@undefined
|
|
\let\@begindocumenthook\@empty
|
|
\fi
|
|
\let\@enddocumenthook\@empty
|
|
\long\def\g@addto@macro#1#2{%
|
|
\begingroup
|
|
\toks@\expandafter{#1#2}%
|
|
\xdef#1{\the\toks@}%
|
|
\endgroup}
|
|
\def\AtEndOfPackage{%
|
|
\expandafter\g@addto@macro\csname\@currname.\@currext-h@@k\endcsname}
|
|
\let\AtEndOfClass\AtEndOfPackage
|
|
\@onlypreamble\AtEndOfPackage
|
|
\@onlypreamble\AtEndOfClass
|
|
\DeclareRobustCommand\AtBeginDocument{\g@addto@macro\@begindocumenthook}
|
|
\DeclareRobustCommand\AtEndDocument{\g@addto@macro\@enddocumenthook}
|
|
\@onlypreamble\AtBeginDocument
|
|
\def\@cls@pkg{%
|
|
\ifx\@currext\@clsextension
|
|
document class%
|
|
\else
|
|
package%
|
|
\fi}
|
|
\@onlypreamble\@cls@pkg
|
|
\def\@unknownoptionerror{%
|
|
\@latex@error
|
|
{Unknown option `\CurrentOption' for \@cls@pkg\space`\@currname'}%
|
|
{The option `\CurrentOption' was not declared in
|
|
\@cls@pkg\space`\@currname', perhaps you\MessageBreak
|
|
misspelled its name.
|
|
Try typing \space <return>
|
|
\space to proceed.}}
|
|
\@onlypreamble\@unknownoptionerror
|
|
\def\@@unprocessedoptions{%
|
|
\ifx\@currext\@pkgextension
|
|
\edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
|
|
\@for\CurrentOption:=\@curroptions\do{%
|
|
\ifx\CurrentOption\@empty\else\@unknownoptionerror\fi}%
|
|
\fi}
|
|
\@onlypreamble\@unprocessedoptions
|
|
\@onlypreamble\@@unprocessedoptions
|
|
\def\@badrequireerror#1[#2]#3[#4]{%
|
|
\@latex@error
|
|
{\noexpand\RequirePackage or \noexpand\LoadClass
|
|
in Options Section}%
|
|
{The \@cls@pkg\space `\@currname' is defective.\MessageBreak
|
|
It attempts to load `#3' in the options section, i.e.,\MessageBreak
|
|
between \noexpand\DeclareOption and \string\ProcessOptions.}}
|
|
\@onlypreamble\@badrequireerror
|
|
\def\@twoloadclasserror{%
|
|
\@latex@error
|
|
{Two \noexpand\LoadClass commands}%
|
|
{You may only use one \noexpand\LoadClass in a class file}}
|
|
\@onlypreamble\@twoloadclasserror
|
|
\def\@twoclasseserror#1#{%
|
|
\@latex@error
|
|
{Two \noexpand\documentclass or \noexpand\documentstyle commands}%
|
|
{The document may only declare one class.}\@gobble}
|
|
\@onlypreamble\@twoclasseserror
|
|
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
|
|
\def\filecontents{\@tempswatrue\@fileswtrue
|
|
\@ifnextchar[\filec@ntents@opt\filec@ntents
|
|
}
|
|
\@namedef{filecontents*}{\@tempswafalse\@fileswtrue
|
|
\@ifnextchar[\filec@ntents@opt\filec@ntents
|
|
}
|
|
\def\filec@ntents@opt[#1]{%
|
|
\edef\@fortmp{\zap@space#1 \@empty}%
|
|
\@for\reserved@a:=\@fortmp\do{%
|
|
\ifcsname filec@ntents@\reserved@a\endcsname
|
|
\csname filec@ntents@\reserved@a\endcsname
|
|
\else
|
|
\@latex@error{Unknown filecontents option \reserved@a}%
|
|
{Valid options are force (or overwrite), nosearch, noheader}%
|
|
\fi}%
|
|
\filec@ntents
|
|
}
|
|
\let\filec@ntents@force\@fileswfalse
|
|
\let\filec@ntents@overwrite\@fileswfalse % alternative name
|
|
\let\filec@ntents@noheader\@tempswafalse
|
|
\def\filec@ntents@nosearch{%
|
|
\let\filec@ntents@checkdir\@currdir
|
|
\def\filec@ntents@where{in current directory}}
|
|
\let\filec@ntents@checkdir\@empty
|
|
\def\filec@ntents@where{exists on the system}
|
|
\begingroup%
|
|
\@tempcnta=1
|
|
\loop
|
|
\catcode\@tempcnta=12 %
|
|
\advance\@tempcnta\@ne %
|
|
\ifnum\@tempcnta<32 %
|
|
\repeat %
|
|
\catcode`\*=11 %
|
|
\catcode`\^^M\active%
|
|
\catcode`\^^L\active\let^^L\relax%
|
|
\catcode`\^^I\active%
|
|
\gdef\filec@ntents#1{%
|
|
\set@curr@file{\filec@ntents@checkdir#1}%
|
|
\edef\q@curr@file{\expandafter\quote@name\expandafter{\@curr@file}}%
|
|
\chardef\reserved@c\ifx\directlua\@undefined 15 \else 127 \fi%
|
|
\openin\@inputcheck\q@curr@file \space %
|
|
\ifeof\@inputcheck%
|
|
\@latex@warning@no@line%
|
|
{Writing file `\@currdir\@curr@file'}%
|
|
\ch@ck7\reserved@c\write\relax%
|
|
\immediate\openout\reserved@c\q@curr@file\relax%
|
|
\else%
|
|
\if@filesw%
|
|
\@latex@warning@no@line%
|
|
{File `\@curr@file' already \filec@ntents@where.\MessageBreak%
|
|
Not generating it from this source}%
|
|
\let\write\@gobbletwo%
|
|
\let\closeout\@gobble%
|
|
\else%
|
|
\edef\reserved@a{#1}%
|
|
\edef\reserved@a{\detokenize\expandafter{\reserved@a}}%
|
|
\edef\reserved@b{\detokenize\expandafter{\jobname}}%
|
|
\ifx\reserved@a\reserved@b%
|
|
\@fileswtrue%
|
|
\else%
|
|
\edef\reserved@b{\reserved@b\detokenize{.tex}}%
|
|
\ifx\reserved@a\reserved@b
|
|
\@fileswtrue%
|
|
\fi%
|
|
\fi%
|
|
\ch@ck7\reserved@c\write\relax%
|
|
\if@filesw% % Foul ... trying to overwrite \jobname!
|
|
\@latex@error{Trying to overwrite `\jobname.tex'}{You can't %
|
|
write to the file you are reading from!\MessageBreak%
|
|
Data is written to screen instead.}%
|
|
\else%
|
|
\@latex@warning@no@line%
|
|
{Writing or overwriting file `\@currdir\@curr@file'}%
|
|
\immediate\openout\reserved@c\q@curr@file\relax%
|
|
\fi%
|
|
\fi%
|
|
\fi%
|
|
\closein\@inputcheck%
|
|
\if@tempswa%
|
|
\immediate\write\reserved@c{%
|
|
\@percentchar\@percentchar\space%
|
|
\expandafter\@gobble\string\LaTeX2e file `\@curr@file'^^J%
|
|
\@percentchar\@percentchar\space generated by the %
|
|
`\@currenvir' \expandafter\@gobblefour\string\newenvironment^^J%
|
|
\@percentchar\@percentchar\space from source `\jobname' on %
|
|
\number\year/\two@digits\month/\two@digits\day.^^J%
|
|
\@percentchar\@percentchar}%
|
|
\fi%
|
|
\let\do\@makeother\dospecials%
|
|
\count@ 128\relax%
|
|
\loop%
|
|
\catcode\count@ 11\relax%
|
|
\advance\count@ \@ne%
|
|
\ifnum\count@<\@cclvi%
|
|
\repeat%
|
|
\edef\E{\@backslashchar end\string{\@currenvir\string}}%
|
|
\edef\reserved@b{%
|
|
\def\noexpand\reserved@b%
|
|
####1\E####2\E####3\relax}%
|
|
\reserved@b{%
|
|
\ifx\relax##3\relax%
|
|
\immediate\write\reserved@c{##1}%
|
|
\else%
|
|
\edef^^M{\noexpand\end{\@currenvir}}%
|
|
\ifx\relax##1\relax%
|
|
\else%
|
|
\@latex@warning{Writing text `##1' before %
|
|
\string\end{\@currenvir}\MessageBreak as last line of \@curr@file}%
|
|
\immediate\write\reserved@c{##1}%
|
|
\fi%
|
|
\ifx\relax##2\relax%
|
|
\else%
|
|
\@latex@warning{%
|
|
Ignoring text `##2' after \string\end{\@currenvir}}%
|
|
\fi%
|
|
\fi%
|
|
^^M}%
|
|
\catcode`\^^L\active%
|
|
\let\L\@undefined%
|
|
\def^^L{\expandafter\ifx\csname L\endcsname\relax\fi ^^J^^J}%
|
|
\catcode`\^^I\active%
|
|
\let\I\@undefined%
|
|
\def^^I{\expandafter\ifx\csname I\endcsname\relax\fi\space}%
|
|
\catcode`\^^M\active%
|
|
\edef^^M##1^^M{%
|
|
\noexpand\reserved@b##1\E\E\relax}}%
|
|
\endgroup%
|
|
\begingroup
|
|
\catcode`|=\catcode`\%
|
|
\catcode`\%=12
|
|
\catcode`\*=11
|
|
\gdef\@percentchar{%}
|
|
\gdef\endfilecontents{|
|
|
\immediate\closeout\reserved@c
|
|
\def\T##1##2##3{|
|
|
\ifx##1\@undefined\else
|
|
\@latex@warning@no@line{##2 has been converted to Blank ##3e}|
|
|
\fi}|
|
|
\T\L{Form Feed}{Lin}|
|
|
\T\I{Tab}{Spac}|
|
|
\immediate\write\@unused{}}
|
|
\global\let\endfilecontents*\endfilecontents
|
|
\endgroup
|
|
\let\pkgcls@debug\@gobble
|
|
\def\requestedLaTeXdate{0}
|
|
\ifx\pkgcls@targetdate\@undefined
|
|
\newcount\pkgcls@targetdate
|
|
\fi
|
|
\let\pkgcls@targetlabel\@empty
|
|
\def\pkgcls@innerdate{\maxdimen}
|
|
\let\pkgcls@candidate\@empty
|
|
\let\pkgcls@releasedate\@empty
|
|
\ifx\load@onefilewithoptions\@undefined
|
|
\let\load@onefilewithoptions\@onefilewithoptions
|
|
\def\@onefilewithoptions#1[#2][#3]#4{%
|
|
\pkgcls@debug{--- File loaded request (\noexpand\usepackage or ...)}%
|
|
\pkgcls@debug{\@spaces 1: #1}%
|
|
\pkgcls@debug{\@spaces 2: #2}%
|
|
\pkgcls@debug{\@spaces 3: #3}%
|
|
\pkgcls@debug{\@spaces 4: #4}%
|
|
\def\pkgcls@name{#1}% % for info message
|
|
\def\pkgcls@arg {#3}% % for info message
|
|
\pkgcls@parse@date@arg{#3}%
|
|
\let\pkgcls@candidate\@empty
|
|
\begingroup
|
|
\edef\reserved@a{%
|
|
\endgroup
|
|
\unexpanded{\load@onefilewithoptions#1[#2]}%
|
|
[\pkgcls@mindate]%
|
|
\unexpanded{#4}}%
|
|
\reserved@a
|
|
}
|
|
\fi
|
|
\def\pkgcls@parse@date@arg #1{%
|
|
\ifx\@nil#1\@nil
|
|
\pkgcls@targetdate\requestedLaTeXdate\relax
|
|
\let\pkgcls@targetlabel\@empty
|
|
\let\pkgcls@mindate\@empty
|
|
\else
|
|
\pkgcls@parse@date@arg@#1=\@nil\relax
|
|
\fi
|
|
}
|
|
\def\pkgcls@parse@date@arg@#1=#2\@nil{%
|
|
\pkgcls@targetdate
|
|
\ifx\@nil#1\@nil
|
|
\@parse@version0#2//00\@nil\relax
|
|
\ifnum \pkgcls@targetdate=\z@
|
|
\pkgcls@targetdate\@ne
|
|
\def\pkgcls@innerdate{\maxdimen}%
|
|
\pkgcls@parse@date@arg@version#2%
|
|
\else
|
|
\edef\pkgcls@innerdate{\the\pkgcls@targetdate}%
|
|
\fi
|
|
\let\pkgcls@mindate\@empty
|
|
\else
|
|
\requestedLaTeXdate\relax
|
|
\let\pkgcls@targetlabel\@empty
|
|
\def\pkgcls@innerdate{\maxdimen}%
|
|
\def\pkgcls@mindate{#1}%
|
|
\ifnum \pkgcls@targetdate > \z@
|
|
\ifnum \@parse@version0#1//00\@nil > \pkgcls@targetdate
|
|
\@latex@warning@no@line{Suspicious rollback/min-date date given\MessageBreak
|
|
A minimal date of #1 has been specified for
|
|
\@cls@pkg\MessageBreak '\pkgcls@name'.\MessageBreak
|
|
But this is in conflict
|
|
with a rollback request to \requestedpatchdate}
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\pkgcls@parse@date@arg@version#1={%
|
|
\def\pkgcls@targetlabel{#1}}
|
|
\def\DeclareRelease#1#2#3{%
|
|
\ifnum\pkgcls@targetdate>\z@ % some sort of rollback request
|
|
\pkgcls@debug{---\string\DeclareRelease:}%
|
|
\pkgcls@debug{\@spaces 1: #1}%
|
|
\pkgcls@debug{\@spaces 2: #2}%
|
|
\pkgcls@debug{\@spaces 3: #3}%
|
|
\ifx\@nil#2\@nil
|
|
\ifnum\pkgcls@targetdate=\@ne % named request
|
|
\def\reserved@a{#1}%
|
|
\ifx\pkgcls@targetlabel\reserved@a
|
|
\pkgcls@use@this@release{#3}{}%
|
|
\else
|
|
\pkgcls@debug{Label doesn't match}%
|
|
\fi
|
|
\else
|
|
\pkgcls@debug{Date request: ignored}%
|
|
\fi
|
|
\else
|
|
\ifnum\pkgcls@targetdate>\@ne % a real request
|
|
\ifnum\@parse@version#2//00\@nil
|
|
>\pkgcls@targetdate
|
|
\ifx\pkgcls@candidate\@empty
|
|
\pkgcls@rollbackdate@error{#2}%
|
|
\pkgcls@use@this@release{#3}{#2}%
|
|
\else
|
|
\pkgcls@use@this@release\pkgcls@candidate
|
|
\pkgcls@releasedate
|
|
\fi
|
|
\else
|
|
\def\pkgcls@candidate{#3}%
|
|
\def\pkgcls@releasedate{#2}%
|
|
\pkgcls@debug{New candidate: #3}%
|
|
\fi
|
|
\else
|
|
\def\reserved@a{#1}%
|
|
\ifx\pkgcls@targetlabel\reserved@a
|
|
\pkgcls@use@this@release{#3}{#2}%
|
|
\else
|
|
\pkgcls@debug{Label doesn't match}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\pkgcls@use@this@release#1#2{%
|
|
\pkgcls@show@selection{#1}{#2}%
|
|
\pkgcls@targetdate\z@
|
|
\@@input #1\relax
|
|
\endinput
|
|
}
|
|
\def\pkgcls@show@selection#1#2{%
|
|
\pkgcls@debug{Result: use #1}%
|
|
\GenericInfo
|
|
{\@spaces\@spaces\space}{Rollback for
|
|
\@cls@pkg\space'\@currname' requested ->
|
|
\ifnum\pkgcls@targetdate>\@ne
|
|
date
|
|
\ifnum\requestedLaTeXdate=\pkgcls@targetdate
|
|
\requestedpatchdate
|
|
\else
|
|
\expandafter\@gobble\pkgcls@arg
|
|
\fi.\MessageBreak
|
|
Best approximation is
|
|
\else
|
|
version '\pkgcls@targetlabel'.\MessageBreak
|
|
This corresponds to
|
|
\fi
|
|
\ifx\@nil#2\@nil
|
|
a special release%
|
|
\else
|
|
the release introduced on #2%
|
|
\fi
|
|
\@gobble}%
|
|
}
|
|
\def\pkgcls@rollbackdate@error#1{%
|
|
\@latex@error{Suspicious rollback date given}%
|
|
{The \@cls@pkg\space'\@currname' claims that it
|
|
came into existence on #1 which\MessageBreak
|
|
is after your requested rollback date --- so
|
|
something is wrong here.\MessageBreak
|
|
Continue and we use the earliest known release.}}
|
|
\def\DeclareCurrentRelease#1#2{%
|
|
\ifnum\pkgcls@targetdate>\z@ % some sort of rollback request
|
|
\pkgcls@debug{---DeclareCurrentRelease}%
|
|
\pkgcls@debug{ 1: #1}%
|
|
\pkgcls@debug{ 2: #2}%
|
|
\ifnum\pkgcls@targetdate>\@ne % a date request
|
|
\ifnum\@parse@version#2//00\@nil
|
|
>\pkgcls@targetdate
|
|
\ifx\pkgcls@candidate\@empty
|
|
\pkgcls@rollbackdate@error{#2}%
|
|
\else
|
|
\pkgcls@use@this@release\pkgcls@candidate
|
|
\pkgcls@releasedate
|
|
\fi
|
|
\else
|
|
\pkgcls@show@selection{current version}{#2}%
|
|
\fi
|
|
\else % a label request
|
|
\def\reserved@a{#1}%
|
|
\ifx\pkgcls@targetlabel\reserved@a
|
|
\pkgcls@show@selection{current version}{#2}%
|
|
\else
|
|
\@latex@error{Requested version '\pkgcls@targetlabel' for
|
|
\@cls@pkg\space'\@currname' is unknown}\@ehc
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\DeclareRobustCommand\IfTargetDateBefore[1]{%
|
|
\ifnum\pkgcls@innerdate <%
|
|
\expandafter\@parse@version\expandafter0#1//00\@nil
|
|
\typeout{Exclude code introduced on #1}%
|
|
\expandafter\@firstoftwo
|
|
\else
|
|
\typeout{Include code introduced on #1}%
|
|
\expandafter\@secondoftwo
|
|
\fi
|
|
}
|
|
%%% From File: ltluatex.dtx
|
|
\ifx\directlua\@undefined\else
|
|
\ifnum\luatexversion<60 %
|
|
\wlog{***************************************************}
|
|
\wlog{* LuaTeX version too old for ltluatex support *}
|
|
\wlog{***************************************************}
|
|
\expandafter\endinput
|
|
\fi
|
|
\ifx\e@alloc@attribute@count\@undefined
|
|
\countdef\e@alloc@attribute@count=258
|
|
\fi
|
|
\def\newattribute#1{%
|
|
\e@alloc\attribute\attributedef
|
|
\e@alloc@attribute@count\m@ne\e@alloc@top#1%
|
|
}
|
|
\e@alloc@attribute@count=\z@
|
|
\def\setattribute#1#2{#1=\numexpr#2\relax}
|
|
\def\unsetattribute#1{#1=-"7FFFFFFF\relax}
|
|
\ifx\e@alloc@ccodetable@count\@undefined
|
|
\countdef\e@alloc@ccodetable@count=259
|
|
\fi
|
|
\def\newcatcodetable#1{%
|
|
\e@alloc\catcodetable\chardef
|
|
\e@alloc@ccodetable@count\m@ne{"8000}#1%
|
|
\initcatcodetable\allocationnumber
|
|
}
|
|
\e@alloc@ccodetable@count=\z@
|
|
\newcatcodetable\catcodetable@initex
|
|
\newcatcodetable\catcodetable@string
|
|
\begingroup
|
|
\def\setrangecatcode#1#2#3{%
|
|
\ifnum#1>#2 %
|
|
\expandafter\@gobble
|
|
\else
|
|
\expandafter\@firstofone
|
|
\fi
|
|
{%
|
|
\catcode#1=#3 %
|
|
\expandafter\setrangecatcode\expandafter
|
|
{\number\numexpr#1 + 1\relax}{#2}{#3}
|
|
}%
|
|
}
|
|
\@firstofone{%
|
|
\catcodetable\catcodetable@initex
|
|
\catcode0=12 %
|
|
\catcode13=12 %
|
|
\catcode37=12 %
|
|
\setrangecatcode{65}{90}{12}%
|
|
\setrangecatcode{97}{122}{12}%
|
|
\catcode92=12 %
|
|
\catcode127=12 %
|
|
\savecatcodetable\catcodetable@string
|
|
\endgroup
|
|
}%
|
|
\newcatcodetable\catcodetable@latex
|
|
\newcatcodetable\catcodetable@atletter
|
|
\begingroup
|
|
\def\parseunicodedataI#1;#2;#3;#4\relax{%
|
|
\parseunicodedataII#1;#3;#2 First>\relax
|
|
}%
|
|
\def\parseunicodedataII#1;#2;#3 First>#4\relax{%
|
|
\ifx\relax#4\relax
|
|
\expandafter\parseunicodedataIII
|
|
\else
|
|
\expandafter\parseunicodedataIV
|
|
\fi
|
|
{#1}#2\relax%
|
|
}%
|
|
\def\parseunicodedataIII#1#2#3\relax{%
|
|
\ifnum 0%
|
|
\if L#21\fi
|
|
\if M#21\fi
|
|
>0 %
|
|
\catcode"#1=11 %
|
|
\fi
|
|
}%
|
|
\def\parseunicodedataIV#1#2#3\relax{%
|
|
\read\unicoderead to \unicodedataline
|
|
\if L#2%
|
|
\count0="#1 %
|
|
\expandafter\parseunicodedataV\unicodedataline\relax
|
|
\fi
|
|
}%
|
|
\def\parseunicodedataV#1;#2\relax{%
|
|
\loop
|
|
\unless\ifnum\count0>"#1 %
|
|
\catcode\count0=11 %
|
|
\advance\count0 by 1 %
|
|
\repeat
|
|
}%
|
|
\def\storedpar{\par}%
|
|
\chardef\unicoderead=\numexpr\count16 + 1\relax
|
|
\openin\unicoderead=UnicodeData.txt %
|
|
\loop\unless\ifeof\unicoderead %
|
|
\read\unicoderead to \unicodedataline
|
|
\unless\ifx\unicodedataline\storedpar
|
|
\expandafter\parseunicodedataI\unicodedataline\relax
|
|
\fi
|
|
\repeat
|
|
\closein\unicoderead
|
|
\@firstofone{%
|
|
\catcode64=12 %
|
|
\savecatcodetable\catcodetable@latex
|
|
\catcode64=11 %
|
|
\savecatcodetable\catcodetable@atletter
|
|
}
|
|
\endgroup
|
|
\ifx\e@alloc@luafunction@count\@undefined
|
|
\countdef\e@alloc@luafunction@count=260
|
|
\fi
|
|
\def\newluafunction{%
|
|
\e@alloc\luafunction\e@alloc@chardef
|
|
\e@alloc@luafunction@count\m@ne\e@alloc@top
|
|
}
|
|
\e@alloc@luafunction@count=\z@
|
|
\ifx\e@alloc@whatsit@count\@undefined
|
|
\countdef\e@alloc@whatsit@count=261
|
|
\fi
|
|
\def\newwhatsit#1{%
|
|
\e@alloc\whatsit\e@alloc@chardef
|
|
\e@alloc@whatsit@count\m@ne\e@alloc@top#1%
|
|
}
|
|
\e@alloc@whatsit@count=\z@
|
|
\ifx\e@alloc@bytecode@count\@undefined
|
|
\countdef\e@alloc@bytecode@count=262
|
|
\fi
|
|
\def\newluabytecode#1{%
|
|
\e@alloc\luabytecode\e@alloc@chardef
|
|
\e@alloc@bytecode@count\m@ne\e@alloc@top#1%
|
|
}
|
|
\e@alloc@bytecode@count=\z@
|
|
|
|
\ifx\e@alloc@luachunk@count\@undefined
|
|
\countdef\e@alloc@luachunk@count=263
|
|
\fi
|
|
\def\newluachunkname#1{%
|
|
\e@alloc\luachunk\e@alloc@chardef
|
|
\e@alloc@luachunk@count\m@ne\e@alloc@top#1%
|
|
{\escapechar\m@ne
|
|
\directlua{lua.name[\the\allocationnumber]="\string#1"}}%
|
|
}
|
|
\e@alloc@luachunk@count=\z@
|
|
\everyjob\expandafter{%
|
|
\the\everyjob
|
|
\begingroup
|
|
\attributedef\attributezero=0 %
|
|
\chardef \charzero =0 %
|
|
\countdef \CountZero =0 %
|
|
\dimendef \dimenzero =0 %
|
|
\mathchardef \mathcharzero =0 %
|
|
\muskipdef \muskipzero =0 %
|
|
\skipdef \skipzero =0 %
|
|
\toksdef \tokszero =0 %
|
|
\directlua{require("ltluatex")}
|
|
\endgroup
|
|
}
|
|
\everyjob\expandafter{%
|
|
\the\everyjob
|
|
\directlua{%
|
|
if xpcall(function ()%
|
|
require('luaotfload-main')%
|
|
end,texio.write_nl) then %
|
|
local _void = luaotfload.main ()%
|
|
else %
|
|
texio.write_nl('Error in luaotfload: reverting to OT1')%
|
|
tex.print('\string\\def\string\\encodingdefault{OT1}')%
|
|
end %
|
|
}%
|
|
\let\f@encoding\encodingdefault
|
|
\expandafter\let\csname ver@luaotfload.sty\endcsname\fmtversion
|
|
}
|
|
\fi
|
|
%%% From File: ltfinal.dtx
|
|
\tracingstats1
|
|
\newcount\@lowpenalty
|
|
\newcount\@medpenalty
|
|
\newcount\@highpenalty
|
|
\ifx\marks\@undefined\else
|
|
\def\newmarks{%
|
|
\e@alloc\marks \e@alloc@chardef{\count256}\m@ne\e@alloc@top}
|
|
\fi
|
|
\ifx\XeTeXcharclass\@undefined
|
|
\else
|
|
\ifdim\the\XeTeXversion\XeTeXrevision\p@>0.99993\p@
|
|
\chardef\e@alloc@intercharclass@top=4095
|
|
\else
|
|
\chardef\e@alloc@intercharclass@top=255
|
|
\fi
|
|
\def\newXeTeXintercharclass{%
|
|
\e@alloc\XeTeXcharclass
|
|
\chardef\xe@alloc@intercharclass\m@ne\e@alloc@intercharclass@top}
|
|
\fi
|
|
\ifx\XeTeXcharclass\@undefined
|
|
\else
|
|
\countdef\xe@alloc@intercharclass=257
|
|
\xe@alloc@intercharclass=\z@
|
|
\fi
|
|
\unitlength = 1pt
|
|
\fboxsep = 3pt
|
|
\fboxrule = .4pt
|
|
\@maxdepth = \maxdepth
|
|
\vsize = 1000pt
|
|
\@colroom = \vsize
|
|
\@colht = \vsize
|
|
\textheight=.5\maxdimen
|
|
\textwidth=\textheight
|
|
\ps@empty
|
|
\ifnum 0%
|
|
\ifx\Umathcode\@undefined\else 1\fi
|
|
\ifx\XeTeXmathcode\@undefined\else 1\fi
|
|
>\z@
|
|
\message{ Unicode character data,}
|
|
\input{load-unicode-data}
|
|
\lccode`\- =`\- % default hyphen char
|
|
\else
|
|
\def\reserved@a#1#2{%
|
|
\@tempcnta#1\relax
|
|
\@tempcntb#2\relax
|
|
\reserved@b
|
|
}
|
|
\def\reserved@b{%
|
|
\ifnum\@tempcnta>\@tempcntb\else
|
|
\reserved@c\@tempcnta
|
|
\advance\@tempcnta\@ne
|
|
\expandafter\reserved@b
|
|
\fi
|
|
}
|
|
\def\reserved@c#1{%
|
|
\count@=#1\advance\count@ by -"20
|
|
\uccode#1=\count@
|
|
\lccode#1=#1
|
|
}
|
|
\reserved@a{`\a}{`\z}
|
|
\reserved@a{"A0}{"BC}
|
|
\reserved@a{"E0}{"FF}
|
|
\def\reserved@c#1{%
|
|
\count@=#1\advance\count@ by "20
|
|
\uccode#1=#1
|
|
\lccode#1=\count@
|
|
\sfcode#1=999
|
|
}
|
|
\reserved@a{`\A}{`\Z}
|
|
\reserved@a{"80}{"9C}
|
|
\reserved@a{"C0}{"DF}
|
|
\uccode`\^^Y=`\I % dotless i
|
|
\lccode`\^^Y=`\^^Y % dotless i
|
|
\uccode`\^^Z=`\J % dotless j, ae in OT1
|
|
\lccode`\^^Z=`\^^Z % dotless j, ae in OT1
|
|
\lccode`\^^9d=`\i % dotted I
|
|
\uccode`\^^9d=`\^^9d % dotted I
|
|
\lccode`\^^9e=`\^^9e % d-bar
|
|
\uccode`\^^9e=`\^^d0 % d-bar
|
|
\lccode`\^^[=`\^^[ % oe in OT1
|
|
\lccode`\- =`\- % default hyphen char
|
|
\lccode 127=127 % alternate hyphen char
|
|
\lccode 23 =23 % textcompwordmark in T1
|
|
\fi
|
|
\ifx\XeTeXuseglyphmetrics\@undefined
|
|
\else
|
|
\XeTeXuseglyphmetrics=1 %
|
|
\XeTeXdashbreakstate=1 %
|
|
\fi
|
|
\InputIfFileExists{hyphen.cfg}
|
|
{\typeout{===========================================^^J%
|
|
Local configuration file hyphen.cfg used^^J%
|
|
===========================================}%
|
|
\def\@addtofilelist##1{\xdef\@filelist{\@filelist,##1}}%
|
|
}
|
|
{\input{hyphen.ltx}}
|
|
\let\@addtofilelist\@gobble
|
|
\ifx\l@nohyphenation \@undefined
|
|
\newlanguage\l@nohyphenation
|
|
\fi
|
|
\let\document@default@language\m@ne
|
|
\ifdim \font@submax >\z@
|
|
\@font@warning{Size substitutions with differences\MessageBreak
|
|
up to \font@submax\space have occurred.\MessageBreak
|
|
\MessageBreak
|
|
Please check the transcript file
|
|
carefully\MessageBreak
|
|
and redo the format generation if necessary!
|
|
\@gobbletwo}%
|
|
\errhelp{Only stopped, to give you time to
|
|
read the above message.}
|
|
\errmessage{}
|
|
\def\font@submax{0pt}
|
|
\fi
|
|
\ifnum0%
|
|
\ifx\Umathchar\@undefined\else 1\fi
|
|
\ifx\mubyte\@undefined\else 1\fi
|
|
\ifx\charsubdef\@undefined\else 1\fi
|
|
=\z@
|
|
\def\saved@space@catcode{10}
|
|
\let\@inpenc@test\relax
|
|
\def\IeC{%
|
|
\ifx\protect\@typeset@protect
|
|
\expandafter\@firstofone
|
|
\else
|
|
\noexpand\IeC
|
|
\fi
|
|
}
|
|
\@tempcnta=1
|
|
\loop
|
|
\catcode\@tempcnta=13 %
|
|
\advance\@tempcnta\@ne %
|
|
\ifnum\@tempcnta<32 %
|
|
\repeat %
|
|
\catcode0=15 % null
|
|
\catcode9=10 % tab
|
|
\catcode10=12 % ctrl J
|
|
\catcode12=13 % ctrl L
|
|
\catcode13=5 % newline
|
|
\@tempcnta=128
|
|
\loop
|
|
\catcode\@tempcnta=13
|
|
\advance\@tempcnta\@ne
|
|
\ifnum\@tempcnta<256
|
|
\repeat
|
|
\def\UseRawInputEncoding{%
|
|
\let\inputencodingname\@undefined % revert
|
|
\let\DeclareFontEncoding@\DeclareFontEncoding@saved % revert
|
|
\let\DeclareUnicodeCharacter\@undefined % revert
|
|
\@tempcnta=1
|
|
\loop
|
|
\catcode\@tempcnta=15 %
|
|
\advance\@tempcnta\@ne %
|
|
\ifnum\@tempcnta<32 %
|
|
\repeat %
|
|
\catcode0=15 % null
|
|
\catcode9=10 % tab
|
|
\catcode10=12 % ctrl J
|
|
\catcode12=13 % ctrl L
|
|
\catcode13=5 % newline
|
|
\@tempcnta=128
|
|
\loop
|
|
\catcode\@tempcnta=12
|
|
\advance\@tempcnta\@ne
|
|
\ifnum\@tempcnta<256
|
|
\repeat
|
|
}
|
|
\let\DeclareFontEncoding@saved\DeclareFontEncoding@
|
|
\edef\inputencodingname{utf8}%
|
|
\input{utf8.def}
|
|
\let\UTFviii@undefined@err@@\UTFviii@undefined@err
|
|
\let\UTFviii@invalid@err@@\UTFviii@invalid@err
|
|
\let\UTFviii@two@octets@@\UTFviii@two@octets
|
|
\let\UTFviii@three@octets@@\UTFviii@three@octets
|
|
\let\UTFviii@four@octets@@\UTFviii@four@octets
|
|
\def\UTFviii@undefined@err#1{\@gobble#1}%
|
|
\let\UTFviii@invalid@err\string
|
|
\let\UTFviii@two@octets\string
|
|
\let\UTFviii@three@octets\string
|
|
\let\UTFviii@four@octets\string
|
|
\everyjob\expandafter{\the\everyjob
|
|
\let\UTFviii@undefined@err\UTFviii@undefined@err@@
|
|
\let\UTFviii@invalid@err\UTFviii@invalid@err@@
|
|
\let\UTFviii@two@octets\UTFviii@two@octets@@
|
|
\let\UTFviii@three@octets\UTFviii@three@octets@@
|
|
\let\UTFviii@four@octets\UTFviii@four@octets@@
|
|
}
|
|
\let\@inpenc@test\@undefined
|
|
\let\saved@space@catcode\@undefined
|
|
\else
|
|
\@tempcnta=0
|
|
\loop
|
|
\catcode\@tempcnta=15 %
|
|
\advance\@tempcnta\@ne %
|
|
\ifnum\@tempcnta<32 %
|
|
\repeat %
|
|
\catcode0=15 % null
|
|
\catcode9=10 % tab
|
|
\catcode10=12 % ctrl J
|
|
\catcode12=13 % ctrl L
|
|
\catcode13=5 % newline
|
|
\let\UseRawInputEncoding\relax
|
|
\fi
|
|
\def\reserved@a#1#2{%
|
|
\@tempcnta#1\relax
|
|
\@tempcntb#2\relax
|
|
\reserved@b
|
|
}
|
|
\def\reserved@b{%
|
|
\ifnum\@tempcnta>\@tempcntb\else
|
|
\reserved@c\@tempcnta
|
|
\advance\@tempcnta\@ne
|
|
\expandafter\reserved@b
|
|
\fi
|
|
}
|
|
\catcode`\ =10
|
|
\catcode`\#=6
|
|
\catcode`\$=3
|
|
\catcode`\%=14
|
|
\catcode`\&=4
|
|
\catcode`\\=0
|
|
\catcode`\^=7
|
|
\catcode`\_=8
|
|
\catcode`\{=1
|
|
\catcode`\}=2
|
|
\catcode`\~=13
|
|
\catcode`\@=11
|
|
\catcode`\^^I=10
|
|
\catcode`\^^J=12
|
|
\catcode`\^^L=13
|
|
\catcode`\^^M=5
|
|
\def\reserved@c#1{\catcode#1=12\relax}
|
|
\reserved@c{`\!}
|
|
\reserved@c{`\"}
|
|
\reserved@a{`\'}{`\?}
|
|
\reserved@c{`\[}
|
|
\reserved@c{`\]}
|
|
\reserved@c{`\`}
|
|
\reserved@c{`\|}
|
|
\def\reserved@c#1{\catcode#1=11\relax}
|
|
\reserved@a{`\A}{`\Z}
|
|
\reserved@a{`\a}{`\z}
|
|
\ifnum 0%
|
|
\ifx\Umathcode\@undefined\else 1\fi
|
|
\ifx\XeTeXmathcode\@undefined\else 1\fi
|
|
>\z@
|
|
\else
|
|
\def\reserved@c#1{%
|
|
\count@=#1\advance\count@ by -"20
|
|
\uccode#1=\count@
|
|
\lccode#1=#1
|
|
}
|
|
\reserved@a{`\a}{`\z}
|
|
\reserved@a{"A0}{"BC}
|
|
\reserved@a{"E0}{"FF}
|
|
\def\reserved@c#1{%
|
|
\count@=#1\advance\count@ by "20
|
|
\uccode#1=#1
|
|
\lccode#1=\count@
|
|
\sfcode#1=999
|
|
}
|
|
\reserved@a{`\A}{`\Z}
|
|
\reserved@a{"80}{"9C}
|
|
\reserved@a{"C0}{"DF}
|
|
\uccode`\^^Y=`\I % dotless i
|
|
\lccode`\^^Y=`\^^Y % dotless i
|
|
\uccode`\^^Z=`\J % dotless j, ae in OT1
|
|
\lccode`\^^Z=`\^^Z % dotless j, ae in OT1
|
|
\lccode`\^^9d=`\i % dotted I
|
|
\uccode`\^^9d=`\^^9d % dotted I
|
|
\lccode`\^^9e=`\^^9e % d-bar
|
|
\uccode`\^^9e=`\^^d0 % d-bar
|
|
\lccode`\^^[=`\^^[ % oe in OT1
|
|
\fi % End of reset block for 8-bit engines
|
|
\DeclareRobustCommand{\MakeUppercase}[1]{{%
|
|
\def\i{I}\def\j{J}%
|
|
\def\reserved@a##1##2{\let##1##2\reserved@a}%
|
|
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
|
|
\let\UTF@two@octets@noexpand\@empty
|
|
\let\UTF@three@octets@noexpand\@empty
|
|
\let\UTF@four@octets@noexpand\@empty
|
|
\protected@edef\reserved@a{\uppercase{#1}}%
|
|
\reserved@a
|
|
}}
|
|
\DeclareRobustCommand{\MakeLowercase}[1]{{%
|
|
\def\reserved@a##1##2{\let##2##1\reserved@a}%
|
|
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
|
|
\let\UTF@two@octets@noexpand\@empty
|
|
\let\UTF@three@octets@noexpand\@empty
|
|
\let\UTF@four@octets@noexpand\@empty
|
|
\protected@edef\reserved@a{\lowercase{#1}}%
|
|
\reserved@a
|
|
}}
|
|
\def\@uclclist{\oe\OE\o\O\ae\AE
|
|
\dh\DH\dj\DJ\l\L\ng\NG\ss\SS\th\TH}
|
|
\protected@edef\MakeUppercase#1{\MakeUppercase{#1}}
|
|
\protected@edef\MakeLowercase#1{\MakeLowercase{#1}}
|
|
\input{ltexpl.ltx}
|
|
\let\reserved@a\@filelist
|
|
\let\reserved@b=\@undefined
|
|
\let\reserved@c=\@undefined
|
|
\let\reserved@d=\@undefined
|
|
\let\reserved@e=\@undefined
|
|
\let\reserved@f=\@undefined
|
|
\toks0{}
|
|
\toks2{}
|
|
\toks4{}
|
|
\toks6{}
|
|
\toks8{}
|
|
\errhelp{}
|
|
\def\@providesfile#1[#2]{%
|
|
\wlog{File: #1 #2}%
|
|
\expandafter\xdef\csname ver@#1\endcsname{#2}%
|
|
\endgroup}
|
|
\let\@filelist\@gobble
|
|
\def\@addtofilelist#1{\xdef\@filelist{\@filelist,#1}}%
|
|
\AtBeginDocument{\reinstall@nfss@defs\init@series@setup}
|
|
\makeatother
|
|
\errorstopmode
|
|
\dump
|
|
\endinput
|
|
%%
|
|
%% End of file `latex.ltx'.
|
|
|