diff options
Diffstat (limited to 'Master/texmf-dist/tex/plain/zztex/zzrunner.tex')
-rw-r--r-- | Master/texmf-dist/tex/plain/zztex/zzrunner.tex | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/plain/zztex/zzrunner.tex b/Master/texmf-dist/tex/plain/zztex/zzrunner.tex new file mode 100644 index 00000000000..c0427cbddcf --- /dev/null +++ b/Master/texmf-dist/tex/plain/zztex/zzrunner.tex @@ -0,0 +1,98 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Module: ZzTeX New Running Head/Foot Scheme +% +% Synopsis: The new running head/foot scheme is an improvement over the +% original scheme. +% +% Author: Paul C. Anagnostopoulos +% Created: 26 November 1997 +% +% Copyright 1989--2020 by Paul C. Anagnostopoulos +% under The MIT License (opensource.org/licenses/MIT) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Data Structures +% ---- ---------- + + +\def \zdefrun {normal} + +\setlist \zrunlist = {} + +\setflag \zoverrun = \false + +\def \zcurback {% + \if \definedp \backgroundnormalformat \backgroundnormalformat \fi} +\def \zcurheader {\headernormalformat} +\def \zcurfooter {\footernormalformat} + +% Specify Runners +% ------- ------- + + +%~ This command discards any current runner styles and sets up to use style +%~ *style1* on the current page, *style2* on the next, *style3* on the one after +%~ that, and so forth. The last style specified is used as the style for all +%~ subsequent pages (it becomes the default style). No spaces are allowed in the +%~ list. + +\def \setrunners #1{% {style1,style2,style3,...} %^runners + {\if \zoverrun \pop{\zoverstyle}{\zrunlist}\fi + \commalist{\zrunlist}{#1}% + \maplist{\gdef \zdefrun {##1}}{\zrunlist}% + \if \zoverrun \expandafter\overriderunners\expandafter{\zoverstyle}\fi + \zsetcurrun}} + +%~ This command overrides the style for the current page, using style *style* +%~ instead. After the current page, runner styles revert to those established +%~ by the last |\setrunners| command. + +\def \overriderunners #1{% {style} %^runners + \if \notp{\emptylistp{\zrunlist}}% + \pop{\znext}{\zrunlist}% + \fi + \push{#1}{\zrunlist}% + \global\setflag \zoverrun = \true + \zsetcurrun} + +%~ This command is simply a shorthand for |\overriderunners{blind}|. + +\def \blindrunners {% %^runners + \overriderunners{blind}} + +% Internal Common Macros +% -------- ------ ------ + + +\def \zsetrunnerstoks #1{% {\token-reg} + \expandafter\setrunners\expandafter{\the#1}} + +\def \zoverriderunnerstoks #1{% {\token-reg} + \expandafter\overriderunners\expandafter{\the#1}} + +\def \zoldrunners #1{} + +% Output Routine Interface +% ------ ------- --------- + + +\def \zsetcurrun {% + \if \emptylistp{\zrunlist}% + \edef \znext {\zdefrun}% + \else + \listtop{\znext}{\zrunlist}% + \fi + \ztoksa = \expandaftertwice{\name{\background\znext format}}% + \xdef \zcurback {% + \noexpand\if \noexpand\definedp\the\ztoksa \the\ztoksa \noexpand\fi}% + \ztoksa = \expandaftertwice{\name{\header\znext format}}% + \xdef \zcurheader {\the\ztoksa}% + \ztoksa = \expandaftertwice{\name{\footer\znext format}}% + \xdef \zcurfooter {\the\ztoksa}} + +\def \znextpagerunners {% + \if \notp{\emptylistp{\zrunlist}}\pop{\znext}{\zrunlist}\fi + \zsetcurrun + \global\setflag \zoverrun = \false} |