diff options
Diffstat (limited to 'Master/texmf-dist/tex/plain/zztex/zzsect.tex')
-rw-r--r-- | Master/texmf-dist/tex/plain/zztex/zzsect.tex | 806 |
1 files changed, 806 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/plain/zztex/zzsect.tex b/Master/texmf-dist/tex/plain/zztex/zzsect.tex new file mode 100644 index 00000000000..280d2ecc5b1 --- /dev/null +++ b/Master/texmf-dist/tex/plain/zztex/zzsect.tex @@ -0,0 +1,806 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Module: ZzTeX Sectioning Facilities +% +% Synopsis: +% +% Author: Paul C. Anagnostopoulos +% Created: 25 August 1989 +% +% Copyright 1989--2020 by Paul C. Anagnostopoulos +% under The MIT License (opensource.org/licenses/MIT) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Part and Chapter Texts +% ---- --- ------- ----- + + +\long\def \setauthortext #1{% {text} %^modifier + \with{\authortext = {#1}}} + +\long\def \setopenertext #1{% {text} %^modifier + \with{\openertext = {#1}}} + +% Part +% ---- + + +\defineblock{\part}{\endpart}{\true}{} + +%~block part +% \setflag \allowintoc = flag % Allow in ToC? +% \authortext = {...} % Author needed for opener. +% \def \comptextformat {...} % Composite number text formatter. +% \def \paging {...} % Paging before part opener. +% \def \partformat ##1{...} % Part page formatter. +% \openertext = {...} % Special text needed for opener. +% \def \providemark ##1{...} % Mark provider. +% \resetnumber = {...} % List of numbers to reset. +% \runners = {style,...} % Running head/foot styles. +% \style = {...} % Heading style. +%~end + +\def \part #1{% {title} + \closeanychapter + \beginblockscope{part}% + \global\increment \partdepth + \authortext = {}% %~default hard + \openertext = {}% %~default hard + \runners = {blind,normal}% %~default soft + \zoldrunners{\blindheader\blindfooter}% + \style = {Caps/lowercase, \noindent} %~default soft + \processdesign{\part}{}% + \global\increment \partnumber + \setcomptext{\partcomptext}% + \paging + \remark{Starting PART \number\partnumber.}% + % Next three things are done first, in case opener is more than one page. + \providemark{#1}% + \zpartchaptoc{\the\partcomptext}{#1}{80}% + \settaginfo{\the\partcomptext}{#1} + \zsetrunnerstoks{\runners}% + {\partformat{#1}}% + \endgraf} + +\def \endpart {% + \global\decrement \partdepth + \endblockscope{part}} + +\def \setpartnumber #1{% {number} + \global\partnumber = #1\relax + \global\decrement \partnumber} + +% Quasi-Part +% ---------- + + +\defineblock{\quasipart}{\endquasipart}{\true}{} + +%~block quasipart +% \setflag \allowintoc = flag % Allow in ToC? +% \openertext = {...} % Special text needed for opener. +% \def \paging {...} % Paging before part opener. +% \def \quasipartformat ##1{...} % Part page formatter. +% \def \providemark ##1{...} % Mark provider. +% \resetnumber = {...} % List of numbers to reset. +% \runners = {style,...} % Running head/foot styles. +% \style = {...} % Heading style. +%~end + +\def \quasipart #1{% {title} + \closeanychapter + \beginblockscope{quasipart}% + \global\increment \quasipartdepth + \openertext = {}% %~default hard + \runners = {blind,normal}% %~default soft + \zoldrunners{\blindheader\blindfooter}% + \style = {Caps/lowercase, \noindent}% %~default soft + \processdesign{\quasipart}{}% + \global\increment \quasipartnumber + \paging + \def \znext {#1}% + \remark{Starting QUASIPART `\expandafter\zdefof \meaning\znext\zmark'.}% + % Next three things are done first, in case opener is more than one page. + \providemark{#1}% + \zpartchaptoc{}{#1}{85}% + \settaginfo{}{#1}% + \zsetrunnerstoks{\runners}% + {\quasipartformat{#1}}% + \endgraf} +%%% \endquasipart} + +\def \endquasipart {% + \global\decrement \quasipartdepth + \endblockscope{quasipart}} + +% Chapter +% ------- + +\defineblock{\chapter}{\endchapter}{\true}{} + +%~block chapter +% \setflag \allowintoc = boolean % Allow in ToC? +% \authorlevel = integer % Author ToC entry level. +% \authortext = {...} % Author text needed for opener. +% \def \comptextformat {...} % Composite number text formatter. +% \difficulty = integer % Level of difficulty. +% \numberfont = {...} % Font for number. +% \numberwordfont = {...} % Font for word like "chapter". +% \def \numberformat {...} % Number format. +% \numbersink = glue % Sinkage to number, or +% \numberskip = glue % Space b/b to number. +% \openertext = {...} % Special text needed for opener. +% \def \paging {...} % Initial paging. +% \def \providemark ##1{...} % Mark provider. +% \resetnumber = {...} % List of numbers to reset. +% \setflag \resetsection = boolean % Reset section number? +% \runners = {style,...} % Running head/foot styles. +% \style = {...} % Heading style. +% \textsink = sinkage % Sinkage to text, or +% \textskip = skip % Space b/b from rule to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \titlesink = glue % Sinkage to title, or +% \titleskip = glue % Space b/b from number to title. +%~end + +\def \chapter #1{% {title} + \closeanychapter + \beginblockscope{chapter}% + \global\increment \chapterdepth + \authorlevel = 0 %~default hard + \authortext = {}% %~default hard + \difficulty = 0 %~default with + \openertext = {}% %~default hard + \setflag \resetsection = \true %~default hard + \runners = {chapter,normal}% %~default soft + \zoldrunners{\chapterheader\chapterfooter}% + \style = {Caps/lowercase, \noindent}% %~default soft + \processdesign{\chapter}{}% + \if \resetsection + \global\sectionnumber = 0 + \global\quasisectionnumber = 0 + \global\chapterappendixnumber = 0 + \fi + \global\simpleheadnumber = 0 + \global\increment \chapternumber + \setcomptext{\chaptercomptext}% + \paging + \remark{Starting chapter \if \emptytoksp{\chaptercomptext}'#1'\else + \the\chaptercomptext \fi.}% + \zsetrunnerstoks{\runners}% + \chapterformat{#1}% + \deferfloats{\true}% + \settaginfo{\the\chaptercomptext}{#1}} + +\def \endchapter {% + \closeanysection + \global\decrement \chapterdepth + \endblockscope{chapter}} + +\def \chapterformat #1{% + {\the\numberfont + \zsinkskip{\numbersink}{\breakbest}{\numberskip}% + \numberformat\par}% + {\the\titlefont + \zsinkskip{\titlesink}{\breaknever}{\titleskip}% + \titleformat{#1}\par}% + \providemark{#1}% + \zpartchaptoc{\the\chaptercomptext}{#1}{70}% + \zsinkskip{\textsink}{\breaknever}{\textskip}} + +\def \setchapternumber #1{% {number} + \global\chapternumber = #1\relax + \global\decrement \chapternumber} + +\def \setappendixnumber #1{% {number} + \global\appendixnumber = #1\relax + \global\decrement \appendixnumber} + +\def \setsectionnumber #1{% {number} + \global\sectionnumber = #1\relax + \global\decrement \sectionnumber} + +% Quasi-Chapter +% ------------- + + +\defineblock{\quasichapter}{\endquasichapter}{\true}{} + +%~block quasichapter +% \setflag \allowintoc = boolean % Allow in ToC? +% \authorlevel = integer % Author ToC entry level. +% \authortext = {...} % Author text needed for opener. +% \openertext = {...} % Special text needed for opener. +% \def \paging {...} % Initial paging. +% \def \providemark ##1{...} % Mark provider. +% \resetnumber = {...} % List of numbers to reset. +% \runners = {style,...} % Running head/foot styles. +% \style = {...} % Heading style. +% \textsink = sinkage % Sinkage to text, or +% \textskip = skip % Skip from rule to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \titlesink = glue % Sinkage to title, or +% \titleskip = glue % Space b/b to title. +%~end + +\def \quasichapter #1{% {title} + \closeanychapter + \beginblockscope{quasichapter}% + \global\increment \quasichapterdepth + \authorlevel = 0 %~default hard + \authortext = {}% %~default hard + \openertext = {}% %~default hard + \runners = {chapter,normal}% %~default soft + \zoldrunners{\chapterheader\chapterfooter}% + \style = {Caps/lowercase, \noindent}% %~default soft + \processdesign{\quasichapter}{}% + \global\increment \quasichapternumber + \chaptercomptext = {}% + \paging + \def \znext {#1}% + \remark{Starting quasichapter `\expandafter\zdefof \meaning\znext\zmark'.}% + \zsetrunnerstoks{\runners}% + \quasichapterformat{#1}% + \deferfloats{\true}% + \settaginfo{}{#1}} + +\def \endquasichapter {% + \closeanysection + \global\decrement \quasichapterdepth + \endblockscope{quasichapter}} + +\def \quasichapterformat #1{% + {\the\titlefont + \zsinkskip{\titlesink}{\breaknever}{\titleskip}% + \titleformat{#1}\par} + \providemark{#1}% + \zpartchaptoc{}{#1}{75}% + \zsinkskip{\textsink}{\breaknever}{\textskip}} + +% Appendix +% -------- + + +\defineblock{\appendix}{\endappendix}{\true}{} + +%~block appendix +% \setflag \allowintoc = boolean % Allow in ToC? +% \authortext = {...} % Author text needed for opener. +% \def \comptextformat {...} % Composite number text formatter. +% \numberfont = {...} % Font for number. +% \numberwordfont = {...} % Font for word like "appendix". +% \def \numberformat {...} % Number format. +% \numbersink = glue % Sinkage to number, or +% \numberskip = glue % Space b/b to number. +% \openertext = {...} % Special text needed for opener. +% \def \paging {...} % Initial paging. +% \def \providemark ##1{...} % Mark provider. +% \resetnumber = {...} % List of numbers to reset. +% \setflag \resetsection = boolean % Reset section number? +% \runners = {style,...} % Running head/foot styles. +% \style = {...} % Heading style. +% \textsink = sinkage % Sinkage to text, or +% \textskip = skip % Space b/b from rule to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \titlesink = glue % Sinkage to title, or +% \titleskip = glue % Space b/b from number to title. +%~end + +\def \appendix #1{% {title} + \closeanychapter + \beginblockscope{appendix}% + \global\increment \appendixdepth + \authortext = {}% %~default hard + \openertext = {}% %~default hard + \setflag \resetsection = \true %~default hard + \runners = {chapter,normal}% %~default soft + \zoldrunners{\chapterheader\chapterfooter}% + \style = {Caps/lowercase, \noindent}% %~default soft + \processdesign{\appendix}{}% + \if \resetsection + \global\sectionnumber = 0 + \global\quasisectionnumber = 0 + \global\chapterappendixnumber = 0 + \fi + \global\increment \appendixnumber + \setcomptext{\chaptercomptext}% % Not \appendixcomptext! + \paging + \remark{Starting appendix \the\chaptercomptext.}% + \zsetrunnerstoks{\runners}% + \appendixformat{#1}% + \deferfloats{\true}% + \settaginfo{\the\chaptercomptext}{#1}} + +\def \endappendix {% + \closeanysection + \global\decrement \appendixdepth + \endblockscope{appendix}} + +\def \appendixformat #1{% + {\the\numberfont + \zsinkskip{\numbersink}{\breakbest}{\numberskip}% + \numberformat\par}% + {\the\titlefont + \zsinkskip{\titlesink}{\breaknever}{\titleskip}% + \titleformat{#1}\par}% + \providemark{#1}% + \zpartchaptoc{\the\chaptercomptext}{#1}{71}% + \zsinkskip{\textsink}{\breaknever}{\textskip}} + +% Section +% ------- + + +\defineblock{\section}{\endsection}{\true}{} + +%~block section +% \aboveskip = glue % Space b/b above title. +% \setflag \allowintoc = boolean % Allow in ToC? +% \def \comptextformat {...} % Composite number text formatter. +% \difficulty = integer % Level of difficulty. +% \numberfont = {...} % Number font. +% \def \providemark ##1{...} % Mark provider. +% \resetnumber = {...} % List of numbers to reset. +% \style = {...} % Heading style. +% \textskip = skip % Skip from title to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \topadjust = dimen % Adjust if at top of page. +%~end + +\def \section #1{% {title} + \closeanysection + \beginblockscope{section}% + \global\increment \sectiondepth + \difficulty = 0 %~default with + \style = {Caps/lowercase, \noindent}% %~default soft + \topadjust = \mindimen %~default hard + \processdesign{\section}{}% + \global\subsectionnumber = 0 + \global\subsubsectionnumber = 0 + \global\subsubsubsectionnumber = 0 + \global\increment \sectionnumber + \setcomptext{\sectioncomptext}% + \sectionformat{#1}% + \settaginfo{\the\sectioncomptext}{#1}} + +\def \endsection {% + \closeanysubsection + \global\decrement \sectiondepth + \endblockscope{section}} + +\def \sectionformat #1{% + {\if \emptytoksp{\numberfont}\the\titlefont \else \the\numberfont \fi + \zskipabovehead{\breakbest}{\aboveskip}% + \titleformat{#1}\par}% + \providemark{#1}% + \ztocentry{\the\sectioncomptext}{#1}{60}{\allowintoc}% + \bbskipabove{\breaknever}{\textskip}% + \overrideclubpenalty{\breaknever}} + +% Quasi-Section +% ------------- + + +\defineblock{\quasisection}{\endquasisection}{\true}{} + +%~block quasisection +% \aboveskip = glue % Space b/b above title. +% \setflag \allowintoc = boolean % Allow in ToC? +% \difficulty = integer % Level of difficulty. +% \def \providemark ##1{...} % Mark provider. +% \resetnumber = {...} % List of numbers to reset. +% \style = {...} % Heading style. +% \textskip = skip % Skip from title to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \topadjust = dimen % Adjust if at top of page. +%~end + +\def \quasisection #1{% {tile} + \closeanysection + \beginblockscope{quasisection}% + \global\increment \quasisectiondepth + \difficulty = 0 %~default with + \style = {Caps/lowercase, \noindent}% %~default soft + \topadjust = \mindimen %~default hard + \processdesign{\quasisection}{}% + \global\increment \quasisectionnumber % In case needed for \tagpageonly. + \quasisectionformat{#1}% + \settaginfo{}{#1}} + +\def \endquasisection {% + \closeanysubsection + \global\decrement \quasisectiondepth + \endblockscope{quasisection}} + +\def \quasisectionformat #1{% + {\the\titlefont + \zskipabovehead{\breakbest}{\aboveskip}% + \titleformat{#1}\par} + \providemark{#1}% + \ztocentry{}{#1}{65}{\allowintoc}% + \bbskipabove{\breaknever}{\textskip}% + \overrideclubpenalty{\breaknever}} + +% Chapter Appendix +% ------- -------- + + +\defineblock{\chapterappendix}{\endchapterappendix}{\true}{} + +%~block chapterappendix +% \aboveskip = glue % Space b/b above title. +% \setflag \allowintoc = boolean % Allow in ToC? +% \def \comptextformat {...} % Composite number text formatter. +% \difficulty = integer % Level of difficulty. +% \numberfont = {...} % Number font. +% \def \providemark ##1{...} % Mark provider. +% \resetnumber = {...} % List of numbers to reset. +% \style = {...} % Heading style. +% \textskip = skip % Skip from title to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \topadjust = dimen % Adjust if at top of page. +%~end + +\def \chapterappendix #1{% {title} + \closeanysection + \beginblockscope{chapterappendix}% + \global\increment \chapterappendixdepth + \difficulty = 0 %~default with + \style = {Caps/lowercase, \noindent}% %~default soft + \topadjust = \mindimen %~default hard + \processdesign{\chapterappendix}{}% + \global\subsectionnumber = 0 + \global\subsubsectionnumber = 0 + \global\subsubsubsectionnumber = 0 + \global\increment \chapterappendixnumber + \setcomptext{\sectioncomptext}% % Not \chapterappendixcomptext! + \chapterappendixformat{#1}% + \settaginfo{\the\sectioncomptext}{#1}} + +\def \endchapterappendix {% + \closeanysubsection + \global\decrement \chapterappendixdepth + \endblockscope{chapterappendix}} + +\def \chapterappendixformat #1{% + {\if \emptytoksp{\numberfont}\the\titlefont \else \the\numberfont \fi + \zskipabovehead{\breakbest}{\aboveskip}% + \titleformat{#1}\par}% + \providemark{#1}% + \ztocentry{\the\sectioncomptext}{#1}{61}{\allowintoc}% + \bbskipabove{\breaknever}{\textskip}% + \overrideclubpenalty{\breaknever}} + +% Subsection +% ---------- + + +\defineblock{\subsection}{\endsubsection}{\false}{} + +%~block subsection +% \aboveskip = glue % Space b/b above title. +% \setflag \allowintoc = flag % Allow in ToC? +% \def \comptextformat {...} % Composite number text formatter. +% \difficulty = integer % Level of difficulty. +% \numberfont = {...} % Font for number. +% \def \providemark ##1{...} % Mark provider. +% \style = {...} % Heading style. +% \textskip = skip % Skip from title to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \topadjust = dimen % Adjust if at top of page. +%~end + +\def \subsection #1{% {title} + \closeanysubsection + \beginblockscope{subsection}% + \global\increment \subsectiondepth + \difficulty = 0 %~default with + \style = {Caps/lowercase, \noindent}% %~default soft + \topadjust = \mindimen %~default hard + \processdesign{\subsection}{}% + \global\subsubsectionnumber = 0 + \global\subsubsubsectionnumber = 0 + \global\increment \subsectionnumber + \setcomptext{\subsectioncomptext}% + \subsectionformat{#1}% + \settaginfo{\the\subsectioncomptext}{#1}% + \ignorespaces} + +\def \endsubsection {% + \closeanysubsubsection + \global\decrement \subsectiondepth + \endblockscope{subsection}} + +\def \subsectionformat #1{% + {\if \emptytoksp{\numberfont}\the\titlefont \else \the\numberfont \fi + \zskipabovehead{\breakbetter}{\aboveskip}% + \titleformat{#1}}% + \providemark{#1}% + \ztocentry{\the\subsectioncomptext}{#1}{50}{\allowintoc}% + \if \dimposp{\textskip}% + \par + \bbskipabove{\breaknever}{\textskip}% + \fi + \overrideclubpenalty{\breaknever}} + +% Quasi-Subsection +% ---------------- + + +\defineblock{\quasisubsection}{\endquasisubsection}{\false}{} + +%~block quasisubsection +% \aboveskip = glue % Space b/b above title. +% \setflag \allowintoc = boolean % Allow in ToC? +% \difficulty = integer % Level of difficulty. +% \def \providemark ##1{...} % Mark provider. +% \style = {...} % Heading style. +% \textskip = skip % Skip from title to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \topadjust = dimen % Adjust if at top of page. +%~end + +\def \quasisubsection #1{% {title} + \closeanysubsection + \beginblockscope{quasisubsection}% + \global\increment \quasisubsectiondepth + \difficulty = 0 %~default with + \style = {Caps/lowercase, \noindent}% %~default soft + \topadjust = \mindimen %~default hard + \processdesign{\quasisubsection}{}% + \quasisubsectionformat{#1}% + \settaginfo{}{#1}% + \ignorespaces} + +\def \endquasisubsection {% + \closeanysubsubsection + \global\decrement \quasisubsectiondepth + \endblockscope{quasisubsection}} + +\def \quasisubsectionformat #1{% + {\the\titlefont + \zskipabovehead{\breakbetter}{\aboveskip}% + \titleformat{#1}} + \providemark{#1}% + \ztocentry{}{#1}{55}{\allowintoc}% + \if \dimposp{\textskip}% + \par + \bbskipabove{\breaknever}{\textskip}% + \fi + \overrideclubpenalty{\breaknever}} + +% Subsubsection +% ------------- + + +\defineblock{\subsubsection}{\endsubsubsection}{\false}{} + +%~block subsubsection +% \aboveskip = glue % Space b/b above title. +% \setflag \allowintoc = flag % Allow in ToC? +% \def \comptextformat {...} % Composite number text formatter. +% \difficulty = integer % Level of difficulty. +% \numberfont = {...} % Font for number. +% \def \providemark ##1{...} % Mark provider. +% \style = {...} % Heading style. +% \textskip = skip % Skip from title to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \topadjust = dimen % Adjust if at top of page. +%~end + +\def \subsubsection #1{% {title} + \closeanysubsubsection + \beginblockscope{subsubsection}% + \global\increment \subsubsectiondepth + \difficulty = 0 %~default with + \style = {Caps/lowercase, \noindent}% %~default soft + \topadjust = \mindimen %~default hard + \processdesign{\subsubsection}{}% + \global\subsubsubsectionnumber = 0 + \global\increment \subsubsectionnumber + \setcomptext{\subsubsectioncomptext}% + \subsubsectionformat{#1}% + \settaginfo{\the\subsubsectioncomptext}{#1}% + \ignorespaces} + +\def \endsubsubsection {% + \closeanysubsubsubsection + \global\decrement \subsubsectiondepth + \endblockscope{subsubsection}} + +\def \subsubsectionformat #1{% + {\if \emptytoksp{\numberfont}\the\titlefont \else \the\numberfont \fi + \zskipabovehead{\breakgood}{\aboveskip}% + \titleformat{#1}}% + \providemark{#1}% + \ztocentry{\the\subsubsectioncomptext}{#1}{40}{\allowintoc}% + \if \dimposp{\textskip}% + \par + \bbskipabove{\breaknever}{\textskip}% + \fi + \overrideclubpenalty{\breaknever}} + +% Subsubsubsection +% ---------------- + + +\defineblock{\subsubsubsection}{\endsubsubsubsection}{\false}{} + +%~block subsubsubsection +% \aboveskip = glue % Space b/b above title. +% \setflag \allowintoc = flag % Allow in ToC? +% \def \comptextformat {...} % Composite number text formatter. +% \difficulty = integer % Level of difficulty. +% \numberfont = {...} % Font for number. +% \def \providemark ##1{...} % Mark provider. +% \style = {...} % Heading style. +% \textskip = skip % Skip from title to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \topadjust = dimen % Adjust if at top of page. +%~end + +\def \subsubsubsection #1{% {title} + \closeanysubsubsubsection + \beginblockscope{subsubsubsection}% + \global\increment \subsubsubsectiondepth + \difficulty = 0 %~default with + \style = {Caps/lowercase, \noindent}% %~default soft + \topadjust = \mindimen %~default hard + \processdesign{\subsubsubsection}{}% + \global\increment \subsubsubsectionnumber + \setcomptext{\subsubsubsectioncomptext}% + \subsubsubsectionformat{#1}% + \settaginfo{\the\subsubsubsectioncomptext}{#1}% + \ignorespaces} + +\def \endsubsubsubsection {% + \global\decrement \subsubsubsectiondepth + \endblockscope{subsubsubsection}} + +\def \subsubsubsectionformat #1{% + {\if \emptytoksp{\numberfont}\the\titlefont \else \the\numberfont \fi + \zskipabovehead{\breakgood}{\aboveskip}% + \titleformat{#1}}% + \providemark{#1}% + \ztocentry{\the\subsubsubsectioncomptext}{#1}{30}{\allowintoc}% + \if \dimposp{\textskip}% + \par + \bbskipabove{\breaknever}{\textskip}% + \fi + \overrideclubpenalty{\breaknever}} + +% Simple Head +% ------ ---- + + +\defineblock{\simplehead}{\endsimplehead}{\false}{} + +%~block simplehead Type +% \aboveskip = glue % Space b/b above title. +% \setflag \allowclubline = flag % True if club allowed below. +% \setflag \allowintoc = boolean % Allow in ToC? +% \difficulty = integer % Level of difficulty. +% \style = {...} % Heading style. +% \textskip = skip % Skip from title to text. +% \titlefont = {...} % Title font. +% \def \titleformat ##1{...} % Title format. +% \tocentrylevel = integer % ToC entry level number (optional). +% \topadjust = dimen % Adjust if at top of page. +%~end + +\definecount{\tocentrylevel}{0} + + +\def \simplehead #1#2{% {type}{title} + \endgraf + \beginblockscope{simplehead}% + \global\increment \simpleheaddepth + \setflag \allowclubline = \false %~default soft + \setflag \allowintoc = \true %~default with + \difficulty = 0 %~default with + \style = {Caps/lowercase, \noindent}% %~default soft + \tocentrylevel = 0 %~default soft + \topadjust = \mindimen %~default hard + \processdesign{\simplehead}{#1}% + \global\increment \simpleheadnumber + \simpleheadformat{#2}% + \endsimplehead} + +\def \endsimplehead {% + \global\decrement \simpleheaddepth + \endblockscope{simplehead}% + \ignorespaces} + +\def \simpleheadformat #1{% + {\the\titlefont + \zskipabovehead{\breakgood}{\aboveskip}% + \titleformat{#1}}% + \if \dimzerop{\textskip}% + \nobreak + \else + \endgraf + \bbskipabove{\breaknever}{\textskip}% + \fi + \if \posp{\tocentrylevel}% + \ztocentry{}{#1}{\tocentrylevel}{\allowintoc}% + \fi + \if \notp{\allowclubline}\overrideclubpenalty{\breaknever}\fi} + +% Useful Utilities +% ------ --------- + + +\def \chapterorchapterappendixcomptext {% + \if \inblockp{\chapterappendix}% + \the\sectioncomptext + \else + \the\chaptercomptext + \fi} + +\def \textonlyhead {% %^modifier + \with{\setflag\allowintoc=\false + \def\providemark##1{}}} + +\def \closeanychapter {% + \closeifinblock{\part}{\endpart}% + \closeifinblock{\quasipart}{\endquasipart}% + \closeifinblock{\quasichapter}{\endquasichapter}% + \closeifinblock{\chapter}{\endchapter}% + \closeifinblock{\appendix}{\endappendix}} + +\def \closeanysection {% + \closeifinblock{\quasisection}{\endquasisection}% + \closeifinblock{\section}{\endsection}% + \closeifinblock{\chapterappendix}{\endchapterappendix}} + +\def \closeanysubsection {% + \closeifinblock{\quasisubsection}{\endquasisubsection}% + \closeifinblock{\subsection}{\endsubsection}} + +\def \closeanysubsubsection {% + \closeifinblock{\subsubsection}{\endsubsubsection}} + +\def \closeanysubsubsubsection {% + \closeifinblock{\subsubsubsection}{\endsubsubsubsection}} + +\def \zsinkskip #1#2#3{% {sink}{penalty}{skip} + \if \dimposp{#3}% + \bbskipabove{#2}{#3}% + \else + \vsinkfromtypearea{#1}% + \fi} + +\def \zskipabovehead #1#2{% {penalty}{skip} + \bbskipabove{#1}{#2}% + \if \dimneqlp{\topadjust}{\mindimen}% + \vskip -\topadjust + \tdimena = \prevdepth + \rule{height 0pt depth 0pt width 0pt}% + \prevdepth = \tdimena + \penalty \breaknever + \vskip \topadjust + \fi} + +% If the author level is negative, the ToC entry goes before the chapter's +% entry. Otherwise it goes after the chapter's entry. + +\def \zpartchaptoc #1#2#3{% + \edef \znext {\noexpand\tocentry{}{\the\authortext}}% + \if \andp{\notp{\emptytoksp{\authortext}}}{\negp{\authorlevel}}% + \znext{-\authorlevel}% + \fi + \ztocentry{#1}{#2}{#3}{\allowintoc}% + \if \andp{\notp{\emptytoksp{\authortext}}}{\posp{\authorlevel}}% + \znext{\authorlevel}% + \fi} |