summaryrefslogtreecommitdiff
path: root/macros/psizzl/citation.psizzl
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/psizzl/citation.psizzl
Initial commit
Diffstat (limited to 'macros/psizzl/citation.psizzl')
-rw-r--r--macros/psizzl/citation.psizzl607
1 files changed, 607 insertions, 0 deletions
diff --git a/macros/psizzl/citation.psizzl b/macros/psizzl/citation.psizzl
new file mode 100644
index 0000000000..97031c7670
--- /dev/null
+++ b/macros/psizzl/citation.psizzl
@@ -0,0 +1,607 @@
+% CITATION PSIZZL - citation macros
+%
+% The first time you cite the reference, use the `=' syntax:
+% this creates an entry in the table of references.
+% here's how to refer to a reference the first time:
+% "...as was shown first in\reference\DrellYan={%
+% Drell,~S.~D., Levy,~D.~J., Yan,~T.~M.,
+% A FIELD THEORETIC MODEL FOR ELECTRON - NUCLEON DEEP INELASTIC
+% SCATTERING,
+% Phys.~Rev.~Lett. \refspec{22, 744-8(1969)}.
+% }%
+% here's how to cite the ref:
+% "...hadrons produced in this way\cite\DrellYan\ obey a distribution..."
+% or:
+% "...as was shown first in \reference\DrellYan . "
+% or:
+% "...end of sentence. \Reference\DrellYan\ has the somewhat curious.."
+% References cited this way will have automatic style switching.
+%
+% Figures and tables are to be defined in an analogous way
+% The first time a figure is referred to:
+% "... these data are displayed in
+% \figure\<mnemonic>=
+% {Title of the figure}{caption}{<the figure itself>} more text..."
+% and on subsequent references:
+% "...the cross section ( see \figure\nanobarn)..."
+% or:
+% "...end of sentence. \Figure\newcross\ shows how the new physics..."
+% Tables are exactly analogous to figures.
+%
+% Equations are defined:
+% \equation\<mnemonic>={<equation expression without $$'s>}%
+% e.g.:
+% \equation\quadrature={x^2+y^2=z^2}%
+% to use this construct:
+% "...end of sentence. \Equation\quadrature\ therefore represents..."
+%
+\def\p@gerightglue{\hss}\def\p@geleftglue{\hss}%
+\def\Ps@zerr#1#2{\errhelp=#2\errmessage{Psizzl: #1}}%
+\newhelp\Ps@zmsngtxt{%
+ I expected you to define this name here, but you didn't.
+ You need to define this name here.
+ Hit <CR> to continue processing.
+ }%
+\newhelp\Ps@zmltptxt{%
+ I already encountered this name, but you're trying to define it here.
+ You need to give the defining text the first time the name is used,
+ not here. Hit <CR> to continue.
+ }%
+\newif\iftitleincaption\titleincaptiontrue
+\newif\ifv@ta
+\def\vita#1{%
+ \v@tatrue\def\v@ta{#1}%
+ }%
+\def\v@tahead{\uppercase{Vita}}%
+% needed: macros to assist in the preparation of the author list on the
+% titlepage
+%
+% Macros common to references and title page addresses
+%
+\def\c@tset{\c@tMactive\c@tVset\l@twrite}%
+\def\xd@fnumber#1#2{\xdef#1{{\number\m@decount}}\m@debump}%
+\def\xd@fletter#1#2{\xdef#1{{\char\number\m@decount}}\m@debump}%
+\def\xd@ftext#1#2{\xdef#1{{\it#2}}}%
+\def\xd@fch@pt#1{%
+ \xdef#1{\ch@ptercite{\ch@ptername}{\number\m@decount}}\m@debump
+ }%
+\def\m@debump{%
+ \global\advance\m@decount\@ne \global\advance\m@detotal\@ne
+ }%
+\def\m@deref#1{%
+ \begingroup
+ \ifx=\next
+ \aftergroup\m@detypr\aftergroup#1%
+ \c@tset
+ \begingroup\aftergroup\g@ttok\aftergroup\m@decap
+ \begingroup\aftergroup\g@ttok\aftergroup\m@deeqs
+ \else
+ \Ps@zerr{missing text for \string#1}\Ps@zmsngtxt
+ \fi
+ \endgroup
+ }%
+\def\m@detypr#1{\c@tMeoline
+ \edef\next{\noexpand#1{\the\m@decap}}\global\m@decap{}%
+ \begingroup\aftergroup\expandafter\aftergroup\m@dedoembed
+ \endgroup\next
+ }%
+%
+% Reference Macros
+%
+\newcount\r@ftotal\r@ftotal\z@
+\newcount\r@fcount\r@fcount\@ne
+\newif\ifr@frenumber\r@frenumberfalse%
+\newif\ifch@pterrenumber\ch@pterrenumberfalse%
+\newwrite\r@fcapwrite\def\r@fcapfile{refcap.psiztemp }%
+\def\r@fcaphead{\uppercase{References}}%
+\newwrite\r@ftabwrite\def\r@ftabfile{reftab.psiztemp }%
+\def\r@ftabhead{\uppercase{List of References}}%
+\def\hyphen{-}\def\comma{,}%
+\newif\ifciter@f
+\newif\ifsuperr@f\superr@ftrue
+\newif\ifc@tenull
+\newif\ifnewr@f
+\def\refspec#1,#2(#3){{\bf#1}, #2 (#3)}%
+\def\volyearpageref{\gdef\refspec##1,##2(##3){{\bf##1} (##3) ##2}}%
+\def\cernref{%vol
+ \gdef\refspec##1,##2(##3){%
+ %author, year, {\it Journal} Publisher {\fb Vol}, page.
+ }%
+ }%
+\def\refstyle{%
+ \r@fstyle
+ }%
+\def\r@fstyle#1{\r@fbeg#1\r@fend}%
+\def\lapperiod{%
+ \hbox to \z@{.\hss}%
+ }%
+\def\r@fsupbeg{$^\bgroup}\def\r@fsupend{\egroup$}%
+\def\r@fsupparbeg{$^\bgroup(}\def\r@fsupparend{)\egroup$}%
+\def\r@fbrabeg{[}\def\r@fbraend{]}%
+\def\r@fparbeg{(}\def\r@fparend{)}%
+\def\superreference{%
+ \let\r@fbeg\r@fsupbeg\let\r@fend\r@fsupend
+ }\superreference
+\def\bracketreference{%
+ \let\r@fbeg\r@fbrabeg\let\r@fend\r@fbraend
+ }%
+\def\parenreference{%
+ \let\r@fbeg\r@fparbeg\let\r@fend\r@fparend
+ }%
+\def\superparenreference{%
+ \let\r@fbeg\r@fsupparbeg\let\r@fend\r@fsupparend
+ }%
+\def\cite{%
+ \let\t@g=\r@fstyle\r@fget
+ }%
+\def\hideref{%
+ \let\t@g\g@ble\r@fget
+ }%
+\def\bareref{%
+ \let\t@g\relax\r@fget
+ }%
+\def\reference{%
+ \let\t@g=\r@f\r@fget
+ }%
+\def\Reference{%
+ \let\t@g=\R@f\r@fget
+ }%
+\def\r@f{Ref.\tie}%
+\def\R@f{Reference\tie}%
+\def\r@fget{%
+ \let\m@dedef=\m@deref\let\m@degobble=\g@bble
+ \let\m@decount=\r@fcount\let\m@detotal=\r@ftotal
+ \let\m@dedoembed\r@fembed
+ \let\p@riod=\p@int
+ \l@tnxt\m@denxt
+ }%
+\def\r@fembed#1#2{\xd@fnumber#1{#2}%
+ \t@g{#1}\c@tMeoline\@dd\r@fcapwrite{#1\p@riod}{{\rm#2}}%
+ }%
+% following 6 lines define macros to be used in mutiple references
+\def\f@rstcite{\let\cite\s@ccite\let\sp@nit\g@ble\bareref}%
+\def\s@ccite{\let\cite\th@rdcite\let\sp@nit\comma\hideref}%
+\def\th@rdcite{\let\cite\hideref\let\sp@nit\dash\hideref}%
+\def\spancite{\begingroup\let\cite\f@rstcite\r@fbeg}%
+\def\groupcite{\begingroup\let\cite\bareref\let\sp@nit\g@ble\r@fbeg}%
+\def\endcite{\sp@nit\mn@m\r@fend\endgroup}%
+\def\comma{,}\def\dash{-}%
+%
+%
+% author address macros
+%
+%
+% three styles:
+%
+% 1 - inline author addresses
+%
+% 2 - footnoted address
+%
+% 3 - addresses in ref list
+%
+\newcount\@ddrcount
+\newcount\@ddrtotal
+\newif\ifc@teaddress
+\def\rm@a{`a}\def\gr@a{\tw@}%
+\def\@ddsuper#1{$^{(#1)}$}%
+\adddef\resd@c{\@ddrcount\@ddrz@\@ddrtotal\z@}%
+\def\pr@sent{Present address: }%
+\def\authoraddress{%
+ \let\@ddrpre=\relax\@ddrget
+ }%
+\def\presentaddress{%
+ \let\@ddrpre=\pr@sent\@ddrget
+ }%
+\def\addressreference{% author addresses are references
+ \let\@ddraction=\@ddradd
+ \let\@ddrxdef=\xd@fletter
+ \let\@ddrtag=\@ddsuper
+ \let\@ddrt@tal=\r@ftotal
+ \let\@ddrz@\rm@a % alt: \let\@ddrz@\gr@a
+ \c@teaddresstrue
+ }%
+\def\@ddradd#1#2{%
+ \t@g{#1}\c@tMeoline\@dd\r@fcapwrite{(#1)}{{\rm\@ddrpre#2}}%
+ }%
+\def\addressfootnote{% author addresses are footnotes
+ \let\@ddraction=\@ddrfoot
+ \let\@ddrxdef=\xd@fletter
+ \let\@ddrtag=\@ddsuper
+ \let\@ddrt@tal=\@ddrtotal
+ \let\@ddrz@\rm@a
+ \c@teaddresstrue
+ }%
+\def\@ddrfoot#1#2{\footnote{\t@g{#1}}{{\rm\@ddrpre#2}}}%
+\def\addressinline{% author addresses are inline
+ \let\@ddraction=\@ddrinline
+ \let\@ddrxdef=\xd@ftext
+ \let\@ddrtag=\breaktitle
+ \let\@ddrt@tal=\@ddrtotal
+ \let\@ddrz@\z@
+ \c@teaddressfalse
+ }%
+\def\@ddrinline#1#2{{\rm\t@g#2}}%
+\def\@ddrget{%
+ \let\m@dedef=\m@deref\let\m@degobble=\g@bble
+ \let\m@decount=\@ddrcount\let\m@detotal=\@ddrt@tal
+ \let\t@g=\@ddrtag
+ \let\m@dedoembed=\@ddrembed
+ \let\p@riod=\p@int
+ \l@tnxt\m@denxt
+ }%
+\def\@ddrembed#1#2{\@ddrxdef#1{#2}\@ddraction#1{#2}}%
+\addressfootnote
+%
+% EQUATION NUMBER MACRO
+%
+\newcount\eq@count\eq@count\@ne\newcount\eq@total\eq@total\z@
+\newwrite\eq@write
+\def\eq@file{equation.textemp }%
+\def\eq@head{\uppercase{List of Equations}}%
+\def\display{%
+ \let\t@g\g@ble\eq@get
+ }%
+\def\Equation{%
+ \let\t@g\Eq@\eq@get
+ }%
+\def\Eq@{Equation\tie}%
+\def\equation{%
+ \let\t@g\eq@\eq@get
+ }%
+\def\eq@{Eqn.\tie}%
+\def\eq@get{%
+ \let\m@dedef=\m@deref\let\m@degobble=\g@bble
+ \let\m@decount=\eq@count\let\m@detotal=\eq@total
+ \let\m@dedoembed=\@qnembed
+ \let\p@riod=\d@sh
+ \l@tnxt\m@denxt
+ }%
+\def\@qnembed#1#2{\xd@fch@pt#1\t@g{#1}{\l@tMspace$$#2\eqno(#1)$$}}%
+%
+% macros common to \figure and \table commands
+%
+\def\m@denxt#1{\def\mn@m{#1}%
+ \ifx\undefined#1\let\temp\m@dedef\else\let\temp\m@dechk\fi
+ \temp#1%
+ }%
+\def\m@dechk#1{\t@g{#1}%
+ \ifx=\next\let\temp\m@lterr\else\let\temp\g@ble\fi\temp#1%
+ }%
+\def\m@lterr#1{%
+ \Ps@zerr{multiple text for \string#1}\Ps@zmltptxt\m@degobble
+ }%
+\def\g@bbbble#1#2#3#4{}%
+\def\g@bbble#1#2#3{}%
+\def\g@bble#1#2{}%
+\def\g@ble#1{}%
+\def\m@deset#1{%
+ \begingroup
+ \ifx=\next
+ \aftergroup\m@detype\aftergroup#1%
+ \c@tset
+ \begingroup\aftergroup\g@ttok\aftergroup\m@defig
+ \begingroup\aftergroup\g@ttok\aftergroup\m@decap
+ \begingroup\aftergroup\g@ttok\aftergroup\m@detit
+ \begingroup\aftergroup\g@ttok\aftergroup\m@deeqs
+ \else
+ \Ps@zerr{missing text for \string#1}\Ps@zmsngtxt
+ \fi
+ \xd@fch@pt#1% chapter number is embedded in this number.
+ \t@g#1% the rest of this must not generate any unwanted spaces!
+ \endgroup
+ }%
+\newtoks\m@deeqs\newtoks\m@detit\newtoks\m@decap\newtoks\m@defig
+\def\m@detype#1{\c@tMeoline
+ \edef\next{\noexpand#1{\the\m@detit}{\the\m@decap}{\the\m@defig}}%
+ \global\m@detit{}\global\m@decap{}\global\m@defig{}%
+ \begingroup\aftergroup\expandafter
+ \ifm@dembed\aftergroup\m@dedoembed\else\aftergroup\m@denoembed\fi
+ \endgroup\next
+ }%
+%
+% end of macros common to \table and \figure commands
+%
+% FIGURE CAPTION MACRO
+%
+% The Figure Caption macro generates a list of figure captions. It
+% is similar to the reference macro.
+%
+\newif\iffigureembed\figureembedtrue
+\newif\iff@gmidpage\f@gmidpagetrue
+\newif\iff@gfullpage
+\newcount\f@gcount\f@gcount\@ne
+\newcount\f@gtotal\f@gtotal\z@
+\newwrite\f@gcapwrite\def\f@gcapfile{figcap.psiztemp }%
+\def\f@gcaphead{\uppercase{Figure Captions}}%
+\newwrite\f@gtabwrite\def\f@gtabfile{figtab.psiztemp }%
+\def\f@gtabhead{{List of Figures}}%
+\newwrite\f@gfigwrite\def\f@gfigfile{figfig.psiztemp }%
+\def\f@ginsert{%
+ \iff@gfullpage\let\next=\pageinsert
+ \else\iff@gmidpage\let\next=\ordinsert
+ \else\let\next=\topinsert
+ \fi
+ \fi\next
+ }%
+\def\f@gcaptext#1#2#3{%
+ \noindent\F@g#1. \iftitleincaption#2\fi#3%
+ }%
+\def\f@gcaption#1#2#3{%
+ \iff@gfullpage\vfill\f@gcaptext{#1}{#2}{#3}%
+ \else{\narrower{\f@gcaptext{#1}{#2}{#3}}\par}%
+ \fi
+ }%
+\def\figure{%
+ \def\t@g{\f@g}\f@gget%
+ }%
+\def\Figure{%
+ \def\t@g{\F@g}\f@gget
+ }%
+\def\hidefig{%
+ \let\t@g\g@ble\f@gget
+ }%
+\def\barefig{%
+ \let\t@g\relax\f@gget
+ }%
+\def\f@g{Fig.\tie}%
+\def\F@g{Figure\tie}%
+\def\f@gget{%
+ \let\m@dedef=\m@deset\let\m@degobble\g@bbbble
+ \let\m@decount=\f@gcount\let\m@detotal=\f@gtotal
+ \let\ifm@dembed=\iffigureembed
+ \let\m@dedoembed\f@gpar\let\m@denoembed\f@gnow
+ \let\p@riod=\p@int
+ \l@tnxt\m@denxt
+ }%
+\def\f@gpar#1#2#3#4{\ch@ckpar
+ \adddef\m@dpar{\l@tMspace
+ \f@ginsert
+ \singlespace
+ \ifdraft\else\line{\p@geleftglue\vbox{#4}\p@gerightglue}\fi
+ \f@gcaption#1{#2}{#3}%
+ \@ddtab\f@gtabwrite#1{#2}%
+ \endinsert
+ }%
+ }%
+\def\f@gnow#1#2#3#4{%
+ {\l@twrite
+ \@ddtab\f@gtabwrite#1{#2}%
+ \@dd\f@gcapwrite{#1.}{\iftitleincaption#2\fi#3}%
+ \immediate\write\f@gfigwrite{#4}%
+ \immediate\write\f@gfigwrite{\hang\F@g#1.\endpage}%
+ }%
+ }%
+%
+% TABLE CAPTION MACRO
+%
+% The Table Caption macro generates a list of table captions.
+% It is similar to the figure macro.
+%
+\newif\iftableembed\tableembedtrue
+\newif\ift@bmidpage\t@bmidpagetrue
+\newif\ift@bfullpage
+\newcount\t@bcount\t@bcount\@ne \newcount\t@btotal\t@btotal\z@
+\newwrite\t@bcapwrite\def\t@bcapfile{tabcap.psiztemp }%
+\def\t@bcaphead{\uppercase{Table Captions}}%
+\newwrite\t@btabwrite\def\t@btabfile{tabtab.psiztemp }%
+\def\t@btabhead{{List of Tables}}%
+\newwrite\t@bfigwrite\def\t@bfigfile{tabfig.psiztemp }%
+\def\t@binsert{%
+ \ift@bfullpage\let\next=\pageinsert
+ \else\ift@bmidpage\let\next=\ordinsert
+ \else\let\next=\topinsert
+ \fi
+ \fi\next
+ }%
+\def\t@bcaptext#1#2#3{%
+ \noindent\T@b#1\p@riod\ \iftitleincaption#2\fi#3%
+ }%
+\def\t@bcaption#1#2#3{%
+ \ift@bfullpage\t@bcaptext{#1}{#2}{#3}\par
+ \else\ift@bmidpage\bigskip\fi
+ {\narrower{\t@bcaptext{#1}{#2}{#3}\par}}\medskip
+ \fi
+ }%
+\def\table{%
+ \let\t@g\t@b\t@bget
+ }%
+\def\Table{%
+ \let\t@g\T@b\t@bget
+ }%
+\def\hidetab{%
+ \let\t@g\g@ble\t@bget
+ }%
+\def\baretab{%
+ \let\t@g\relax\t@bget
+ }%
+\def\t@b{Table\tie}\def\T@b{Table\tie}%
+\def\t@bget{%
+ \let\m@dedef=\m@deset\let\m@degobble=\g@bbbble
+ \let\m@decount=\t@bcount\let\m@detotal=\t@btotal
+ \let\ifm@dembed=\iftableembed
+ \let\m@dedoembed\t@bpar\let\m@denoembed\t@bnow
+ \let\p@riod=\p@int
+ \l@tnxt\m@denxt
+ }%
+\def\t@bpar#1#2#3#4{\ch@ckpar
+ \adddef\m@dpar{\l@tMspace
+ \t@binsert
+ \singlespace
+ \t@bcaption#1{#2}{#3}%
+ \ifdraft\else\line{\p@geleftglue\vbox{#4}\p@gerightglue}\fi
+ \@ddtab\t@btabwrite#1{#2}%
+ \endinsert
+ }%
+ }%
+\def\t@bnow#1#2#3#4{%
+ {\l@twrite
+ \@ddtab\t@btabwrite#1{#2}%
+ \@dd\t@bcapwrite{#1.}{\iftitleincaption#2\fi#3}%
+ \immediate\write\t@bfigwrite{#4}%
+ \immediate\write\t@bfigwrite{\hang\T@b#1.\endpage}%
+ }%
+ }%
+%
+% COMMON MACROS FOR ALL THE ABOVE
+%
+% Following three macros implement the ordered midinsert: \ordinsert.
+% This repairs the defect in \midinsert which can cause the order of
+% the inserts in the typeset document to be different from the
+% order in which they appear in the source.
+% Note that a \midinsert is translated into a \topinsert if it is too big
+% or if there are any inserts carried over at all. So a split footnote
+% would have an interference effect here.
+\newif\if@ord
+\def\ordinsert{\@ordtrue\@midtrue\@ins}%
+\def\endinsert{\egroup % finish the \vbox
+ \if@mid\p@gefalse\if@ord\ifnum\insertpenalties>\z@\@midfalse\fi\fi\fi
+ \if@mid
+ \dimen@\ht\z@\advance\dimen@\dp\z@\advance\dimen@\bigskipamount
+ \advance\dimen@\pagetotal\advance\dimen@\pagedepth
+ \advance\dimen@-\pageshrink\advance\dimen@-\pagegoal
+ \ifdim\dimen@>\z@\@midfalse\fi
+ \fi
+ \if@mid \bigskip\box\z@\bigbreak
+ \else\insert\topins{\penalty100 % floating insertion
+ \splittopskip\z@skip
+ \splitmaxdepth\maxdimen \floatingpenalty\z@
+ \ifp@ge \dimen@\dp\z@
+ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
+ \else \box\z@\nobreak\vskip\@ne\bigskipamount
+ \fi
+ }%
+ \fi\endgroup\@ordfalse
+ }%
+% Following five macros examine successive tokens until something other
+% than a <CR> is seen. This, then becomes the tokens put into the
+% token register which is the argument of \g@ttok.
+% In this way, the tokens are absorbed with <CR> as an active character
+% but still preserving TeX's property of spacing past blanks (including
+% a <CR>) as it is absorbing the arguments of a macro.
+\def\g@ttok#1{\let\temp#1\l@kt@k}%
+\def\l@kt@k{\futurelet\next\d@ct@k}%
+\def\d@ct@k{%
+ \if\next\h@tMactive\let\next\g@bt@k\else\let\next\g@tt@k\fi\next
+ }%
+\def\g@tt@k#1{\global\temp{#1}\endgroup}%
+\def\g@bt@k#1{\l@kt@k}%
+\def\ch@ckpar{%
+ \ifx\par\endgraf\gdef\par{\m@dpar}%
+ \gdef\m@dpar{\gdef\m@dpar{}\global\let\par\endgraf\par}%
+ \fi
+ }%
+\def\l@tnxt#1#2{\def\temp{#1#2}\futurelet\next\temp}%
+\def\lowercasecite{%
+ \gdef\r@f{ref.\tie}\gdef\f@g{fig.\tie}%
+ \gdef\t@b{table\tie}\gdef\eq@{eqn.\tie}%
+ }%
+\adddef\l@twrite{% define in macros
+ \l@tMother
+ \let\figure=0\let\Figure=0%
+ \let\table=0\let\Table=0%
+ \let\reference=0\let\Reference=0\let\cite=0%
+ \let\authoraddress=0\let\presentaddress=0%
+ \let\equation=0\let\Equation=0\let\display=0%
+ \let\picture=0%
+ }%
+\gdef\@dd#1#2#3{% add something to the specified file
+ {\l@twrite
+ \immediate\write#1{\noexpand\hangpar{.08}{#2\quad}\percent}%
+ \immediate\write#1{#3}%
+ }%
+ }%
+\def\hangpar#1#2{%
+ \par\noindent\hangindent#1\refsize
+ \hbox to #1\refsize{\hfill#2}%
+ }%
+\def\@ddtab#1#2#3{%
+ {\l@twrite
+ \write#1{%
+ \line{%
+ \quad\strut#2\quad\h@tMother#3\h@tMother
+ \leaderfil\number\p@gecount
+ }%
+ }%
+ }%
+ }%
+%
+% MACROS FOR OUTPUTTING CITATIONS AND FOR RESETTING THEM
+%
+\def\re@dback#1#2#3#4{%
+ \ifnum#4>\z@
+ \ifproof\bigskip\else\endpage\fi
+ {\bf\centertitle#3}%
+ \immediate\closeout#1
+ \unlock\input#2\lock
+ \fi
+ }%
+\def\c@teout{%
+ \ifnum\r@ftotal>\z@
+ \ifproof\else\endpage\fi
+ \xdef\writeit{%
+ \write\ch@pterwrite{%
+ \line{%
+ \strut\h@tMother\r@fcaphead\h@tMother
+ \leaderfil\noexpand\number\p@gecount
+ }%
+ }%
+ }\writeit
+ \re@dback\r@fcapwrite\r@fcapfile\r@fcaphead\r@ftotal
+ \ifproof\else\endpage\fi
+ \fi
+ \ifv@ta
+ \endpage
+ \xdef\writeit{%
+ \write\ch@pterwrite{%
+ \line{%
+ \strut\h@tMother\v@tahead\h@tMother
+ \leaderfil\noexpand\number\p@gecount
+ }%
+ }%
+ }\writeit
+ \centertitle{\v@tahead}\v@ta
+ \fi
+ \iftableembed\else
+ \re@dback\t@bcapwrite\t@bcapfile\t@bcaphead\t@btotal
+ \fi
+ \iffigureembed\else
+ \re@dback\f@gcapwrite\f@gcapfile\f@gcaphead\f@gtotal
+ \fi
+ }%
+\def\c@tereset{%
+ \global\f@gcount\@ne
+ \global\t@bcount\@ne
+ \global\eq@count\@ne
+ \global\r@fcount\@ne
+ \global\f@gtotal\z@
+ \global\t@btotal\z@
+ \global\r@ftotal\z@
+ \n@llout\r@ftabwrite\r@ftabfile
+ \n@llout\r@fcapwrite\r@fcapfile
+ \n@llout\f@gtabwrite\f@gtabfile
+ \n@llout\f@gcapwrite\f@gcapfile
+ \n@llout\f@gfigwrite\f@gfigfile
+ \n@llout\t@btabwrite\t@btabfile
+ \n@llout\t@bcapwrite\t@bcapfile
+ \n@llout\t@bfigwrite\t@bfigfile
+ \n@llout\eq@write\eq@file
+ }%
+\adddef\b@dyreset{\c@tereset}%
+\def\c@teclear{%
+ \ifch@pterrenumber
+ \global\f@gcount\@ne
+ \global\t@bcount\@ne
+ \global\eq@count\@ne
+ \fi
+ \ifr@frenumber\global\r@fcount\@ne\fi
+ }%
+\def\f@gt@bhead{\f@gt@bheadfalse
+ \ifnum\t@btotal>\z@\f@gt@bheadtrue
+ \line{\strut\t@btabhead\leaderfil\romannumeral-\t@bpagecount}%
+ \fi
+ \ifnum\f@gtotal>\z@\f@gt@bheadtrue
+ \line{\strut\f@gtabhead\leaderfil\romannumeral-\f@gpagecount}%
+ \fi
+ }%
+% when text is missing, must still typeset the ref number.
+% show error messages in the documentation