summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/base/latex.ltx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-04-13 13:48:08 +0000
committerKarl Berry <karl@freefriends.org>2015-04-13 13:48:08 +0000
commit013bf3bc293cf08e4b4167cb42180bc355f399c0 (patch)
tree5235dfbae8830590c7fc6a0c70ecd3c84d22c677 /Master/texmf-dist/tex/latex/base/latex.ltx
parentbacfc70aefdbc2ec3496c976ad12fe9ef26604e1 (diff)
latex2e 2015/01/01
git-svn-id: svn://tug.org/texlive/trunk@36834 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/base/latex.ltx')
-rw-r--r--Master/texmf-dist/tex/latex/base/latex.ltx797
1 files changed, 479 insertions, 318 deletions
diff --git a/Master/texmf-dist/tex/latex/base/latex.ltx b/Master/texmf-dist/tex/latex/base/latex.ltx
index 1d3c115e835..32bcc906d25 100644
--- a/Master/texmf-dist/tex/latex/base/latex.ltx
+++ b/Master/texmf-dist/tex/latex/base/latex.ltx
@@ -20,9 +20,8 @@
%% ltlength.dtx (with options: `2ekernel')
%% ltfssbas.dtx (with options: `2ekernel')
%% ltfsstrc.dtx (with options: `2ekernel')
-%% ltfsscmp.dtx (with options: `compat,2ekernel')
%% ltfssdcl.dtx (with options: `compat,2ekernel')
-%% ltfssini.dtx (with options: `compat')
+%% ltfssini.dtx (with options: `compat,2ekernel')
%% ltfntcmd.dtx (with options: `2ekernel')
%% ltpageno.dtx (with options: `2ekernel')
%% ltxref.dtx (with options: `2ekernel')
@@ -44,7 +43,12 @@
%%
%% This is a generated file.
%%
-%% Copyright 1993-2014
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at http://latex-project.org/bugs.html
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%%
+%% Copyright 1993-2015
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -79,6 +83,16 @@
\fi
\catcode`\{=1
\catcode`\}=2
+\ifx\directlua\undefined
+\else
+ \ifx\luatexversion\undefined
+ \directlua{tex.enableprimitives('',%
+ tex.extraprimitives('etex', 'pdftex', 'umath'))}
+ \directlua{tex.enableprimitives('luatex',
+ tex.extraprimitives('core', 'omega', 'aleph', 'luatex'))
+ }
+ \fi
+\fi
\catcode`\#=6
\catcode`\^=7
\chardef\active=13
@@ -260,22 +274,6 @@
\fi
\fi
%%% From File: ltplain.dtx
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
\catcode`\{=1 % left brace is begin-group character
\catcode`\}=2 % right brace is end-group character
\catcode`\$=3 % dollar sign is math shift
@@ -321,16 +319,90 @@
\dimendef\dimen@ii=2
\skipdef\skip@=0
\toksdef\toks@=0
-\def\newcount{\alloc@0\count\countdef\insc@unt}
-\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
-\def\newskip{\alloc@2\skip\skipdef\insc@unt}
-\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
-\def\newbox{\alloc@4\box\chardef\insc@unt}
-\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
-\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
-\def\newread{\alloc@6\read\chardef\sixt@@n}
-\def\newwrite{\alloc@7\write\chardef\sixt@@n}
-\def\newlanguage{\alloc@9\language\chardef\@cclvi}
+\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}\e@alloc@top\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}\e@alloc@top\e@alloc@top}
+\def\newread {\e@alloc\read \chardef{\count16}\sixt@@n\sixt@@n}
+\def\newwrite {\e@alloc\write \chardef{\count17}\sixt@@n\sixt@@n}
+\def\new@mathgroup
+ {\e@alloc\mathgroup\chardef{\count18}\e@mathgroup@top\e@mathgroup@top}
+\def\newlanguage {\e@alloc\language \chardef{\count19}\@cclvi\@cclvi}
+\let\newfam\new@mathgroup
+\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
+ #1\@cclvi
+ \ifx\count#4\advance#1 10 \fi
+ \fi
+ \ifnum#1<#3\relax
+ \else
+ \errmessage{No room for a new #4}%
+ \fi
+ \fi}%
+
+\let\float@count\e@alloc@top
+\ifx\numexpr\@undefined
+\def\extrafloats#1{%
+\count@#1\relax
+\ifnum\count@>\z@
+\newinsert\reserved@a
+\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
+\e@alloc@chardef\float@count\count@
+\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% make sure there's still room
\allocationnumber\count1#1%
@@ -346,8 +418,10 @@
\wlog{\string#1=\string\insert\the\allocationnumber}}
\gdef\ch@ck#1#2#3{%
\ifnum\count1#1<#2\else
- \errmessage{No room for a new #3}%
+ \errmessage{No room for a new #3}%
\fi}
+\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
+\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
\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
@@ -513,15 +587,84 @@
\gdef\loggingoutput{\tracingoutput\@ne
\showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode}
\gdef\showoutput{\loggingoutput\showoverfull}
-\gdef\loggingall{\tracingcommands\tw@\tracingstats\tw@
- \tracingpages\@ne\tracinglostchars\@ne
- \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
- \errorcontextlines\maxdimen\loggingoutput}
-\gdef\tracingall{\loggingall\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{2014/05/01}
+\edef\fmtversion
+ {2015/01/01}
\iffalse
\def\reserved@a#1/#2/#3\@nil{%
\count@\year
@@ -546,10 +689,32 @@
\fi
\let\reserved@a\relax
\fi
-\everyjob{\typeout{\fmtname
- \space<\fmtversion>}}
-\immediate\write16{\fmtname
- \space<\fmtversion>}
+\everyjob\expandafter{%
+ \the\everyjob
+ \typeout{\fmtname \space<\fmtversion>}}
+\immediate\write16{\fmtname \space<\fmtversion>}
+\def\IncludeInRelease#1{\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@}%
+ \expandafter\let\csname\string#2+\@currname+IIR\endcsname\@empty
+ \fi
+ \else
+ \GenericInfo{}{Already applied: \the\toks@}%
+ \expandafter\@gobble@IncludeInRelease
+ \fi
+}
+\long\def\@gobble@IncludeInRelease#1\EndIncludeInRelease{}
+\let\EndIncludeInRelease\relax
%%% From File: ltdefns.dtx
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
\def\typeout#1{\begingroup\set@display@protect
@@ -568,12 +733,22 @@
\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}%
- \advance\endlinechar\@M
+ \begingroup \endlinechar\m@ne
\read\@inputcheck to#1%
- \advance\endlinechar-\@M
- \@typein}
+ \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}
@@ -785,6 +960,30 @@
}
\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}%
+ {%
+ \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}%
+ \edef#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\@ifundefined#1{%
\expandafter\ifx\csname#1\endcsname\relax
\expandafter\@firstoftwo
@@ -1108,7 +1307,7 @@ Type H <return> for immediate help.}%
\gdef\@inmatherr#1{%
\relax
\ifmmode
- \@latex@error{Command \protect#1 invalid in math mode}\@ehc
+ \@latex@error{Command \protect#1 invalid in math mode}\@ehc
\fi}
%%% From File: ltpar.dtx
\message{par,}
@@ -1188,18 +1387,20 @@ Type H <return> for immediate help.}%
\ifhmode
\spacefactor\@savsf
\ifdim\@savsk>\z@
+ \nobreak \hskip\z@skip
\ignorespaces
\fi
- \fi}
+ \fi}%
\def\@Esphack{%
\relax
\ifhmode
\spacefactor\@savsf
\ifdim\@savsk>\z@
+ \nobreak \hskip\z@skip
\@ignoretrue
\ignorespaces
\fi
- \fi}
+ \fi}%
\def\@xaddvskip{%
\ifdim\lastskip<\@tempskipb
\vskip-\lastskip
@@ -1237,15 +1438,27 @@ Type H <return> for immediate help.}%
\penalty#1\relax
\else
\@tempskipb\lastskip
- \vskip -\lastskip
- \penalty#1%
- \vskip\@tempskipb
+ \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}
+ \fi}%
\DeclareRobustCommand\vspace{\@ifstar\@vspacer\@vspace}
\def\@vspace #1{%
\ifvmode
@@ -1304,7 +1517,7 @@ Type H <return> for immediate help.}%
\DeclareRobustCommand{\,}{%
\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi
}
-\def\@{\spacefactor\@m}
+\def\@{\spacefactor\@m{}}%
\DeclareRobustCommand\hspace{\@ifstar\@hspacer\@hspace}
\def\@hspace#1{\hskip #1\relax}
\def\@hspacer#1{\vrule \@width\z@\nobreak
@@ -1786,7 +1999,7 @@ Type H <return> for immediate help.}%
.\kern\fontdimen3\font
.\kern\fontdimen3\font}
\DeclareTextCommandDefault{\textregistered}{\textcircled{%
- \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}}
+ \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}}
\DeclareTextCommandDefault{\texttrademark}{\textsuperscript{TM}}
\DeclareTextCommandDefault{\SS}{SS}
\DeclareTextCommandDefault{\textordfeminine}{\textsuperscript{a}}
@@ -1829,7 +2042,7 @@ Type H <return> for immediate help.}%
\let\@elt\@stpelt
\csname cl@#1\endcsname
\endgroup}
-\def\@stpelt#1{\global\csname c@#1\endcsname \z@}
+\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@
@@ -1865,13 +2078,36 @@ Type H <return> for immediate help.}%
\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{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
- \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger
- \or \ddagger\ddagger \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 eTeXversion\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\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}
@@ -1894,9 +2130,7 @@ Type H <return> for immediate help.}%
or\space use\space the\space \noexpand\SetMathAlphabet\space
command.}
\fi}
-\def\new@mathgroup{\alloc@8\mathgroup\chardef\sixt@@n}
\let\mathgroup\fam
-\let\newfam\new@mathgroup
\@onlypreamble\new@mathgroup
\def\DeclareFontShape{\begingroup
\nfss@catcodes
@@ -2047,20 +2281,23 @@ Type H <return> for immediate help.}%
\@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
- \expandafter \gdef
- \csname S@\strip@pt\dimen@\endcsname
- {\gdef\tf@size{#3}\gdef\sf@size{#4}%
- \gdef\ssf@size{#5}%
- #1%
- }%
- \fi}
+\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
@@ -2222,6 +2459,9 @@ Type H <return> for immediate help.}%
\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'
@@ -2490,7 +2730,7 @@ Type H <return> for immediate help.}%
\def\optional@arg{#1}}
\def\DeclareSizeFunction#1#2{\@namedef{s@fct@#1}{#2}}
\@onlypreamble\DeclareSizeFunction
-\def\execute@size@function#1{% %%% could be added to autoload as well
+\def\execute@size@function#1{%
\csname s@fct@#1\endcsname
}
\def\try@size@range{%
@@ -2613,128 +2853,6 @@ Type H <return> for immediate help.}%
for\space size\MessageBreak
<\f@size>}%
}
-%%% From File: ltfsscmp.dtx
-%% Copyright (C) 1989-1995 Frank Mittelbach and Rainer Sch\"opf,
-%% all rights reserved.
-\gdef\new@fontshape#1#2#3#4{%
- \warn@rel@i\new@fontshape\DeclareFontShape
- \expandafter\scan@fontshape\@gobble#4<\@nil><<%
- \DeclareFontShape U{#1}{#2}{#3}\reserved@f}
-\@onlypreamble\new@fontshape
-\gdef\warn@rel@i#1#2{%
- \@font@warning{*** NFSS release 1 command
- \noexpand#1found\MessageBreak
- *** Update by using release 2 command
- \string#2.\MessageBreak
- *** Recovery is probably possible}%
-}
-\@onlypreamble\warn@rel@i
-\gdef\scan@fontshape{%
- \let\reserved@f\@empty
- \let\reserved@e\@empty % holds last info
- \scan@@fontshape
-}
-\@onlypreamble\scan@fontshape
-\gdef\scan@@fontshape#1>#2#3<{%
- \ifx\@nil#1%
- \edef\reserved@f{\reserved@f\reserved@e}%
- \else
- \def\reserved@b{#1}% nick names
- \def\reserved@c{#3}%
- \in@{ at}{#3}%
- \ifin@
- \in@{pt}{#3}% not a proof but a good chance
- \ifin@
- \def\reserved@a##1 at##2pt##3\@nil{%
- \def\reserved@b{##2}%
- \def\reserved@c{##1}%
- }%
- \reserved@a#3\@nil
- \fi
- \fi
- \ifnum 0<0#2
- \edef\reserved@d{subf*\reserved@c}%
- \ifcase #2\or
- \or
- \else
- \errmessage{*** What's this? NFSS release 0? ***}%
- \fi
- \else
- \edef\reserved@d{#2\reserved@c}%
- \fi
- \ifx\reserved@d\reserved@e
- \edef\reserved@f{\reserved@f<\reserved@b>}%
- \else
- \edef\reserved@f{\reserved@f\reserved@e<\reserved@b>}%add old info
- \let\reserved@e\reserved@d
- \fi
- \expandafter\scan@@fontshape
- \fi
-}
-\@onlypreamble\scan@@fontshape
-\gdef\subst@fontshape#1#2#3#4#5#6{%
- \warn@rel@i\subst@fontshape\DeclareFontShape
- \DeclareFontShape{U}{#1}{#2}{#3}{<->sub*#4/#5/#6}{}}
-\@onlypreamble\subst@fontshape
-\gdef\extra@def#1#2#3{%
- \warn@rel@i\extra@def\DeclareFontFamily
- \DeclareFontFamily{U}{#1}{}%
-}
-\@onlypreamble\extra@def
-\gdef\default@mextra{%
- \warn@rel@i\default@mextra\DeclareFontEncodingDefaults
- \DeclareFontEncodingDefaults\relax
-}
-\@onlypreamble\default@mextra
-\gdef\preload@sizes{%
- \warn@rel@i\preload@sizes\DeclarePreloadSizes
- \DeclarePreloadSizes U%
-}
-\@onlypreamble\preload@sizes
-\gdef\err@rel@i#1#2{%
- \@latex@error{*** NFSS release 1 command \noexpand#1found%
- ^^J*** Recovery not possible. Use \string#2}%
- {The new release of NFSS doesn't support the
- \noexpand#1command^^Jany longer.
- Please upgrade your file to the syntax of NFSS
- release 2^^Jusing the \noexpand#2command.}%
- \batchmode\input.\relax
-}
-\@onlypreamble\err@rel@i
-\gdef\newmathalphabet{%
- \if@no@font@opt
- \@latex@error{*** NFSS release 1 command
- \noexpand\newmathalphabet found%
- ^^J \space*** Automatic recovery not possible.%
- ^^J \space*** TYPE H for Help%
- }%
- {Please look at the file usrguide.tex for hints on
- how to resolve this problem.}%
- \else
- \warn@rel@i\newmathalphabet\DeclareMathAlphabet
- \fi
- \@ifstar\newmathalphabet@@@
- \newmathalphabet@@}
-\gdef\newmathalphabet@@#1{\DeclareMathAlphabet#1{U}{}{}{}}
-\gdef\newmathalphabet@@@#1#2#3#4{%
- \DeclareMathAlphabet{#1}{U}{#2}{#3}{#4}}
-\@onlypreamble\newmathalphabet
-\@onlypreamble\newmathalphabet@@
-\@onlypreamble\newmathalphabet@@@
-\global\let\if@no@font@opt\iftrue
-\gdef\@no@font@optfalse{\let\if@no@font@opt\iffalse}
-\gdef\define@mathalphabet{%
- \err@rel@i\define@mathalphabet\DeclareMathAlphabet
-}
-\@onlypreamble\define@mathalphabet
-\gdef\define@mathgroup{%
- \err@rel@i\define@mathgroup\DeclareSymbolFont
-}
-\@onlypreamble\define@mathgroup
-\def\addtoversion#1#2{%
- \warn@rel@i\addtoversion\SetMathAlphabet
- \SetMathAlphabet#2{#1}{U}}
-\@onlypreamble\addtoversion
%%% From File: ltfssdcl.dtx
%% Copyright (C) 1989-1998 Frank Mittelbach and Rainer Sch\"opf,
%% all rights reserved.
@@ -2765,7 +2883,7 @@ Type H <return> for immediate help.}%
\ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
{%
\ifmmode
- \ifnum\csname c@mv@\math@version\endcsname<\sixt@@n
+ \ifnum\csname c@mv@\math@version\endcsname<\e@mathgroup@top
\begingroup
\escapechar\m@ne
\getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
@@ -2819,7 +2937,7 @@ Type H <return> for immediate help.}%
\ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
{%
\ifmmode
- \ifnum\csname c@mv@\math@version\endcsname<\sixt@@n
+ \ifnum\csname c@mv@\math@version\endcsname<\e@mathgroup@top
\begingroup
\escapechar\m@ne
\getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
@@ -2928,9 +3046,14 @@ Type H <return> for immediate help.}%
\cdp@list
\if@tempswa
\@ifundefined{sym#1}{%
- \expandafter\new@mathgroup\csname sym#1\endcsname
- \expandafter\new@symbolfont\csname sym#1\endcsname
- {#2}{#3}{#4}{#5}}%
+ \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{%
@@ -3584,7 +3707,8 @@ Type H <return> for immediate help.}%
\fontshape\itdefault\selectfont}
\DeclareRobustCommand\em
{\@nomath\em \ifdim \fontdimen\@ne\font >\z@
- \upshape \else \itshape \fi}
+ \eminnershape \else \itshape \fi}%
+\def\eminnershape{\upshape}%
\def\not@math@alphabet#1#2{%
\relax
\ifmmode
@@ -3703,21 +3827,6 @@ Type H <return> for immediate help.}%
\let\@acci\' \let\@accii\` \let\@acciii\=
%%% From File: ltfntcmd.dtx
%%
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
\def \DeclareTextFontCommand #1#2{%
\DeclareRobustCommand#1[1]{%
\ifmmode
@@ -4043,22 +4152,6 @@ Type H <return> for immediate help.}%
\def\@noligs{\let\do\do@noligs \verbatim@nolig@list}
%%% From File: ltmath.dtx
\message{math definitions,}
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
\def\log{\mathop{\operator@font log}\nolimits}
\def\lg{\mathop{\operator@font lg}\nolimits}
\def\ln{\mathop{\operator@font ln}\nolimits}
@@ -4223,9 +4316,11 @@ Type H <return> for immediate help.}%
\def\pr@@@t#1#2{#2\egroup}
{\catcode`\_=\active \gdef_{\_}} % _ in math is
% either subscript or \_
-\def\({\relax\ifmmode\@badmath\else$\fi}
-\def\){\relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}
-\def\[{%
+\DeclareRobustCommand\({%
+ \relax\ifmmode\@badmath\else$\fi}%
+\DeclareRobustCommand\){%
+ \relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}%
+\DeclareRobustCommand\[{%
\relax\ifmmode
\@badmath
\else
@@ -4235,8 +4330,8 @@ Type H <return> for immediate help.}%
\fi
$$%%$$ BRACE MATCH HACK
\fi
-}
-\def\]{%
+}%
+\DeclareRobustCommand\]{%
\relax\ifmmode
\ifinner
\@badmath
@@ -4247,7 +4342,7 @@ Type H <return> for immediate help.}%
\@badmath
\fi
\ignorespaces
-}
+}%
\let\math=\(
\let\endmath=\)
\def\displaymath{\[}
@@ -4565,11 +4660,11 @@ Type H <return> for immediate help.}%
\let\enditemize =\endlist
%%% From File: ltboxes.dtx
\message{boxes,}
-\def\makebox{%
+\DeclareRobustCommand\makebox{%
\leavevmode
\@ifnextchar(%)
\@makepicbox
- {\@ifnextchar[\@makebox\mbox}}
+ {\@ifnextchar[\@makebox\mbox}}%
\long\def\mbox#1{\leavevmode\hbox{#1}}
\def\@makebox[#1]{%
\@ifnextchar [{\@imakebox[#1]}{\@imakebox[#1][c]}}
@@ -4617,9 +4712,9 @@ Type H <return> for immediate help.}%
\let\color@vbox\relax
\let\color@endbox\relax
\def\newsavebox#1{\@ifdefinable{#1}{\newbox#1}}
-\def\savebox#1{%
+\DeclareRobustCommand\savebox[1]{%
\@ifnextchar(%)
- {\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}
+ {\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}%
\long\def\sbox#1#2{\setbox#1\hbox{%
\color@setgroup#2\color@endgroup}}
\def\@savebox#1[#2]{%
@@ -4667,9 +4762,9 @@ Type H <return> for immediate help.}%
\kern\fboxsep{#1}\kern\fboxsep
\color@endgroup}%
\@frameb@x\relax}
-\def\framebox{%
+\DeclareRobustCommand\framebox{%
\@ifnextchar(%)
- \@framepicbox{\@ifnextchar[\@framebox\fbox}}
+ \@framepicbox{\@ifnextchar[\@framebox\fbox}}%
\def\@framebox[#1]{%
\@ifnextchar[%]
{\@iframebox[#1]}%
@@ -4707,10 +4802,10 @@ Type H <return> for immediate help.}%
\@ifnextchar[{\@iframepicbox(#1,#2)}{\@iframepicbox(#1,#2)[]}}
\long\def\@iframepicbox(#1,#2)[#3]#4{%
\frame{\@imakepicbox(#1,#2)[#3]{#4}}}
-\def\parbox{%
+\DeclareRobustCommand\parbox{%
\@ifnextchar[%]
\@iparbox
- {\@iiiparbox c\relax[s]}}
+ {\@iiiparbox c\relax[s]}}%
\def\@iparbox[#1]{%
\@ifnextchar[%]
{\@iiparbox{#1}}%
@@ -4812,7 +4907,7 @@ Type H <return> for immediate help.}%
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
\color@endgroup}}
\newif\if@pboxsw
-\def\rule{\@ifnextchar[\@rule{\@rule[\z@]}}
+\DeclareRobustCommand\rule{\@ifnextchar[\@rule{\@rule[\z@]}}%
\def\@rule[#1]#2#3{%
\leavevmode
\hbox{%
@@ -4826,7 +4921,7 @@ Type H <return> for immediate help.}%
\relax
\ifmmode\@@underline{#1}%
\else $\@@underline{\hbox{#1}}\m@th$\relax\fi}
-\def\raisebox#1{%
+\DeclareRobustCommand\raisebox[1]{%
\leavevmode
\@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
\def\@rsbox#1[#2]{%
@@ -5364,7 +5459,7 @@ Type H <return> for immediate help.}%
\gdef\@downline{%
\hb@xt@\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
\@height \z@ \@depth \@linelen \hss}}
-\gdef\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char 54}% % '66
+\gdef\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char 54}% '66
\raise \@linelen \hb@xt@\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}}
\gdef\@downvector{\@downline\lower \@linelen
\hb@xt@\z@{\@linefnt\char 63 % '77
@@ -5837,21 +5932,21 @@ Type H <return> for immediate help.}%
\else
\advance \@tempcnta \@ne
\fi
- \fi
- \if \reserved@a t%
+ \else\if \reserved@a t%
\@setfpsbit \tw@
- \fi
- \if \reserved@a b%
+ \else\if \reserved@a b%
\@setfpsbit 4%
- \fi
- \if \reserved@a p%
+ \else\if \reserved@a p%
\@setfpsbit 8%
- \fi
- \if \reserved@a !%
+ \else\if \reserved@a !%
\ifnum \@tempcnta>15
\advance\@tempcnta -\sixt@@n\relax
\fi
- \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
@@ -5867,7 +5962,7 @@ Type H <return> for immediate help.}%
\hsize\columnwidth
\@parboxrestore
\@floatboxreset
-}
+}%
\def \@floatboxreset {%
\reset@font
\normalsize
@@ -5900,17 +5995,26 @@ Type H <return> for immediate help.}%
\fi
}
\def\end@dblfloat{%
-\if@twocolumn
- \@endfloatbox
- \ifnum\@floatpenalty <\z@
- \@largefloatcheck
- \@cons\@dbldeferlist\@currbox
+ \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
- \ifnum \@floatpenalty =-\@Mii \@Esphack\fi
-\else
- \end@float
-\fi
-}
+}%
\def \@endfloatbox{%
\par\vskip\z@skip %% \par\vskip\z@ added 15 Dec 87
\@minipagefalse
@@ -5938,16 +6042,15 @@ Type H <return> for immediate help.}%
\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\@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
@@ -6018,6 +6121,12 @@ Type H <return> for immediate help.}%
\@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}}}}}%
+\def\@textsubscript#1{%
+ {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
\newdimen\footnotesep
\def\footnote{\@ifnextchar[\@xfootnote{\stepcounter\@mpfn
\protected@xdef\@thefnmark{\thempfn}%
@@ -6484,6 +6593,12 @@ Type H <return> for immediate help.}%
\fi
\fi
}
+\def\@testwrongwidth #1{%
+ \ifdim\dp#1=\f@depth
+ \else
+ \global\@testtrue
+ \fi}%
+\let\f@depth\z@
\def \@doclearpage {%
\ifvoid\footins
\ifvbox\@kludgeins
@@ -6504,25 +6619,26 @@ Type H <return> for immediate help.}%
\@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
\if@twocolumn
\if@firstcolumn
- \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
+ \xdef\@deferlist{\@dbltoplist\@deferlist}%
\global \let \@dbltoplist \@empty
\global \@colht \textheight
\begingroup
\@dblfloatplacement
- \@makefcolumn\@dbldeferlist
+ \@makefcolumn\@deferlist
\@whilesw\if@fcolmade \fi{\@outputpage
- \@makefcolumn\@dbldeferlist}%
+ \@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
@@ -6745,17 +6861,17 @@ Type H <return> for immediate help.}%
\fi
}
\def \@startdblcolumn {%
- \@tryfcolumn \@dbldeferlist
+ \@tryfcolumn \@deferlist
\if@fcolmade
\else
\begingroup
- \let \reserved@b \@dbldeferlist
- \global \let \@dbldeferlist \@empty
+ \let \reserved@b \@deferlist
+ \global \let \@deferlist \@empty
\let \@elt \@sdblcolelt
\reserved@b
\endgroup
\fi
-}
+}%
\def \@tryfcolumn #1{%
\global \@fcolmadefalse
\ifx #1\@empty
@@ -6796,14 +6912,15 @@ Type H <return> for immediate help.}%
\multiply\@currtype\@xxxii
\@bitor \@currtype \@failedlist
\@testfp #1%
+ \@testwrongwidth #1%
\ifdim \ht #1>\@colht
- \@testtrue
+ \@testtrue
\fi
\if@test
\@cons\@failedlist #1%
\else
\@ytryfc #1%
- \fi}
+ \fi}%
\def\@ytryfc #1{%
\begingroup
\gdef\@flsucceed{\@elt #1}%
@@ -6821,13 +6938,14 @@ Type H <return> for immediate help.}%
\let\@elt\@gobble
\fi}
\def\@ztryfc #1{%
- \@tempcnta \count#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\ht #1%
\advance\@tempdimb\@fpsep
\ifdim \@tempdimb >\@colht
\@testtrue
@@ -6837,7 +6955,7 @@ Type H <return> for immediate help.}%
\else
\@cons\@flsucceed #1%
\@tempdima\@tempdimb
- \fi}
+ \fi}%
\def \@addtobot {%
\@getfpsbit 4\relax
\ifodd \@tempcnta
@@ -6893,6 +7011,7 @@ Type H <return> for immediate help.}%
\@flsetnum \@colnum
\ifnum \@colnum>\z@
\@bitor\@currtype\@deferlist
+ \@testwrongwidth\@currbox
\if@test
\else
\@bitor\@currtype\@botlist
@@ -6937,7 +7056,7 @@ Type H <return> for immediate help.}%
\@resethfps
\@cons\@deferlist\@currbox
\fi
-}
+}%
\def\@addtonextcol{%
\begingroup
\@insertfalse
@@ -6953,6 +7072,7 @@ Type H <return> for immediate help.}%
\@flsetnum \@colnum
\ifnum\@colnum>\z@
\@bitor\@currtype\@deferlist
+ \@testwrongwidth\@currbox
\if@test
\else
\@addtotoporbot
@@ -6966,7 +7086,7 @@ Type H <return> for immediate help.}%
\@cons\@deferlist\@currbox
\fi
\endgroup
-}
+}%
\def\@addtodblcol{%
\begingroup
\@insertfalse
@@ -6988,7 +7108,8 @@ Type H <return> for immediate help.}%
\fi
\fi
\if@tempswa
- \@bitor \@currtype \@dbldeferlist
+ \@bitor \@currtype \@deferlist
+ \@testwrongwidth\@currbox
\if@test
\else
\@tempdima -\ht\@currbox
@@ -7006,10 +7127,10 @@ Type H <return> for immediate help.}%
\fi
\if@insert
\else
- \@cons\@dbldeferlist\@currbox
+ \@cons\@deferlist\@currbox
\fi
\endgroup
-}
+}%
\def\@addmarginpar{\@next\@marbox\@currlist{\@cons\@freelist\@marbox
\@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne
\if@twocolumn
@@ -7185,32 +7306,42 @@ Type H <return> for immediate help.}%
}
\def\@outputdblcol{%
\if@firstcolumn
- \global \@firstcolumnfalse
- \global \setbox\@leftcolumn \box\@outputbox
+ \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
+ \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}%
+ \@whilesw\if@fcolmade \fi{\@outputpage
+ \@startdblcolumn}%
\endgroup
- \fi
-}
+ \fi}%
\newcount\c@topnumber
\setcounter{topnumber}{2}
\newcommand\topfraction{.7}
@@ -7772,6 +7903,16 @@ Type H <return> for immediate help.}%
\newcount\@lowpenalty
\newcount\@medpenalty
\newcount\@highpenalty
+\ifx\marks\@undefined\else
+\def\newmarks{%
+ \e@alloc\marks \e@alloc@chardef{\count256}\e@alloc@top\e@alloc@top}
+\fi
+\ifx\XeTeXcharclass\@undefined
+\else
+\count257=\thr@@
+\def\newXeTeXintercharclass{%
+ \e@alloc\XeTeXcharclass\chardef{\count257}\@cclv\@cclv}
+\fi
\unitlength = 1pt
\fboxsep = 3pt
\fboxrule = .4pt
@@ -7782,6 +7923,14 @@ Type H <return> for immediate help.}%
\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{unicode-letters.def}
+ \lccode`\- =`\- % default hyphen char
+\else
\def\reserved@a#1#2{%
\@tempcnta#1\relax
\@tempcntb#2\relax
@@ -7829,6 +7978,12 @@ Type H <return> for immediate help.}%
\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%
@@ -7894,6 +8049,11 @@ Type H <return> for immediate help.}%
\reserved@c{`\^^K}
\reserved@a{`\^^N}{31}
\catcode"7F=15
+\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@
@@ -7926,6 +8086,7 @@ Type H <return> for immediate help.}%
\uccode`\^^9e=`\^^d0 % d-bar
\fi
\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}%