diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/text1/macros |
Initial commit
Diffstat (limited to 'macros/text1/macros')
42 files changed, 5226 insertions, 0 deletions
diff --git a/macros/text1/macros/cgfonts.lclist b/macros/text1/macros/cgfonts.lclist new file mode 100644 index 0000000000..6558013c77 --- /dev/null +++ b/macros/text1/macros/cgfonts.lclist @@ -0,0 +1,124 @@ +agb +agbk +agd +agxl +belb +bell +belli +belr +bemb +bemi +bemr +bemsc +bkd +bkdi +bkl +bkli +bodb +bodbi +bodbk +bodbki +bodi +bodr +bodsc +bodxb +bordera +borderb +brush +cenb +ceni +cenr +censc +courier +ctb +cti +ctr +ding +elite +etb +etbi +eti +etr +etsc +etsi +ext +garab +garabi +garai +garar +garasc +garb +garbi +garbk +garbki +garl +garli +garu +garui +gkh +gkhi +gkt +gktb +gkti +heb +hebi +hei +her +hesc +ipa +korb +korbi +kori +korout +korr +korxb +korxbi +modern +mthit +mthitss +mthrm +mthrmss +ocrb +olde +omb +ombi +omi +omr +omsc +park +plb +plbi +pli +plr +plsc +quil +spchar +specials +svd +svdi +svl +svli +svsc +symbola +symbolb +symlogo +tifd +tifh +tifl +tifr +trib +tribc +tribi +tribl +triblb +tric +trii +tril +trili +trir +trisc +unib +unibi +unii +unil +unir diff --git a/macros/text1/macros/cm10.textext b/macros/text1/macros/cm10.textext new file mode 100644 index 0000000000..aa431de13e --- /dev/null +++ b/macros/text1/macros/cm10.textext @@ -0,0 +1,34 @@ +\font\cmXbi=cmbxti10 +\font\cmXcc=cmcsc10 +\expandafter\newdimen\csname\the\naMEtok ilsx\endcsname +\global\csname\the\naMEtok ilsx\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsx\endcsname=0pt +\csname\the\naMEtok ilsx\endcsname=12pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\tenrm}% +\def\noexpand\mi{\fam1\teni}% +\def\noexpand\sy{\fam2\tensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\tenrm \textfont1=\teni + \textfont2=\tensy \textfont3=\tenex + \textfont\itfam=\tenit + \textfont\ttfam=\tentt \textfont\bffam=\tenbf + \textfont\ccfam=\cmXcc +\def\noexpand\bd{\fam\bffam\tenbf}% +\def\noexpand\it{\fam\itfam\tenit}% +\def\noexpand\tt{\fam\ttfam\tentt}% +\def\noexpand\cc{\fam\ccfam\cmXcc}% +\def\noexpand\bi{\fam\bifam\cmXbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsx\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm108m.texmath b/macros/text1/macros/cm108m.texmath new file mode 100644 index 0000000000..2410c5b3d7 --- /dev/null +++ b/macros/text1/macros/cm108m.texmath @@ -0,0 +1,10 @@ +\font\cmVIIIrm=cmr8 \font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\tenrm \scriptfont1=\teni + \scriptfont2=\tensy \scriptfont3=\tenex + \scriptfont\bffam=\tenbf + \scriptscriptfont0=\cmVIIIrm \scriptscriptfont1=\cmVIIImi + \scriptscriptfont2=\cmVIIIsy \scriptscriptfont3=\cmVIIIex + \scriptscriptfont\bffam=\cmVIIIbd}% diff --git a/macros/text1/macros/cm109m.texmath b/macros/text1/macros/cm109m.texmath new file mode 100644 index 0000000000..7b5104aaf7 --- /dev/null +++ b/macros/text1/macros/cm109m.texmath @@ -0,0 +1,10 @@ +\font\cmIXrm=cmr9 \font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\tenrm \scriptfont1=\teni + \scriptfont2=\tensy \scriptfont3=\tenex + \scriptfont\bffam=\tenbf + \scriptscriptfont0=\cmIXrm \scriptscriptfont1=\cmIXmi + \scriptscriptfont2=\cmIXsy \scriptscriptfont3=\cmIXex + \scriptscriptfont\bffam=\cmIXbd}% diff --git a/macros/text1/macros/cm11.textext b/macros/text1/macros/cm11.textext new file mode 100644 index 0000000000..aa9300ae37 --- /dev/null +++ b/macros/text1/macros/cm11.textext @@ -0,0 +1,40 @@ +\global\newif\ifcmXIbierr +\font\cmXIcc=cmcsc11 +\font\cmXIrm=cmr11 \font\cmXIit=cmti11 +\font\cmXIbd=cmbx11 \font\cmXImi=cmmi11 +\font\cmXItt=cmtt11\font\cmXIsy=cmsy11 +\expandafter\newdimen\csname\the\naMEtok ilsxi\endcsname +\global\csname\the\naMEtok ilsxi\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxi\endcsname=0pt +\csname\the\naMEtok ilsxi\endcsname=13pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIrm}% +\def\noexpand\mi{\fam1\cmXImi}% +\def\noexpand\sy{\fam2\cmXIsy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmXIrm \textfont1=\cmXImi + \textfont2=\cmXIsy\textfont3=\tenex + \textfont\itfam=\cmXIit + \textfont\ttfam=\cmXItt \textfont\bffam=\cmXIbd + \textfont\ccfam=\cmXIcc +\def\noexpand\bd{\fam\bffam\cmXIbd}% +\def\noexpand\it{\fam\itfam\cmXIit}% +\def\noexpand\tt{\fam\ttfam\cmXItt}% +\def\noexpand\cc{\fam\ccfam\cmXIcc}% +\def\noexpand\bi{\noexpand\ifcmXIbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CM11. Will print italic font .}% +\noexpand\global\noexpand\cmXIbierrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxi\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm1110m.texmath b/macros/text1/macros/cm1110m.texmath new file mode 100644 index 0000000000..09cc8fb54e --- /dev/null +++ b/macros/text1/macros/cm1110m.texmath @@ -0,0 +1,10 @@ +\font\cmXImi=cmmi11 +\font\cmXIsy=cmsy11 \font\cmXIex=cmex11 +\font\cmXIbd=cmbx11\font\cmXIrm=cmr11 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIrm \scriptfont1=\cmXImi + \scriptfont2=\cmXIsy \scriptfont3=\cmXIex + \scriptfont\bffam=\cmXIbd + \scriptscriptfont0=\tenrm \scriptscriptfont1=\teni + \scriptscriptfont2=\tensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\tenbf}% diff --git a/macros/text1/macros/cm119m.texmath b/macros/text1/macros/cm119m.texmath new file mode 100644 index 0000000000..13eca0aebf --- /dev/null +++ b/macros/text1/macros/cm119m.texmath @@ -0,0 +1,13 @@ +\font\cmXImi=cmmi11 +\font\cmXIsy=cmsy11 \font\cmXIex=cmex11 +\font\cmXIbd=cmbx11 \font\cmXIrm=cmr11 +\font\cmIXrm=cmr9 \font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIrm \scriptfont1=\cmXImi + \scriptfont2=\cmXIsy \scriptfont3=\cmXIex + \scriptfont\bffam=\cmXIbd + \scriptscriptfont0=\cmIXrm \scriptscriptfont1=\cmIXmi + \scriptscriptfont2=\cmIXsy \scriptscriptfont3=\cmIXex + \scriptscriptfont\bffam=\cmIXbd}% diff --git a/macros/text1/macros/cm12.textext b/macros/text1/macros/cm12.textext new file mode 100644 index 0000000000..a505abed9c --- /dev/null +++ b/macros/text1/macros/cm12.textext @@ -0,0 +1,37 @@ +\font\cmXIIbi=cmbxti12 +\font\cmXIIcc=cmcsc12 \font\cmXIIex=cmex12 +\font\cmXIIrm=cmr12 \font\cmXIIit=cmti12 +\font\cmXIIbd=cmbx12 \font\cmXIImi=cmmi12 +\font\cmXIItt=cmtt12 \font\cmXIIsy=cmsy12 +\expandafter\newdimen\csname\the\naMEtok ilsxii\endcsname +\global\csname\the\naMEtok ilsxii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxii\endcsname=0pt +\csname\the\naMEtok ilsxii\endcsname=14pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIIrm}% +\def\noexpand\mi{\fam1\cmXIImi}% +\def\noexpand\sy{\fam2\cmXIIsy}% +\def\noexpand\ex{\fam3\cmXIIex}% + \textfont0=\cmXIIrm \textfont1=\cmXIImi + \textfont2=\cmXIIsy \textfont3=\cmXIIex + \textfont\itfam=\cmXIIit + \textfont\ttfam=\cmXIItt \textfont\bffam=\cmXIIbd + \textfont\ccfam=\cmXIIcc +\def\noexpand\bd{\fam\bffam\cmXIIbd}% +\def\noexpand\it{\fam\itfam\cmXIIit}% +\def\noexpand\tt{\fam\ttfam\cmXIItt}% +\def\noexpand\cc{\fam\ccfam\cmXIIcc}% +\def\noexpand\bi{\fam\bifam\cmXIIbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxii\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm1210m.texmath b/macros/text1/macros/cm1210m.texmath new file mode 100644 index 0000000000..e1ccb4c7fc --- /dev/null +++ b/macros/text1/macros/cm1210m.texmath @@ -0,0 +1,10 @@ +\font\cmXIImi=cmmi12 +\font\cmXIIsy=cmsy12 \font\cmXIIex=cmex12 +\font\cmXIIbd=cmbx12\font\cmXIIrm=cmr12 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIIrm \scriptfont1=\cmXIImi + \scriptfont2=\cmXIIsy \scriptfont3=\cmXIIex + \scriptfont\bffam=\cmXIIbd + \scriptscriptfont0=\tenrm \scriptscriptfont1=\teni + \scriptscriptfont2=\tensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\tenbf}% diff --git a/macros/text1/macros/cm1211m.texmath b/macros/text1/macros/cm1211m.texmath new file mode 100644 index 0000000000..d9c4e13c45 --- /dev/null +++ b/macros/text1/macros/cm1211m.texmath @@ -0,0 +1,13 @@ +\font\cmXIImi=cmmi12 +\font\cmXIIsy=cmsy12 \font\cmXIIex=cmex12 +\font\cmXIIbd=cmbx12\font\cmXIIrm=cmr12 +\font\cmXIrm=cmr11 \font\cmXImi=cmmi11 +\font\cmXIsy=cmsy11 \font\cmXIex=cmex11 +\font\cmXIbd=cmbx11 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIIrm \scriptfont1=\cmXIImi + \scriptfont2=\cmXIIsy \scriptfont3=\cmXIIex + \scriptfont\bffam=\cmXIIbd + \scriptscriptfont0=\cmXIrm \scriptscriptfont1=\cmXImi + \scriptscriptfont2=\cmXIsy \scriptscriptfont3=\cmXIex + \scriptscriptfont\bffam=\cmXIbd}% diff --git a/macros/text1/macros/cm14.textext b/macros/text1/macros/cm14.textext new file mode 100644 index 0000000000..f302bf6a12 --- /dev/null +++ b/macros/text1/macros/cm14.textext @@ -0,0 +1,37 @@ +\font\cmXIVbi=cmbxti14 +\font\cmXIVcc=cmcsc14 \font\cmXIVex=cmex14 +\font\cmXIVrm=cmr14 \font\cmXIVit=cmti14 +\font\cmXIVbd=cmbx14 \font\cmXIVmi=cmmi14 +\font\cmXIVtt=cmtt14 \font\cmXIVsy=cmsy14 +\expandafter\newdimen\csname\the\naMEtok ilsxiv\endcsname +\global\csname\the\naMEtok ilsxiv\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiv\endcsname=0pt +\csname\the\naMEtok ilsxiv\endcsname=16pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIVrm}% +\def\noexpand\mi{\fam1\cmXIVmi}% +\def\noexpand\sy{\fam2\cmXIVsy}% +\def\noexpand\ex{\fam3\cmXIVex}% + \textfont0=\cmXIVrm \textfont1=\cmXIVmi + \textfont2=\cmXIVsy \textfont3=\cmXIVex + \textfont\itfam=\cmXIVit + \textfont\ttfam=\cmXIVtt \textfont\bffam=\cmXIVbd + \textfont\ccfam=\cmXIVcc +\def\noexpand\bd{\fam\bffam\cmXIVbd}% +\def\noexpand\it{\fam\itfam\cmXIVit}% +\def\noexpand\tt{\fam\ttfam\cmXIVtt}% +\def\noexpand\cc{\fam\ccfam\cmXIVcc}% +\def\noexpand\bi{\fam\bifam\cmXIVbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiv\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm1412m.texmath b/macros/text1/macros/cm1412m.texmath new file mode 100644 index 0000000000..fc933ca00f --- /dev/null +++ b/macros/text1/macros/cm1412m.texmath @@ -0,0 +1,13 @@ +\font\cmXIVmi=cmmi14 +\font\cmXIVsy=cmsy14 \font\cmXIVex=cmex14 +\font\cmXIVbd=cmbx14\font\cmXIVrm=cmr14 +\font\cmXIIrm=cmr12 \font\cmXIImi=cmmi12 +\font\cmXIIsy=cmsy12 \font\cmXIIex=cmex12 +\font\cmXIIbd=cmbx12 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXIVrm \scriptfont1=\cmXIVmi + \scriptfont2=\cmXIVsy \scriptfont3=\cmXIVex + \scriptfont\bffam=\cmXIVbd + \scriptscriptfont0=\cmXIIrm \scriptscriptfont1=\cmXIImi + \scriptscriptfont2=\cmXIIsy \scriptscriptfont3=\cmXIIex + \scriptscriptfont\bffam=\cmXIIbd}% diff --git a/macros/text1/macros/cm18.textext b/macros/text1/macros/cm18.textext new file mode 100644 index 0000000000..c4c9f52d87 --- /dev/null +++ b/macros/text1/macros/cm18.textext @@ -0,0 +1,37 @@ +\font\cmXVIIIbi=cmbxti18 +\font\cmXVIIIcc=cmcsc18 \font\cmXVIIIex=cmex18 +\font\cmXVIIIrm=cmr18 \font\cmXVIIIit=cmti18 +\font\cmXVIIIbd=cmbx18 \font\cmXVIIImi=cmmi18 +\font\cmXVIIItt=cmtt18 \font\cmXVIIIsy=cmsy18 +\expandafter\newdimen\csname\the\naMEtok ilsxviii\endcsname +\global\csname\the\naMEtok ilsxviii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxviii\endcsname=0pt +\csname\the\naMEtok ilsxviii\endcsname=20pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXVIIIrm}% +\def\noexpand\mi{\fam1\cmXVIIImi}% +\def\noexpand\sy{\fam2\cmXVIIIsy}% +\def\noexpand\ex{\fam3\cmXVIIIex}% + \textfont0=\cmXVIIIrm \textfont1=\cmXVIIImi + \textfont2=\cmXVIIIsy \textfont3=\cmXVIIIex + \textfont\itfam=\cmXVIIIit + \textfont\ttfam=\cmXVIIItt \textfont\bffam=\cmXVIIIbd + \textfont\ccfam=\cmXVIIIcc +\def\noexpand\bd{\fam\bffam\cmXVIIIbd}% +\def\noexpand\it{\fam\itfam\cmXVIIIit}% +\def\noexpand\tt{\fam\ttfam\cmXVIIItt}% +\def\noexpand\cc{\fam\ccfam\cmXVIIIcc}% +\def\noexpand\bi{\fam\bifam\cmXVIIIbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxviii\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm1814m.texmath b/macros/text1/macros/cm1814m.texmath new file mode 100644 index 0000000000..c3c34b0f02 --- /dev/null +++ b/macros/text1/macros/cm1814m.texmath @@ -0,0 +1,13 @@ +\font\cmXVIIImi=cmmi18 +\font\cmXVIIIsy=cmsy18 \font\cmXVIIIex=cmex18 +\font\cmXVIIIbd=cmbx18\font\cmXVIIIrm=cmr18 +\font\cmXIVrm=cmr14 \font\cmXIVmi=cmmi14 +\font\cmXIVsy=cmsy14 \font\cmXIVex=cmex14 +\font\cmXIVbd=cmbx14 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXVIIIrm \scriptfont1=\cmXVIIImi + \scriptfont2=\cmXVIIIsy \scriptfont3=\cmXVIIIex + \scriptfont\bffam=\cmXVIIIbd + \scriptscriptfont0=\cmXIVrm \scriptscriptfont1=\cmXIVmi + \scriptscriptfont2=\cmXIVsy \scriptscriptfont3=\cmXIVex + \scriptscriptfont\bffam=\cmXIVbd}% diff --git a/macros/text1/macros/cm24.textext b/macros/text1/macros/cm24.textext new file mode 100644 index 0000000000..83dc4387be --- /dev/null +++ b/macros/text1/macros/cm24.textext @@ -0,0 +1,37 @@ +\font\cmXXIVbi=cmbxti24 +\font\cmXXIVcc=cmcsc24 \font\cmXXIVex=cmex24 +\font\cmXXIVrm=cmr24 \font\cmXXIVit=cmti24 +\font\cmXXIVbd=cmbx24 \font\cmXXIVmi=cmmi24 +\font\cmXXIVtt=cmtt24\font\cmXXIVsy=cmsy24 +\expandafter\newdimen\csname\the\naMEtok ilsxxiv\endcsname +\global\csname\the\naMEtok ilsxxiv\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxiv\endcsname=0pt +\csname\the\naMEtok ilsxxiv\endcsname=26pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXIVrm}% +\def\noexpand\mi{\fam1\cmXXIVmi}% +\def\noexpand\sy{\fam2\cmXXIVsy}% +\def\noexpand\ex{\fam3\cmXXIVex}% + \textfont0=\cmXXIVrm \textfont1=\cmXXIVmi + \textfont2=\cmXXIVsy \textfont3=\cmXXIVex + \textfont\itfam=\cmXXIVit + \textfont\ttfam=\cmXXIVtt \textfont\bffam=\cmXXIVbd + \textfont\ccfam=\cmXXIVcc +\def\noexpand\bd{\fam\bffam\cmXXIVbd}% +\def\noexpand\it{\fam\itfam\cmXXIVit}% +\def\noexpand\tt{\fam\ttfam\cmXXIVtt}% +\def\noexpand\cc{\fam\ccfam\cmXXIVcc}% +\def\noexpand\bi{\fam\bifam\cmXXIVbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxiv\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm2418m.texmath b/macros/text1/macros/cm2418m.texmath new file mode 100644 index 0000000000..41222e47d0 --- /dev/null +++ b/macros/text1/macros/cm2418m.texmath @@ -0,0 +1,13 @@ +\font\cmXXIVmi=cmmi24 +\font\cmXXIVsy=cmsy24 \font\cmXXIVex=cmex24 +\font\cmXXIVbd=cmbx24\font\cmXXIVrm=cmr24 +\font\cmXVIIIrm=cmr18 \font\cmXVIIImi=cmmi18 +\font\cmXVIIIsy=cmsy18 \font\cmXVIIIex=cmex18 +\font\cmXVIIIbd=cmbx18 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmXXIVrm \scriptfont1=\cmXXIVmi + \scriptfont2=\cmXXIVsy \scriptfont3=\cmXXIVex + \scriptfont\bffam=\cmXXIVbd + \scriptscriptfont0=\cmXVIIIrm \scriptscriptfont1=\cmXVIIImi + \scriptscriptfont2=\cmXVIIIsy \scriptscriptfont3=\cmXVIIIex + \scriptscriptfont\bffam=\cmXVIIIbd}% diff --git a/macros/text1/macros/cm36.textext b/macros/text1/macros/cm36.textext new file mode 100644 index 0000000000..9a6f9ce578 --- /dev/null +++ b/macros/text1/macros/cm36.textext @@ -0,0 +1,37 @@ +\font\cmXXXVIbi=cmbxti36 +\font\cmXXXVIcc=cmcsc36\font\cmXXXVIex=cmex36 +\font\cmXXXVIrm=cmr36 \font\cmXXXVIit=cmti36 +\font\cmXXXVIbd=cmbx36 \font\cmXXXVImi=cmmi36 +\font\cmXXXVItt=cmtt36 \font\cmXXXVIsy=cmsy36 +\expandafter\newdimen\csname\the\naMEtok ilsxxxvi\endcsname +\global\csname\the\naMEtok ilsxxxvi\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxxvi\endcsname=0pt +\csname\the\naMEtok ilsxxxvi\endcsname=38pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXXVIrm}% +\def\noexpand\mi{\fam1\cmXXXVImi}% +\def\noexpand\sy{\fam2\cmXXXVIsy}% +\def\noexpand\ex{\fam3\cmXXXVIex}% + \textfont0=\cmXXXVIrm \textfont1=\cmXXXVImi + \textfont2=\cmXXXVIsy \textfont3=\cmXXXVIex + \textfont\itfam=\cmXXXVIit + \textfont\ttfam=\cmXXXVItt \textfont\bffam=\cmXXXVIbd + \textfont\ccfam=\cmXXXVIcc +\def\noexpand\bd{\fam\bffam\cmXXXVIbd}% +\def\noexpand\it{\fam\itfam\cmXXXVIit}% +\def\noexpand\tt{\fam\ttfam\cmXXXVItt}% +\def\noexpand\cc{\fam\ccfam\cmXXXVIcc}% +\def\noexpand\bi{\fam\bifam\cmXXXVIbi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxxvi\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm5.textext b/macros/text1/macros/cm5.textext new file mode 100644 index 0000000000..3cdb0205e3 --- /dev/null +++ b/macros/text1/macros/cm5.textext @@ -0,0 +1,51 @@ +\global\newif\ifVbierr +\global\newif\ifVccerr +\global\newif\ifVtterr +\global\newif\ifViterr +\global\newif\ifVbderr +\expandafter\newdimen\csname\the\naMEtok ilsv\endcsname +\global\csname\the\naMEtok ilsv\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsv\endcsname=0pt +\csname\the\naMEtok ilsv\endcsname=8pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\fiverm}% +\def\noexpand\mi{\fam1\fivei}% +\def\noexpand\sy{\fam2\fivesy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\fiverm\textfont1=\fivei + \textfont2=\fivesy\textfont3=\tenex + \textfont\bffam=\fivebf +\def\noexpand\bd{\noexpand\ifVbderr\noexpand\fam\bffam\fivebf% +\noexpand\else\noexpand\fam\bffam\fivebf% +\noexpand\message{<TEXT1> Warning. % +No bold font in CM5. Will print bold extended font .}% +\noexpand\global\noexpand\Vbderrtrue \noexpand\fi}% +\def\noexpand\it{\noexpand\ifViterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No italic font in CM5. Will print roman font .}% +\noexpand\global\noexpand\Viterrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifVtterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CM5. Will print roman font .}% +\noexpand\global\noexpand\Vtterrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifVbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CM5. Will print italic font .}% +\noexpand\global\noexpand\Vbierrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifVccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CM5. Will print roman font .}% +\noexpand\global\noexpand\Vccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsv\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm6.textext b/macros/text1/macros/cm6.textext new file mode 100644 index 0000000000..5a3a735d8c --- /dev/null +++ b/macros/text1/macros/cm6.textext @@ -0,0 +1,49 @@ +\global\newif\ifcmVIbierr +\global\newif\ifcmVIccerr +\global\newif\ifcmVIiterr +\global\newif\ifcmVItterr +\font\cmVIrm=cmr6 +\font\cmVIbd=cmbx6 \font\cmVImi=cmmi6 +\font\sixsy=cmsy6 +\expandafter\newdimen\csname\the\naMEtok ilsvi\endcsname +\global\csname\the\naMEtok ilsvi\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsvi\endcsname=0pt +\csname\the\naMEtok ilsvi\endcsname=8pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmVIrm}% +\def\noexpand\mi{\fam1\cmVImi}% +\def\noexpand\sy{\fam2\sixsy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmVIrm \textfont1=\cmVImi + \textfont2=\tensy \textfont3=\tenex + \textfont\bffam=\cmVIbd +\def\noexpand\bd{\fam\bffam\cmVIbd}% +\def\noexpand\it{\noexpand\ifcmVIiterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No italic font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVIiterrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifcmVIbierr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No bold italic font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVIbierrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifcmVIccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVIccerrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifcmVItterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CM6. Will print roman font.}% +\noexpand\global\noexpand\cmVItterrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsvi\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm65m.texmath b/macros/text1/macros/cm65m.texmath new file mode 100644 index 0000000000..d1c44223de --- /dev/null +++ b/macros/text1/macros/cm65m.texmath @@ -0,0 +1,10 @@ +\font\cmVImi=cmmi6 +\font\cmVIsy=cmsy6 \font\cmVIex=cmex10 +\font\cmVIbd=cmbx6\font\cmVIrm=cmr6 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmVIrm \scriptfont1=\cmVImi + \scriptfont2=\cmVIsy \scriptfont3=\cmVIex + \scriptfont\bffam=\cmVIbd + \scriptscriptfont0=\fiverm \scriptscriptfont1=\fivei + \scriptscriptfont2=\fivesy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\fivebf}% diff --git a/macros/text1/macros/cm7.textext b/macros/text1/macros/cm7.textext new file mode 100644 index 0000000000..894bff8b2c --- /dev/null +++ b/macros/text1/macros/cm7.textext @@ -0,0 +1,45 @@ +\global\newif\ifVIIbierr +\global\newif\ifVIIbderr +\global\newif\ifVIItterr +\global\newif\ifVIIccerr +\font\cmVIIit=cmti7 +\expandafter\newdimen\csname\the\naMEtok ilsvii\endcsname +\global\csname\the\naMEtok ilsvii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsvii\endcsname=0pt +\csname\the\naMEtok ilsvii\endcsname=9pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\sevenrm}% +\def\noexpand\mi{\fam1\seveni}% +\def\noexpand\sy{\fam2\sevensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\sevenrm \textfont1=\seveni + \textfont2=\sevensy \textfont3=\tenex + \textfont\itfam=\cmVIIit + \textfont\bffam=\sevenbf +\def\noexpand\it{\fam\itfam\cmVIIit}% +\def\noexpand\bd{\fam\bffam\sevenbf}% +\def\noexpand\tt{\noexpand\ifVIItterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CM7. Will print roman font .}% +\noexpand\global\noexpand\VIItterrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifVIIbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CM7. Will print italic font .}% +\noexpand\global\noexpand\VIIbierrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifVIIccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CM7. Will print roman font .}% +\noexpand\global\noexpand\VIIccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsvii\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm75m.texmath b/macros/text1/macros/cm75m.texmath new file mode 100644 index 0000000000..2acd4dc1f4 --- /dev/null +++ b/macros/text1/macros/cm75m.texmath @@ -0,0 +1,7 @@ + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\sevenrm \scriptfont1=\seveni + \scriptfont2=\sevensy \scriptfont3=\tenex + \scriptfont\bffam=\sevenbf + \scriptscriptfont0=\fiverm \scriptscriptfont1=\fivei + \scriptscriptfont2=\fivesy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\fivebf}% diff --git a/macros/text1/macros/cm76m.texmath b/macros/text1/macros/cm76m.texmath new file mode 100644 index 0000000000..796813490d --- /dev/null +++ b/macros/text1/macros/cm76m.texmath @@ -0,0 +1,10 @@ +\font\cmVIrm=cmr6 \font\cmVImi=cmmi6 +\font\cmVIsy=cmsy6 \font\cmVIex=cmex10 +\font\cmVIbd=cmbx6 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\sevenrm \scriptfont1=\seveni + \scriptfont2=\sevensy \scriptfont3=\tenex + \scriptfont\bffam=\sevenbf + \scriptscriptfont0=\cmVIrm \scriptscriptfont1=\cmVImi + \scriptscriptfont2=\cmVIsy \scriptscriptfont3=\cmVIex + \scriptscriptfont\bffam=\cmVIbd}% diff --git a/macros/text1/macros/cm8.textext b/macros/text1/macros/cm8.textext new file mode 100644 index 0000000000..ea69af7705 --- /dev/null +++ b/macros/text1/macros/cm8.textext @@ -0,0 +1,40 @@ +\global\newif\ifcmVIIIbierr +\font\cmVIIIcc=cmcsc8 +\font\cmVIIIrm=cmr8 \font\cmVIIIit=cmti8 +\font\cmVIIIbd=cmbx8 \font\cmVIIImi=cmmi8 +\font\cmVIIItt=cmtt8 +\expandafter\newdimen\csname\the\naMEtok ilsviii\endcsname +\global\csname\the\naMEtok ilsviii\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsviii\endcsname=0pt +\csname\the\naMEtok ilsviii\endcsname=10pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmVIIIrm}% +\def\noexpand\mi{\fam1\cmVIIImi}% +\def\noexpand\sy{\fam2\tensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmVIIIrm \textfont1=\cmVIIImi + \textfont2=\tensy \textfont3=\tenex + \textfont\itfam=\cmVIIIit + \textfont\ttfam=\cmVIIItt \textfont\bffam=\cmVIIIbd + \textfont\ccfam=\cmVIIIcc +\def\noexpand\bd{\fam\bffam\cmVIIIbd}% +\def\noexpand\it{\fam\itfam\cmVIIIit}% +\def\noexpand\tt{\fam\ttfam\cmVIIItt}% +\def\noexpand\cc{\fam\ccfam\cmVIIIcc}% +\def\noexpand\bi{\noexpand\ifcmVIIIbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CM8. Will print italic font .}% +\noexpand\global\noexpand\cmVIIIbierrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsviii\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm86m.texmath b/macros/text1/macros/cm86m.texmath new file mode 100644 index 0000000000..9acea1b047 --- /dev/null +++ b/macros/text1/macros/cm86m.texmath @@ -0,0 +1,13 @@ +\font\cmVIIIrm=cmr8 \font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8 +\font\cmVIrm=cmr6 \font\cmVImi=cmmi6 +\font\cmVIsy=cmsy6 \font\cmVIex=cmex10 +\font\cmVIbd=cmbx6 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmVIIIrm \scriptfont1=\cmVIIImi + \scriptfont2=\cmVIIIsy \scriptfont3=\cmVIIIex + \scriptfont\bffam=\cmVIIIbd + \scriptscriptfont0=\cmVIrm \scriptscriptfont1=\cmVImi + \scriptscriptfont2=\cmVIsy \scriptscriptfont3=\cmVIex + \scriptscriptfont\bffam=\cmVIbd}% diff --git a/macros/text1/macros/cm87m.texmath b/macros/text1/macros/cm87m.texmath new file mode 100644 index 0000000000..5bc523025d --- /dev/null +++ b/macros/text1/macros/cm87m.texmath @@ -0,0 +1,10 @@ +\font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8\font\cmVIIIrm=cmr8 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmVIIIrm \scriptfont1=\cmVIIImi + \scriptfont2=\cmVIIIsy \scriptfont3=\cmVIIIex + \scriptfont\bffam=\cmVIIIbd + \scriptscriptfont0=\sevenrm \scriptscriptfont1=\seveni + \scriptscriptfont2=\sevensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\sevenbf}% diff --git a/macros/text1/macros/cm9.textext b/macros/text1/macros/cm9.textext new file mode 100644 index 0000000000..8602cb2d64 --- /dev/null +++ b/macros/text1/macros/cm9.textext @@ -0,0 +1,40 @@ +\global\newif\ifcmIXbierr +\font\cmIXcc=cmcsc9 +\font\cmIXrm=cmr9 \font\cmIXit=cmti9 +\font\cmIXbd=cmbx9 \font\cmIXmi=cmmi9 +\font\cmIXtt=cmtt9 +\expandafter\newdimen\csname\the\naMEtok ilsix\endcsname +\global\csname\the\naMEtok ilsix\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsix\endcsname=0pt +\csname\the\naMEtok ilsix\endcsname=11pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmIXrm}% +\def\noexpand\mi{\fam1\cmIXmi}% +\def\noexpand\sy{\fam2\tensy}% +\def\noexpand\ex{\fam3\tenex}% + \textfont0=\cmIXrm \textfont1=\cmIXmi + \textfont2=\tensy \textfont3=\tenex + \textfont\itfam=\cmIXit + \textfont\ttfam=\cmIXtt \textfont\bffam=\cmIXbd + \textfont\ccfam=\cmIXcc +\def\noexpand\bd{\fam\bffam\cmIXbd}% +\def\noexpand\it{\fam\itfam\cmIXit}% +\def\noexpand\tt{\fam\ttfam\cmIXtt}% +\def\noexpand\cc{\fam\ccfam\cmIXcc}% +\def\noexpand\bi{\noexpand\ifcmIXbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CM9. Will print italic font .}% +\noexpand\global\noexpand\cmIXbierrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsix\noexpand\endcsname}}% diff --git a/macros/text1/macros/cm97m.texmath b/macros/text1/macros/cm97m.texmath new file mode 100644 index 0000000000..612ddf3587 --- /dev/null +++ b/macros/text1/macros/cm97m.texmath @@ -0,0 +1,10 @@ +\font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9\font\cmIXrm=cmr9 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmIXrm \scriptfont1=\cmIXmi + \scriptfont2=\cmIXsy \scriptfont3=\cmIXex + \scriptfont\bffam=\cmIXbd + \scriptscriptfont0=\sevenrm \scriptscriptfont1=\seveni + \scriptscriptfont2=\sevensy \scriptscriptfont3=\tenex + \scriptscriptfont\bffam=\sevenbf}% diff --git a/macros/text1/macros/cm98m.texmath b/macros/text1/macros/cm98m.texmath new file mode 100644 index 0000000000..78e30ed089 --- /dev/null +++ b/macros/text1/macros/cm98m.texmath @@ -0,0 +1,13 @@ +\font\cmIXmi=cmmi9 +\font\cmIXsy=cmsy9 \font\cmIXex=cmex10 +\font\cmIXbd=cmbx9\font\cmIXrm=cmr9 +\font\cmVIIIrm=cmr8 \font\cmVIIImi=cmmi8 +\font\cmVIIIsy=cmsy8 \font\cmVIIIex=cmex10 +\font\cmVIIIbd=cmbx8 + \expandafter\gdef\csname\the\maTHtok\endcsname{% + \scriptfont0=\cmIXrm \scriptfont1=\cmIXmi + \scriptfont2=\cmIXsy \scriptfont3=\cmIXex + \scriptfont\bffam=\cmIXbd + \scriptscriptfont0=\cmVIIIrm \scriptscriptfont1=\cmVIIImi + \scriptscriptfont2=\cmVIIIsy \scriptscriptfont3=\cmVIIIex + \scriptscriptfont\bffam=\cmVIIIbd}% diff --git a/macros/text1/macros/cmsan10.textext b/macros/text1/macros/cmsan10.textext new file mode 100644 index 0000000000..cedf00fe5e --- /dev/null +++ b/macros/text1/macros/cmsan10.textext @@ -0,0 +1,46 @@ +\global\newif\ifXssbierr +\global\newif\ifXssccerr +\global\newif\ifXsstterr +\font\cmXssrm=cmss10 \font\cmXssit=cmssi10 +\font\cmXssbd=cmssbx10 \font\cmXssmi=cmmi10 +\font\cmXsssy=cmsy10 \font\cmXssex=cmex10 +\expandafter\newdimen\csname\the\naMEtok ilsxss\endcsname +\global\csname\the\naMEtok ilsxss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxss\endcsname=0pt +\csname\the\naMEtok ilsxss\endcsname=12pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXssrm}% +\def\noexpand\mi{\fam1\cmXssmi}% +\def\noexpand\sy{\fam2\cmXsssy}% +\def\noexpand\ex{\fam3\cmXssex}% + \textfont0=\cmXssrm \textfont1=\cmXssmi + \textfont2=\cmXsssy \textfont3=\cmXssex + \textfont\itfam=\cmXssit + \textfont\bffam=\cmXssbd +\def\noexpand\bd{\fam\bffam\cmXssbd}% +\def\noexpand\it{\fam\itfam\cmXssit}% +\def\noexpand\bi{\noexpand\ifXssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CMSAN10. Will print italic font .}% +\noexpand\global\noexpand\Xssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CMSAN10. Will print roman font .}% +\noexpand\global\noexpand\Xsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CMSAN10. Will print roman font .}% +\noexpand\global\noexpand\Xssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan11.textext b/macros/text1/macros/cmsan11.textext new file mode 100644 index 0000000000..e5da60857e --- /dev/null +++ b/macros/text1/macros/cmsan11.textext @@ -0,0 +1,46 @@ +\global\newif\ifXIssbierr +\global\newif\ifXIssccerr +\global\newif\ifXIsstterr +\font\cmXIssrm=cmss11 \font\cmXIssit=cmssi11 +\font\cmXIssbd=cmssbx11 \font\cmXIssmi=cmmi11 +\font\cmXIsssy=cmsy11 \font\cmXIssex=cmex11 +\expandafter\newdimen\csname\the\naMEtok ilsxiss\endcsname +\global\csname\the\naMEtok ilsxiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiss\endcsname=0pt +\csname\the\naMEtok ilsxiss\endcsname=13pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIssrm}% +\def\noexpand\mi{\fam1\cmXIssmi}% +\def\noexpand\sy{\fam2\cmXIsssy}% +\def\noexpand\ex{\fam3\cmXIssex}% + \textfont0=\cmXIssrm \textfont1=\cmXIssmi + \textfont2=\cmXIsssy \textfont3=\cmXIssex + \textfont\itfam=\cmXIssit + \textfont\bffam=\cmXIssbd +\def\noexpand\bd{\fam\bffam\cmXIssbd}% +\def\noexpand\it{\fam\itfam\cmXIssit}% +\def\noexpand\bi{\noexpand\ifXIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CMSAN11. Will print italic font .}% +\noexpand\global\noexpand\XIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CMSAN11. Will print roman font .}% +\noexpand\global\noexpand\XIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CMSAN11. Will print roman font .}% +\noexpand\global\noexpand\XIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan12.textext b/macros/text1/macros/cmsan12.textext new file mode 100644 index 0000000000..234dd3cbba --- /dev/null +++ b/macros/text1/macros/cmsan12.textext @@ -0,0 +1,46 @@ +\global\newif\ifXIIssbierr +\global\newif\ifXIIssccerr +\global\newif\ifXIIsstterr +\font\cmXIIssrm=cmss12 \font\cmXIIssit=cmssi12 +\font\cmXIIssbd=cmssbx12 \font\cmXIIssmi=cmmi12 +\font\cmXIIsssy=cmsy12 \font\cmXIIssex=cmex12 +\expandafter\newdimen\csname\the\naMEtok ilsxiiss\endcsname +\global\csname\the\naMEtok ilsxiiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxiiss\endcsname=0pt +\csname\the\naMEtok ilsxiiss\endcsname=14pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIIssrm}% +\def\noexpand\mi{\fam1\cmXIIssmi}% +\def\noexpand\sy{\fam2\cmXIIsssy}% +\def\noexpand\ex{\fam3\cmXIIssex}% + \textfont0=\cmXIIssrm \textfont1=\cmXIIssmi + \textfont2=\cmXIIsssy \textfont3=\cmXIIssex + \textfont\itfam=\cmXIIssit + \textfont\bffam=\cmXIIssbd +\def\noexpand\bd{\fam\bffam\cmXIIssbd}% +\def\noexpand\it{\fam\itfam\cmXIIssit}% +\def\noexpand\bi{\noexpand\ifXIIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CMSAN12. Will print italic font .}% +\noexpand\global\noexpand\XIIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXIIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CMSAN12. Will print roman font .}% +\noexpand\global\noexpand\XIIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXIIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CMSAN12. Will print roman font .}% +\noexpand\global\noexpand\XIIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxiiss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan14.textext b/macros/text1/macros/cmsan14.textext new file mode 100644 index 0000000000..23d2eb54a5 --- /dev/null +++ b/macros/text1/macros/cmsan14.textext @@ -0,0 +1,46 @@ +\global\newif\ifXIVssbierr +\global\newif\ifXIVssccerr +\global\newif\ifXIVsstterr +\font\cmXIVssrm=cmss14 \font\cmXIVssit=cmssi14 +\font\cmXIVssbd=cmssbx14 \font\cmXIVssmi=cmmi14 +\font\cmXIVsssy=cmsy14 \font\cmXIVssex=cmex14 +\expandafter\newdimen\csname\the\naMEtok ilsxivss\endcsname +\global\csname\the\naMEtok ilsxivss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxivss\endcsname=0pt +\csname\the\naMEtok ilsxivss\endcsname=16pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXIVssrm}% +\def\noexpand\mi{\fam1\cmXIVssmi}% +\def\noexpand\sy{\fam2\cmXIVsssy}% +\def\noexpand\ex{\fam3\cmXIVssex}% + \textfont0=\cmXIVssrm \textfont1=\cmXIVssmi + \textfont2=\cmXIVsssy \textfont3=\cmXIVssex + \textfont\itfam=\cmXIVssit + \textfont\bffam=\cmXIVssbd +\def\noexpand\bd{\fam\bffam\cmXIVssbd}% +\def\noexpand\it{\fam\itfam\cmXIVssit}% +\def\noexpand\bi{\noexpand\ifXIVssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CMSAN14. Will print italic font .}% +\noexpand\global\noexpand\XIVssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXIVsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CMSAN14. Will print roman font .}% +\noexpand\global\noexpand\XIVsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXIVssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CMSAN14. Will print roman font .}% +\noexpand\global\noexpand\XIVssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxivss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan18.textext b/macros/text1/macros/cmsan18.textext new file mode 100644 index 0000000000..a1a581291e --- /dev/null +++ b/macros/text1/macros/cmsan18.textext @@ -0,0 +1,46 @@ +\global\newif\ifXVIIIssbierr +\global\newif\ifXVIIIssccerr +\global\newif\ifXVIIIsstterr +\font\cmXVIIIssrm=cmss18 \font\cmXVIIIssit=cmssi18 +\font\cmXVIIIssbd=cmssbx18 \font\cmXVIIIssmi=cmmi18 +\font\cmXVIIIsssy=cmsy18 \font\cmXVIIIssex=cmex18 +\expandafter\newdimen\csname\the\naMEtok ilsxviiiss\endcsname +\global\csname\the\naMEtok ilsxviiiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxviiiss\endcsname=0pt +\csname\the\naMEtok ilsxviiiss\endcsname=20pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXVIIIssrm}% +\def\noexpand\mi{\fam1\cmXVIIIssmi}% +\def\noexpand\sy{\fam2\cmXVIIIsssy}% +\def\noexpand\ex{\fam3\cmXVIIIssex}% + \textfont0=\cmXVIIIssrm \textfont1=\cmXVIIIssmi + \textfont2=\cmXVIIIsssy \textfont3=\cmXVIIIssex + \textfont\itfam=\cmXVIIIssit + \textfont\bffam=\cmXVIIIssbd +\def\noexpand\bd{\fam\bffam\cmXVIIIssbd}% +\def\noexpand\it{\fam\itfam\cmXVIIIssit}% +\def\noexpand\bi{\noexpand\ifXVIIIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CMSAN18. Will print italic font .}% +\noexpand\global\noexpand\XVIIIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXVIIIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CMSAN18. Will print roman font .}% +\noexpand\global\noexpand\XVIIIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXVIIIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CMSAN18. Will print roman font .}% +\noexpand\global\noexpand\XVIIIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxviiiss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan24.textext b/macros/text1/macros/cmsan24.textext new file mode 100644 index 0000000000..d035cc6ecd --- /dev/null +++ b/macros/text1/macros/cmsan24.textext @@ -0,0 +1,46 @@ +\global\newif\ifXXIVssbierr +\global\newif\ifXXIVssccerr +\global\newif\ifXXIVsstterr +\font\cmXXIVssrm=cmss24 \font\cmXXIVssit=cmssi24 +\font\cmXXIVssbd=cmssbx24 \font\cmXXIVssmi=cmmi24 +\font\cmXXIVsssy=cmsy24 \font\cmXXIVssex=cmex24 +\expandafter\newdimen\csname\the\naMEtok ilsxxivss\endcsname +\global\csname\the\naMEtok ilsxxivss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxivss\endcsname=0pt +\csname\the\naMEtok ilsxxivss\endcsname=26pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXIVssrm}% +\def\noexpand\mi{\fam1\cmXXIVssmi}% +\def\noexpand\sy{\fam2\cmXXIVsssy}% +\def\noexpand\ex{\fam3\cmXXIVssex}% + \textfont0=\cmXXIVssrm \textfont1=\cmXXIVssmi + \textfont2=\cmXXIVsssy \textfont3=\cmXXIVssex + \textfont\itfam=\cmXXIVssit + \textfont\bffam=\cmXXIVssbd +\def\noexpand\bd{\fam\bffam\cmXXIVssbd}% +\def\noexpand\it{\fam\itfam\cmXXIVssit}% +\def\noexpand\bi{\noexpand\ifXXIVssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CMSAN24. Will print italic font .}% +\noexpand\global\noexpand\XXIVssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXXIVsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CMSAN24. Will print roman font .}% +\noexpand\global\noexpand\XXIVsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXXIVssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CMSAN24. Will print roman font .}% +\noexpand\global\noexpand\XXIVssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxivss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan36.textext b/macros/text1/macros/cmsan36.textext new file mode 100644 index 0000000000..3a64c94a76 --- /dev/null +++ b/macros/text1/macros/cmsan36.textext @@ -0,0 +1,46 @@ +\global\newif\ifXXXVIssbierr +\global\newif\ifXXXVIssccerr +\global\newif\ifXXXVIsstterr +\font\cmXXXVIssrm=cmss36 \font\cmXXXVIssit=cmssi36 +\font\cmXXXVIssbd=cmssbx36 \font\cmXXXVIssmi=cmmi36 +\font\cmXXXVIsssy=cmsy36 \font\cmXXXVIssex=cmex24 +\expandafter\newdimen\csname\the\naMEtok ilsxxivss\endcsname +\global\csname\the\naMEtok ilsxxivss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsxxivss\endcsname=0pt +\csname\the\naMEtok ilsxxivss\endcsname=38pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmXXXVIssrm}% +\def\noexpand\mi{\fam1\cmXXXVIssmi}% +\def\noexpand\sy{\fam2\cmXXXVIsssy}% +\def\noexpand\ex{\fam3\cmXXXVIssex}% + \textfont0=\cmXXXVIssrm \textfont1=\cmXXXVIssmi + \textfont2=\cmXXXVIsssy \textfont3=\cmXXXVIssex + \textfont\itfam=\cmXXXVIssit + \textfont\bffam=\cmXXXVIssbd +\def\noexpand\bd{\fam\bffam\cmXXXVIssbd}% +\def\noexpand\it{\fam\itfam\cmXXXVIssit}% +\def\noexpand\bi{\noexpand\ifXXXVIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CMSAN36. Will print italic font .}% +\noexpand\global\noexpand\XXXVIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifXXXVIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CMSAN36. Will print roman font .}% +\noexpand\global\noexpand\XXXVIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifXXXVIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CMSAN36. Will print roman font .}% +\noexpand\global\noexpand\XXXVIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsxxivss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan8.textext b/macros/text1/macros/cmsan8.textext new file mode 100644 index 0000000000..710177059f --- /dev/null +++ b/macros/text1/macros/cmsan8.textext @@ -0,0 +1,49 @@ +\global\newif\ifcmVIIIssbierr +\global\newif\ifcmVIIIssccerr +\global\newif\ifcmVIIIsstterr +\global\newif\ifcmVIIIssbderr +\font\cmVIIIssit=cmssi8 +\font\cmVIIIssrm=cmss8 \font\cmVIIIssmi=cmmi8 +\font\cmVIIIsssy=cmsy8 \font\cmVIIIssex=cmex10 +\expandafter\newdimen\csname\the\naMEtok ilsviiiss\endcsname +\global\csname\the\naMEtok ilsviiiss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsviiiss\endcsname=0pt +\csname\the\naMEtok ilsviiiss\endcsname=10pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmVIIIssrm}% +\def\noexpand\mi{\fam1\cmVIIIssmi}% +\def\noexpand\sy{\fam2\cmVIIIsssy}% +\def\noexpand\ex{\fam3\cmVIIIssex}% + \textfont0=\cmVIIIssrm \textfont1=\cmVIIIssmi + \textfont2=\cmVIIIsssy \textfont3=\cmVIIIssex + \textfont\itfam=\cmVIIIssit +\def\noexpand\it{\fam\itfam\cmVIIIssit}% +\def\noexpand\bd{\noexpand\ifcmVIIIssbderr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No bold font in CMSAN8. Will print roman font .}% +\noexpand\global\noexpand\cmVIIIssbderrtrue \noexpand\fi}% +\def\noexpand\bi{\noexpand\ifcmVIIIssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CMSAN8. Will print italic font .}% +\noexpand\global\noexpand\cmVIIIssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifcmVIIIsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CMSAN8. Will print roman font .}% +\noexpand\global\noexpand\cmVIIIsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifcmVIIIssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CMSAN8. Will print roman font .}% +\noexpand\global\noexpand\cmVIIIssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsviiiss\noexpand\endcsname}}% diff --git a/macros/text1/macros/cmsan9.textext b/macros/text1/macros/cmsan9.textext new file mode 100644 index 0000000000..7309c82d45 --- /dev/null +++ b/macros/text1/macros/cmsan9.textext @@ -0,0 +1,46 @@ +\global\newif\ifIXssbierr +\global\newif\ifIXssccerr +\global\newif\ifIXsstterr +\font\cmIXssrm=cmss9 \font\cmIXssit=cmssi9 +\font\cmIXssbd=cmssbx9 \font\cmIXssmi=cmmi9 +\font\cmIXsssy=cmsy9 \font\cmIXssex=cmex10 +\expandafter\newdimen\csname\the\naMEtok ilsixss\endcsname +\global\csname\the\naMEtok ilsixss\endcsname=\bAseSkip +\ifdim\csname\the\naMEtok ilsixss\endcsname=0pt +\csname\the\naMEtok ilsixss\endcsname=11pt\fi% +\expandafter\xdef\csname\the\naMEtok\endcsname{% +\def\noexpand\rm{\fam0\cmIXssrm}% +\def\noexpand\mi{\fam1\cmIXssmi}% +\def\noexpand\sy{\fam2\cmIXsssy}% +\def\noexpand\ex{\fam3\cmIXssex}% + \textfont0=\cmIXssrm \textfont1=\cmIXssmi + \textfont2=\cmIXsssy \textfont3=\cmIXssex + \textfont\itfam=\cmIXssit + \textfont\bffam=\cmIXssbd +\def\noexpand\bd{\fam\bffam\cmIXssbd}% +\def\noexpand\it{\fam\itfam\cmIXssit}% +\def\noexpand\bi{\noexpand\ifIXssbierr\noexpand\it% +\noexpand\else\noexpand\it\noexpand\message{<TEXT1> Warning. % +No bold italic font in CMSAN9. Will print italic font .}% +\noexpand\global\noexpand\IXssbierrtrue \noexpand\fi}% +\def\noexpand\tt{\noexpand\ifIXsstterr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No typewriter font in CMSAN9. Will print roman font .}% +\noexpand\global\noexpand\IXsstterrtrue \noexpand\fi}% +\def\noexpand\cc{\noexpand\ifIXssccerr\noexpand\rm% +\noexpand\else\noexpand\rm\noexpand\message{<TEXT1> Warning. % +No small caps font in CMSAN9. Will print roman font .}% +\noexpand\global\noexpand\IXssccerrtrue \noexpand\fi}% +\noexpand\rm% +\noexpand\nonIBM% +\noexpand\let\noexpand\bolditalic=\noexpand\bi% +\noexpand\let\noexpand\italic=\noexpand\it% +\noexpand\let\noexpand\bold=\noexpand\bd% +\noexpand\let\noexpand\caps=\noexpand\cc% +\noexpand\let\noexpand\typewriter=\noexpand\tt% +\noexpand\let\noexpand\roman=\noexpand\rm% +\noexpand\let\noexpand\symbol=\noexpand\sy% +\noexpand\let\noexpand\mathitalic=\noexpand\mi% +\noexpand\let\noexpand\extension=\noexpand\ex% +\noexpand\interlineskip{% +\noexpand\csname\the\naMEtok ilsixss\noexpand\endcsname}}% diff --git a/macros/text1/macros/fixcol.tex b/macros/text1/macros/fixcol.tex new file mode 100644 index 0000000000..02f3402583 --- /dev/null +++ b/macros/text1/macros/fixcol.tex @@ -0,0 +1,155 @@ +% FILE HAS BEEN CONVERTED TO 2.03 +% +% MULTIPLE COLUMN FORMATS FIXED MODE, two and three column +% Harvey 1/29/86 +% +\catcode`*=11 \catcode`@=11 +% +\global\let\newcolumn=\np % new column in fixed mode is the +\global\let\nc=\np % same as newpage in single column +% +\gdef\pagebody{\vbox to\vsize{\boxmaxdepth=\maxdepth + \pagecontents\vfill}}% redefine from plain.tex to add vfil + % prevents underfull vbox in last column +% +\gdef\flexibleformat{\write16{<TEXT1> Warning! You can't change to% + flexible format while in fixed format. }}% + +% +\gdef\full*pgw{\hbox to \the\*txtw}% Output box to full pagewidth +% +\gdef\*colbox{\leftline{\pagebody}}% TeXbook definition +% +\gdef\*page{% MAKEPAGE, *mkpg, ships out the complete page body + \*badj % check for binding offset + \if*title\shipout % titlepage, no headline + \vbox{\*pgmat % page template + \makefootline} + \notitlepage + \else\shipout\vbox{ % normal page with head and footlines + \makeheadline % + \*pgmat % page template + \makefootline} + \fi + \ifnum\*pcount>0 \*blkpg\fi % call for empty page, BLANK PAGE MACRO + \advancepageno}% END, makepage routine +% +\gdef\*fixtwc{% BEGIN TWO COLUMNS FIXED FORMAT---set-up + \if*plain \par\vfill\eject \fi % new page prevents mixed formats + \if*dbl\e*fixtwc\fi % end any active double columns + \if*tpl \par\vfill\eject \fi % new page prevents mixed multicolumn format + % vfil eject prevents mixing formats + \def\*fixout{% TWO COLUMN OUTPUT, Fixed method + \if L\lr % if column indicator is left + \global\setbox\*lftcol=\*colbox % first column page + \global\let\lr=R % switch to second column + \else % print page and reset column indicator + \*page % format actual double column page + \global\let\lr=L % switch to first column + \fi + \ifnum\outputpenalty>-20000 % do nothing if no insert material + \else\dosupereject\fi % flush any held over material + }% End, normal fixed mode two column output routine +% + \def\*pgmat{% PAGEMAT, formats columns and rules + \D=\the\*twcgut \D=.5\D % split gutter width in half + \full*pgw{\box\*lftcol % print left column + \hskip\D\vrule width\the\*clrw\hskip\D % gutter and rule + \*colbox\hfil} % print right column and fill + }% END, pagemat +% + \def\newpage{\par\supereject % fills remainder of page with white + \if R\lr \null\vfill\eject\fi}% space and goes to next page + \let\np=\newpage +% + \begingroup % BEGIN DOUBLE COLUMNS, fixed method + \tolerance=6400 % line breaking tolerance + \hbadness=6400 % message tolerance + \brokenpenalty=0 % setting these penalties to zero prevents + \clubpenalty=0 % strange page breaks that might otherwise + \widowpenalty=0 + \hyphenpenalty=0 + \exhyphenpenalty=0 + \hsize=\the\*twcw % set column width + \let\lr=L % set switch to left (L) % begin with left + \output={\*multout} % fixed format output rou tine + \global\*plainfalse % plainoutput indicator false + \global\*dbltrue}% END FIXED TWO COLUMN FORMAT---set-up +\global\let\twc=\*fixtwc +% +\gdef\e*fixtwc{\par\supereject % END FIXED TWO COLUMN FORMAT, called + \if R\lr \null\vfill\eject\fi % from onecolumn + \endgroup % two column fixed formatting ends + \global\*dblfalse % fixed double column indicator false + \global\*plaintrue}% plainoutput indicator true +% +\gdef\*fixthc{% BEGIN THREE COLUMNS FIXED FORMAT---set-up + \if*plain \par\vfill\eject\fi % new page prevents mixed formats + \if*tpl\e*fixthc\fi % end any active triple columns + \if*dbl \par\vfill\eject\fi % new page prevents mixed multicolumn formatting +% + \def\*fixout{% THREE COLUMN OUTPUT, Fixed method + \if L\lr % if column indicator is left + \global\setbox\*lftcol=\*colbox + \global\let\lr=M % switch to middle column + \else\if M\lr % if middle column indicator is true + \global\setbox\*midcol=\*colbox + \global\let\lr=R % switch column indicator to right + \else + \*page % make the page + \global\let\lr=L % reset column indicator to left + \fi\fi % + \ifnum\outputpenalty>-20000 % no held over material + \else\dosupereject\fi}% eject held over insertions +% + \def\*pgmat{% PAGEMAT, *pgmat, the page template routine + \D=\the\*thcgut \D=.5\D % half gutter width on each side of rule + \full*pgw{\box\*lftcol % print leftcolumn + \hskip\D\vrule width\the\*clrw\hskip\D % rule and gut. + \box\*midcol % print middle column + \if*norule \hskip2\D % supress rule on empty page call + \else % else set rules normally + \hskip\D\vrule width\the\*clrw\hskip\D\fi % rule and gut. + \*colbox\hfil} % print right column and fil + \global\*norulefalse + }% END, Pagemat +% + \def\newpage{\par\supereject + \if M\lr \null\vfill\eject + \null\vfill\eject\global\*noruletrue\fi % supress column rules + \if R\lr \null\vfill\eject\global\*noruletrue\fi} + \let\np=\newpage +% + \begingroup % BEGIN THREE COLUMNS, fixed method + \widowpenalty=0 + \clubpenalty=0 + \brokenpenalty=0 + \hyphenpenalty=0 + \exhyphenpenalty=0 + \tolerance=9400 + \hbadness=9400 + \hsize=\the\*thcw % column width = three column width tokens + \let\lr=L % set column switch to left column + \output={\*multout} % fixed format output routine + \global\*plainfalse % plainoutput indicator false + \global\*tpltrue} % end 3 col fixed format +\global\let\thc=\*fixthc % reset abbreviation for (thc) +% +\gdef\e*fixthc{\par\supereject % end 3 columns fixed mode + \if M\lr \null\vfill\eject \null\vfill\eject\fi % called from + \if R\lr \null\vfill\eject\fi % onecolumn + \endgroup % three column fixed formatting indicator f + \global\*tplfalse % end triple column indicator + \global\*plaintrue}% plainoutput indicator true +% +\gdef\*multout{\*badj + \*fixout + }% end fixed format output routine + +\gdef\onecolumn{\if*dbl\e*fixtwc\fi % end double column formatting + \if*tpl\e*fixthc\fi % end triple column formatting + \global\output={\*mkpg} % set single column output + }% end multiple column formatting +\global\let\oc=\onecolumn +% +\catcode`*=12 \catcode`@=3 diff --git a/macros/text1/macros/flexcol.tex b/macros/text1/macros/flexcol.tex new file mode 100644 index 0000000000..441066c681 --- /dev/null +++ b/macros/text1/macros/flexcol.tex @@ -0,0 +1,329 @@ +% This work is protected as an unpublished work under +% U.S. copyright laws. +% Copyright 1987, by Washington State University. +% All rights reserved. +% +% Last updated on 7/1/89 +% +% MULTIPLE COLUMN FORMATS FLEXIBLE MODE, two and three column +% +\catcode`*=11\catcode`@=11 +\global\output{\flex*ut{\unvbox255}} % FLEXCOL normal output routine +\gdef\flex*ut#1{% FLEXIBLE OUTPUT, flex*ut + \boxmaxdepth=\maxdepth + \shipout\vbox{ + \offinterlineskip % butt boxes together + \if*title % Do nothing if this is a title page + \else\makeheadline\fi % makeheadline redefined in TEXT1 + \vbox to\*txth{ % page height equals single column text height + \ifvoid\topins % no top insert present + \else\unvbox\topins\fi % place top insert before main text + #1 % insert the main information + \vfil % PREVENTS UNDERFULL BOX WHEN ONLY A FEW POINTS OFF + \ifvoid\footins % no foot insert present + \else\vskip\skip\footins % skip to footnote position + \footnoterule % print footnote rule + \unvbox\footins\fi % place foot insert after main text and rule + \makefootline} % end vbox to *txth + } % end vbox with running heads, if any + \if*title\notitlepage\fi % reset vsize for a normal page + \if\*pcount>0\*blkpg\fi % call for empty page macro, TEXT1 + \*ncfalse + \advancepageno} % End flex*ut, flexible output macro +% +\gdef\*adjp#1{% ADJUST PAGE MACRO, height of inserts lost during output call, this macro + \global\advance#1 by-\topskip % restores these values to the output routines + \ifvoid\topins % compensate for topskip + \else % if no insert present do nothing else + \global\advance#1 by-\ht\topins % routine restores those values + \global\advance#1 by-\dp\topins % to the new output routines. + \global\advance#1 by-\skip\topins + \global\advance#1 by\dp\strutbox % fine tune split + \fi + \ifvoid\footins % do nothing if no footinsert present + \else % else compensate for skips when footins present + \global\advance#1 by-\ht\footins % + \global\advance#1 by-\dp\footins % + \global\advance#1 by-\skip\footins % + \global\advance#1 by\dp\strutbox % fine tune split + \fi}% END *adjp, adjust page macro +% +% \*balctest is called whenever leaving 2 or 3 column formatting +% +\gdef\*balctest{% TEST REMAINING TEXT DEPTH text for more than one page of remaining text + \setbox0=\vbox{\unvbox255} % height box255 always=vsize + \dimen9=\ht0 % find height of material in box255 + \advance\dimen9 by\topskip % account for top of page topskip + \if*dbl \advance\dimen9 by\splittopskip % second column splittopskip + \else\advance\dimen9 by2\splittopskip % second and third columns + \fi % end accounting for topskips for splitting routines + \setbox255=\vbox{\unvbox0} + \ifdim\dimen9>\vsize % too much material for one page + \if*dbl\expandafter\global\output={\*balc}\*twcout % + \else\expandafter\global\output={\*balc}\*thcout % + \fi % use normal output before using balance columns routine + \else % less than one full page of text remaining + \*balc % use balance columns routine + \fi}% END, *balctest, test for output routine to balance columns +% +\gdef\*flextwc{\par% BEGIN FLEX METHOD OF TWO COLUMNS + \goodbreak + \if*dbl\e*flextwc\fi % end any active two column format + \if*tpl\e*flexthc\else % if previous material in threecolumns call + \vskip\the\*mskb\fi % end threecolumns, else skipbefore. +% + \def\*balc{% BALANCECOLUMNS, TWO COLUMNS---beginning + \*badj % check for binding adjust + \splittopskip=\topskip % splittopskip equals topskip + \setbox0=\vbox{\unvbox255} % release unbalanced page material + \dimen0=\ht0 % prepare to find equal height dimension + \divide\dimen0 by2 % split dimension for two columns + \advance\dimen0 by-\baselineskip % back up one line + \ifdim\dimen0<\baselineskip % check split depth + \dimen0=\topskip % account for the topskip + \advance\dimen0 by\baselineskip % account for one line + \fi + {\vbadness=10000 % prevents underfull box message during loop + \loop \global\setbox3=\copy0 % routine. + \global\setbox1=\vsplit3 to\dimen0 % + \ifdim\ht3>\dimen0 % if column longer... + \global\advance\dimen0 by1pt % + \repeat} % end balancing loop + \setbox0=\vbox to\dimen0{\unvbox1} % + \setbox2=\vbox to\dimen0{\dimen2=\dp3 % + \unvbox3 \kern-\dimen2 \vfill} % + \ifvoid2 \setbox2=\vbox to\dimen0{\null\vfill}\fi % + \*pgsofar % format text accummulated so far + \global\output={\*dbl-error} % error message if balance fails + \dimen@=\*txth % return vsize to single page size + \*adjp\dimen@ % adjust vsize for any remaining inserts + \global\vsize=\dimen@ % adjusted vsize + }% END, *balc, balancecolumns macro, twocolumns +% + \def\*pgsofar{% PAGESOFAR, format for two columns + \unvbox\*ppage % boxes two column material + \D=\the\*twcgut \D=.5\D % half gutter skip on either side of rule + \wd0=\hsize \wd2=\hsize % set text box width securely + \hbox to\*txtw{\box0\hskip\D\vrule width\the\*clrw + \hskip\D\box2\hfil} % set boxes and rules + }% END, *pgsofar, pagesofar output macro +% + \def\*twcout{% TWO COLUMN OUTPUT, normal output routine + \splittopskip=\topskip + \splitmaxdepth=\maxdepth + \*badj % check for binding adjust + \dimen@=\vsize % total text depth for two column out routine + \divide\dimen@ by2 % set splitting dimension + \*adjp\dimen@ % adjust page size for inserts + \setbox0=\vsplit255 to\dimen@ % split boxes to proper height + \setbox2=\vsplit255 to\dimen@ + \flex*ut\*pgsofar % output current page + \unvbox255 % release extra text material gathered + \*bigch=2\*txth % allow vsize changes from cpt*vsize + \global\vsize=\*bigch % reset vsize to two column format + \penalty\outputpenalty}% END *twcout, two columns output routine +% +% TWOCOLUMNS, NEW COLUMN ROUTINE +% Harvey 12/06/85 +% This method will fail if a topinsert or footinsert is added to +% the page after the new column call. The box and glue are set +% at the newcolumn call accounting for inserts active then only +% + \def\newcolumn{\par % NEWCOLUMN, Flexible method, two columns + \D=.5\vsize % depth of one column + \ifdim\pagetotal>\D % determine which column is current + \D=\pagegoal % second column, depth > .5\vsize + \advance\D by-\pagetotal + \advance\D by-\topskip % account for topskip of 1st column + \advance\D by-\splittopskip % splittopskip of 2d column + \advance\D by-\dp\strutbox % account for character depth + \else % first column, depth equals half the vsize + \advance\D by-\pagetotal % subtract current page depth + \advance\D by-\topskip % subtract topskip form page depth + \advance\D by-\dp\strutbox % account for character depth + \fi + \vbox to\D{\vfill} % blank box to fill column + \*nctrue + \goodbreak}% END, newcolumn macro for two columns + \let\nc=\newcolumn % set two column definition of newcolumn +% + \begingroup % BEGIN TWOCOLUMNS---set-up + \global\*dbltrue % double columns active + \brokenpenalty=0 % If these penalties are set to zero the text + \clubpenalty=0 % will be formatted properly. If the are in force + \widowpenalty=0 % uneven columns may result. The penalties will be + \hyphenpenalty=0 % honored in either page or vsplit modes. + \exhyphenpenalty=0 + \tolerance=6400 % raise tolerance for short column material + \hbadness=6400 % warning message given at 6400 + \*bigch=2\*txth % initialize two column page height + \dimen@=\*txth % set dimen@ to current page height + \advance\dimen@ by-\pagetotal % subtract current page depth + \*adjp\dimen@ % adjust page depth for inserts + \vsize=2\dimen@ % set vsize equal to twice the remaining depth + \output={\global\setbox\*ppage=\vbox{\unvbox255}}\eject + \output={\*twcout} % output partial page and set output + \hsize=\the\*twcw % to twocolumnout, set new hsize for column + \topskip=12pt plus4pt % glue for vsplitting mechanism + }% END, *flextwc, flexible two column---set-up +% +\gdef\e*flextwc{% TERMINATION MACRO FOR TWO COLUMNS FLEX METHOD + \if*nc \vfill\eject\fi % When we've done a \nc dump the page before balancing + \output={\*balctest}\eject % test for too much text for balancing + \global\output={\flex*ut{\unvbox255}} % output page + \global\*dblfalse % change two column indicator to false + \endgroup % END DOUBLE COLUMN FORMAT + \global\vsize=\*txth % reset page size to single column height + \global\hsize=\*txtw % reset page width to single column width + \dimen@=\vsize % prepare to include current inserts + \*adjp\dimen@ % adjust for topskip and inserts + \global\pagegoal=\dimen@ % adjust pagegoal for current inserts + \penalty-500 + \vskip\the\*mska + }% END e*flextwc, TWO COLUMNS termination routine +% +% +\gdef\*flexthc{\par% BEGIN FLEX METHOD OF THREE COLUMNS + \goodbreak + \if*tpl\e*flexthc\fi % end any active triple columns + \if*dbl\e*flextwc\else % if previous material is in twocolumns, end + \vskip\the\*mskb\fi % twocolumns, else skipbefore +% + \def\*balc{% BALANCECOLUMNS, THREECOLUMNS---beginning + \*badj % check for binding adjust + \splittopskip=\topskip % split dimension for 3col + \setbox0=\vbox{\unvbox255} + \dimen0=\ht0 % prepare to find equal height dimension + \divide\dimen0 by3 % split dimension for each column + \advance\dimen0 by-\baselineskip % back-up one baselineskip + \ifdim\dimen0<\baselineskip % check split depth + \dimen0=\topskip % account for the topskip + \advance\dimen0 by\baselineskip % account for one line + \fi + {\vbadness=10000 + \loop \global\setbox5=\copy0 % begin vsplit loop for balancing + \global\setbox3=\vsplit5 to\dimen0 + \global\setbox4=\vsplit5 to\dimen0 + \ifdim\ht5>\dimen0 \global\advance\dimen0 by1pt + \repeat} % end balancing loop + \setbox0=\vbox to\dimen0{\unvbox3} % first column + \setbox1=\vbox to\dimen0{\unvbox4} % second column + \ifvoid1 \setbox1=\vbox to\dimen0{\line{\hfil}\vfill}\fi + \setbox2=\vbox to\dimen0{\dimen2=\dp5\unvbox5\kern-\dimen2 \vfill} + \ifvoid2 \setbox2=\vbox to\dimen0{\line{\hfil}\vfill}\fi + \*pgsofar + \global\output={\*tpl-error} % error message if loop fails + \vsize=\*txth % reset page size to single column + \dimen@=\vsize % return vsize to single page vsize + \*adjp\dimen@ % adjust for topskip and inserts + \global\vsize=\dimen@ % new vsize accounts for current inserts + }% END, *balc, balance columns, threecolumns +% + \def\*pgsofar{\unvbox\*ppage % boxes three column material + \D=\the\*thcgut \D=.5\D % half gutter for each side of rule + \wd0=\hsize \wd1=\hsize \wd2=\hsize % set text box width securely + \hbox to\*txtw{\box0\hskip\D\vrule width\the\*clrw + \hskip\D\box1\hskip\D\vrule width\the\*clrw + \hskip\D\box2\hfil} % set boxes and rules + }% End *pgsofar, page-so-far macro +% + \def\*thcout{% THREE COLUMNS OUT, normal output routine for threecolumns + \splittopskip=\topskip + \splitmaxdepth=\maxdepth + \*badj % check for binding adjust + \dimen@=\vsize % total text depth for three column out routine + \divide\dimen@ by3 % set splitting dimension + \*adjp\dimen@ % adjust for topskip and inserts + \setbox0=\vsplit255 to\dimen@ % split boxes to proper height + \setbox1=\vsplit255 to\dimen@ % + \setbox2=\vsplit255 to\dimen@ % + \flex*ut\*pgsofar % send material to output routine + \unvbox255 % release any extra material gathered + \*bigch=3\*txth % allow vsize changes from cpt*vsize + \global\vsize=\*bigch % reset vsize for three column format + \penalty\outputpenalty}% END *thcout, normal output penalty set +% +% THREECOLUMNS, NEW COLUMN ROUTINE +% Harvey 12/19/85 +% This routine has no way to compensate for inserts following the +% new column call and will produce an overfull vbox message while +% output active. It may also produce and underfull vbox message +% if there is no stretchable glue in the column. + \def\newcolumn{\par % new column, three columns + \ifdim\pagetotal>.66666\vsize % you are in the third column + \D=\pagegoal % work from pagegoal for third column + \advance\D by-\topskip % account for topskip in 1st column + \advance\D by-2\splittopskip % splittopskip in columns 2 and 3 + \advance\D by-\pagetotal % subtract current pagetotal + \advance\D by-\dp\strutbox % account for character depth + \else\ifdim\pagetotal>.3\vsize % you are in the second column + \D=.66666\vsize % column goal is 2/3 vsize + \advance\D by-\topskip % account topskip in 1st column + \advance\D by-\splittopskip % splittopskip in column 2 + \advance\D by-\pagetotal % compensate for text + \advance\D by-\dp\strutbox % account for character depth + \else % you are in the first column + \D=.33333\vsize % goal is 1/3 vsize in first column + \advance\D by-\topskip % account for splittopskip + \advance\D by-\pagetotal % compensate for text + \advance\D by-\dp\strutbox % account for character depth + \fi\fi % end column determination and fil + \vbox to\D{\vfill} + \*nctrue + \goodbreak}% END, newcolumn for three columns +% + \let\nc=\newcolumn % set new column definition to three columns +% + \begingroup % BEGIN GROUP, THREE COLUMNS + \global\*tpltrue % set three column indicator on + \brokenpenalty=0 % These penalties should be zero in multicolumn + \clubpenalty=0 % modes that use the vsplit method of paging, + \widowpenalty=0 % the paging methods would honor the penalties. + \hyphenpenalty=0 % is erratic columns. + \exhyphenpenalty=0 % + \tolerance=9600 % raise tolerance for short columns + \hbadness=9600 % warnings issued at badness of 9600 + \*bigch=3\*txth % initialize three column height + \dimen@=\*txth % set dimen@ to current page height + \advance\dimen@ by-\pagetotal % subtract current page depth + \*adjp\dimen@ % adjust page for topskip and inserts + \vsize=3\dimen@ % set vsize to 3 times remaining single column depth + \output={\global\setbox\*ppage=\vbox{\unvbox255}}\eject + \output={\*thcout} % output partial page and set output + \hsize=\the\*thcw % to threecolumnout, set new hsize for column + \topskip=12pt plus4pt % glue for the vsplitting mechanism + }% END *flexthc, three columns set-up +% +\gdef\e*flexthc{% TERMINATION THREE COLUMNS FLEX METHOD + \if*nc \vfill\eject\fi % When we've done a \nc dump the page before balancing + \output={\*balctest}\eject % balance remaining three column material + \global\output={\flex*ut{\unvbox255}} % shipout page + \global\*tplfalse % end three column indicator + \endgroup % END GROUP THREE COLUMNS + \global\vsize=\*txth % reset vsize to single column height + \global\hsize=\*txtw % reset hsize to single column width + \dimen@=\vsize % prepare to include current inserts + \*adjp\dimen@ % adjust for topskip and inserts + \global\pagegoal=\dimen@ % reset pagegoal to include inserts + \penalty-500 + \vskip\the\*mska}% END E*flexthc, three columns termination macro +% +% +\gdef\onecolumn{\if*dbl\e*flextwc\fi % end double column formatting + \if*tpl\e*flexthc\fi + \global\output={\*mkpg} + }% end triple column formatting +\global\let\oc=\onecolumn +% +\gdef\*dbl-error{\errhelp=\balerrhelp + \errmessage{ Double columns can't be balanced on page \the\pageno . % + Please type h for help. }% + \flex*ut{\unvbox255}} +\gdef\*tpl-error{\errhelp=\balerrhelp + \errmessage{ Triple columns can't be balanced on page \the\pageno . % + Please type h for help. }% + \flex*ut{\unvbox255}}% +% +\catcode`*=12\catcode`@=3 + + diff --git a/macros/text1/macros/text1.tex b/macros/text1/macros/text1.tex new file mode 100644 index 0000000000..dd2fc1bdbb --- /dev/null +++ b/macros/text1/macros/text1.tex @@ -0,0 +1,3 @@ +\input plain.tex +\input txt1v409.tex +\dump diff --git a/macros/text1/macros/txt1v409.tex b/macros/text1/macros/txt1v409.tex new file mode 100644 index 0000000000..afc9acb6c2 --- /dev/null +++ b/macros/text1/macros/txt1v409.tex @@ -0,0 +1,3536 @@ +% MACROS FOR TEXT1 +% +% This work is protected as an unpublished work under +% U.S. copyright laws. +% Copyright 1987, by Washington State University. +% All rights reserved. +% +% Last updated on 7/24/95 (drg) +% +\everyjob{\immediate\write16{TEXT1 Version 4.09} + \titlepage\spn{1} +} +% +% The following variables are used for allowing conditional compilation +% of special code depending on which version of TeX you are using. +% See these special notes in the next paragarph +\catcode`* = 11 +\catcode`@ = 11 +% +\newif\if*MAC \*MACfalse % This is not a Macintosh +\newif\if*CMS \*CMSfalse % This is not on CMS +\newif\if*PC \*PCfalse % This is not a PC +\newif\if*CG \*CGfalse % This is not a Compugraphics 8600 typesetter +% +% Note that non CMS versions must be modified. Here are the changes +% necessary for the IBM PC/DOS version of TEXT1, Macintosh version, +% and other non-CMS versions. +% +% 1. The filetype (extension) can only be 3 characters at the most +% for the PC/DOS version. +% This requires the following changes: +% toc1 => tc1 +% toc2 => tc2 +% toc3 => tc3 +% endnotes => end +% textext => txt +% texmath => mth +% texmodel => mdl +% +% 2. The Compugraphics dependent stuff in \selectspecificfont must +% be omitted for all but CMS versions. +% +% 3. The routines \nonIBM and \IBM should be set to null for all but CMS +% versions +% +% 4. The Macintosh/Textures version uses a special \include +% + + +% Some temporary variables to be used throughout +% +\newbox\A +\newtoks\B +\newskip\C +\newdimen\D +\newdimen\*D +\newcount\E +\newcount\F +\newcount\G +\newcount\N +\newcount\Q +\newcount\R +% \T \U \V \W are used throughout TEXT1 as temp definitions +% \I \J \K \M \X \Y \Z are temporary too, be careful if you use these +% +% ragged rightindent on bq troublesome. +% titleleadskip works only with titlepage command in text. +% for doublecolumns, change hsize and line--refer to ccndbl +% for multiple right and centerline--refer to aztex +% +% IBM/NONIBM character definitions, added by Dean 7/11/86 +% +% Use this macro when not printing with IBM standard distribution fonts + + +\newif\if*IBM \*IBMfalse + +\if*CMS +\def\nonIBM{\if*IBM \*IBMfalse% + \def\aa{\accent23a}% + \def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% + \rlap{\raise.67\dimen@\hbox{\char'27}}A}% + \def\c##1{\setbox\z@\hbox{##1}\ifdim\ht\z@=1ex\accent24 ##1% + \else{\ooalign{\hidewidth\char24\hidewidth\crcr\unhbox\z@}}\fi}% + \def\`##1{{\accent18 ##1}}% + \def\'##1{{\accent19 ##1}}% + \def\^##1{{\accent94 ##1}}\let\^^D=\|% + \def\~##1{{\accent"7E ##1}}% + \def\"##1{{\accent"7F ##1}}% + \chardef\i="10 % dummy dotless lowercase i + \def\dag{\mathhexbox279}% + \def\ddag{\mathhexbox27A}% + \def\S{\mathhexbox278}% + \def\P{\mathhexbox27B}% + \let\}=\rbrace% + \let\{=\lbrace% + \def\cents{\hbox{\rm\rlap/c}}\fi}% end non-IBM +% +% Use this macro when printing with the IBM standard distribution fonts +\def\IBM{\*IBMtrue + \chardef\aa="8A % a overcircle + \chardef\AA="8B % A overcircle + \chardef\c="18 % cedilla + \chardef\`="12 % grave + \chardef\'="13 % acute + \chardef\^="5E % circumflex + \chardef\~="7E % tilde + \chardef\"="7F % umlaut + \chardef\i="69 % dummy dotless lowercase i + \chardef\S="DC % section number sign + \chardef\P="DD % paragraph sign or pilcrow + \chardef\dag="DE % dagger or obelisk + \chardef\ddag="DF % double dagger or diesis + \chardef\{="AE % left brace + \chardef\}="AF % right brace + \chardef\cents="CD}% end IBM +\else +\def\nonIBM{} +\def\IBM{} +\fi +% +% Redefined from PLAIN.TEX to omit the at sign "@" +% @ symbol will be read as begin and end math mode otherwise +\message{redefining some plain commands, } +\newdimen\zZ \zZ=0pt % can be used both for 0pt and 0 +\mathchardef\zmz=1000 +\mathchardef\zMz=10000 +\mathchardef\zMMz=20000 +\def~{\penalty\zMz\ } % tie +\def\break{\penalty-\zMz} +\def\nobreak{\penalty \zMz} +\def\allowbreak{\penalty \zZ} +\def\supereject{\par\penalty-\zMMz} +\def\nopagenumbers{\rhf{\bothpages{}}\rff{\bothpages{}}} +% +% Redefined from PLAIN.TEX to \unskip last skip if in h mode +% +\message{redefining some plain commands, } +\def\removelastskip{\ifvmode\ifdim\lastskip=\z@\else\vskip-\lastskip\fi + \else\unskip\unskip\unskip\unskip\fi} +\let\rlsk=\removelastskip +% +% Redefined from PLAIN.TEX to 12 point topskip +\def\raggedbottom{\topskip 12\p@ plus60\p@ \r@ggedbottomtrue}% +\def\normalbottom{\topskip 12\p@ \r@ggedbottomfalse}% +% +% Redefined from PLAIN.TEX to omit extraneous skips and such surprises. +\def\endinsert{\egroup % finish the \vbox + \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ + \advance\dimen@12\p@ \advance\dimen@\pagetotal + \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi + \if@mid \box\z@\goodbreak + \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\fi}\fi\endgroup} +% +% Redefined from PLAIN.TEX to take mode into account +\mathchardef\*dda="227A +\mathchardef\*dag="2279 +\mathchardef\*neg="023A +\def\ddagger{\relax\ifmmode\*dda\else$\*dda$\fi}% +\def\dagger{\relax\ifmmode\*dag\else$\*dag$\fi}% +\def\neg{\relax\ifmmode\*neg\else$\*neg$\fi} +% +% Redefined from PLAIN.TEX to take present font size into account +% +\def\strut{\relax + \setbox\strutbox=\hbox{\vrule height 1.8ex depth .6ex width 0pt}% + \ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}% +% +% +% Starting TEXT1 Definitions +% +% Use this one for Textures +% +\if*MAC + \def\include#1{\special {picture #1}}% + \else + \def\include#1{\special {IPS #1}}% added by gap 1/27/87 +\fi +\let\incl=\include +% +\def\text#1{{\it\TeX T1}}% added by drg 9/26/86 +\def\bf{\bd}% added by jkw 6/30/86 +\def\cents{\hbox{\rm\rlap/c}}% added by jkw 6/30/86 +\def\fraction#1/#2 {% added by jkw 7/8/86 + \leavevmode\kern.1em \raise.6ex\hbox{\the\scriptfont0 #1}\kern-.1em + /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}} +\let\frac=\fraction +\message{bibliography, } +% Bibliography +% +\newtoks\bi*f \bi*f={\goodbreak\vs{1\bl}\hp\nin} % init bibentry +\newtoks\bi*t \bi*t={\dumpinsertseject\cl{\bd\bibtitle} + \vs{1\bl}}% init bibliography title format +\newtoks\bi*r \bi*r={width 3em height .6ex depth -.5ex} +\newcount\bi*n \bi*n=0 % counter for numbered bibliography +\newif\if*TC*bib \*TC*bibtrue +% +\long\def\bibliographyformat#1{{% definition of bibliographic format + \def\incontents##1{\global\*TC*bibtrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*bibfalse + \else \message{<TEXT1> Warning, argument to + incontents in bibliographyformat is not "yes" or "no". + "yes" will be assumed} + \fi\fi}% + \long\def\everybibentry##1{\global\bi*f={##1}}% +% Remove this some day + \let\bibentryformat=\everybibentry% + \long\def\titleformat##1{\global\bi*t={##1}}% replacement format for bibliography title + \def\sameauthorrulesize##1{\global\bi*r={##1}}% + #1}}% +\let\bif=\bibliographyformat +% +\def\bibtitle{} +\def\bibliography#1{% calls bibtitle format and passes title + \global\bi*n=0 % set bib counter to zero each call + \global\def\bibtitle{#1} % collect title tokens + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\bi*t + \egroup + \D=\lastskip + \removelastskip + \if*TC*bib \putincontents1{\the\*btf}\fi % call bib title format + \ignorespaces + \vs{\D} +}% end bibliography markup +\let\bib=\bibliography +% +\def\bibnumber{\the\bi*n}% +\def\bibentry{\par\global\advance\bi*n by1\the\bi*f}% +\let\bie=\bibentry % abbreviation for \bibentry +% +\def\sameauthor{\vrule\the\bi*r}% +\let\sau=\sameauthor +% +\message{misc, } +\def\underscore#1{$\underline{\smash{\hbox{#1}}}$}% +\let\us=\underscore +\def\leader{\leaders\hbox to 8pt{\hss.\hss}\hfill}% +% +\def\hyphenoff{\pretolerance=10000\hbadness=10000}% +\let\hof=\hyphenoff +\def\hyphenon{\pretolerance=100\hbadness=1000}% +\let\hon=\hyphenon +% +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day,\space\number\year}% +% +% +\def\tilde{\relax\ifmmode\mathaccent"707E % relax added to trigger math + \else{\sy\char'030}\fi}% mode in tabs 1/27/87 +% +\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}% +% +\def\}{\relax\ifmmode \rbrace % relax added to trigger math mode in tabs + \else $\rbrace$\fi}% +% +\def\{{\relax\ifmmode \lbrace % relax added to trigger math mode in tabs + \else $\lbrace$\fi}% +% +\def\\{\relax\ifmmode \delimiter"26E30F % relax added to trigger math + \else $\delimiter"26E30F$\fi}% mode in tabs +% +\let\leftsquarebracket=[ +\let\rightsquarebracket=] +\let\lsb=[ +\let\rsb=] +\def\~#1{{\relax\ifmmode\mathaccent"707E % relax added to trigger math + \else \accent"7E #1\fi}}% mode in tabs +% +% baselineskip = interlineskip +% +\newskip\*isk +\newskip\baseline +\let\bl=\baseline +\def\interlineskip#1{\baselineskip=#1% + \baseline=#1% + \*isk=#1\relax}% +\let\isk=\interlineskip +% +\message{selectfontset, } +\newfam\bifam \newfam\ccfam +% +% The \selectfontset macros are by JKW +% +\newtoks\naMEtok +\newtoks\maTHtok +\newskip\bAseSkip +\newtoks\*sfslbl +\if*PC + \*sfslbl={.txt} + \else + \*sfslbl={.textext} +\fi + +\def\selectfontset#1#2#3{\naMEtok={#2} + \edef\T{default}% + \edef\U{#3}% + \ifx\U\T \bAseSkip=0pt + \else \bAseSkip=#3\fi + \input #1\the\*sfslbl }% +\let\sfs=\selectfontset +\sfs{cm12}{twelvept}{default} +\sfs{cm10}{tenpt}{default} +\twelvept +% +\newtoks\*smslbl +\if*PC + \*smslbl={.mth} + \else + \*smslbl={.texmath} +\fi + +\def\selectmathset#1#2{\maTHtok={#2}\input #1\the\*smslbl}% +\let\sms=\selectmathset +\selectmathset{cm97m}{mathdefault} % +\mathdefault +% +% SELECT SPECIFIC FONT, jkw 8/26/86 +\newread\ckfnt +\newif\ifnotcfend +\newtoks\nUMtok +\newtoks\nmtok + +\if*CMS +\def\selectspecificfont#1#2#3{\naMEtok={#1}\nUMtok={#3} + \nmtok={#1\romannumeral #2} + \def\T{\uppercase{#1 }}% + \expandafter\xdef\csname I\the\nmtok\endcsname{\isk{\the\nUMtok}} + \openin\ckfnt=cgfonts.lclist + \loop\read\ckfnt to \W + \edef\U{\uppercase{\W}}% + \ifx\U\T + \expandafter\font\csname F\the\nmtok% + \endcsname=#1 at #2 pt \notcfendfalse + \else\ifeof\ckfnt + \expandafter\font\csname F\the\nmtok% + \endcsname=#1#2 \notcfendfalse + \else\notcfendtrue\fi\fi + \ifnotcfend \repeat + \closein\ckfnt + \expandafter\xdef\csname\the\naMEtok\endcsname ##1;{% + \noexpand\csname F\the\naMEtok + \noexpand\romannumeral\noexpand ##1\noexpand\endcsname + \noexpand\csname I\the\naMEtok + \noexpand\romannumeral\noexpand ##1\noexpand\endcsname}}% +\else +\def\selectspecificfont#1#2#3{\naMEtok={#1}\nUMtok={#3} + \nmtok={#1\romannumeral #2} + \def\T{\uppercase{#1 }}% + \expandafter\xdef\csname I\the\nmtok\endcsname{\isk{\the\nUMtok}} + \expandafter\xdef\csname\the\naMEtok\endcsname ##1;{% + \noexpand\csname F\the\naMEtok + \noexpand\romannumeral\noexpand ##1\noexpand\endcsname + \noexpand\csname I\the\naMEtok + \noexpand\romannumeral\noexpand ##1\noexpand\endcsname}}% +\fi + +\let\ssf=\selectspecificfont +% +\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177 +\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60 +% +\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( +% +% +\message{monospace, } +\newif\if*msp \*mspfalse +\if*CMS +\def\monospace{% + \global\*msptrue % changed to global 6/27/86 bth + \sfs{monofont}{defaultmono}{default} + \defaultmono + \gdef\underscore##1{{\italicfont ##1}}% + \global\let\us=\underscore + \special{fonts=10cpi} + \raggedbottom + \global\paragraphskip{0pt} + \global\paragraphindent{36pt} + \gdef\tilde{\ifmmode\mathaccent"707E% + \else \char'176{}\fi}% + \gdef\_{\char'137{}}% + \gdef\}{\ifmmode \rbrace + \else \char'175{}\fi}% + \gdef\{{\ifmmode \lbrace + \else\char'173{}\fi}% + \gdef\\{\ifmmode \delimiter"26E30F% + \else\char'134{}\fi}% + \gdef\neg{\char'136{}}% + \gdef\ellipsis##1{{\def\U{\message{<TEXT1> Error! Only 3 or 4 are valid for ellipsis. Command ignored.}} + \ifcase ##1\U\or\U\or\U% + \or .~.~. + \or .~.~.~. + \else\U\fi}}% + + \tableofcontentsformat{% added 1/26/87 Guenther + \toctitle{\centerline{\bd Table of Contents} + \vs{1\bl}} + \figuretoctitle{\newpage + \centerline{\bd List of Figures} + \line{Figure \rt{Page}}} + \tabletoctitle{\newpage + \centerline{\bd List of Tables} + \line{Table \rt{Page}}} + }% end table of contents format + + \global\let\el=\ellipsis + \asisformat{\skipbefore{1\bl}\everyasis{\leftindent{0pt}}\skipafter{1\bl}} + \blockquoteformat{\skipbefore{1\bl}\everyblockquote{\rm\leftindent{36pt}\rightindent{36pt}}\skipafter{1\bl}} + \figureformat{\titleformat{\bqb\bd\hp Figure \figurenumber. \figuretitle \bqe}} + \tableformat{\titleformat{\vs{\bl}\cl{\bd Table \tablenumber} + \cl{\rm\tabletitle}\vs{\bl}}} + \endnoteformat{\skipbefore{0\bl}\notereferencefont{\rm}\everyendnote{\rm\lin{0pt}}} + \footnoteformat{\textreferenceposition{down}\textreferencefont{\rm}\textreferencestyle{(1)} + \notereferencefont{\rm}\everyfootnote{\rm\pin{.5in}\psk{.5in}\lin{0pt}\rin{0pt}}} + + \partformat{\titleformat{\dumpinsertseject\titlepage + \hrule height0pt depth0pt \vfil + \cl{\bd Part \partnumber}\cl{\bd\parttitle}\np + \scn{0}\ssan{0}\ssbn{0}\sscn{0}\ssdn{0} + \sfn{0}\stn{0}\sfnn{0}\senn{0}}}% end part format + \indexformat1{\everyindex{\rm}} + \indexformat2{\everyindex{\rm}} + \indexformat3{\everyindex{\rm}} + \chapterformat{\titleformat{\dumpinsertseject\cl{\bd Chapter \chapternumber}\cl{\bd\chaptertitle}\vs{1\bl} + \ssan{0}\ssbn{0}\sscn{0}\ssdn{0}}}% end chapter format + \prefaceformat{\titleformat{\dumpinsertseject\cl{\bd\prefacetitle} + \vs{1\bl}\ssan{0}\ssbn{0}\sscn{0}\ssdn{0}}}% end preface format + \appendixformat{\titleformat{\dumpinsertseject + \cl{\bd Appendix \appendixnumber}\cl{\bd\appendixtitle}\vs{1\bl} + \scn{0}\ssan{0}\ssbn{0}\sscn{0}\ssdn{0}\sfn{0}\stn{0}}}% end appendix format + \subheadaformat{\titleformat{\removelastskip\goodbreak\vs{2\bl} + \bd\nin\subheadatitle\par\nobreak\vs{1\bl}\nobreak + \ssbn{0}\sscn{0}\ssdn{0}}}% end subheadaformat markup + \subheadbformat{\titleformat{\removelastskip\goodbreak\vs{2\bl} + \it\nin\subheadbtitle\par\nobreak\vs{1\bl}\nobreak + \sscn{0}\ssdn{0}}}% end subheadbformat markup + \subheadcformat{\titleformat{\removelastskip\goodbreak\vs{2\bl} + \nin\subheadctitle\par\nobreak\vs{1\bl}\nobreak\ssdn{0}}}% end subheadc format markup + \subheaddformat{\titleformat{\goodbreak{\it \subheaddtitle.}}}% end subheadd markup + \runningheadformat{\bothpages{\line{\rm\lft{}\ctr{}\rt{\pagenumber}} + \vs{1\bl}}}% end runningheadformat markup +}% END monospace markup definition +\else + \def\monospace{\message{<TEXT1> monospace fonts are not available. Use + typewritter fonts instead.}} +\fi +\let\msp=\monospace +% +\def\sl{\message{<TEXT1> Warning! The slanted font is not in font sets. Only tensl is used.}\tensl}% +\message{more misc, } +% +% Ellipsis command 10/22/85 +% +\def\ellipsis#1{{\def\U{\message{<TEXT1> Error! Only 3 or 4 are valid for ellipsis. Command ignored.}} + \ifcase #1\U\or\U\or\U% + \or \ifmmode\mathinner{\ldotp\ldotp\ldotp} + \else$\mathinner{\ldotp\ldotp\ldotp}$\fi + \or \ifmmode\mathinner{\ldotp\ldotp\ldotp\ldotp} + \else\removelastskip$\ldotp\ldotp\ldotp\ldotp$\fi + \else\U\fi}}% +\let\el=\ellipsis +% +% dumpinsertseject is plain.tex \dosupereject with and \else added +% +\def\dumpinsertseject{\ifnum\insertpenalties>\z@ % something is being held over + \line{}\kern-\topskip\nobreak\vfill\supereject + \else \newpage + \fi}% END dumpinsertseject markup definition +\let\die=\dumpinsertseject +\message{page format, } +% +\newif\if*tempif +% +% Pageformat command +% +\newdimen\pg*l \pg*l=11in % page length +\newdimen\pg*t \pg*t=0in % top margin set for 1in origin +\newdimen\pg*b \pg*b=2in % bottom margin set for 1in origin +\newdimen\pg*w \pg*w=8.5in % page width +\newdimen\pg*r \pg*r=2in % right margin set for 1in, +\newdimen\*lmar \*lmar=0.2in % left margin set for 1in +% Note: TEX origin at 1in,1in +\newif\if*cropmarks \*cropmarksfalse +\newdimen\pg*a \pg*a=0in +\hsize=6.3in \hoffset=0.2in +\vsize=9in \voffset=0in +% +\def\pageformat#1{{\par + \def\pagelength##1{\global\pg*l=##1 + \cpt*vs}% + \def\topmargin##1{\global\pg*t=##1 + \global\advance\pg*t by- 1in % set margin 1in,1in + \cpt*vs}% + \def\bottommargin##1{\global\pg*b=##1 + \global\advance\pg*b by 1in % set margin 1in,1in + \cpt*vs}% + \def\pagewidth##1{\global\pg*w=##1\cpt*hs}% + \def\rightmargin##1{\global\pg*r=##1 + \global\advance\pg*r by 1in % set margin 1in,1in + \cpt*hs}% + \def\leftmargin##1{\global\*lmar=##1 + \global\advance\*lmar by -1in % set margin 1in,1in + \cpt*hs}% + \def\bindingadjust##1{\global\pg*a=##1\cpt*hs}% + \def\galleywidth##1{\global\pg*w=##1 + \global\advance\pg*w by\*lmar + \global\advance\pg*w by\pg*r \cpt*hs}% + \def\cropmarks##1{\global\*cropmarksfalse + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U \global\*cropmarkstrue + \else \ifx \T\V \global\*cropmarksfalse + \else \message{<TEXT1> Warning, argument to cropmarks in + pageformat is not "yes" or "no". "no" will be assumed} + \*cropmarksfalse + \fi\fi}% + #1}}% End pageformat markup definition +\let\pf=\pageformat +% +% set page text size, compute hsize +% +\def\cpt*hs{% COMPUTE HORIZONTAL SIZE + \global\hoffset=\*lmar + \global\hsize=\pg*w % added global 11/11/86 bth + \global\advance\hsize by-\pg*r % "" + \global\advance\hsize by-\*lmar % "" + \global\*txtw=\hsize}% added for multi column routines +% +% set page text size, vsize +% +\def\cpt*vs{% COMPUTE VERTICAL SIZE + \global\voffset=\pg*t + \global\vsize=\pg*l + \global\advance\vsize by-\pg*t + \global\advance\vsize by-\pg*b + \if*title \global\advance \voffset by \tp*sk % lines from titlepage + \global\advance \vsize by -\tp*sk % from titlepage + \fi + \global\*txth=\vsize}% added for multi column routines +% +% left center right +% +\def\lft#1{#1\hfill} +\def\ctr#1{\hfill #1\hfill} +\def\rt#1{\hfill #1} +% +\message{running heads, } +% +% Page numbers +% +\def\setpagenumber#1{\global\pageno=#1}% +\let\spn=\setpagenumber +\def\pagenumber{\ifnum \pageno<0 \romannumeral-\pageno + \else \number\pageno\fi}% +\let\pn=\pagenumber +% +\def\rule{\vskip 1\baselineskip\hrule}% +% +% Running heads +% +\newif\if*title +% +\newtoks\rh*r \rh*r={\line{\twelvept\rt{\pagenumber}}\vs{\bl}} +\newtoks\rh*l \rh*l={\line{\twelvept\rt{\pagenumber}}\vs{\bl}} +\newtoks\rf*r \rf*r={} +\newtoks\rf*l \rf*l={} +% +\def\runningheadformat#1{{% + \def\*ttitle##1{\setbox\A=\vbox{##1}% + \D=\ht\A + \advance\D by -1in + \ifdim \D>\pg*t + \global\pg*t=\D + \global\advance\pg*t by 12pt + \advance\D by 1in + \message{<TEXT1> Warning, the top margin you + have specified is less than the + running top title. The top margin will + be changed to \the\D} + \cpt*vs + \fi + \if*tempif \global\rh*l={\hrule width\hsize + height0pt depth0pt ##1} + \else \global\rh*r={\hrule width\hsize + height0pt depth0pt ##1}\fi + }% end *ttitle definition + \def\evenpages##1{\*tempiftrue\*ttitle{##1}}% + \def\oddpages##1{\*tempiffalse\*ttitle{##1}}% + \def\bothpages##1{\*tempiftrue\*ttitle{##1} + \*tempiffalse\*ttitle{##1}}% + \relax + #1 + }}% END runningheadformat markup definition +\let \rhf = \runningheadformat +% +\def\runningfootformat#1{{% + \def\*btitle##1{\setbox\A=\vbox{##1}% + \D=\ht\A + \advance\D by 1in + \ifdim \D>\pg*b + \global\pg*b=\D + \global\advance\pg*b by 12pt + \advance\D by -1in + \message{<TEXT1> Warning, the bottom margin + you have specified is less than height of the + running bottom title. + The bottom margin will be + changed to \the\D} + \cpt*vs + \fi + \if*tempif \global\rf*l={##1} + \else \global\rf*r={##1}\fi + }% end of bottomline + \def\evenpages##1{\*tempiftrue\*btitle{##1}}% + \def\oddpages##1{\*tempiffalse\*btitle{##1}}% + \def\bothpages##1{\*tempiftrue\*btitle{##1} + \*tempiffalse\*btitle{##1}}% + \relax + #1}}% END runningfootformat markup definition +\let \rff = \runningfootformat +% +\newdimen\tp*sk \tp*sk=1in +\newtoks\tp*fl \tp*fl={} +\def\titlepageformat#1{{% + \def\titleleadskip##1{\global\tp*sk=##1}% + \def\titlefootline##1{\global\tp*fl={##1}}% + \relax + #1 + \titlepage}} %end of titlepageformat +\let \tpf = \titlepageformat +% +\def\titlepage{\global\*titletrue + \cpt*vs}% +\let\tp=\titlepage +\def\notitlepage{\global\*titlefalse + \cpt*vs}% +\let\ntp=\notitlepage +% +\message{output, } +% +% Output changed to permit binding adjust +% +\output={\*mkpg} +% +\def\*mkpg{\*badj + \plainoutput + \if*title \notitlepage\fi + \ifnum\*pcount>0 \*blkpg\fi}% insert blank page +% +\def\plainoutput{\shipout\vbox{\*setcrops{\vbox{% + \makeheadline + \pagebody + \makefootline}}} + \advancepageno + \ifnum\outputpenalty>-\@MM + \else\dosupereject\fi} +% +\def\*setcrops#1{\setbox\A=\vbox{#1} + \if*cropmarks + \D=\wd\A + \advance\D by 15pt + \vbox{\hsize=\the\D + \offinterlineskip\psk{0pt}\pin{0pt} + \hbox to \D{\vrule width 5pt height .1pt depth 0pt + \hfill + \vrule width 5pt height .1pt depth 0pt} + \hbox to \D{\vrule height 5pt width .1pt depth 0pt + \hfill + \vrule height 5pt width .1pt depth 0pt} + \vs{\the\pg*t} + \vs{3pt} + \hbox to \D{\hfill\box\A\hfill} + \vs{3pt} + \hbox to \D{\vrule width .1pt height 5pt depth 0pt + \hfill + \vrule width .1pt height 5pt depth 0pt} + \hbox to \D{\vrule width 5pt height .1pt depth 0pt + \hfill + \vrule width 5pt height .1pt depth 0pt}} + \else \box\A\fi} +% +\def\makeheadline{% headline set for multiple and single column modes + \if*title% Do nothing if its a title page + \else \setbox\A=\vbox{\hsize=\the\*txtw % hsize added to allow + \ifodd\pageno\the\rh*r % headline to print the + \else\the\rh*l\fi} % full width in multi + \vbox to 0pt{\vskip-\ht\A\box\A\vss} % column mode + \fi} % This could replace the TEXT1@@ definition +% +\def\makefootline{\if*title + \if*cropmarks \vbox{\hsize=\the\*txtw\the\tp*fl\vss} + \else\vbox to 0pt{\hsize=\the\*txtw\the\tp*fl\vss}\fi + \else\if*cropmarks \vbox{\hsize=\the\*txtw\ifodd\pageno\the\rf*r + \else\the\rf*l\fi\vss} + \else\vbox to 0pt{\hsize=\the\*txtw\ifodd\pageno\the\rf*r + \else\the\rf*l\fi\vss}\fi % hsize added for multi column mode + \fi} % This could replace the TEXT1@@ definition +% +\def\*badj{\ifdim\pg*a=\z@ % do nothing if binding adjust absent + \else + \ifodd\pageno % Binding adjust markup (revised 2/03/87 + \global\hoffset=\*lmar % offset equals left margin value + \global\advance\hoffset by\pg*a % plus binding adjust + \else + \global\hoffset=\*lmar % offset equals left margin value + \global\advance\hoffset by-\pg*a % plus binding adjust + \fi\fi}% end binding adjust markup +\message{more misc, } +% +% linebreak +% +\def\linebreak{\null\hfil\break} +\let\lbr=\linebreak +\let\toclinebreak=\linebreak +\let\toclbr=\linebreak +% +% Horizontal skip +% +\def\horizontalspace#1{\null\hskip#1\relax}% +\let\hs=\horizontalspace +% +% skip down +% +\def\verticalspace#1{\vskip #1\relax}% +\let\vs=\verticalspace +% +\def\verticalspacekeep#1{\par + \hbox{\vbox{\vskip #1\relax}}}% +\let\vsk=\verticalspacekeep +% +% raggedright (as TeX basic) +% +\newdimen\r*sk \r*sk=0pt % dimension to save right skip +\def\rightragged{\par \r*sk=\rightskip \*rrtrue + \if*msp \rightskip=\r*sk plus10em + \spaceskip=1em \xspaceskip=1em + \else \rightskip=\r*sk plus2em\relax + \spaceskip=.3333em \xspaceskip=.5em + \fi} +\let\rr=\rightragged +% +% leftragged +% +\newdimen\l*sk \l*sk=0pt % dimension to save left skip +\def\leftragged{\par % + \l*sk=\leftskip + \spaceskip=.35em + \xspaceskip=.55em + \parfillskip=0pt + \leftskip=\l*sk plus2em\relax} +\let\lr=\leftragged +% +\newif\if*rr \*rrfalse +\def\justify{\par + \rightskip=\r*sk + \*rrfalse + \leftskip=\l*sk + \spaceskip=0pt \xspaceskip=0pt + \parfillskip=0pt plus1fil\relax} +\let\ju=\justify +% +% spacing +% +\def\singlespace{\par\baselineskip=\*isk} +\let\ssp=\singlespace +\def\doublespace{\par\baselineskip=2\*isk} +\let\dsp=\doublespace +% +% paragraph +% +\let\paragraph=\par +\def\paragraphindent#1{\parindent=#1} +\let\pin=\paragraphindent +\def\paragraphskip#1{\parskip=#1} +\let\psk=\paragraphskip +% +% noindent +% +\let\nin=\noindent +% +% hanging paragraph macro +% +\newdimen\*hin \*hin=24pt +\def\hangingindent#1{\*hin=#1} +\let\hin=\hangingindent +% +\def\hangingparagraph{\par + \hangindent=\*hin + \hangafter=1 + \noindent} +\let\hp=\hangingparagraph +\newif\if*mnr \*mnrfalse % left/right margin note indicator +\newtoks\e*mn \e*mn={\tenpt\rr} % every margin note tokens +\newtoks\*mnw \*mnw={54pt} % margin note width tokens +\newtoks\*mngut \*mngut={6pt} % margin note gutter tokens +\message{margin note, } +% +% Margin Note markup +% +\def\marginnoteformat#1{% MARGINAL NOTE FORMAT + \def\position##1{% "left" or "right" margin note check + \edef\T{##1}% + \edef\U{left}% + \edef\V{right}% + \ifx \T\U \global\*mnrfalse % left margin notes true + \else\ifx \T\V \global\*mnrtrue % right margin notes true + \else\global\*mnrfalse % default, improper entry + \write16{<TEXT1> You must specify "left" or "right" in % + the marginnoteformat markup. Left is the default.}% + \fi\fi}% end margin note check + \def\notewidth##1{\global\*mnw={##1}}% note width variable + \def\notegutter##1{\global\*mngut={##1}}% gutter width variable + \def\everymarginnote##1{\global\e*mn={##1}}% token variable + #1}% insert arguments, END marginnoteformat +\let\mnf=\marginnoteformat % set marginnoteformat abbreviation +% +\long\def\marginnote#1{% BEGIN MARGIN NOTE MACRO + \if*CG + \special{MARGINNOTE=true} % added 6/30/87 jkw for 8600 line numbering + \fi + \ifvmode\leavevmode\fi % can't use vadjust in vertical mode + \bgroup % begin margin note routine + \def\rightragged{\r*sk=\rightskip \*rrtrue + \if*msp \rightskip=\r*sk plus10em % + \spaceskip=1em \xspaceskip=1em % + \else \advance\rightskip by 0pt plus1fil\relax % + \spaceskip=.35em \xspaceskip=.55em % + \fi}% par removed from TEXT1 version % + \let\rr=\rightragged % +% + \tolerance=6000 % increase line-breaking tolerance + \hbadness=6000 % increase warning tolerance + \strut % sets line depth for vadjust + \D=\dp\strutbox % capture depth of current line + \the\e*mn % every margin note tokens + \strut % sets strut to margin note font + \parskip=0pt % cancel any paragraph skip + \if*mnr % right margin notes true + \vadjust{ % make whats'it in text + \rlap{\smash{ % rightlap, make note depth zero + \hskip\hsize % skip to right margin + \hskip\the\*mngut % make gutter + \vtop{\hsize=\the\*mnw % set reference point, new hsize + \kern-\D % kern depth of current text line + \kern-\ht\strutbox % kern height of margin note text + \nin#1}}}}% % input margin note text + \else % left margin notes true + \vadjust{ % make whats'it in text + \llap{\smash{ % leftlap, make note depth zero + \vtop{\hsize=\the\*mnw % gather vertical material with + \kern-\D % kern depth of current text line + \kern-\ht\strutbox % kern height of margin note text + \nin#1}% reference point at the top + \hskip\the\*mngut}}}% make margin note gutter + \fi % + \egroup % end margin notes routine + \ignorespaces}% END margin note macro +\let\mn=\marginnote +% +\message{labels, } +% +% labeled definition macro +% +\newdimen\la*w \la*w=1in % Label width +\newtoks\la*g \la*g={1em} % Label gutter +\newtoks\la*s \la*s={1\bl} % Skip before label +\newtoks\la*f \la*f={\rm} % Label font +% +\long\def\label#1{\par\vskip\the\la*s + \setbox\A=\vtop{\hsize=\la*w + \leftskip=0pt + \rightskip=0pt plus2em + \tolerance=1600 + \noindent + \the\la*f + #1}% + \hangindent=\la*w + \advance \hangindent by \the\la*g + \hangafter=1 + \noindent + \setbox0=\hbox{\rlap{\box\A}}\ht0=0pt\dp0=0pt\box0% + \hskip\la*w + \hskip\the\la*g + \ignorespaces} +\let\la=\label +% +\def\labelformat#1{{\def\skipbefore##1{\global\la*s={##1}}% + \def\labelwidth##1{\global\la*w=##1}% + \def\gutter##1{\global\la*g={##1}}% + \def\everylabel##1{\global\la*f={##1}}% + #1}}% End labelformat +\let\laf=\labelformat +% +\message{indents, } +% +% leftindent +% +\newif\if*ok +\newif\if*zero +\def\leftindent#1{\par + \*zerofalse + \*okfalse + \e*p#1\end% + \if*zero \leftskip 0pt \fi + \advance \leftskip by #1 + \l*sk=\leftskip % l*sk used in justify reset + }% +\let\lin=\leftindent +% +\def\rightindent#1{\par + \*zerofalse \*okfalse + \e*p#1\end% + \if*zero \rightskip 0pt \fi + \advance \rightskip by #1 + \if*rr\rr\fi + \r*sk=\rightskip}% r*sk used in justify reset +\let\rin=\rightindent +% +% \e*p will determine if the parm value passed to \leftindent +% or \rightindent is to be relative to the previous indent, which means a +% "+" or "-" will appear in front of the indent value. If no "+" or "-", +% then the indent is to be absolute from the original left margin. +% +\def\e*p#1{\ifx #1\end \let \next = \relax% e*p => Evaluate Parameter + \else \if*ok \let \next = \e*p + \else \global\*oktrue + \ifx #1+ \let \next = \e*p + \else \ifx #1- \let \next = \e*p + \else \*zerotrue + \let \next = \e*p + \fi\fi\fi\fi \next} +% +\message{block quotes, } +% +% Blockquote +% +\newskip\bq*sb \bq*sb = 6pt % Default skip before +\newskip\bq*sa \bq*sa = 6pt % Default skip after +\newtoks\bq*f \bq*f={\tenpt\leftindent{24pt}\rightindent{24pt}} +% +\def\blockquoteformat#1{{% + \def\everyblockquote##1{\global\bq*f={##1}}% + \def\skipbefore##1{\global\bq*sb=##1\relax}% + \def\skipafter##1{\global\bq*sa=##1\relax}% + #1}} %end of blockquoteformat +\let\bqf=\blockquoteformat +% +\def\blockquotebegin{\par\vskip\bq*sb\relax\begingroup + \the\bq*f } +\let\bqb=\blockquotebegin +\def\blockquoteend{\par\endgroup\vskip\bq*sa\relax} +\let\bqe=\blockquoteend +% +\message{footnotes, } +% +% +% +% Footnote +% +% The "tfn" prefixed values are for the reference in the text of +% the document. +% +\newif\if*tfn*dnum \*tfn*dnumfalse %"1." style +\newif\if*tfn*unum \*tfn*unumtrue %"1" style +\newif\if*tfn*pnum \*tfn*pnumfalse %"(1)" style +\newif\if*tfn*dlet \*tfn*dletfalse % "a." style +\newif\if*tfn*ulet \*tfn*uletfalse % "a" style +\newif\if*tfn*plet \*tfn*pletfalse % "(a)" style +\newif\if*tfn*rbe \*tfn*rbefalse % reference after word +\newif\if*tfnupchar \*tfnupchartrue % +\newtoks\*tfn*rfont \*tfn*rfont={\tenpt\rm} +% +% The "nfn" prefixed values are for the reference as it is formatted +% at the bottom of the page. +% +\newif\if*nfn*dnum \*nfn*dnumtrue %"1." style +\newif\if*nfn*unum \*nfn*unumfalse %"1" style +\newif\if*nfn*pnum \*nfn*pnumfalse %"(1)" style +\newif\if*nfn*dlet \*nfn*dletfalse % "a." style +\newif\if*nfn*ulet \*nfn*uletfalse % "a" style +\newif\if*nfn*plet \*nfn*pletfalse % "(1)" style +\newif\if*nfnupchar \*nfnupcharfalse % reference is not superscript +\newtoks\*nfn*rfont \*nfn*rfont={\tenpt\rm} +\newtoks\*nfng \*nfng={1em} +% +\newif\if*fn*llap \*fn*llaptrue +\newtoks\fn*f +\newcount\fn*num +\newdimen\fn*div \fn*div=2in +\newskip\fn*sadiv \fn*sadiv=2.6pt %default skip after divider +\newskip\fn*sbdiv \fn*sbdiv=6pt %default skip before divider +% +\def\footnotenumber{{\if*tfn*dnum \the\fn*num % "1." style + \else\if*tfn*unum \the\fn*num % "1" style + \else\if*tfn*pnum \the\fn*num % "(1)" style + \else\l*alphatrue \a*c{\fn*num} % "a.", "a", and "(a)" + \fi\fi\fi + \removelastskip}} +% +\def\setfootnotenumber#1{\fn*num=#1} +\let\sfnn=\setfootnotenumber +% +\skip\footins=15pt plus 3pt minus 2pt +\fn*f={\tenpt\pin{20pt}\lin{0in}} +% +\def\footnoteformat#1{{% + \def\everyfootnote##1{\global\fn*f{##1}}% + \def\textreferencestyle##1{% + \global\*tfn*dnumfalse + \global\*tfn*unumfalse + \global\*tfn*pnumfalse + \global\*tfn*dletfalse + \global\*tfn*uletfalse + \global\*tfn*pletfalse + \edef\T{##1}% + \edef\U{(1)}% + \edef\V{1}% + \edef\Y{1.}% + \edef\W{(a)}% + \edef\X{a}% + \edef\Z{a.}% + \ifx\T\U \global\*tfn*pnumtrue + \else\ifx\T\V \global\*tfn*unumtrue + \else\ifx\T\Y \global\*tfn*dnumtrue + \else\ifx\T\W \global\*tfn*plettrue + \else\ifx\T\X \global\*tfn*ulettrue + \else\ifx\T\Z \global\*tfn*dlettrue + \else \message{<TEXT1> Error! textreferencestyle ##1 + is not a valid style. Statement ignored.} + \fi\fi\fi\fi\fi\fi}% end reference style + \def\textreferencefont##1{\global\*tfn*rfont{##1}}% + \def\textreferenceplacement##1{\global\*tfn*rbefalse + \edef\T{##1}% + \edef\U{before}% + \edef\V{after}% + \ifx\T\U \global\*tfn*rbetrue + \else\ifx\T\V \global\*tfn*rbefalse + \else \message{<TEXT1> Error! textreferenceplacement ##1 + is invalid. Statement ignored.} + \fi\fi} + \def\textreferenceposition##1{\global\*tfnupcharfalse + \edef\T{##1}% + \edef\U{up}% + \edef\V{down}% + \ifx\T\U \global\*tfnupchartrue + \else\ifx\T\V \global\*tfnupcharfalse + \else \message{<TEXT1> Error! textreferenceposition ##1 + has an invalid parameter. Statement ignored.} + \fi\fi} + \def\notereferencestyle##1{ + \global\*nfn*dnumfalse + \global\*nfn*unumfalse + \global\*nfn*pnumfalse + \global\*nfn*dletfalse + \global\*nfn*uletfalse + \global\*nfn*pletfalse + \edef\T{##1}% + \edef\U{(1)}% + \edef\V{1}% + \edef\Y{1.}% + \edef\W{(a)}% + \edef\X{a}% + \edef\Z{a.}% + \ifx\T\Y \global\*nfn*dnumtrue + \else\ifx\T\U \global\*nfn*pnumtrue + \else\ifx\T\V \global\*nfn*unumtrue + \else\ifx\T\W \global\*nfn*plettrue + \else\ifx\T\X \global\*nfn*ulettrue + \else\ifx\T\Z \global\*nfn*dlettrue + \else \message{<TEXT1> Error! notereferencestyle ##1 + is not a valid style. Statement ignored.} + \fi\fi\fi\fi\fi\fi}% end reference style + \def\notereferencefont##1{\global\*nfn*rfont{##1}}% + \def\notereferenceposition##1{\global\*nfnupcharfalse + \edef\T{##1}% + \edef\U{up}% + \edef\V{down}% + \ifx\T\U \global\*nfnupchartrue + \else\ifx\T\V \global\*nfnupcharfalse + \else \message{<TEXT1> Error! notereferenceposition ##1 + has an invalid parameter. Statement ignored.} + \fi\fi}% + \def\skipbeforedivider##1{\global\fn*sbdiv=##1\relax}% + \def\footnotedivider##1{\global\fn*div=##1\relax}% + \def\notereferencegutter##1{\global\*nfng={##1}}% + \def\skipafterdivider##1{\global\fn*sadiv=##1\relax}% + #1 + \relax + \skip\footins=0pt plus 3pt minus 2pt + \global\advance\skip\footins by \fn*sbdiv\relax% + \global\advance\skip\footins by \fn*sadiv\relax% +}} % end of footnoteformat +\let\fnf=\footnoteformat +% +\def\autofootnote{\global\advance\fn*num by 1 + \l*alphatrue + \xdef\I{% + \if*tfn*unum \the\fn*num% + \else \if*tfn*ulet \a*c{\the\fn*num}% + \else \if*tfn*plet (\a*c{\the\fn*num})% + \else \if*tfn*pnum (\the\fn*num)% + \else \if*tfn*dlet \a*c{\the\fn*num}.% + \else \if*tfn*dnum \the\fn*num.% + \fi\fi\fi\fi\fi\fi}% + \def\K{% + \if*nfn*unum \the\fn*num% + \else \if*nfn*ulet \a*c{\the\fn*num}% + \else \if*nfn*plet (\a*c{\the\fn*num})% + \else \if*nfn*pnum (\the\fn*num)% + \else \if*nfn*dlet \a*c{\the\fn*num}.% + \else \if*nfn*dnum \the\fn*num.% + \fi\fi\fi\fi\fi\fi}% +% + \let\@sf=\empty + \ifhmode\edef\@sf{\spacefactor=\the\spacefactor}\fi + \def\J{{\the\*tfn*rfont + \if*tfnupchar \raise.7ex\hbox{\the\*tfn*rfont\I}% + \else {\I}\fi}}% + \if*tfn*rbe \@sf\J\ignorespaces% + \else\unskip\unskip\unskip\unskip\J\@sf\fi + \def\M{{\the\*nfn*rfont + \if*nfnupchar \raise.7ex\hbox{\K}% + \else {\K}\fi}}% + \vfootnote{\M}} +\let\afn=\autofootnote +% +% vfootnote redefined to include fn*f features +% The addition of hsize=txtw in vfootnote for flexibleformat allows the +% +% footnote to print across the full text width at the page bottom. +% +% Footstrut redefined to baselineskip for consistent spacing in footnote +% +% +\def\footnoterule{\vskip-\fn*sadiv\hrule width\fn*div\vskip\fn*sadiv\relax} +% +% redefined from PLAIN TEX to baselineskip. PLAIN TEX +% used the height of a ten point strutbox +% +\def\vfootnote#1{% Vfootnote revised 11/6/86 + \insert\footins\bgroup + \if*fix % if fixed mode do nothing to footnote + \else\hsize=\*txtw\fi % else print footnote across full width of page + \interlinepenalty\interfootnotelinepenalty + \setbox\strutbox=\hbox{\vrule height 1.8ex depth .6ex width 0pt}% + \splittopskip\ht\strutbox % top baseline for broken footnotes + \splitmaxdepth\dp\strutbox + \floatingpenalty\@MM + \leftskip\z@skip + \rightskip\z@skip + \spaceskip\z@skip + \xspaceskip\z@skip + \the\fn*f + \def\T{\parindent}% For some odd and unknown reason this def is needed + \ifdim\the\parindent>0pt \global\*fn*llaptrue + \else \ifdim\the\leftskip>0pt \global\*fn*llaptrue + \else \global\*fn*llapfalse\fi\fi + \leavevmode + \if*fn*llap \hbox to 0pt{\hss{#1\hskip\the\*nfng}}% + \else \hbox{#1\hskip\the\*nfng}\fi% + \ignorespaces + \footstrut\futurelet\next\fo@t}% END vfootnote markup definition +% +\def\footstrut{\vbox to\baselineskip{}} +% +\message{endnotes, } +% +% Endnote +% +% The "ten" prefixed values are for the reference in the text of +% the document. +% +\newif\if*ten*num \*ten*numtrue % "[1]", "1" and "(1)" styles +\newif\if*ten*let \*ten*letfalse % "a" and "(a)" styles +\newif\if*ten*paren \*ten*parenfalse % "(1)" and "(a)" styles +\newif\if*ten*sb \*ten*sbtrue % "[1]" style +\newif\if*tenupchar \*tenupcharfalse % reference is not superscripted by +\newtoks\*tenrfont \*tenrfont={\tenpt\rm} +% +% The "nen" prefixed values are for the reference as it is formatted +% at the end of a chapter or the end of the document. +% +\newif\if*nen*num \*nen*numtrue % "[1]", "1", "1." and "(1)" styles +\newif\if*nen*let \*nen*letfalse % "a" and "(a)" styles +\newif\if*nenll*per \*nenll*pertrue % "1." style +\newif\if*nen*paren \*nen*parenfalse % "(1)" and "(a)" styles +\newif\if*nen*sb \*nen*sbfalse % "[1]" style +\newif\if*nenupchar \*nenupcharfalse % reference isn't superscripted +\newtoks\*nenrfont \*nenrfont={\tenpt\rm} +\newdimen\*neng \*neng=1em +% +\newtoks\*enpar +\newcount\en*n +\newskip\en*s \en*s=4pt +% +% +\def\endnotenumber{{\if*ten*num \the\en*n % all numeric styles + \else\l*alphatrue \a*c{\en*n} % all alpha styles + \fi + \removelastskip}} +% +\def\setendnotenumber#1{\en*n=#1} +\let\senn=\setendnotenumber +% +\*enpar={\tenpt\pin{0in}\lin{1.2em}} +% +\def\endnoteformat#1{% + {\def\everyendnote##1{\global\*enpar{##1}}% + \def\textreferencestyle##1{% + \global\*ten*numfalse + \global\*ten*letfalse + \global\*ten*parenfalse + \global\*ten*sbfalse + \edef\T{##1}% + \edef\U{[1]}% + \edef\V{(1)}% + \edef\W{1}% + \edef\X{(a)}% + \edef\Y{a}% + \ifx\T\U \global\*ten*numtrue \global\*ten*sbtrue % st + \else\ifx\T\V \global\*ten*numtrue \global\*ten*parentrue % st + \else\ifx\T\W \global\*ten*numtrue % st + \else\ifx\T\X \global\*ten*lettrue \global\*ten*parentrue % st + \else\ifx\T\Y \global\*ten*lettrue % st + \else \message{<TEXT1> Error! textreferencestyle ##1 + is not a valid style. Statement ignored.} + \fi\fi\fi\fi\fi}% end reference style + \def\textreferencefont##1{\global\*tenrfont{##1}}% + \def\textreferenceposition##1{\global\*tenupcharfalse + \edef\T{##1}% + \edef\U{up}% + \edef\V{down}% + \ifx\T\U \global\*tenupchartrue + \else\ifx\T\V \global\*tenupcharfalse + \else \message{<TEXT1> Error! textreferenceposition ##1 + has an invalid parameter. Statement ignored.} + \fi\fi} + \def\notereferencestyle##1{ + \global\*nen*numfalse + \global\*nen*letfalse + \global\*nen*parenfalse + \global\*nenll*perfalse + \global\*nen*sbfalse + \edef\T{##1}% + \edef\U{[1]}% + \edef\V{(1)}% + \edef\W{1}% + \edef\X{(a)}% + \edef\Y{a}% + \edef\Z{1.}% + \ifx\T\Z \global\*nen*numtrue \global\*nenll*pertrue % style + \else\ifx\T\U \global\*nen*numtrue \global\*nen*sbtrue % st + \else\ifx\T\V \global\*nen*numtrue \global\*nen*parentrue % st + \else\ifx\T\W \global\*nen*numtrue % st + \else\ifx\T\X \global\*nen*lettrue \global\*nen*parentrue % st + \else\ifx\T\Y \global\*nen*lettrue % st + \else \message{<TEXT1> Error! notereferencestyle ##1 + is not a valid style. Statement ignored.} + \fi\fi\fi\fi\fi\fi}% end reference style + \def\notereferencefont##1{\global\*nenrfont{##1}}% + \def\notereferenceposition##1{\global\*nenupcharfalse + \edef\T{##1}% + \edef\U{up}% + \edef\V{down}% + \ifx\T\U \global\*nenupchartrue + \else\ifx\T\V \global\*nenupcharfalse + \else \message{<TEXT1> Error! notereferenceposition ##1 + has an invalid parameter. Statement ignored.} + \fi\fi}% + \def\notereferencegutter##1{\global\*neng=##1}% + \def\skipbefore##1{\global\en*s=##1}% + \relax + #1}} % end of footnoteformat +\let\enf=\endnoteformat +% +\newlinechar=`\^^J +\newhelp\aenhelp{relax + You may continue if you wish, but I'd be surprised + if your job^^J + finished without any errors when you print the endnotes. } +% +\def\err@#1{\errmessage{TEXT1 error: #1}} +\def\*aenerr{\errhelp=\aenhelp + \catcode`@=11 + \errmessage{Results are unpredictable + when you use autoendnote with asisbegin. + Type h for more help}}% +\def\autoendnote{\global\advance\en*n by 1 + \if*aib \*aenerr \fi + \l*alphatrue + \edef\I{% + \if*ten*paren (\unskip\fi + \if*ten*sb [\unskip\fi + \if*ten*num \the\en*n\fi + \if*ten*let \a*c{\the\en*n}\fi + \if*ten*paren \unskip)\fi + \if*ten*sb \unskip]\fi}% + \let\@sf=\empty + \ifhmode \edef\@sf{\spacefactor=\the\spacefactor}% + \else \let\@sf=\empty\fi + \unskip\unskip + \if*tenupchar \raise.7ex\hbox{\the\*tenrfont\I}\@sf% + \else {\the\*tenrfont\I}\@sf\fi% + \edef\J{% + \if*nen*paren (\unskip\fi + \if*nen*sb [\unskip\fi + \if*nen*num \the\en*n\fi + \if*nen*let \a*c{\the\en*n}\fi + \if*nenll*per \unskip.\fi + \if*nen*paren \unskip)\fi + \if*nen*sb \unskip]\fi}% + \en*o + \immediate\write\en*f{\par% + \the\*enpar% + \noexpand\ENP{\the\*nenrfont\J}}% + \en*w} +\let\aen=\autoendnote +% +% +\def\ENP#1{\indent\en*i{% + \if*nenupchar \raise.7ex\hbox{\the\*nenrfont#1}% + \else {\the\*nenrfont#1}\fi}}% +% +\def\en*i#1{\hbox to 0pt{\hss{#1}\hskip\*neng}\ignorespaces} +% +\newwrite\en*f +\newtoks\*endlbl +\if*PC + \*endlbl={text1xx.end} + \else + \*endlbl={text1xx.endnotes} +\fi + +\def\en*o{\immediate\openout\en*f=\the\*endlbl + \immediate\write\en*f{\the\*enpar}% + \edef\T{\par\vskip\the\en*s\relax}% + \immediate\write\en*f{\T}% + \global\def\en*o{}% + } +% +\long\def\en*w#1{{\def\rm{\noexpand\rm}\def\it{\noexpand\it}% + \def\underscore{\noexpand\us}\let\us=\underscore% + \def\bd{\noexpand\bd}\def\cc{\noexpand\cc}\def\tt{\noexpand\tt}% + \def\c{\noexpand\c}\def\L{\noexpand\L}\def\AA{\noexpand\AA}% + \def\d{\noexpand\d}\def\O{\noexpand\O}\def\t{\noexpand\t}% + \def\b{\noexpand\b}% + \immediate\write\en*f{#1}}% +}% end definition of en*w +% +\def\printendnotes{\immediate\closeout\en*f% + \begingroup% + \input text1xx.endnotes% + \par% + \endgroup% + \global\def\en*o{\immediate\openout\en*f=text1xx.endnotes% + \immediate\write\en*f{\the\*enpar}% + \edef\T{\par\vskip\the\en*s\relax}% + \immediate\write\en*f{\T}% + \global\def\en*o{}}% + \setendnotenumber{0}}% +\let \pen=\printendnotes +% +\message{set command, } +% +% +\def\set#1#2{\l*alphafalse +\ifx#2\appendixnumber + \edef\T{\the\*ap*num}% + \E=\*ap*st% + \else\ifx#2\chapternumber + \edef\T{\the\*ch*num}% + \E=\*ch*st% + \else\ifx#2\endnotenumber + \edef\T{\the\en*n}% + \if*ten*num \E=1% % all numeric styles + \else\l*alphatrue \E=2% % all alpha styles + \fi% + \else\ifx#2\figurenumber + \edef\T{\the\fi*n}% + \E=1% + \else\ifx#2\footnotenumber + \edef\T{\the\fn*num}% + \if*tfn*dnum \E=1% % "1." style + \else\if*tfn*unum \E=1% % "1" style + \else\if*tfn*pnum \E=1% % "(1)" style + \else\l*alphatrue \E=2% % "a.", "a", and "(a)" + \fi\fi\fi% + \else\ifx#2\partnumber + \edef\T{\the\*pt*num}% + \E=\*pt*st% + \else\ifx#2\pagenumber + \ifnum \pageno<0 \edef\T{\romannumeral-\pageno}% + \else \edef\T{\number\pageno}\fi% + \E=1% + \else\ifx#2\subheadanumber + \edef\T{\the\*sa*num}% + \E=\sa*st% + \else\ifx#2\subheadbnumber + \edef\T{\the\*sb*num}% + \E=\sb*st% + \else\ifx#2\subheadcnumber + \edef\T{\the\*sc*num}% + \E=\sc*st% + \else\ifx#2\subheaddnumber + \edef\T{\the\*sd*num}% + \E=\sd*st% + \else\ifx#2\tablenumber + \edef\T{\the\ta*n}% + \E=1% + \else\message{<TEXT1> Error! You've entered a number I know nothing + about. I'm going to ignore it and try to proceed.}% + \E=0% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% +\null % So, why is this needed?? +\ifcase\E % NOP + \or % set to a digit or lower case roman + \expandafter\xdef\csname#1\endcsname{\T}% + \or % set to a letter (upper or lower) + \expandafter\xdef\csname#1\endcsname{{\a*c{\T}}}% + \or % set to an uppercase roman numeral + \expandafter\xdef\csname#1\endcsname{% + \uppercase\expandafter{\romannumeral\T}}% + \fi}% +% +\message{centering, } +% +% CENTERLINE Rev. 9/6/88 drg +% +% Centerline with single and multiple line capabilities +\newif\if*afn*cl +\def\centerline#1{\par % Begin centerline markup + \*afn*clfalse + \B={} + \N=0 + \bgroup + \parindent=\z@ \relax % zero indent + \parfillskip=0pt plus1fil \relax % infinite stretch + \everypar{\null\hskip0pt plus1fil\relax} % add infinite glue + \def\linebreak{\hskip0pt plus1fil\relax\break + \null\hskip0pt plus1fil\relax}% + \let\lbr=\linebreak + \let\toclinebreak=\space + \let\toclbr=\space + \justify + \let\*vfn=\vfootnote + \let\*afn=\autofootnote + \def\vfootnote##1##2{\edef\T{\the\B\noexpand\vfootnote{##1}{##2}} + \global\B=\expandafter{\T}} + \def\autofootnote{\global\*afn*cltrue + \global\advance\N by 1 % count the notes done + \*afn} + \let\afn=\autofootnote + \let\*fn=\footnote + \def\footnote##1{\global\*afn*cltrue \*fn{##1}} + \setbox\A=\vbox{#1\par % added to make skip with multiple lines + \global\C=\baselineskip + \setbox0=\hbox{(} + \global\advance\C by-\ht0}% end vbox + \global\advance\fn*num by -\N %subtract the number of notes done + \let\autofootnote=\*afn \let\afn=\autofootnote + \let\footnote=\*fn + \let\vfootnote=\*vfn + \ifdim\ht\A>\baselineskip \else \C=\z@ \fi + \line{\hss\vbox{\vskip\C#1\par}\hss}% print centered lines + \egroup + \if*afn*cl % then there were footnotes in the \cl + \the\B + \fi + }% End centerline markup +\let\cl=\centerline +% +% CENTER MULTIPLE LINES +% +\newif\if*ctrl % centerline indicator +\*ctrlfalse +\def\centerlinesbegin{\par\global\*ctrltrue + \begingroup\pin{0pt}\psk{0pt}\leftskip=0pt plus1fil + \parfillskip=0pt \rightskip=0pt plus1fil\obeylines\ignorespaces}% +\let\clb=\centerlinesbegin +\def\centerlinesend{\endgroup\par} +\let\cle=\centerlinesend +% +% rightline par added to PLAIN TEX macro +% +\long\def\rightline#1{\par\line{\hss#1}} +\let\rl=\rightline +% +% right align multiple lines +% +\def\rightlinesbegin{\par\begingroup\parskip=0pt\parfillskip=0pt + \leftskip=0pt plus1fil\obeylines}% +\let\rlb=\rightlinesbegin +\def\rightlinesend{\endgroup\par}% +\let\rle=\rightlinesend +% +\message{asis, } +% +% As is or format off +% +\newskip\*aisb \*aisb = 6pt % Default skip before +\newskip\*aisa \*aisa = 6pt % Default skip after +\newtoks\*aif \*aif={\leftindent{0in}} +\newif\if*aib \*aibfalse % centerline indicator +% +\def\asisformat#1{{% + \def\everyasis##1{\global\*aif{##1}}% + \def\skipbefore##1{\global\*aisb=##1\relax}% + \def\skipafter##1{\global\*aisa=##1\relax}% + \relax + #1}} % end of asisformat +\let\aif=\asisformat +% +% As is or format off +\def\asisbegin{\par\*aibtrue\vskip\*aisb\relax\nointerlineskip + \begingroup + \let\*afn=\autofootnote % save definition of autofootnote + \def\leftindent##1{% + \*zerofalse \*okfalse + \e*p##1\end% + \if*zero \leftskip 0pt \fi + \advance \leftskip by ##1}% + \let\lin=\leftindent +% + \def\autofootnote{\endgroup % end asis format + \futurelet\next\ck*chr}% pick next character, then check the pick + \let\afn=\autofootnote % reset abbreviation for autofootnote + \def\ck*chr{\ifcat\bgroup % if left brace + \noexpand\next % do nothing + \let\next\gather % next equals gather + \else % no brace present + \let\next\re*group\fi % stop if no brace encountered + \next}% + \def\gather{\*afn % call normal autofootnote + \bgroup % furnish left brace, read group + \aftergroup\re*group % reset asis format + \let\next}% eat curly brace in text + % group ends at text right curly brace + \def\re*group{\*asisb}% restore asis group +% + \def\*asisb{\begingroup + \def\singlespace{\baselineskip=\*isk}% + \let\ssp=\singlespace + \def\doublespace{\baselineskip=2\*isk}% + \let\dsp=\doublespace + \def\par{\leavevmode\endgraf}% + \parskip0pt\parindent0pt + \the\*aif + \setupverbatim}\*asisb} + {\obeyspaces\gdef {\ }} +\def\obeyspaces{\@vobeyspaces} +{\catcode`\ =\active\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}} +\def\@xobeysp{\leavevmode\penalty10000\ } +\def\setupverbatim{\obeylines + \obeyspaces } +\let\aib=\asisbegin +\def\asisend{\endgroup\endgroup\vskip\*aisa\relax\*aibfalse} +\let\aie=\asisend +% +\message{box macros, } +% +% Start of boxes +% +\font\dtscr=dt +% +% Draw boxes +% +\newdimen\db*m \db*m=3pt % drawbox mat size +\newdimen\db*s \db*s=.4pt % drawbox rule size +\newdimen\db*sh \db*sh=0pt % drawbox shadow size +\newdimen\db*om \db*om=0pt % drawbox outer mat size +\newdimen\db*os \db*os=0pt % drawbox outer rule size +\newcount\db*ps \db*ps=0 % drawbox percent of screen +% +\long\def\drawbox#1{\*box{\db*m}{\db*s}{\db*sh}{\db*om}{\db*os}{\db*ps}{#1}} +\let\db=\drawbox +% +\def\drawboxformat#1{{% + \def\boxmat##1{\global\db*m=##1\relax}% + \def\boxrule##1{\global\db*s=##1\relax}% + \def\boxshadow##1{\global\db*sh=##1\relax}% + \def\outerboxmat##1{\global\db*om=##1\relax}% + \def\outerboxrule##1{\global\db*os=##1\relax}% + \def\screen##1{\ifnum##1>64 + \message{<TEXT1> Error. Screen can only be 0 through 64} + \global\db*ps=0 + \else\ifnum##1<0 + \message{<TEXT1> Error. Screen can only be 0 through 64} + \global\db*ps=0 + \else \global\db*ps=##1\relax\fi\fi}% + #1}} % end of drawboxformat +\let\dbf=\drawboxformat +% +\def\drawboxrulesize#1{\dbf{\boxrule{#1}} + \message{<TEXT1> Warning: Use drawboxformat instead of drawboxrulesize}} +\let\dbrs=\drawboxrulesize +\def\drawboxmat#1{\dbf{\boxmat{#1}} + \message{<TEXT1> Warning: Use drawboxformat instead of drawboxmat}} +\let\dbm=\drawboxmat +% +% Paragraph boxes +% +\newdimen\pb*m \pb*m=3pt % paragraphbox mat size +\newdimen\pb*s \pb*s=.4pt % paragraphbox rule size +\newdimen\pb*sh \pb*sh=0pt % paragraphbox shadow size +\newdimen\pb*om \pb*om=0pt % paragraphbox outer mat size +\newdimen\pb*os \pb*os=0pt % paragraphbox outer rule size +\newcount\pb*ps \pb*ps=0 % paragraphbox percent of screen +% +\long\def\paragraphbox#1{\par\hbox{% + \*box{\pb*m}{\pb*s}{\pb*sh}{\pb*om}{\pb*os}{\pb*ps}{\vbox{% + \advance \hsize by -2\pb*m% + \advance \hsize by -2\pb*s% + \advance \hsize by -2\pb*om% + \advance \hsize by -2\pb*os% + \hrule width \hsize height 0pt depth 0pt% + #1}}}} +\let\pb=\paragraphbox +% +\def\paragraphboxformat#1{{% + \def\boxmat##1{\global\pb*m=##1\relax}% + \def\boxrule##1{\global\pb*s=##1\relax}% + \def\boxshadow##1{\global\pb*sh=##1\relax}% + \def\outerboxmat##1{\global\pb*om=##1\relax}% + \def\outerboxrule##1{\global\pb*os=##1\relax}% + \def\screen##1{\ifnum##1>64 + \message{<TEXT1> Error. Screen can only be 0 through 64} + \global\pb*ps=0 + \else\ifnum##1<0 + \message{<TEXT1> Error. Screen can only be 0 through 64} + \global\pb*ps=0 + \else \global\pb*ps=##1\relax\fi\fi}% + #1}} % end of paragraphboxformat +\let\pbf=\paragraphboxformat + +% parameter list for *box: +% #1 = boxmat size #5 = outer boxrule +% #2 = boxrule size #6 = screen percent +% #3 = box shadow size #7 = value to be boxed +% #4 = outer boxmat +% +% Uncoment these 2 lines if using the boxes outside of TEXT1 +% \newbox\A +% \newdimen\D +% \newcount\E +% +\long\def\*box#1#2#3#4#5#6#7{% +\ifdim #5>0pt % only if doing a "framed" box + \setbox\A=\vbox{\*box{#1}{#2}{#3}{0pt}{0pt}{#6}{#7}}% + \*box{#4}{#5}{#3}{0pt}{0pt}{#6}{\box\A}% + \else% + \setbox\A=\vbox{\hrule height#2 % draw left side + \hbox{\vrule width#2\hskip#1 % draw the top + \vbox{\vskip#1 + \hbox{#7} + \vskip#1}\hskip#1\vrule width#2} % draw the bottom + \hrule height#2} % draw the right side + \ifdim #3=0pt \*scr{#6}{\box\A} % print if not a shadow + \else \D=\ht\A + \advance \D by -#3 + \vbox{\hbox{\vrule width #3 height \D depth 0pt + \*scr{#6}{\copy\A}} + \hrule width \wd\A height #3 depth 0pt} + \fi + \fi} + +% #1 = Screen percent +% #2 = box to be printed + +\def\*scr#1#2{\ifnum#1=0 #2 + \else \setbox\A=\vbox{#2} + \D=\ht\A + \advance \D by \dp\A + \E=#1% + \advance \E by 48% + \hbox{\vbox{\vbox to \D{\leaders + \hbox to \wd\A{\leaders\hbox{\dtscr\char\E}\hfill} + \vfill} + \vskip -\D + \box\A}} + \fi +} +% +% End of boxes +% +\message{more misc, } +% +% page skip +% +\def\newpage{\vfil\break}% changed from vfill to vfil 11/4/86 bth +\let\np=\newpage +% +% emptypage +% +\def\emptypage{\global\advance\*pcount by1}% produces empty pages +\let\ep=\emptypage +% +\def\*blkpg{ % BLANK PAGE MACRO, produces the empty page + \loop % checks the number of empty pages + \*badj % check for binding adjust + \shipout\vbox{\*setcrops{\vbox{ + \makeheadline % shipout page with headline + \vbox to\*txth{\vfil} % and fooline only + \makefootline}}} + \global\advance\*pcount by\m@ne % decrement empty page counter + \advancepageno % advance the page number + \ifnum\*pcount>0 % check for empty pages + \repeat}% END, empty page macro +% +\message{enumeration macros, } +% +% List Level Macros +% +\newcount\ll*n % Current list level number +\newcount\*toklimit +\newcount\*countlimit +\newcount\ll*stb % list style start +\newcount\ll*cs % list*enum*value*start +\newcount\ll*cmps % list compare start +\newcount\ll*cmpe +\newcount\ll*lc % Last level called +\*toklimit = 188 % Positions 224-253 are used for the 30 table column justification + % Positions 199-223 are used for the 25 different list level styles + % Tokens below 199 are available for \newtoks use. + % Token 190 is the build token + % 191-197 is the list level formats, level 1-7 + % 198 is the bullet format +% +\*countlimit = 236 % Counters 244-250 are the styles for the 7 list levels + % Counters 237-243 are the enum counters for the 7 list levels + % Counters below 237 are available for \newcount use. +% +\ll*stb = 244 % Counters 244-250 correspond to the 7 list level styles, + % value is index into tokens 199-223 +\ll*cs = 237 % Counters 237-243 correspond to the 7 list level enum values. +\ll*cmps = 199 % Where to start in the \toks values for the 25 different list level styles +\ll*cmpe = 223 % Where to stop in the \toks values for the 25 different list level styles +% +\count244 = 1 % style "1." +\count245 = 4 % style "a." +\count246 = 7 % style "i." +\count247 = 2 % style "1)" +\count248 = 5 % style "a)" +\count249 = 8 % style "i)" +\count250 = 3 % style "(1)" +% +\newskip\ll*sb \ll*sb = 0pt % Default is no \vskip +\newskip\ll*sa \ll*sa = 0pt % Default is no \vskip +% +\toks191={\rm\leftindent{.5in}\gutter{1em}} % level 1 indent is 5 characters initially +\toks192={\rm\leftindent{.8in}\gutter{1em}} % level 2 indent +\toks193={\rm\leftindent{1.1in}\gutter{1em}} % level 3 indent +\toks194={\rm\leftindent{1.4in}\gutter{1em}} % level 4 indent +\toks195={\rm\leftindent{1.7in}\gutter{1em}} % level 5 indent +\toks196={\rm\leftindent{2in}\gutter{1em}} % level 6 indent +\toks197={\rm\leftindent{2.3in}\gutter{1em}} % level 7 indent +\toks198={\rm\leftindent{+.5in}\gutter{1em}} % bullets +% + % The 25 different List level styles: +\toks199 = {1.} % Style 1 +\toks200 = {1)} % 2 +\toks201 = {(1)} % 3 +\toks202 = {a.} % 4 +\toks203 = {a)} % 5 +\toks204 = {(a)} % 6 +\toks205 = {i.} % 7 +\toks206 = {i)} % 8 +\toks207 = {(i)} % 9 +\toks208 = {I.} % 10 +\toks209 = {I)} % 11 +\toks210 = {(I)} % 12 +\toks211 = {A.} % 13 +\toks212 = {A)} % 14 +\toks213 = {(A)} % 15 +\toks214 = {1]} % 16 +\toks215 = {[1]} % 17 +\toks216 = {a]} % 18 +\toks217 = {[a]} % 19 +\toks218 = {i]} % 20 +\toks219 = {[i]} % 21 +\toks220 = {I]} % 22 +\toks221 = {[I]} % 23 +\toks222 = {A]} % 24 +\toks223 = {[A]} % 25 +% +\newif\if*check % True unless done parsing \listformat +\newif\ifll*lp +\newif\ifll*rp +\newif\if*lsqb +\newif\if*rsqb +\newif\ifll*per +\newif\ifll*dig +\newif\ifl*alpha +\newif\if*u*alpha +\newif\if*l*roman +\newif\if*u*roman +\newif\ifll*nil +% +\ll*niltrue +% +\outer\def\newtoks{\alloc@5\toks\toksdef\*toklimit} +\outer\def\newcount{\alloc@0\count\countdef\*countlimit} +% +% +% Macros for producing enumerated list levels. +% +% +\def\listformat#1{{\begingroup% + \def\liststyle##1{\par\N = 1 + \toks190 = {} + \Z##1\end}% + \def\Z##1{\ifx ##1\end \Y + \let \next = \relax + \else \ifnum \N > 7 + \message{<TEXT1> Error! Too many list levels specified, 7 is max. + Statement ignored.} + \let \next = \Z + \else \ifx ##1, \Y + \advance \N by 1 + \toks190 = {} + \let \next = \Z + \else \toks190 = \expandafter{\the\toks190 ##1} + \let \next = \Z + \fi\fi\fi\next}% + \def\Y{\*tempiffalse + \*checktrue + \E = \ll*cmps + \loop \ifnum \E > \ll*cmpe + \*checkfalse + \*tempiftrue + \else \edef\T{\the\toks190}% + \edef\U{\the\toks\E}% + \ifx\T\U + \*checkfalse + \F = \ll*stb + \advance \F by -1 + \advance \F by \N + \count\F = \E + \advance \count\F by -\ll*cmps + \global\advance \count\F by 1 + \fi\fi + \if*check% Then + \advance \E by 1 + \repeat + \if*tempif \message{<TEXT1> Error! \the\toks190 is an invalid list + level style. It will be ignored} + \fi}% + \def\skipbefore##1{\global\ll*sb = ##1\relax}% + \def\skipafter##1{\global\ll*sa = ##1\relax}% + \def\everylistlevel##1##2{\ifcase ##1 + \or \global\toks191 = {##2} + \or \global\toks192 = {##2} + \or \global\toks193 = {##2} + \or \global\toks194 = {##2} + \or \global\toks195 = {##2} + \or \global\toks196 = {##2} + \or \global\toks197 = {##2} + \fi}% + \def\everybullet##1{\global\toks198 = {##1}}% + \relax + #1 + \endgroup}} +% +\let \lif = \listformat +% +\def\listbegin{\vskip\ll*sb\relax + \ll*nilfalse + \begingroup + \global\ll*lc = 0 + \ll*ini1 + } +\let\lib=\listbegin +% +\def\listend{\vskip\ll*sa\relax + \endgroup + \ll*niltrue +} +\let\lie=\listend +% +\def\listlevel#1{\par + \ifll*nil \message{<TEXT1> Warning, listbegin was not + specified. The left margin indent will be set to zero.} + \else \if*dbl \else \if*tpl + % If in multiple columns, don't end the group. Do so otherwise + \else \endgroup + \begingroup + \fi\fi + \fi + \*tempiftrue % Usually not quite so pessimistic + \ifcat 1#1 \ifnum #1 < 8 \*tempiffalse % OK if \listlevel1-\listlevel7 + \fi\fi + \if*tempif \message{<TEXT1> Warning, invalid list level "#1", + listlevel1 will be used instead.} + \listlevel1 + \else \E = #1 + \global\ll*n = \E + \advance \E by 1 + \ll*ini\E + \par + \ll*fmt + \noindent + \txt*in{\ll*p{#1}} + \fi +} +\let \lil = \listlevel +% +\def\txt*in#1{\hbox to 0pt{\hss{#1}\hskip\*gut}\ignorespaces} +% +\def\ll*fmt{\*gut=1em + \ifcase \the\ll*n + \or \the\toks191 + \or \the\toks192 + \or \the\toks193 + \or \the\toks194 + \or \the\toks195 + \or \the\toks196 + \or \the\toks197 + \fi} +% +\def\listresume{% rev. 7/6/87 + \if*start*bul\global\advance\ll*n by 1\global\*start*bulfalse\fi + % account for bulleted list ffems + \ifnum \ll*n < 2 \lin{0pt} + \global\ll*n = 1 + \else \global\advance \ll*n by -1 + \ll*fmt + \fi + \noindent\ignorespaces} +% +\let\lir=\listresume +% Evaluate Style +\def\e*s{% + \global\ll*lpfalse + \global\ll*rpfalse + \global\*lsqbfalse + \global\*rsqbfalse + \global\ll*perfalse + \global\ll*digfalse + \global\l*alphafalse + \global\*u*alphafalse + \global\*l*romanfalse + \global\*u*romanfalse + \ifcase \count\F + \or \global\ll*digtrue \global\ll*pertrue % Style 1 + \or \global\ll*digtrue \global\ll*rptrue % 2 + \or \global\ll*digtrue \global\ll*rptrue \global\ll*lptrue % 3 + \or \global\l*alphatrue \global\ll*pertrue % 4 + \or \global\l*alphatrue \global\ll*rptrue % 5 + \or \global\l*alphatrue \global\ll*rptrue \global\ll*lptrue % 6 + \or \global\*l*romantrue \global\ll*pertrue % 7 + \or \global\*l*romantrue \global\ll*rptrue % 8 + \or \global\*l*romantrue \global\ll*rptrue \global\ll*lptrue % 9 + \or \global\*u*romantrue \global\ll*pertrue % 10 + \or \global\*u*romantrue \global\ll*rptrue % 11 + \or \global\*u*romantrue \global\ll*rptrue \global\ll*lptrue % 12 + \or \global\*u*alphatrue \global\ll*pertrue % 13 + \or \global\*u*alphatrue \global\ll*rptrue % 14 + \or \global\*u*alphatrue \global\ll*rptrue \global\ll*lptrue % 15 + \or \global\ll*digtrue \global\*rsqbtrue % 16 + \or \global\ll*digtrue \global\*rsqbtrue \global\*lsqbtrue % 17 + \or \global\l*alphatrue \global\*rsqbtrue % 18 + \or \global\l*alphatrue \global\*rsqbtrue \global\*lsqbtrue % 19 + \or \global\*l*romantrue \global\*rsqbtrue % 20 + \or \global\*l*romantrue \global\*rsqbtrue \global\*lsqbtrue % 21 + \or \global\*u*romantrue \global\*rsqbtrue % 22 + \or \global\*u*romantrue \global\*rsqbtrue \global\*lsqbtrue % 23 + \or \global\*u*alphatrue \global\*rsqbtrue % 24 + \or \global\*u*alphatrue \global\*rsqbtrue \global\*lsqbtrue % 25 + \fi} + +% +\def\ll*ini#1{\*start*bulfalse + \ifnum #1 < 7 \N = #1 + \advance \N by -1 + \loop \ifnum \N < 7 % Loop max of 7 times + \E = \N + \advance \E by \ll*cs + \global\count\E = 0 + \advance \N by 1 + \repeat + \fi} % else don't initialize when \lil7 +% +\def\ll*p#1{% + \E = #1 + \advance \E by \ll*cs + \advance \E by -1 % \E is the listlevel value counter + \F = \E + \advance \F by 7 + \global\advance \count\E by 1 % Increment the list level counter + % + % If this level is same as previous level, no need to re-evaluate + % the style to be used. + % + \ifnum \ll*lc = #1 + \else \e*s + \global\ll*lc = #1 + \fi + % + % Print the prefix punctuation + % + \ifll*lp (\unskip % Styles 3, 6, 9, 12, 15 + \else \if*lsqb [\unskip % Styles 17, 19, 21, 23, 25 + \fi\fi + % + % Print the listlevel value, i.e. "1", "a", "A", "I", or "i". + % + \ifll*dig % Then its a style using digits + \number\count\E % Print the number + \unskip % To get rid of any following extra spaces + \else \ifl*alpha % Then its a style with lower case letters + \a*c{\count\E} % Print the lower case letters + \unskip % To get rid of any following extra spaces + \else \if*u*alpha % Then its a style with upper case letters + \a*c{\count\E} % Print uppercase alpha + \unskip % To get rid of any following extra spaces + \else \if*l*roman % Then its a style with lower case roman numerals + \romannumeral\count\E % Print the lower case roman numeral + \unskip % To get rid of any following extra spaces + \else \if*u*roman % Print upper case roman numeral + \uppercase\expandafter{\romannumeral\count\E} + \unskip % To get rid of any following extra spaces + \else \message{<TEXT1> Error! Something is awry in the listlevel style. Call a consultant.} + \fi\fi\fi\fi\fi + % + % Print the suffix punctuation + % + \ifll*per .\unskip % Styles 1, 4, 7, 10, 13 + \else \ifll*rp )\unskip % Styles 2, 3, 5, 6, 8, 9, 11, 12, 14, 15 + \else \if*rsqb ]\unskip % Styles 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 + \fi\fi\fi +} + % + % This macro will convert an integer into a letter. In Appendix F of the + % TeXbook you will see that octal character '141 is the small letter "a". + % Octal 141=Decimal 97, Therefore, add 96 to value of listlevel counter. + % For example, 1="a", 2="b", etc. The macro will also change 27="aa", 28="ab", etc. + % +\def\a*c#1{% + \ifnum #1 < 27 \G = #1% % Then its a single letter a-z + \advance \G by 96% % See the font table in App. F + \ifl*alpha% % Then its a lower case style + \char\G% % Print the character a-z + \else \advance \G by -32% + \char\G% % Print the character A-Z + \fi% + \else \G = #1% % else its "AA" or greater + \divide \G by 26% % This holds the first character + \Q = #1% % Get ready to compute second letter + \R = #1% + \divide \R by 26% + \multiply \R by 26% + \ifnum #1 = \R% + \advance \G by -1% + \Q = 26% + \else \advance \Q by -\R% + \fi% + \a*c{\G}% % Get the first character a-z + \unskip% + \a*c{\Q}% % Get the second letter + \fi} % End of \a*c +% +% for setting the list level number other than sequential +% +\def\slln#1#2{{\E=#1 + \advance \E by -1 + \advance \E by \ll*cs + \global\count\E = #2}} +\let\setlistlevelnumber=\slln +% +% Bullets +% +\newif\if*start*bul +\newdimen\*bul*dim +\mathchardef\*bullet="220F +\def\bullet{% bullet defined for both math and text modes, rev. 6/25/87 + \ifmmode \*bullet % math mode bullet + \else % text or list bullet + \ifll*nil % no list in progress, text bullet + \leftskip = 0pt + {\if*msp{*}\else\sy\char"0F\fi} + \else % list in progress, list bullet + \the\toks198 + \if*start*bul \lin{\*bul*dim} + \else \*bul*dim = \leftskip + \*start*bultrue \fi % end starting bullet + \par\noindent + \txt*in{{\if*msp{*}\else\sy\char"0F\fi}} + \fi % end list in progress check + \fi % end math mode bullet check +}% end bullet +\let \bul=\bullet +% +% +% The \gutter macro is actually used for several macros, \bul, \lil, etc. +% +\newdimen\*gut +\def\gutter#1{\*gut=#1} +\message{end of enumeration macros, } +\message{TOC, } +% +% Macros for doing Table of Contents, Heads, Subheads, Tables, and Figures +% +\newtoks\*TCt \*TCt={\cl{\twelvept\bd Table of Contents}\vs{1\bl}} +\newtoks\*ptf \*ptf={\vs{1\bl}\cl{Part \partnumber}\cl{\parttitle}% + \vs{1\bl}\nin Part \partnumber \leader \pagenumber} +\newtoks\*ctf \*ctf={\hangingchapternumber \chaptertitle \leader \pagenumber} +\newtoks\*atf \*atf={\hangingappendixnumber \appendixtitle \leader \pagenumber} +\newtoks\*prtf \*prtf={\nin \prefacetitle \leader \pagenumber} +\newtoks\*satf \*satf={\leftindent{.5in}\nin \subheadatitle \leader \pagenumber} +\newtoks\*sbtf \*sbtf={\leftindent{1in}\nin \subheadbtitle \leader \pagenumber} +\newtoks\*sctf \*sctf={\leftindent{1.5in}\nin \subheadctitle \leader \pagenumber} +\newtoks\*sdtf \*sdtf={\leftindent{2in}\nin \subheaddtitle \leader \pagenumber} +\newtoks\*btf \*btf={\nin\bibtitle \leader \pagenumber} +\newtoks\*ftf \*ftf={\hangingnumber{\figurenumber.} \figuretitle \leader \pagenumber} +\newtoks\*ftt \*ftt={\newpage\cl{\twelvept\bd List of Figures}\line{Figure\hfill Page}} +\newtoks\*ttf \*ttf={\hangingnumber{\tablenumber.} \tabletitle\leader \pagenumber} +\newtoks\*ttt \*ttt={\newpage\cl{\twelvept\bd List of Tables}\line{Table\hfill Page}} +\newtoks\*figt \*figt={\bqb\tenpt\bd\hp Figure \figurenumber. \rm\figuretitle \bqe} +\newtoks\*tabt \*tabt={\vs{\bl}\cl{\twelvept\bd Table \tablenumber}% + \cl{\twelvept\tabletitle}\vs{\bl}} +\newtoks\*partt \*partt={\dumpinsertseject\titlepage + \hrule height 0pt depth 0pt\vfil + \cl{\twelvept\bd Part \partnumber} + \cl{\twelvept\bd\parttitle} + \vs{.5\tp*sk} + \np + \scn{0}\ssan{0}\ssbn{0}\sscn{0}\ssdn{0} + \sfn{0}\stn{0}\sfnn{0}\senn{0} + }% +\newtoks\*chapt \*chapt={\dumpinsertseject + \cl{\twelvept\bd Chapter \chapternumber}% + \cl{\twelvept\bd\chaptertitle} + \vs{1\bl} + \ssan{0}\ssbn{0}\sscn{0}\ssdn{0} + } +\newtoks\*appt \*appt={\dumpinsertseject % + \cl{\twelvept\bd Appendix \appendixnumber} + \cl{\twelvept\bd\appendixtitle} + \vs{1\bl} + \scn{0}\ssan{0}\ssbn{0}\sscn{0} + \ssdn{0}\sfn{0}\stn{0} + } +\newtoks\*pret \*pret={\dumpinsertseject % + \cl{\twelvept\bd\prefacetitle} + \vs{1\bl} + \ssan{0}\ssbn{0}\sscn{0}\ssdn{0} + }% +\newtoks\*subat \*subat={\removelastskip\goodbreak + \vs{2\bl} + \nin\twelvept\bd\subheadatitle\par\nobreak + \vs{1\bl}\nobreak + \ssbn{0}\sscn{0}\ssdn{0} + } +\newtoks\*subbt \*subbt={\removelastskip\goodbreak + \vs{2\bl} + \nin\twelvept\it\subheadbtitle\par\nobreak + \vs{1\bl}\nobreak + \sscn{0}\ssdn{0} + } +\newtoks\*subct \*subct={\removelastskip\goodbreak + \vs{2\bl} + \nin\twelvept\subheadctitle\par\nobreak + \vs{1\bl}\nobreak + \ssdn{0} + } +\newtoks\*subdt \*subdt={\goodbreak\twelvept\it\subheaddtitle.} +% +\newif\if*cont*chap \*cont*chapfalse +\newif\if*TC*fig \*TC*figtrue +\newif\if*TC*tab \*TC*tabtrue +\newif\if*TC*prt \*TC*prttrue +\newif\if*TC*chp \*TC*chptrue +\newif\if*TC*app \*TC*apptrue +\newif\if*TC*pre \*TC*pretrue +\newif\if*TC*sha \*TC*shatrue +\newif\if*TC*shb \*TC*shbtrue +\newif\if*TC*shc \*TC*shcfalse +\newif\if*TC*shd \*TC*shdfalse +\newif\if*TCaopen \*TCaopenfalse +\newif\if*TCbopen \*TCbopenfalse +\newif\if*TCcopen \*TCcopenfalse +% +\newdimen\*ch*hi \*ch*hi=.25in +\newdimen\*ap*hi \*ap*hi=.25in +\newdimen\fi*hi \fi*hi=.25in +\newdimen\ta*hi \ta*hi=.25in +% +\newcount\fi*n \fi*n=0 +\newcount\ta*n \ta*n=0 +\newcount\*pt*num \*pt*num=0 +\newcount\*pt*st \*pt*st=1 +\newcount\*ch*num \*ch*num=0 +\newcount\*ch*st \*ch*st=1 +\newcount\*ap*num \*ap*num=0 +\newcount\*ap*st \*ap*st=2 +\newcount\*sa*num \*sa*num=0 +\newcount\sa*st \sa*st=1 +\newcount\*sb*num \*sb*num=0 +\newcount\sb*st \sb*st=1 +\newcount\*sc*num \*sc*num=0 +\newcount\sc*st \sc*st=1 +\newcount\*sd*num \*sd*num=0 +\newcount\sd*st \sd*st=1 +% +\newwrite\TC*fa +\newwrite\TC*fb +\newwrite\TC*fc +% putincontents last modified 12/6/91 +\def\notintoc#1{#1} +\newtoks\*toclbla +\newtoks\*toclblb +\newtoks\*toclblc +\if*PC + \*toclbla={text1xx.tc1} + \*toclblb={text1xx.tc2} + \*toclblc={text1xx.tc3} +\else + \*toclbla={text1xx.toc1} + \*toclblb={text1xx.toc2} + \*toclblc={text1xx.toc3} +\fi + +\long\def\putincontents#1#2{\begingroup\ifcase #1 % Putincontents markup + \message{<TEXT1> Warning, request for Contents entry other than + 1, 2, or 3. Contents 1 will be assumed.} + \putincontents1{#2} + \or \if*TCaopen % Do nothing if open, else open it + \else \immediate\openout\TC*fa=\the\*toclbla + \immediate\write\TC*fa{\the\*TCt}% + \global\*TCaopentrue + \fi + \*defnoexpands + \edef\T{\leftskip=0pt #2}% + \edef\next{\write\TC*fa{\T\par}}% + \next\relax + \or \if*TCbopen % Do nothing if open, else open it + \else \immediate\openout\TC*fb=\the\*toclblb + \immediate\write\TC*fb{\the\*ftt}% + \global\*TCbopentrue\fi + \*defnoexpands + \edef\T{#2}% + \edef\next{\write\TC*fb{\T\par}}% + \next\relax + \or \if*TCcopen % Do nothing if open, else open it + \else \immediate\openout\TC*fc=\the\*toclblc + \immediate\write\TC*fc{\the\*ttt}% + \global\*TCcopentrue\fi + \*defnoexpands + \edef\T{#2}% + \edef\next{\write\TC*fc{\T\par}}% + \next\relax + \else \message{<TEXT1> Warning, request for Contents entry other than + 1, 2, or 3. Contents 1 will be assumed.} + \putincontents1{#2} + \fi\endgroup}% End putincontents markup +\let\pic=\putincontents + +\def\*defnoexpands{% + \def\AA{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\AA}% + \def\aa{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\aa}% + \def\appendixnumber{\noexpand\noexpand\noexpand\san{\the\*ap*num}% + \noexpand\noexpand\noexpand\appendixnumber}% + \def\autoendnote##1{}% + \let\aen=\autoendnote% + \def\autofootnote##1{}% + \let\afn=\autofootnote% + \def\bullet{\noexpand\noexpand\noexpand\bullet}% + \let\bul=\bullet% + \def\centerline##1{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\centerline{##1}}% + \let\cl=\centerline% + \def\chapternumber{\noexpand\noexpand\noexpand\scn{\the\*ch*num}% + \noexpand\noexpand\noexpand\chapternumber}% + \def\dag{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\dag}% + \def\ddag{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\ddag}% + \def\eightteenpt{\noexpand\noexpand\noexpand\eightteenpt}% + \def\fourteenpt{\noexpand\noexpand\noexpand\fourteenpt}% + \def\hangingappendixnumber{\noexpand\noexpand\noexpand% + \hangingappendixnumber{\the\*ap*num}}% + \def\hangingchapternumber{\noexpand\noexpand\noexpand% + \hangingchapternumber{\the\*ch*num}}% + \def\hangingindent##1{\noexpand\noexpand\noexpand% + \hangingindent{##1}}% + \let\hin=\hangingparagraph% + \def\hangingnumber##1{\noexpand\noexpand\noexpand\HFN{##1}}% + \def\hangingparagraph{\noexpand\noexpand\noexpand\hangingparagraph}% + \let\hp=\hangingparagraph% + \def\justify{\noexpand\noexpand\noexpand\noexpand\noexpand\justify}% + \let\ju=\justify% + \def\leavevmode{\noexpand\noexpand\noexpand\leavevmode}% + \def\leftindent##1{\leftskip=##1}% + \let\lin=\leftindent% + \let\linebreak=\space% + \let\lbr=\space% + \def\neg{\noexpand\noexpand\noexpand\noexpand\noexpand\neg}% + \def\notintoc##1{}% + \def\pagenumber{\noexpand\pagenumber}% + \def\pn{\noexpand\pagenumber}% + \def\par{\endgraf}% + \def\paragraph{\endgraf}% + \def\partnumber{\noexpand\noexpand\noexpand\sptn{\the\*pt*num}% + \noexpand\noexpand\noexpand\partnumber}% + \def\subheadanumber{\noexpand\noexpand\noexpand\ssan{\the\*sa*num}% + \noexpand\noexpand\noexpand\subheadanumber}% + \def\subheadbnumber{\noexpand\noexpand\noexpand\ssbn{\the\*sb*num}% + \noexpand\noexpand\noexpand\subheadbnumber}% + \def\subheadcnumber{\noexpand\noexpand\noexpand\sscn{\the\*sc*num}% + \noexpand\noexpand\noexpand\subheadcnumber}% + \def\subheaddnumber{\noexpand\noexpand\noexpand\ssdn{\the\*sd*num}% + \noexpand\noexpand\noexpand\subheaddnumber}% + \def\tenpt{\noexpand\noexpand\noexpand\tenpt}% + \def\tilde{\noexpand\noexpand\noexpand\noexpand\noexpand\tilde}% + \def\toclinebreak{\noexpand\noexpand\noexpand\toclinebreak}% + \def\toclbr{\noexpand\noexpand\noexpand\toclinebreak}% + \def\twelvept{\noexpand\noexpand\noexpand\twelvept}% + \def\underscore##1{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\underscore{##1}}% + \let\us=\underscore% + \def\\{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\\}% + \def\{{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\{}% + \def\}{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\}}% + \def\_{\noexpand\noexpand\noexpand\noexpand\noexpand% + \noexpand\noexpand\_}% +} +% +\def\tableofcontentsformat#1{{% + \def\continuechapter##1{\global\*cont*chapfalse + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U \global\*cont*chaptrue + \else \ifx \T\V % Not continue chapter + \else \message{<TEXT1> Warning, argument to + continuechapter is not "yes" or "no". + "no" will be assumed} + \fi\fi}% + \def\toctitle##1{\global\*TCt={##1}}% + \def\parttocformat##1{\global\*ptf={##1}}% + \def\chaptertocformat##1{\global\*ctf={##1}}% + \def\hangingchapterindent##1{\global\*ch*hi=##1}% + \def\appendixtocformat##1{\global\*atf={##1}}% + \def\hangingappendixindent##1{\global\*ap*hi=##1}% + \def\prefacetocformat##1{\global\*prtf={##1}}% + \def\subheadatocformat##1{\global\*satf={##1}}% + \def\subheadbtocformat##1{\global\*sbtf={##1}}% + \def\subheadctocformat##1{\global\*sctf={##1}}% + \def\subheaddtocformat##1{\global\*sdtf={##1}}% + \def\bibliographytocformat##1{\global\*btf={##1}}% + \def\figuretoctitle##1{\global\*ftt={##1}}% + \def\figuretocformat##1{\global\*ftf={##1}}% + \def\hangingfigureindent##1{\global\fi*hi=##1}% + \def\tabletoctitle##1{\global\*ttt={##1}}% + \def\tabletocformat##1{\global\*ttf={##1}}% + \def\hangingtableindent##1{\global\ta*hi=##1}% + #1}} +\let\tocf=\tableofcontentsformat +% tableofcontents last modified on 12/6/91 +\def\tableofcontents#1{% + \edef\T{}\edef\U{#1}\ifx\T\U\E=-3\else\E=#1\fi + \dumpinsertseject + \setpagenumber{\E} + \immediate\closeout\TC*fa + \begingroup + \def\noexpand{} + \def\centerline##1{\par % Begin centerline markup + \bgroup + \parindent=0pt \relax % zero indent + \parfillskip=0pt plus1fil \relax + \everypar{\null\hskip0pt plus1fil\relax} % add infinite glue + \def\linebreak{\hskip0pt plus1fil\relax\break + \null\hskip0pt plus1fil\relax}% + \let\toclinebreak=\linebreak % linebreak is a space in text1xx. + \let\toclbr=\linebreak % toc1, toclbr available in toc + \justify + \setbox\A=\vbox{##1\par % figure skip for multiple centerline + \global\C=\baselineskip + \setbox0=\hbox{(} + \global\advance\C by-\ht0}% end vbox + \line{\hss\vbox{\vskip\C##1\par}\hss} % + \egroup + }% End centerline markup + \let\cl=\centerline + \justify + \parfillskip=0pt + \rightskip=0pt plus 5em + \input \the\*toclbla + \endgraf + \leftskip=0pt + \if*TCbopen % True only if figures were used. + \immediate\closeout\TC*fb + \input \the\*toclblb + \fi + \if*TCcopen % True only if tables were used. + \immediate\closeout\TC*fc + \input \the\*toclblc + \fi + \endgroup} +\let\toc=\tableofcontents +% +\message{part, } +% +\long\def\partformat#1{{% + \def\numberingstyle##1{\global\*pt*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\*pt*st=2 + \else \ifx \T\W \global\*pt*st=3 + \else \message{<TEXT1> Warning, numbering style + in the partformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*partt={##1}}% + \def\incontents##1{\global\*TC*prttrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*prtfalse + \else \message{<TEXT1> Warning, argument to + incontents in partformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\paf=\partformat +% +\def\parttitle{} +\def\part#1{\par % Part revised 11/5/86 + \global\def\parttitle{#1}% + \global\advance \*pt*num by 1 + \bgroup + \let\toclinebreak=\space % prevent linebreak in title + \let\toclbr=\space % break in contents only + \the\*partt % This prints the title in the text + \egroup + \par + \D=\lastskip + \removelastskip + \if*TC*prt \putincontents1{\the\*ptf}\fi + \ignorespaces + \vs{\D} +}% END +% +\def\partnumber{{\ifcase \*pt*st + \or \the\*pt*num + \or \l*alphafalse + \a*c{\*pt*num} + \or \uppercase\expandafter{\romannumeral\the\*pt*num} + \fi}} +% +\def\setpartnumber#1{\global\*pt*num=#1}% +% \spn is setpagenumber +\let\sptn=\setpartnumber +% +\message{chapter, } +% +\long\def\chapterformat#1{{% + \def\numberingstyle##1{\global\*ch*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\*ch*st=2 + \else \ifx \T\W \global\*ch*st=3 + \else \message{<TEXT1> Warning, numbering style + in the chapterformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*chapt={##1}}% + \def\incontents##1{\global\*TC*chptrue% + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*chpfalse + \else \message{<TEXT1> Warning, argument to + incontents in chapterformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\chf=\chapterformat +% +\def\chaptertitle{} +\def\chapter#1{\par + \global\def\chaptertitle{#1}% + \global\advance \*ch*num by 1 + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*chapt % prints the title in the text + \egroup + \D=\lastskip + \removelastskip + \if*TC*chp \putincontents1{\the\*ctf}\fi + \ignorespaces + \vs{\D} +}% END chapter markup definition +% +\def\chapternumber{{\ifcase \*ch*st + \or \the\*ch*num + \or \l*alphafalse + \a*c{\*ch*num} + \or \uppercase\expandafter{\romannumeral\the\*ch*num} + \fi + \removelastskip}} +\let\chap=\chapter +% +\def\hangingchapternumber#1{\*ch*num=#1\laf{\labelwidth{\*ch*hi}} + \label{\hskip\*ch*hi\llap{\chapternumber.}}} +% +\def\setchapternumber#1{\global\*ch*num=#1}% +\let\scn=\setchapternumber +% +\message{appendix,} +% +\long\def\appendixformat#1{{% + \def\numberingstyle##1{\global\*ap*st=2 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U \global\*ap*st=1 + \else \ifx \T\V \global\*ap*st=2 + \else \ifx \T\W \global\*ap*st=3 + \else \message{<TEXT1> Warning, numbering style + in the appendixformat command is + invalid. Style 2 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*appt={##1}}% + \def\incontents##1{\global\*TC*apptrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*appfalse + \else \message{<TEXT1> Warning, argument to + incontents in appendixformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\apf=\appendixformat +% +\def\appendixtitle{} +\def\appendix#1{% Appendix revised 11/3/86 (added toclinebreak) + \global\def\appendixtitle{#1}% + \global\advance \*ap*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*appt % prints the appendix title + \egroup + \D=\lastskip + \removelastskip + \if*TC*app \putincontents1{\the\*atf}\fi + \ignorespaces + \vs{\D} +}% END appendix markup definition +% +\def\appendixnumber{{\ifcase \*ap*st + \or \the\*ap*num + \or \l*alphafalse + \a*c{\*ap*num} + \or \uppercase\expandafter{\romannumeral\the\*ap*num} + \fi + \removelastskip}} +\let\app=\appendix +% +\def\hangingappendixnumber#1{\*ap*num=#1\laf{\labelwidth{\*ap*hi}} + \label{\hskip\*ap*hi\llap{\appendixnumber.}}} +% +\def\setappendixnumber#1{\global\*ap*num=#1}% +\let\san=\setappendixnumber +% +\message{preface,} +% +\long\def\prefaceformat#1{{% + \long\def\titleformat##1{\global\*pret={##1}}% + \def\incontents##1{\global\*TC*pretrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*prefalse + \else \message{<TEXT1> Warning, argument to + incontents in prefaceformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\prf=\prefaceformat +% +\def\prefacetitle{} +\def\preface#1{% Preface revised 11/3/86 (added toclinebreak) + \global\def\prefacetitle{#1}% + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*pret % prints the title in the text + \egroup + \D=\lastskip + \removelastskip + \if*TC*pre \putincontents1{\the\*prtf}\fi + \ignorespaces + \vs{\D} +}% END preface markup definition +\let\pre=\preface +% +\message{subheads,} +% +\long\def\subheadaformat#1{{% + \def\numberingstyle##1{\global\sa*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\sa*st=2 + \else \ifx \T\W \global\sa*st=3 + \else \message{<TEXT1> Warning, numbering style + in the subheadaformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*subat={##1}}% + \def\incontents##1{\global\*TC*shatrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*shafalse + \else \message{<TEXT1> Warning, argument to + incontents in subheadaformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\shaf=\subheadaformat +% +\def\subheadatitle{} +\def\subheada#1{% + \global\def\subheadatitle{#1}% + \global\advance \*sa*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*subat % prints the title in the text + \egroup + \ifvmode \D=\lastskip \removelastskip + \else \D=0pt\fi + \if*TC*sha \putincontents1{\the\*satf}\fi + \ifdim\D>0pt\vs{\D}\else\ignorespaces\fi% +}% END subheada markup definition +% +\def\subheadanumber{{\ifcase \sa*st + \or \the\*sa*num + \or \l*alphafalse + \a*c{\*sa*num} + \or \uppercase\expandafter{\romannumeral\the\*sa*num} + \fi + \removelastskip}} +\let\sha=\subheada +% +\def\setsubheadanumber#1{\global\*sa*num=#1}% +\let\ssan=\setsubheadanumber +% +\long\def\subheadbformat#1{{% + \def\numberingstyle##1{\global\sb*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\sb*st=2 + \else \ifx \T\W \global\sb*st=3 + \else \message{<TEXT1> Warning, numbering style + in the subheadbformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*subbt={##1}}% + \def\incontents##1{\global\*TC*shbtrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*shbfalse + \else \message{<TEXT1> Warning, argument to + incontents in subheadbformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\shbf=\subheadbformat +% +\def\subheadbtitle{} +\def\subheadb#1{% + \global\def\subheadbtitle{#1}% + \global\advance \*sb*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*subbt % This prints the title in the text + \egroup + \ifvmode \D=\lastskip \removelastskip + \else \D=0pt\fi + \if*TC*shb \putincontents1{\the\*sbtf}\fi + \ignorespaces + \ifdim\D>0pt\vs{\D}\else\ignorespaces\fi +}% END subheadb markup definition +% +\def\subheadbnumber{{\ifcase \sb*st + \or \the\*sb*num + \or \l*alphafalse + \a*c{\*sb*num} + \or \uppercase\expandafter{\romannumeral\the\*sb*num} + \fi + \removelastskip}} +\let\shb=\subheadb +% +\def\setsubheadbnumber#1{\global\*sb*num=#1}% +\let\ssbn=\setsubheadbnumber +% +\long\def\subheadcformat#1{{% + \def\numberingstyle##1{\global\sc*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\sc*st=2 + \else \ifx \T\W \global\sc*st=3 + \else \message{<TEXT1> Warning, numbering style + in the subheadcformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*subct={##1}} + \def\incontents##1{\global\*TC*shcfalse + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U \global\*TC*shctrue + \else \ifx \T\V \global\*TC*shcfalse + \else \message{<TEXT1> Warning, argument to + incontents in subheadcformat is not "yes" or "no". + "no" will be assumed.} + \fi\fi}% + #1}} +\let\shcf=\subheadcformat +% +\def\subheadctitle{} +\def\subheadc#1{% + \global\def\subheadctitle{#1}% + \global\advance \*sc*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*subct % prints the title in the text + \egroup + \ifvmode \D=\lastskip \removelastskip + \else \D=0pt\fi + \if*TC*shc \putincontents1{\the\*sctf}\fi + \ignorespaces + \ifdim\D>0pt\vs{\D}\else\ignorespaces\fi +}% END subheadc markup +% +\def\subheadcnumber{{\ifcase \sc*st + \or \the\*sc*num + \or \l*alphafalse + \a*c{\*sc*num} + \or \uppercase\expandafter{\romannumeral\the\*sc*num} + \fi + \removelastskip}} +\let\shc=\subheadc +% +\def\setsubheadcnumber#1{\global\*sc*num=#1}% +\let\sscn=\setsubheadcnumber +% +\long\def\subheaddformat#1{{% + \def\numberingstyle##1{\global\sd*st=1 + \edef\T{##1}% + \edef\U{1}% + \edef\V{A}% + \edef\W{I}% + \ifx \T\U % then style=1, the default + \else \ifx \T\V \global\sd*st=2 + \else \ifx \T\W \global\sd*st=3 + \else \message{<TEXT1> Warning, numbering style + in the subheaddformat command is + invalid. Style 1 will be assumed.} + \fi\fi\fi}% + \long\def\titleformat##1{\global\*subdt={##1}}% + \def\incontents##1{\global\*TC*shdfalse + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U \global\*TC*shdtrue + \else \ifx \T\V \global\*TC*shdfalse + \else \message{<TEXT1> Warning, argument to + incontents in subheaddformat is not "yes" or "no". + "no" will be assumed.} + \fi\fi}% + #1}} +\let\shdf=\subheaddformat +% +\def\subheaddtitle{} +\def\subheadd#1{% + \global\def\subheaddtitle{#1}% + \global\advance \*sd*num by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*subdt % This prints the title in the text + \egroup + \ifvmode \D=\lastskip \removelastskip + \else \D=0pt\fi + \if*TC*shd \putincontents1{\the\*sdtf}\fi + \ignorespaces + \ifdim\D>0pt\vs{\D}\else\ignorespaces\fi +}% END subheadd markup definition +% +\def\subheaddnumber{{\ifcase \sd*st + \or \the\*sd*num + \or \l*alphafalse + \a*c{\*sd*num} + \or \uppercase\expandafter{\romannumeral\the\*sd*num} + \fi + \removelastskip}} +\let\shd=\subheadd +% +\def\setsubheaddnumber#1{\global\*sd*num=#1}% +\let\ssdn=\setsubheaddnumber +% +\message{figures,} +% +% FIGURE MARKUP, bth 8/25/86 +% Figure altered to allow alignments and other text markups within the +% arguments of figure and allow the immediate print feature (nofloat). +% Footnoting and multiple columns allowed in nofloat format only. +% Floating figures use top insert which uses a vbox that cancels any +% footnoting or multiple column setting. When \fullpage or \halfpage +% are used they must be the only argument in position one. +% +% +% Figureformat revised on 4/5/88, drg +% +\catcode`* = 11 +\catcode`@ = 11 +\newif\if*fp \*fpfalse % fullpage, used in figure +\newif\if*hp \*hpfalse % halfpage, " " +\newcount\fi*pos \fi*pos=1 % 1=\float,2=\nofloat,3=\midfloat,4=\keep +\newtoks\fi*sb \fi*sb={1\bl} +\newtoks\fi*sa \fi*sa={1\bl} +\def\figureformat#1{{% + \def\skipbefore##1{\global\fi*sb={##1}}% + \def\position{% printing position of figure, floating or nonfloating + \def\nofloat{\global\fi*pos=2} % prints immediate + \def\keep{\global\fi*pos=4} % prints immediate, but on same pg + \def\midfloat{\global\fi*pos=3}% uses midinsert + \def\float{\global\fi*pos=1}} % uses topinsert, the default + \long\def\titleformat##1{\global\*figt={##1}}% + \def\incontents##1{\global\*TC*figtrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*figfalse + \else \message{<TEXT1> Warning, argument to + incontents in figureformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + \def\skipafter##1{\global\fi*sa={##1}}% + #1}}% End figure format markup +\let\fif=\figureformat +% +\newif\if*tpreset % titlepage reset for figure markup +\*tpresetfalse % no reset necessary +% +% Figure revised on 10/4/89, drg +% +\def\figuretitle{} +\def\figure{\futurelet\next\*fga} +\def\*fga{\ifcat\bgroup\noexpand\next \let\next\*fgb + \else\let\next\*fgc\fi \next} +\def\*fgb{\global\setbox\A=\vbox\bgroup\aftergroup\*fgd\let\next} +\def\*fgc#1{\*fge{#1}} +\def\*fgd{\*fge{\box\A}} +\long\def\*fge#1#2{\par % Begin figure markup definition + \gdef\figuretitle{#2}% + \global\advance \fi*n by 1 % figure number + \begingroup % trap null setting for lets + \let\fullpage=\null % make fullpage non-printable + \let\halfpage=\null % make halfpage non-printable + \let\toclinebreak=\space % prevent break in title + \let\toclbr=\space % prevent break in title +% for value of \fi*pos: 1=\float,2=\nofloat,3=\midfloat,4=\keep + \ifcase\fi*pos + \or % BEGIN TOPINSERT FIGURES + \if*fp % full page topinsert figure + \if*title\*tpresettrue\notitlepage\fi % account for titlepage + \topinsert % floating figures are topinserts + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vbox to\vsize{\vrule width0pt\relax + \vfil#1\the\*figt} + \endinsert + \if*tpreset\titlepage\*tpresetfalse\fi % reset titlepage + \else\if*hp % half page topinsert figure + \topinsert + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vbox to.5\vsize{\vrule width0pt \relax + \vskip\the\fi*sb\relax + \vfil#1\the\*figt + \vskip\the\fi*sa\relax} + \endinsert + \else % variable size floating figure + \topinsert + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vskip\the\fi*sb\relax + #1\the\*figt + \vskip\the\fi*sa\relax + \endinsert + \fi\fi % end float full and half page check + \or % BEGIN IMMEDIATE FIGURES + \if*fp % FULL PAGE IMMEDIATE FIGURE + \np % figure won't fit on current page + \if*TC*fig \putincontents2{\the\*ftf}\fi % send to contents + \vrule width0pt \relax % prevent fil from going away + \vfill\the\*figt % fill to figure title + \break % insures break at end of insert + \else + \if*hp % HALF PAGE IMMEDIATE FIGURE + \dimen\D=.5\vsize % depth check for half page figure + \advance\dimen\D by\topskip % add topskip to .5 vsize + \ifdim\pagetotal>\dimen\D\np\fi % won't fit on current page + \vbox to.49\vsize{\vrule width0pt % keep skip + \vfil\relax % skip all but title height to + #1\the\*figt % print figure title + \vskip\the\fi*sa\relax} % print half page figure title + \if*TC*fig \putincontents2{\the\*ftf}\fi + \else % VARIABLE SIZE IMMEDIATE FIGURE + \vrule width0pt \relax % prevent skip from going away + \vskip\the\fi*sb\relax + #1\the\*figt + \vskip\the\fi*sa\relax + \if*TC*fig \putincontents2{\the\*ftf}\fi + \fi% End of check at half page + \fi % End of check at full page + \or % BEGIN MIDINSERT FIGURES + \if*fp % full page midinsert figure + \if*title\*tpresettrue\notitlepage\fi % account for titlepage + \topinsert % use topinsert for full page only + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vbox to\vsize{\vrule width0pt\relax + \vfil#1\the\*figt} + \endinsert + \if*tpreset\titlepage\*tpresetfalse\fi % reset titlepage + \else\if*hp % half page midinsert figure + \midinsert + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vbox to.5\vsize{\vrule width0pt \relax + \vskip\the\fi*sb\relax + \vfil#1\the\*figt + \vskip\the\fi*sa\relax} + \endinsert + \else % variable size floating figure + \midinsert + \if*TC*fig \putincontents2{\the\*ftf}\fi + \vskip\the\fi*sb\relax + #1\the\*figt + \vskip\the\fi*sa\relax + \endinsert + \fi\fi % end float full and half page check + \or % BEGIN IMMEDIATE KEEP FIGURES + \if*fp % FULL PAGE IMMEDIATE FIGURE + \np % figure won't fit on current page + \if*TC*fig \putincontents2{\the\*ftf}\fi % send to contents + \vrule width0pt \relax % prevent fil from going away + \vfill\the\*figt % fill to figure title + \break % insures break at end of insert + \else + \if*hp % HALF PAGE IMMEDIATE FIGURE + \dimen\D=.5\vsize % depth check for half page figure + \advance\dimen\D by\topskip % add topskip to .5 vsize + \ifdim\pagetotal>\dimen\D\np\fi % won't fit on current page + \vbox to.49\vsize{\vrule width0pt % keep skip + \vfil\relax % skip all but title height to + #1\the\*figt % print figure title + \vskip\the\fi*sa\relax} % print half page figure title + \if*TC*fig \putincontents2{\the\*ftf}\fi + \else % VARIABLE SIZE IMMEDIATE FIGURE + \vrule width0pt \relax % prevent skip from going away + \vskip\the\fi*sb\relax + \vbox{#1\the\*figt + \vskip\the\fi*sa\relax} + \if*TC*fig \putincontents2{\the\*ftf}\fi + \fi% End of check at half page + \fi % End of check at full page + \fi % End of case statement + \endgroup % end trap for null settings + \global\*fpfalse % reset full page + \global\*hpfalse % reset half page +}% End figure markup +\let\fig=\figure % abbreviation for figure markup +% +\def\fullpage{\global\*fptrue}% used in figure markup +\def\halfpage{\global\*hptrue}% used in figure markup +% +\def\figurenumber{\the\fi*n}% +% +\def\HFN#1{\laf{\labelwidth{\fi*hi}}\label{#1}}% +% +\def\setfigurenumber#1{\global\fi*n=#1}% +\let\sfn=\setfigurenumber +% +% Redefined from PLAIN TEX +% +\def\topinsert{\@midfalse\p@gefalse\t*ptrue\@ins} +% +\def\midinsert{% redefine from plain tex + \@midtrue + \if*fix % don't change meaning in fixed mode + \else % change midinsert to topinsert in flex mode + \if*dbl\global\@midfalse\fi % leave old meaning in single column mode + \if*tpl\global\@midfalse\fi % + \fi\@ins} % +% +\def\@ins{\par\begingroup + \if*fix % do nothing in fixed mode + \else\ift*p\hsize=\*txtw\fi\fi % ift*p hsize of insert set + \setbox0=\vbox\bgroup} % insert set to full page width +% +% Tables +% +\def\tableformat#1{{% + \long\def\titleformat##1{\global\*tabt={##1}}% + \def\incontents##1{\global\*TC*tabtrue + \edef\T{##1}% + \edef\U{yes}% + \edef\V{no}% + \ifx \T\U % Already true + \else \ifx \T\V \global\*TC*tabfalse + \else \message{<TEXT1> Warning, argument to + incontents in tableformat is not "yes" or "no". + "yes" will be assumed.} + \fi\fi}% + #1}} +\let\taf=\tableformat +% +\def\tabletitle#1{{% Tabletitle revised 11/3/86 (added toclinebreak) + \def\tabletitle{#1}% + \global\advance \ta*n by 1 + \par + \bgroup + \let\toclinebreak=\space + \let\toclbr=\space + \the\*tabt % prints the title in the text + \egroup + \par + \D=\lastskip + \removelastskip + \if*TC*tab \putincontents3{\the\*ttf}\fi + \ignorespaces + \vs{\D} +}}% END tabletitle markup definition +\let\tat=\tabletitle +% +\def\tablenumber{\the\ta*n} +\def\HTN#1{\laf{\labelwidth{\ta*hi}}\label{#1}} +% +\def\settablenumber#1{\global\ta*n=#1}% +\let\stn=\settablenumber +% +\message{8600 macros,} +% +% Macros specific for the 8600 (JKW) revision 11/25/86 +% +\newskip\evenmar +\newskip\oddmar +\evenmar=0pt +\oddmar=0pt +\def\evenpagemargin#1{{\setbox0=\hbox{\global\evenmar=#1 pt}} + \special{even_page_margin=\the\evenmar}}% +\let\epm=\evenpagemargin +\def\oddpagemargin#1{{\setbox0=\hbox{\global\oddmar=#1 pt}} + \special{odd_page_margin=\the\oddmar}}% +\let\opm=\oddpagemargin +\def\linenumberfont#1{\B={#1} + \special{line_number_font=\the\B}}% +\let\lnf=\linenumberfont +\def\poplevel#1{\B={#1} + \special{pop_level=\the\B}}% +\let\ppl=\poplevel +\def\lineinterval#1{\B={#1} + \special{line_interval=\the\B}}% +\let\lint=\lineinterval +\def\numberinglines#1{\special{numbering_lines=#1}}% +\let\numl=\numberinglines +\def\countinglines#1{\special{counting_lines=#1}}% +\let\coul=\countinglines +\def\printingnumbers#1{\special{printing_numbers=#1}}% +\let\prin=\printingnumbers +\def\linefootnotereference{\special{line_footnote_reference}}% +\let\lfnr=\linefootnotereference +% +\message{ more misc,} +% +% To be able to use PLAIN.TEX math code +% +\def\plaintexmathon{% + \catcode`\$=3\relax + \catcode`@=12\relax} +\let\dollarmathon=\plaintexmathon +\def\atmathon{% + \catcode`\$=12\relax + \catcode`@=3\par} +% +\message{multiple columns,} +% +\outer\def\bye{\par\onecolumn\vfill\supereject\end} % redefined from PLAIN.TEX +% to close multiple column routines +% +% MULTIPLE COLUMNS +% Brian Harvey 1/20/85 +% +% Macros to be imbedded into TEXT1 to drive the multiple column +% routines FLEXCOL and FIXCOL. +% +\newbox\*lftcol % left column box, fixed column mode, TeXbook name +\newbox\*midcol % center column, fixed column mode, TeXbook name +\newbox\*ppage % page accummulated before multicolumn, partialpage, flex +\newcount\*pcount % counter for empty page macro, keeps track of the +\*pcount=0 % number of empty page calls +\newdimen\*bigch % Twc=2vise, Thc=3vsize---bigcolumnheight +\newdimen\*txtw % textwidth, stores full hsize for multicolumn mode +\let\galleywidth=\*txtw % create galleywidth = text width +\newdimen\*txth % textheight, stores page height for multicolumn mode +\*txtw=\hsize % initialize full page text width for multicolumn mode +\*txth=\vsize % initialize full text height for multicolumn mode +\newif\ift*p % ift*p required to check for midinsert in flex mode +\newif\if*dbl % double column indicator +\*dblfalse % set double column format indicator false +\newif\if*tpl % triple column indicator +\*tplfalse % set triple column format indicator false +\newif\if*fix % format indicator (fixed if true, otherwise flexible) +\newif\if*norule % used to suppress rules in output routines +\newif\if*plain % check for plain.tex, plainoutput +\*plaintrue % set plain format indicator true +\newtoks\*twcw % width for twocolumns +\newtoks\*thcw % width for threecolumns +\newtoks\*twcgut % gutter for twocolumns +\newtoks\*thcgut % gutter for threecolumns +\newtoks\*clrw % rule width between multiple columns +\newtoks\*mskb % skip before multicolumn format +\newtoks\*mska % skip after multicolumn format +\*twcw={.48\*txtw} % initialize column and gutter default widths +\*thcw={.31\*txtw} +\*twcgut={.04\*txtw} +\*thcgut={.035\*txtw} +\*clrw={0.0pt} % initialize between column rule width +\*mskb={6pt plus 3pt minus 2pt} % initialize skips before and after multiple columns: +\*mska={6pt plus 3pt minus 2pt} % used in multiple column flex mode only + +\def\fixedformat{\global\*fixtrue} % calls fixed format file +\let\fixf=\fixedformat +\global\*fixfalse % sets up flex format +% +\def\multicolumnformat#1{% format macro for both fixed and flexible, texblock is multicol + \def\twocolumnwidth##1{\global\*twcw={##1}}% + \def\threecolumnwidth##1{\global\*thcw={##1}}% + \def\twocolumngutter##1{\global\*twcgut={##1}}% + \def\threecolumngutter##1{\global\*thcgut={##1}}% + \def\columnrulewidth##1{\global\*clrw={##1}}% + \def\skipbefore##1{\global\*mskb={##1}}% flex mode only + \def\skipafter##1{\global\*mska={##1}}% flex mode only + #1\*txtwck}% END, multicol format +\let\mcf=\multicolumnformat +% +% COLUMN WIDTH CHECK FOR MULTIPLE COLUMN ROUTINES +% +\def\*txtwck{% check column width and gutters against hsize + \dimen@=\the\*twcw + \dimen@=2\dimen@ + \dimen1=\the\*twcgut + \advance\dimen@ by\dimen1 + \ifdim\dimen@ > \*txtw % if greater than current pagewidth + \dimen1=\dimen@ + \advance\dimen1 by-\*txtw + \advance\dimen@ by -\*txtw + \ifdim\dimen@ > 1pt % only warn if over 1pt + \immediate\write16{% + <TEXT1> Warning! The column and gutter widths specified% + for two columns are wider than the current pagewidth by% + \the\dimen1 . } + \fi + \else\ifdim\dimen@ < \*txtw % if less than current pagewidth + \dimen1=\*txtw + \advance\dimen1 by-\dimen@ + \advance\dimen@ by -\*txtw + \multiply\dimen@ by -1 + \ifdim\dimen@ > 1pt % Only warn if over 1pt difference + \immediate\write16{% + <TEXT1> Warning! The column and gutter widths specified% + for two columns are shorter than the current pagewidth by% + \the\dimen1 . } + \fi + \fi\fi +% + \dimen@=\the\*thcw % width of each column, three columns + \dimen@=3\dimen@ % three columns + \dimen1=\the\*thcgut % width of the gutters + \dimen1=2\dimen1 % two gutters in three columns + \advance\dimen@ by\dimen1 % add columns and gutters together + \ifdim\dimen@ > \*txtw % if greater than current pagewidth + \dimen1=\dimen@ + \advance\dimen1 by-\*txtw + \advance\dimen@ by -\*txtw + \ifdim\dimen@ > 1pt % only warn if over 1pt + \immediate\write16{% + <TEXT1> Warning! The column and gutter widths specified% + for three columns are wider than the current pagewidth by% + \the\dimen1 . } + \fi + \else\ifdim\dimen@ < \*txtw % if less than current pagewidth + \dimen1=\*txtw + \advance\dimen1 by-\dimen@ + \advance\dimen@ by -\*txtw + \multiply\dimen@ by -1 + \ifdim\dimen@ > 1pt % Only warn if over 1pt difference + \immediate\write16{% + <TEXT1> Warning! The column and gutter widths specified% + for three columns are shorter than the current pagewidth by% + \the\dimen1 . } + \fi + \fi\fi + } % END, widthcheck +% +\newif\if*start*mc \*start*mcfalse +\def\twocolumns{% TWOCOLUMNS set-up macro + \if*fix \input fixcol % input fixed format file + \immediate\write-16{% write to log file only + <TEXT1> Fixed format for multiple columns in effect. } + \gdef\twocolumns{\*fixtwc}% redefine twocolumns, fixed mode + \gdef\threecolumns{\*fixthc}% redefine threecolumns, fixed mode + \else \input flexcol % input flex format file + \immediate\write-16{% write to log file only + <TEXT1> Flexible format for multiple columns in effect. } + \gdef\twocolumns{\*flextwc}% redefine twocolumns, flex mode + \gdef\threecolumns{\*flexthc}\fi% redefine threecolumns, flex mode + \twocolumns + \global\let\twc=\twocolumns % to current meaning of twocolumns + \global\let\thc=\threecolumns % to current meaning of threecolumns +}% END twocolumns markup +% +\let\twc=\twocolumns +% +\def\threecolumns{% THREECOLUMNS set-up macro + \*start*mctrue + \if*fix \input fixcol % input fixed format file + \immediate\write-16{% write to log file only + <TEXT1> Fixed format for multiple columns active. } + \gdef\twocolumns{\*fixtwc}% redefine twocolumns, fixed mode + \gdef\threecolumns{\*fixthc}% redefine threecolumns, fixed mode + \else \input flexcol % input flex format file + \immediate\write-16{% write to log file only + <TEXT1> Flexible format for multiple columns active. } + \gdef\twocolumns{\*flextwc}% redefine twocolumns, flex mode + \gdef\threecolumns{\*flexthc}\fi% redefine threecolumns, flex mode + \threecolumns + \global\let\twc=\twocolumns % to current meaning of twocolumns + \global\let\thc=\threecolumns % to current meaning of threecolumns +}% End threecolumns markup +% +\let\thc=\threecolumns +% +\let\onecolumn=\null % Empty definition for single format +\let\oc=\onecolumn +% +\let\newcolumn=\newpage +\let\nc=\newpage +\newif\if*nc \*ncfalse % true if \nc was used in mult cols +% +\global +\newhelp\balerrhelp{onecolumn The best approach to solve this problem + is to shorten the text by a line. You could also add or delete a + paragraph or change the column size. }% +% +\message{index macros,} +% +% Here are the macros necessary for doing an index +% +\newtoks\*ixarc \*ixarc={case=no} % IndeX A Respect Case +\newcount\*ixpn % Page number type: 0,2,4,6, or 9 +\newtoks\*ixast \*ixast={style=3} % IndeX A STyle +\newtoks\*ixald \*ixald={leadering=no} % IndeX A LeaDering +\newtoks\*ixabr \*ixabr={\vs{1\bl}} % IndeX A BReak +\newtoks\*ixasea \*ixasea={1em} % IndeX A SubEntry 1 +\newtoks\*ixaseb \*ixaseb={2em} % IndeX A SubEntry 2 +\newtoks\*ixaev \*ixaev={\tenpt} % Index A every time +\newtoks\*ixahp \*ixahp={1.5em} % Index A hang indent +\newtoks\*ixbrc \*ixbrc={case=no} % IndeX B Respect Case +\newtoks\*ixbst \*ixbst={style=3} % IndeX B STyle +\newtoks\*ixbld \*ixbld={leadering=no} % IndeX B LeaDering +\newtoks\*ixbbr \*ixbbr={\vs{1\bl}} % IndeX B BReak +\newtoks\*ixbsea \*ixbsea={1em} % IndeX B SubEntry 1 +\newtoks\*ixbseb \*ixbseb={2em} % IndeX B SubEntry 2 +\newtoks\*ixbev \*ixbev={\tenpt} % Index B every time +\newtoks\*ixbhp \*ixbhp={1.5em} % Index B hang indent +\newtoks\*ixcrc \*ixcrc={case=no} % IndeX C Respect Case +\newtoks\*ixcst \*ixcst={style=3} % IndeX C STyle +\newtoks\*ixcld \*ixcld={leadering=no} % IndeX C LeaDering +\newtoks\*ixcbr \*ixcbr={\rule\vs{1\bl}} % IndeX C BReak +\newtoks\*ixcsea \*ixcsea={1em} % IndeX C SubEntry 1 +\newtoks\*ixcseb \*ixcseb={2em} % IndeX C SubEntry 2 +\newtoks\*ixcev \*ixcev={\tenpt} % Index C every time +\newtoks\*ixchp \*ixchp={1.5em} % Index C hang indent +% +\newcount\*ixlvl \*ixlvl=1 % IndeX LeVeL +% +\long\def\indexformat#1#2{{\ifnum #1>3 \message{<TEXT1> Error! Only three indices + allowed. Level 1 will be used.} + \*ixlvl=1 + \else \*ixlvl=#1\fi + \def\respectcase##1{\edef\T{yes} + \edef\U{no} + \edef\V{##1} + \ifx \T\V \B={case=yes} + \else \B={case=no} + \ifx \U\V % Already set + \else\message{<TEXT1> Error!! Case respect not "yes" + or "no" in indexformat. "no" will be used.} + \fi\fi + \ifcase \*ixlvl \or \global\*ixarc=\B + \or \global\*ixbrc=\B + \or \global\*ixcrc=\B + \fi} + \def\style##1{\edef\T{paragraph} + \edef\U{dash} + \edef\V{indent} + \edef\W{##1} + \ifx \T\W \B={style=1} % paragraph style + \else \ifx \U\W \B={style=2} % dash style + \else \B={style=3} % indented style + \ifx \V\W % Already done + \else \message{<TEXT1> Error!! Style invalid in indexformat. + "indented" will be used.} + \fi\fi\fi + \ifcase \*ixlvl \or \global\*ixast=\B + \or \global\*ixbst=\B + \or \global\*ixcst=\B + \fi} + \def\leadering##1{\edef\T{yes} + \edef\U{no} + \edef\V{##1} + \ifx\T\V \B={leadering=yes} + \else \B={leadering=no} + \ifx\U\V + \else \message{<TEXT1> Error!! Only "yes" and "no" can + be used in the indexformat. "no" will be assumed.} + \fi\fi + \ifcase \*ixlvl \or \global\*ixald=\B + \or \global\*ixbld=\B + \or \global\*ixcld=\B + \fi + } + \long\def\everyletterbreak##1{\ifcase \*ixlvl \or \global\*ixabr={##1} + \or \global\*ixbbr={##1} + \or \global\*ixcbr={##1} + \fi} + \def\everyindex##1{\ifcase \*ixlvl \or \global\*ixaev={##1} + \or \global\*ixbev={##1} + \or \global\*ixcev={##1} + \fi} + \def\everyhang##1{\ifcase \*ixlvl \or \global\*ixahp={##1} + \or \global\*ixbhp={##1} + \or \global\*ixchp={##1} + \fi} + \def\indentsubentry##1##2{\R = ##1 + \ifnum ##1<1 \message{<TEXT1> Error!! Subentry level number in indexformat + may only be 1 or 2. 1 will be used.} + \R = 1 + \else \ifnum ##1>2 \message{<TEXT1> Error!! Subentry level number in indexformat + may only be 1 or 2. 1 will be used.} + \R = 1 + \fi\fi + \ifcase \R \or \ifcase \*ixlvl \or \global\*ixasea={##2} + \or \global\*ixbsea={##2} + \or \global\*ixcsea={##2} + \fi + \or \ifcase \*ixlvl \or \global\*ixaseb={##2} + \or \global\*ixbseb={##2} + \or \global\*ixcseb={##2} + \fi + \fi} + #2}} +\let\ixf=\indexformat +\newwrite\*ixfilea % IndeX FILE A +\newwrite\*ixfileb % IndeX FILE B +\newwrite\*ixfilec % IndeX FILE C +\newif\if*ixaopen \*ixaopenfalse % IndeX file A OPEN? +\newif\if*ixbopen \*ixbopenfalse % IndeX file B OPEN? +\newif\if*ixcopen \*ixcopenfalse % IndeX file C OPEN? +\def\*openixfile#1{\ifcase #1 \or + \immediate\openout\*ixfilea=text1xx.ix1% + \global\*ixaopentrue + \immediate\write\*ixfilea{\the\*ixarc}% + \immediate\write\*ixfilea{\the\*ixast}% + \immediate\write\*ixfilea{\the\*ixald}% + \or \immediate\openout\*ixfileb=text1xx.ix2% + \global\*ixbopentrue + \immediate\write\*ixfileb{\the\*ixbrc}% + \immediate\write\*ixfileb{\the\*ixbst}% + \immediate\write\*ixfileb{\the\*ixbld}% + \or \immediate\openout\*ixfilec=text1xx.ix3% + \global\*ixcopentrue + \immediate\write\*ixfilec{\the\*ixcrc}% + \immediate\write\*ixfilec{\the\*ixcst}% + \immediate\write\*ixfilec{\the\*ixcld}% + \fi} +{\catcode`\$=12 +\global\def\index#1#2{{\global\*ixpn = 2 + \def\subentry##1##2{${$}se##1##2{$}}% + \def\bdpn{\global\*ixpn = 0}% + \def\uspn{\global\*ixpn = 4}% + \def\itpn{\global\*ixpn = 6}% + \def\blindentry##1{\global\*ixpn = 9}% + \def\sortas##1{${$}sa##1{$}}% + \def\dagger{ \noexpand\dagger}% + \def\ddagger{ \noexpand\ddagger}% + \def\\{\noexpand\\}% + \def\{{\noexpand\{}% + \def\}{\noexpand\}}% + \def\_{\noexpand\_}% + \def\@{\noexpand\@}% + \def\S{\noexpand\S}% + \def\P{\noexpand\P}% + \def\L{\noexpand\L}% + \def\AA{\noexpand\AA}% + \def\neg{\noexpand\neg}% + \def\tilde{\noexpand\tilde}% + \def\vbar{\noexpand\vbar}% + \def\roman{\noexpand\rm}\let\rm=\roman% + \def\bold{\noexpand\bd}\let\bd=\bold% + \def\italic{\noexpand\it}\let\it=\italic% + \def\typewriter{\noexpand\tt}\let\tt=\typewriter% + \def\caps{\noexpand\cc}\let\cc=\caps% + \def\mathitalic{\noexpand\mi}\let\mi=\mathitalic% + \def\symbol{\noexpand\sy}\let\sy=\symbol% + \def\extension{\noexpand\ex}\let\ex=\extension% + \def\bolditalic{\noexpand\bi}\let\bi=\bolditalic% + \setbox0=\vbox{\hsize=100in#2}% + \def\bdpn{}% + \def\uspn{}% + \def\itpn{}% + \def\blindentry##1{${$}be##1{$}}% + \*ixlvl = #1 + \ifcase #1 \message{<TEXT1> Error!! You can only have index level 1, 2, or 3. + Index level 1 will be used.} + \*ixlvl = 1 + \or\or\or% % These levels are ok + \else \message{<TEXT1> Error!! You can only have index level 1, 2, or 3. + Index level 1 will be used.} + \*ixlvl = 1 + \fi% + \edef\*ixtoken{#2}% + \edef\temp{\*ixtoken}% + \ifcase \*ixlvl \or\if*ixaopen\else\*openixfile1\fi% Open the file if not done yet + \immediate\write\*ixfilea{{\the\*ixpn}{\the\pageno}{\pagenumber}\*ixtoken}% + \or \if*ixbopen \else \*openixfile2 \fi % Open the file if not done yet + \immediate\write\*ixfileb{{\the\*ixpn}{\the\pageno}{\pagenumber}\*ixtoken}% + \or \if*ixcopen \else \*openixfile3 \fi % Open the file if not done yet + \immediate\write\*ixfilec{{\the\*ixpn}{\the\pageno}{\pagenumber}\*ixtoken}% + \fi}\ignorespaces} +}% End math cat code change +\def\everyletterbreak#1#2{\def\nextletter{#2} + \ifcase #1 \or \the\*ixabr + \or \the\*ixbbr + \or \the\*ixcbr + \fi} +\def\everyindex#1{\ifcase \*ixlvl \or \the\*ixaev + \or \the\*ixbev + \or \the\*ixcev + \fi} +\def\indentsubentry#1#2{\par\penalty5000\hp + \ifcase #2 \or \ifcase #1 \or \hs{\the\*ixasea} + \or \hs{\the\*ixbsea} + \or \hs{\the\*ixcsea} + \fi + \or \ifcase #1 \or \hs{\the\*ixaseb} + \or \hs{\the\*ixbseb} + \or \hs{\the\*ixcseb} + \fi + \fi} +\let\ix=\index +\let\*ix=\printindex +\def\printindex#1{%\*ix#1 used only when printindex is a hardcoded command + \ifcase #1 \or \input text1xx.ix1 + \or \input text1xx.ix2 + \or \input text1xx.ix3 + \fi} +% +\message{wrap it up...} +% +\def\@{\char'100{}}% +% +% and set default values +% +\hfuzz=1pt +\parindent=24pt \parskip=0pt plus 3pt minus 0pt +\normalbottom +\pageno=0 +\catcode`* = 12 +% The END |