% pubs.macros (used to be sitlog.macros) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % This is a macro file designed to be used with tex ... % supposed to do basically what pntex does % % Designed originally for the HPSG volumes, it is arranged in the % following order: modelled on stuff from the following macro files: % % FONTS fonts-86.macro, lecmacros.tex % PARAMETERS init.macro, lecmacros.tex % ENVIRONMENTS fonts-86.macro, lecmacros.tex % COUNTERS AND NUMBERS init.macro, lecmacros.tex % TOLERANCES init.macro % INDEX, TOC index.macro % DOCUMENT STRUCTURE init.macro, lecmacros.tex, aczel % MISCELLANEOUS init.macro % FOOTNOTES footnote.macro % REFERENCES init.macro % DISPLAYS AND ENUMERATION display.macro, enum.macro % OUTPUT SPECS output.macro,lecmacros.tex % LINGUISTICS STUFF hpsgmacros.tex, (ling.tex), etc % STASS ABBREVIATIONS aczel, stass, barwise % THMS, LEMMAS, DEFNS, ETC aczel, barwise % LOCAL CONTROL ... % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % fonts-86.macro, lecmacros.tex % % May need to remove some of the preloaded fonts in plain TeX in % order to allow space for some other fonts % (cmssi, cmss, cmsltt10, cmu10, cmmib10, cmbsy10, cmssbx10, cmdunh10, % all 3 scaled manfnt) % ***************** % **** FONTS **** % ***************** % % All of the fonts below together with corresponding fonts in ten point, % seven point, and five point sizes (which get loaded by basic.tex) are % available by the names shown below. % % With a few exceptions, the font names have two parts: the size of the % font (in points) and an abbreviated name for the style of the font. The % abbreviations are as follows: % rm = (almost modern) roman % i = math italic % sy = math symbols % ex = math extension % it = (text) italic % sl = slanted roman % tt = typewriter text % bf = boldface % bi = boldface italic % csc = capitals and small capitals % For an explanation of these font styles, see the TeXbook. \font \twelverm =cmr12 \font \twelvebf =cmbx12 \font \twelveit =cmti12 \font \twelvesl =cmsl12 \font \twelvei =cmmi12 \font \twelvett =cmtt12 \font \twelvesy =cmsy10 at 12pt \font \twelvebi =cmbxti10 at 12pt \font \twelvecsc =cmcsc10 at 12pt \font \twelveex =cmex10 at 12pt %\font \twelverm =cmr10 at 12pt \font \twelvebf =cmbx10 at 12pt %\font \twelveit =cmti10 at 12pt \font \twelvesl =cmsl10 at 12pt %\font \twelvei =cmmi10 at 12pt \font \twelvett =cmtt10 at 12pt %\font \twelvesy =cmsy10 at 12pt \font \twelvebi =cmbxti10 at 12pt %\font \twelvecsc =cmcsc10 at 12pt \font \twelveex =cmex10 at 12pt \font \elevenrm =cmr10 scaled \magstephalf \font \eleveni =cmmi10 scaled \magstephalf \font \elevensy =cmsy10 scaled \magstephalf \font \elevenex =cmex10 scaled \magstephalf \font \elevenit =cmti10 scaled \magstephalf \font \elevensl =cmsl10 scaled \magstephalf \font \eleventt =cmtt10 scaled \magstephalf \font \elevenbf =cmbx10 scaled \magstephalf \font \elevenbi =cmbxti10 scaled \magstephalf \font \elevencsc =cmcsc10 scaled \magstephalf \font \elvbfit =cmbxti10 scaled \magstephalf %\font \elevlasy =lasy10 scaled \magstephalf % the fonts marked 'preloaded' USED TO BE preloaded, but that doesn't % seem to be happening ... hence, have been UNcommented 1/11/88; % otherwise should be saved here for easy reference but commented out %\font \teni =cmmi10 % preloaded??? ** %\font \tenit =cmti10 % preloaded??? ** %\font \tensl =cmsl10 % preloaded??? ** \font \tencsc =cmcsc10 % preloaded ** \font \tenbi =cmbxti10 % ? %\font \tenlasy =lasy10 \font \ninerm =cmr9 % preloaded ** \font \ninei =cmmi9 % preloaded ** \font \nineit =cmti9 % preloaded ** \font \ninesl =cmsl9 % preloaded ** \font \ninett =cmtt9 % preloaded ** \font \ninebf =cmbx9 % preloaded ** \font \ninesy =cmsy9 % preloaded ** \font \ninecsc =cmcsc10 at9pt %\font \ninelasy =lasy9 %change to "lasy10 at 9pt" for the APS printer %which accepts only lasy10 and lasy7 \font \eightrm =cmr8 % preloaded ** \font \eighti =cmmi8 % preloaded ** \font \eightsy =cmsy8 % preloaded ** \font \eightbf =cmbx8 % preloaded \font \sixrm =cmr6 % preloaded \font \sixi =cmmi6 % preloaded \font \sixsy =cmsy6 % preloaded \font \sixbf =cmbx6 % preloaded % MISC FONTS \font \partfont =cmbx12 scaled \magstep 2 \font \partfontit =cmbxti10 scaled \magstep 3 \font \partfontsl =cmsl12 scaled \magstep 2 \font \partfontrm = cmr12 scaled \magstep 2 \font\partnofont =cmbx12 scaled \magstep 1 \let \titlefont =\partfont \let \titlefontit =\partfontit \let \titlefontsl =\partfontsl \let \titlefontrm =\partfontrm \let \tinysy = \sixsy \font \littlesy =cmsy7 \let \smallersy = \eightsy \let \smallsy = \ninesy \font \bigsy =cmsy10 scaled \magstep1 \font \biggersy =cmsy10 scaled \magstep2 \font \largesy =cmsy10 scaled \magstep3 %\font \largersy =cmsy10 scaled \magstep4 \let \subheadingfont =\subsectionfont %\font \sevenfr =euf7 \let \frs = \sevenfr %%\font \eightfr =euf7 at 8pt %\font \eightfr =euf10 at 8pt %%\font \ninefr =euf7 scaled\magstep1 %\font \ninefr =euf10 at 9pt \let \frfoot = \ninefr %\font \tenfr =euf10 \let \fr = \tenfr %\font \elevenfr =euf10 scaled \magstephalf %\font \twelvefr =euf10 scaled\magstep1 %\font \fourteenfr =euf10 scaled\magstep2 \let \frb = \fourteenfr %%%%%%%%%%%%%%%%% 11 \font \elevchapfont =cmbx10 scaled \magstep 3 \font \elevchapmi =cmmi10 scaled \magstep 3 %math it \font \elevchapsl =cmsl12 scaled \magstep 2 %slanted rm \font \elevchapit =cmbxti10 scaled \magstep 3 %reg. it. \font \elevchaptt =cmtt12 scaled \magstep 2 \font \elevchapsc =cmbx10 scaled \magstep 2 \font \elevchaprm =cmr10 scaled \magstep 3 % \let \Chapfont =\elevchapsl \font \elevsectfont =cmbx10 scaled \magstep 2 \font \elevsectmi =cmmi10 scaled \magstep 2 % math it \font \elevsectit =cmbxti10 scaled \magstep 2 % reg it \font \elevsecttt =cmtt10 scaled \magstep 2 \font \elevsectrm =cmr10 scaled \magstep 2 \font \elevsectsl =cmsl10 scaled \magstep 2 % \let \elevsectsc =\twelvebf % \let \subsectfont =\twelvebf % \let \subsectmi =\twelvemi % math it % \let \subsectit =\twelveit % reg. it % \let \subsecttt =\twelvett % \let \subsubsectfont =\elevenbf % ??? %%%%%%%%%%%%%%%% 10 \font \tenchapfont =cmbx10 scaled \magstep 2 \font \tenchapmi =cmmi10 scaled \magstep 2 %math it \font \tenchapsl =cmsl12 scaled \magstep 1 %slanted rm \font \tenchapit =cmbxti10 scaled \magstep 2 %reg. it. % \font \tenchaptt =cmtt12 scaled \magstep 1 %doesn't exist \font \tenchapsc =cmbx10 scaled \magstep 1 \font \tenchaprm =cmr10 scaled \magstep 2 % \let \Chapfont =\tenchapsl % \let \sectfont =\elevenbf % \let \sectmi =\eleveni % math it % \let \sectit =\elevenit % reg it % \let \secttt =\eleventt % \let \sectrm =\elevenrm % \let \subsectfont =\tenbf % \let \subsectmi =\teni % math it % \let \subsectit =\tenit % reg. it % \let \subsecttt =\tentt % \let \subsubsectfont =\tensl % ??? %%%%%%%%%%%%%%%%%% %------------------------------------------------------------------ % * special phonetic font * % ************************* % phonetic.tex loads a special font designed and periodically updated % by Emma. Not available outside of CSLI. %\input phonetic.tex %\input /u4/local/lib4/tex/macros/phonetic.tex %\input /u2/emma/tex/fonts/cmph/phonetic.sty % the following have been redefined ... saved here for reference %\def\revD{\ifnum\fam=\itfam \phoitmake{\char"02}\else\phomake{\char"02}\fi} %\def\fj{\ifnum\fam=\itfam\phoitmake{\char"46}\else\phomake{\char"46}\fi} %\def\overchar#1#2#3{\leavevmode\setbox0=\hbox{#2}% % \rlap{\raise#3\ht0\hbox to\wd0{\hss#1\hss}}\box0} %% places a half circle over a letter %\def\ohill#1{\overchar{\ph\char"7B}{#1}{.67}} %%\acbar{accent}{character}{raised} places an accent over a barred character %\def\acbar#1#2{\overchar{\overchar{#1}{\char'026}{.35}}{#2}{.25}} %%\acarc{accent}{character}{raised} places an accent over a character %% with a half circle in between %\def\acarc#1#2{\overchar{\overchar{#1}{\ph\char"7B\kern1pt}{0}}{#2}{.75}} %\def\dbox{\mathord{\hbox{\ph\char"7E}}} %\def\sbox{\mathord{\hbox{\ph\char"7D}}} \let\phten =\tenph \def\rotv{\ifnum\fam=\itfam\phoitmake{\char"45}\else\phomake{\char"55}\fi} %\addelevenpoint \addtenpoint \addninepoint %commented out on bobcat for \let\wedge=\land % knuth book (not needed) -ejb \def\uplett#1{$^{\hbox{\scriptrm #1}}$} \def\ssc#1{{\scriptrm #1}} \def\bs{$\backslash$} \def\db#1{$\{$#1$\}$} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % init.macros, lecmacros.tex % % ********************** % **** PARAMETERS **** % ********************** \newdimen \normalparindent \normalparindent =18pt \parindent =\normalparindent \newskip \normalparskip \normalparskip =0pt \parskip =\normalparskip \newskip \abovechapterskip \newskip \belowchapterskip \newskip \chapterbaselineskip \newskip \abovesectionskip \newskip \belowsectionskip \newskip\sectionbaselineskip \newskip \abovesubsectionskip \newskip \belowsubsectionskip \newskip \subsectionbaselineskip \newskip\abovesubsubsectionskip \newskip\belowsubsubsectionskip \newskip\subsubsectionbaselineskip \newskip\itemskipamt \newskip\beginitemskip \newskip\enditemskip \newskip\abovethingskip \newskip\belowthingskip \newif\ifelevenpoint \newif\iftenpoint \newif\iftwelvepoint \newif\ifdouble \doublefalse \let\nodoublespace=\doublefalse \let\doublespace=\doubletrue \newskip\doublebaselineskip \newskip\doublelineskip \newskip\bls \def\doublebaselines{\lineskip =\doublelineskip \baselineskip =\doublebaselineskip} \def\baselines{\ifdouble \doublebaselines \else \normalbaselines \fi} \def\parameters{\let\nbls=\normalbaselineskip \doublelineskip =\normallineskip \iftwelvepoint \doublebaselineskip =1.6\nbls \else \ifelevenpoint \doublebaselineskip =1.5\nbls \else \iftenpoint \doublebaselineskip =1.5\nbls \else \doublebaselineskip =1.25\nbls \fi \fi \fi \ifdouble \bls=\doublebaselineskip \else \bls=\nbls \fi \belowchapterskip =2.75\bls plus .27\bls minus .20\bls \advance\belowchapterskip by -\bls \chapterbaselineskip =1.5\bls % \abovesectionskip =2.5\bls plus .25\bls minus .19\bls % \belowsectionskip =1.9\bls plus .19\bls minus .15\bls \abovesectionskip =1.9\bls plus .19\bls minus .13\bls \belowsectionskip =1.4\bls plus .14\bls minus .10\bls \advance \belowsectionskip by -\bls % This compensates for TeX's automatic interbaseline glue. \sectionbaselineskip =1.25\bls \abovesubsectionskip =1.9\bls plus .19\bls minus .13\bls \belowsubsectionskip =1.4\bls plus .14\bls minus .10\bls \advance \belowsubsectionskip by -\bls \subsectionbaselineskip =\bls \abovesubsubsectionskip =1.4\bls plus .14\bls minus .10\bls \belowsubsubsectionskip =1.1\bls plus .11\bls minus .08\bls \advance \belowsubsubsectionskip by -\bls \subsubsectionbaselineskip=\bls \itemskipamt =.2\bls plus .01\bls minus .01\bls \beginitemskip =.25\bls plus .01\bls minus .01\bls \advance\beginitemskip by -\itemskipamt \enditemskip =.25\bls plus .01\bls minus .01\bls \abovethingskip =.45\bls plus .03\bls minus .01\bls \belowthingskip =.45\bls plus .03\bls minus .01\bls \setbox \strutbox=\hbox{\vrule height .70\bls depth .30\bls width 0pt} \baselines} \newskip\onbls % "old" normal baseline-skip \def\baselinecontrol#1{\onbls=\nbls %must FOLLOW style and envirmnt commands \def\usualbaselines{\normalbaselineskip=\onbls \parameters} \normalbaselineskip=#1 \parameters} \def\begindouble{\begingroup \baselinecontrol{1.5\bls}} \def\enddouble{\par\vskip-\parskip \endgroup \noindent} \def\beginhalf{\begingroup \baselinecontrol{.6667\bls}} \def\endhalf{\par\vskip-\parskip \endgroup \noindent} \def\beginbaselinectrl#1{\begingroup \baselinecontrol{#1}} \let\endbaselinectrl=\enddouble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % *********************** % **** ENVIRONMENTS **** % *********************** % \newfam \bifam % **** TWELVE POINT TEXT ENVIRONMENT **** % ***************************************** % (NOTE: This is a non-standard environment. The standard text % environments are \elevenpoint and \tenpoint.) \def \twelvepoint{\def \rm{\fam0\twelverm} \textfont0=\twelverm \scriptfont0=\ninerm \scriptscriptfont0=\sevenrm \textfont1=\twelvei \scriptfont1=\ninei \scriptscriptfont1=\seveni \textfont2=\twelvesy \scriptfont2=\ninesy \scriptscriptfont2=\sevensy \textfont3=\elevenex \scriptfont3=\elevenex \scriptscriptfont3=\elevenex \textfont \bifam=\twelvebi \def \bi{\fam \bifam \twelvebi} \textfont \itfam=\twelveit \def \it{\fam \itfam \twelveit} \textfont \slfam=\twelvesl \def \sl{\fam \slfam \twelvesl} \textfont \ttfam=\twelvett \def \tt{\fam \ttfam \twelvett} \textfont \bffam=\twelvebf \scriptfont \bffam =\ninebf \scriptscriptfont \bffam =\sevenbf \def \bf{\fam \bffam \twelvebf} \let \sc =\elevenrm \let \csc =\twelvecsc \let \enumrm =\twelverm \let \quotepoint =\elevenpoint \let \smallrm =\elevenrm \let \smallerrm =\tenrm \let\scriptrm=\ninerm \let\subrm=\eightrm \let\scriptscriptrm=\sevenrm \let\subsubrm=\sixrm \let \smallsl =\elevensl \let \smallersl =\tensl \let \smallit =\elevenit \let \smallerit =\tenit \let \smalltt =\eleventt \let \smallbf = \elevenbf \let\scriptit=\nineit \let\subit=\eightit \let\scriptscriptit=\sevenit \let\subsubit=\sixit \let \chapterfont =\elevchapfont \let \chaptermi =\elevchapmi \let \chaptersl =\elevchapsl \let \chapterit =\elevchapit \let \chaptertt =\elevchaptt \let \chaptersc =\elevchapsc \let \chapterrm =\elevchaprm \let \Chapterfont =\elevsectfont \let \sectionfont =\elevsectfont \let \sectionmi =\elevsectmi \let \sectionit =\elevsectit \let \sectiontt =\elevsecttt \let \sectionrm =\elevsectrm \let \sectionsc =\twelvebf \let \sectionsl =\elevsectsl \let \subsectionfont =\twelvebf \let \subsectionmi =\twelvemi \let \subsectionit =\twelveit \let \subsectiontt =\twelvett \let \subsectionsc =\elevenbf \let \subsectionsl =\twelvesl \let \subsectionrm =\twelverm \let \subsubsectionfont =\twelveit \let\subsubsectionmi=\twelvemi \let\subsectionsl=\twelvesl \let\subsubsectiontt=\twelvett \let\subsubsectionsc=\elevensl \let\subsubsectionbf=\twelvebf \let\subsubsectionrm=\twelverm \setbox \strutbox=\hbox{\vrule height 10.625pt depth 4.375pt width 0pt} %\advance\hsize by 5.4pc % from 27pc =10pt default \changerightmarginbox{7.3pc} \normalbaselineskip =15pt \elevenpointfalse \tenpointfalse \twelvepointtrue\parameters \rm } % **** ELEVEN POINT TEXT ENVIRONMENT **** % ***************************************** \def \elevenpoint{\def \rm{\fam0\elevenrm} \textfont0=\elevenrm \scriptfont0=\eightrm \scriptscriptfont0=\sixrm \textfont1=\eleveni \scriptfont1=\eighti \scriptscriptfont1=\sixi \textfont2=\elevensy \scriptfont2=\eightsy \scriptscriptfont2=\sixsy \textfont3=\elevenex \scriptfont3=\elevenex \scriptscriptfont3=\elevenex \textfont \bifam=\elevenbi \def \bi{\fam \bifam \elevenbi} \textfont \itfam=\elevenit \def \it{\fam \itfam \elevenit} \textfont \slfam=\elevensl \def \sl{\fam \slfam \elevensl} \textfont \ttfam=\eleventt \def \tt{\fam \ttfam \eleventt} \textfont \bffam=\elevenbf % \textfont10=\elevlasy \scriptfont \bffam =\eightbf \scriptscriptfont \bffam =\sixbf \def \bf{\fam \bffam \elevenbf} % \addelevenpoint \let \sc =\tenrm \let \csc =\elevencsc \let \enumrm =\elevenrm \let \quotepoint =\tenpoint \let \smallrm =\tenrm \let \smallerrm =\ninerm \let\scriptrm=\eightrm \let\subrm=\sevenrm \let\scriptscriptrm=\sixrm \let\subsubrm=\fiverm \let \smallsl =\tensl \let \smallersl =\ninesl \let \smallit =\tenit \let \smallerit =\nineit \let \smalltt =\tentt \let \smallbf = \tenbf \let\scriptit=\eightit \let\subit=\sevenit \let\scriptscriptit=\sixit \let\subsubit=\fiveit \let \chapterfont =\elevchapfont \let \chaptermi =\elevchapmi \let \chaptersl =\elevchapsl \let \chapterit =\elevchapit \let \chaptertt =\elevchaptt \let \chaptersc =\elevchapsc \let \chapterrm =\elevchaprm \let \Chapterfont =\elevsectfont \let \sectionfont =\elevsectfont \let \sectionmi =\elevsectmi \let \sectionit =\elevsectit \let \sectiontt =\elevsecttt \let \sectionrm =\elevsectrm \let \sectionsc =\twelvebf \let \sectionsl =\elevsectsl \let \subsectionfont =\twelvebf \let \subsectionmi =\twelvemi \let \subsectionit =\twelveit \let \subsectiontt =\twelvett \let \subsectionsc =\elevenbf \let \subsectionsl =\twelvesl \let \subsectionrm =\twelverm \let \subsubsectionfont =\elevenbf %\elevenit \let\subsubsectionmi=\elevenmi \let\subsectionit=\elevenit \let\subsubsectiontt=\eleventt \let\subsubsectionsc=\tensl \let\subsubsectionsl=\elevensl \let\subsubsectionrm=\elevenrm %\setbox \strutbox=\hbox{\vrule height 9.35pt depth 3.65pt width 0pt} %\advance\hsize by 2.7pc % from 27pc =10pt default \changerightmarginbox{7.3pc} \normalbaselineskip =13pt \elevenpointtrue \tenpointfalse \twelvepointfalse \parameters \rm } % **** TEN POINT TEXT ENVIRONMENT **** % ************************************** \def \tenpoint {\def \rm {\fam0 \tenrm} \textfont0 =\tenrm \scriptfont0 =\sevenrm \scriptscriptfont0 =\fiverm \textfont1 =\teni \scriptfont1 =\seveni \scriptscriptfont1 =\fivei \textfont2 =\tensy \scriptfont2 =\sevensy \scriptscriptfont2 =\fivesy \textfont3 =\tenex \scriptfont3 =\tenex \scriptscriptfont3 =\tenex \textfont \bifam =\tenbi \def \bi{\fam \bifam \tenbi} \textfont \itfam =\tenit \def \it{\fam \itfam \tenit} \textfont \slfam =\tensl %\def \sl{\fam \slfam \tensl} \textfont \ttfam =\tentt \def \tt{\fam \ttfam \tentt} \textfont \bffam =\tenbf % \textfont10=\tenlasy \scriptfont \bffam =\sevenbf \scriptscriptfont \bffam =\fivebf \def \bf{\fam \bffam \tenbf} % \addtenpoint \let \sc =\ninerm \let \csc =\tencsc \let \enumrm =\tenrm \let \quotepoint =\ninepoint \let\smallrm =\ninerm \let \smallerrm =\eightrm \let\scriptrm=\sevenrm \let\subrm=\sixrm \let\scriptscriptrm=\fiverm \let\subsubrm=\fiverm \let\smallsl =\ninesl \let \smallersl =\eightsl \let\smallit =\nineit \let \smallerit =\eightit \let \smalltt =\ninett \let \smallbf = \ninebf \let\scriptit=\sevenit \let\subit=\sixit \let\scriptscriptit=\fiveit \let\subsubit=\fiveit \let \chapterfont =\tenchapfont \let \chaptermi =\tenchapmi \let \chaptersl =\tenchapsl \let \chapterit =\tenchapit \let \chaptertt =\tenchaptt \let \chaptersc =\tenchapsc \let \chapterrm =\tenchaprm \let \Chapterfont =\elevenbf \let \sectionfont =\elevenbf \let \sectionmi =\eleveni \let \sectionit =\elevenit \let \sectiontt =\eleventt \let \sectionrm =\elevenrm \let \sectionsc =\tenbf \let\sectionsl =\elevensl \let \subsectionfont =\tenbf \let \subsectionmi =\teni \let \subsectionit =\tenit \let \subsectiontt =\tentt \let \subsectionsc =\ninebf \let \subsectionrm =\tenrm \let \subsectionsl =\tensl \let \subsubsectionfont =\tenit %\tensl \let\subsubsectionsl=\tensl \let\subsubsectiontt=\tentt \let\subsubsectionrm=\tenrm \let\subsubsectionsc=\ninesl \let\subsubsectionbf=\tenbf \let\subsubsectionmi=\teni %\setbox \strutbox=\hbox{\vrule height 8.5pt depth 3.5pt width 0pt} \normalbaselineskip =12pt \elevenpointfalse \tenpointtrue \twelvepointfalse \parameters \rm } % **** NINE POINT TEXT ENVIRONMENT **** % *************************************** \def \ninepoint{\def \rm{\fam0\ninerm} \textfont0 =\ninerm \scriptfont0 =\sevenrm \scriptscriptfont0 =\fiverm \textfont1 =\ninei \scriptfont1 =\seveni \scriptscriptfont1 =\fivei \textfont2 =\ninesy \scriptfont2 =\sevensy \scriptscriptfont2 =\fivesy \textfont3 =\tenex \scriptfont3 =\tenex \scriptscriptfont3 =\tenex \textfont \itfam=\nineit \def \it{\fam \itfam \nineit} \textfont \slfam=\ninesl \def \sl{\fam \slfam \ninesl} \textfont \ttfam=\ninett \def \tt{\fam \ttfam \ninett} \textfont \bffam=\ninebf % \textfont10=\ninelasy \scriptfont \bffam =\sevenbf \scriptscriptfont \bffam =\fivebf \def \bf{\fam \bffam \ninebf} % \addninepoint \let \sc =\eightrm \let\csc=\ninecsc \let\enumrm=\ninerm \let\quotepoint=\eightpoint \let\smallrm =\eightrm \let\smallerrm=\sevenrm \let\scriptrm=\sevenrm \let\subrm=\sixrm \let\scriptscriptrm=\fiverm \let\subsubrm=\fiverm \let\smallsl =\eightsl \let\smallersl=\sevensl \let\smallit =\eightit \let\smallerit=\sevenit \let \smalltt =\eighttt \let \smallbf = \eightbf \let\scriptit=\sevenit \let\subit=\sixit \let\scriptscriptit=\fiveit \let\subsubit=\fiveit %\setbox \strutbox=\hbox{\vrule height 7.65pt depth 3.35pt width 0pt} \normalbaselineskip =11pt \elevenpointfalse \tenpointfalse \twelvepointfalse \parameters \rm } %------------------------------------------------------------------ % some non-standard environments % % **** EIGHT POINT TEXT ENVIRONMENT **** % *************************************** % LER (note: this is a non-standard eightpoint environment -- % the subscripts are larger than would be used in a normal % 8pt env.) \font \eightit =cmti8 \let \eightsl =\eightit \font \eighttt =cmtt8 \def \eightpoint{\def \rm{\fam0\eightrm} \textfont0 =\eightrm \scriptfont0 =\sevenrm \scriptscriptfont0 =\fiverm \textfont1 =\eighti \scriptfont1 =\seveni \scriptscriptfont1 =\fivei \textfont2 =\eightsy \scriptfont2 =\sevensy \scriptscriptfont2 =\fivesy \textfont3 =\tenex \scriptfont3 =\tenex \scriptscriptfont3 =\tenex \textfont \itfam=\eightit \def \it{\fam \itfam \eightit} \textfont \slfam=\eightsl \def \sl{\fam \slfam \eightsl} \textfont \ttfam=\eighttt \def \tt{\fam \ttfam \eighttt} \textfont \bffam=\eightbf \scriptfont \bffam =\sevenbf \scriptscriptfont \bffam =\fivebf \def \bf{\fam \bffam \eightbf} % \addeightpoint \let\sc =\sevenrm \let\smallrm=\sevenrm \let\smallerrm=\sixrm \let\smallit=\sevenit \let\smallerit=\sixit %\setbox \strutbox=\hbox{\vrule height 7.0pt depth 3.0pt width 0pt} \normalbaselineskip =10pt \elevenpointfalse \tenpointfalse \twelvepointfalse \parameters \rm } \def\addeightpoint{} %------------------------------------------------------------------ % **** SEVEN POINT TEXT ENVIRONMENT **** % *************************************** % LER (note: this is a non-standard sevenpoint environment -- % the subscripts are the same size as the font) \font \sevenit =cmti7 \let \sevensl =\sevenit \font \seventt =cmtt8 \def \sevenpoint{\def \rm{\fam0\sevenrm} \textfont0 =\sevenrm \scriptfont0 =\sevenrm \scriptscriptfont0 =\fiverm \textfont1 =\seveni \scriptfont1 =\seveni \scriptscriptfont1 =\fivei \textfont2 =\sevensy \scriptfont2 =\sevensy \scriptscriptfont2 =\fivesy \textfont3 =\tenex \scriptfont3 =\tenex \scriptscriptfont3 =\tenex \textfont \itfam=\sevenit \def \it{\fam \itfam \sevenit} \textfont \slfam=\sevensl \def \sl{\fam \slfam \sevensl} \textfont \ttfam=\seventt \def \tt{\fam \ttfam \seventt} \textfont \bffam=\sevenbf \scriptfont \bffam =\sevenbf \scriptscriptfont \bffam =\fivebf \def \bf{\fam \bffam \sevenbf} % \addsevenpoint \let \sc =\sixrm \let\smallrm =\sixrm \let\smallerrm=\fiverm %\setbox \strutbox=\hbox{\vrule height 6.75pt depth 2.25pt width 0pt} \normalbaselineskip =9pt \elevenpointfalse \tenpointfalse \twelvepointfalse \parameters \rm } \def\addsevenpoint{} %------------------------------------------------------------------ % **** FIVE POINT TEXT ENVIRONMENT **** % *************************************** % LER (note: this is a non-standard fivepoint environment -- % the subscripts are the same size as the font) \font \fiveit =cmr5 % this should be italic but we don't have cmti5 \let \fivesl =\fiveit \font \fivett =cmr5 % this should be typewriter but we don't have cmtt5 \def \fivepoint{\def \rm{\fam0\fiverm} \textfont0 =\fiverm \scriptfont0 =\fiverm \scriptscriptfont0 =\fiverm \textfont1 =\fivei \scriptfont1 =\fivei \scriptscriptfont1 =\fivei \textfont2 =\fivesy \scriptfont2 =\fivesy \scriptscriptfont2 =\fivesy \textfont3 =\tenex \scriptfont3 =\tenex \scriptscriptfont3 =\tenex \textfont \itfam=\fiveit \def \it{\fam \itfam \fiveit} \textfont \slfam=\fivesl \def \sl{\fam \slfam \fivesl} \textfont \ttfam=\fivett \def \tt{\fam \ttfam \fivett} \textfont \bffam=\fivebf \scriptfont \bffam =\fivebf \scriptscriptfont \bffam =\fivebf \def \bf{\fam \bffam \fivebf} % \addfivepoint \let\sc=\fiverm \let\smallrm=\fiverm \let\smallerrm=\fiverm %\setbox \strutbox=\hbox{\vrule height 4.9pt depth 2.1pt width 0pt} \normalbaselineskip =7pt \elevenpointfalse \tenpointfalse \twelvepointfalse \parameters \rm } \def\addfivepoint{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % init.macro, lecmacros.tex % % ******************************** % **** COUNTERS AND NUMBERS **** % ******************************** % % Counters are explained in the TeXbook. Numbers (e.g., \sectionnumber) % are commands to TeX to print the current value of the corresponding % counter. Only counters can be changed (by the \advance command); numbers % cannot. \newcount \beginchappageno \beginchappageno =0 \newcount \bottompageno \bottompageno =1 \newcount \partno \partno =0 \newcount \chapterno \chapterno =0 \newcount \sectionno \sectionno =0 \newcount \subsectionno \subsectionno =0 \newcount \subsubsectionno \subsubsectionno =0 \newcount \displayno \displayno =0 \let\sentenceno=\displayno \newcount \footnoteno \footnoteno =0 \newcount \appendixno \appendixno =0 \def \Partnumber {\uppercase \expandafter {\number\partno}} \def \Chapternumber {\uppercase \expandafter {\number\chapterno}} \def \partnumber {\number\partno} \def \partroman {\uppercase\expandafter{\romannumeral\partno}} \def \chapternumber {\number\chapterno} \def \sectionnumber {\number\sectionno} \def \sectionroman {\uppercase\expandafter{\romannumeral\sectionno}} \def \subsectionnumber {\number\subsectionno} \def \subsubsectionnumber {\number\subsubsectionno} \def \displaynumber {\number\displayno} \let\sentencenumber=\displaynumber \def \footnotenumber {\number\footnoteno} \def \appendixnumber {\number\appendixno} \def\subsubsectionletterlow{\ifcase \subsubsectionno\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\fi} \def\subsubsectionletterup{\ifcase \subsubsectionno\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z\fi} \def\subsubsectionlabel{\iflecstyle \subsubsectionletterup \else \subsubsectionnumber \fi} \let\subsubsectiontag=\subsubsectionnumber \def\appendixletter{\ifcase \appendixno\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z\fi} % the following can be used in text for referring to (printing) % various numbers (like \dispno, etc) \def\ptno#1{\begingroup\advance\partno by#1{\rm\partnumber}\endgroup} \def\chapno#1{\begingroup\advance\chapterno by#1{\rm\chapternumber}\endgroup} \def\sectno#1{\begingroup\advance\sectionno by#1{\rm\sectionnumber}\endgroup} \def\ssectno#1{\begingroup\advance\subsectionno by#1{\rm\subsectionnumber}\endgroup} \def\sssectno#1{\begingroup\advance\subsubsectionno by#1{\rm\subsubsectionlabel}\endgroup} \def\ftntno#1{\begingroup\advance\footnoteno by#1{\rm\footnotenumber}\endgroup} \def\appno#1{\begingroup\advance\appendixno by#1{\rm\appendixletter}\endgroup} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % init.macro % ********************** % **** TOLERANCES **** % ********************** % These macros allow TeX to stretch (or shrink) interword spacing more % than usual in order to avoid hyphenations and other bad line breaks. % \endtolerance's (one for each time any of the moretolerance's is used) % should return TeX to its normal tolerance. \def \littlemoretolerance {\begingroup \advance \pretolerance by 100 \advance \tolerance by 100} \def \moretolerance {\begingroup \advance \pretolerance by 200 \advance \tolerance by 200} \def \muchmoretolerance {\begingroup \advance \pretolerance by 400 \advance \tolerance by 400} \def \endtolerance {\par \endgroup} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % index.macro, twocol-2.macro % ******************************** % **** INDEX AND TOC MACROS **** % ******************************** % %************************** TABLE OF CONTENTS ****************** % Each of \chpt, \sect, \subsect, \subsubsect have three arguments: % a heading number, a heading title, and a page number. % Items without numbers (Preface, Acknowl, References, etc) need to % include a '\nonum' or '\nonumm' first-argument (see examples below). % A lecstyle-toc file (no subsubsections) might look as follows: % % \begintoc % % \chapter{Contents} % % %\bigskip %(optional) % \chpt{\nonum}{Preface}{iv} % \chpt{1}{Introduction}{1} % \chpt{2}{An Introduction to Situation Semantics}{17} % \sect{2.1}{Meaning}{18} % \sect{2.2}{States-of-Affairs}{27} % \sect{2.3}{Restricted Parameters}{31} % \chpt{3}{Anaphora and Quantification}{37} % \sect{3.1}{Co-Parametric Uses of Pronouns}{37} % \subsect{3.1.1}{Two Types of Dependence}{38} % \subsect{3.1.2}{Binding and Reference}{40} % \sect{3.2}{Quantification and Scope}{51} % \subsect{3.2.1}{Scope}{52} % \subsect{3.2.2}{Pronouns and Scope}{54} % \sect{3.3}{The Absorption Principle}{59} % \subsect{3.3.1}{Statement of the Principle}{60} % \subsect{3.3.2}{Referential Dependence}{62} % \chpt{\nonum}{References}{71} % % \endtoc % %********************* \newif\iflecstyle % see output specs \def\begintoc{\ifodd \pageno \else \advance\pageno by -1 \fi \begingroup \setbox0=\hbox{\hskip0pc} \setbox1=\hbox{\hskip1.5pc} \setbox2=\hbox{\hskip3.35pc} \setbox3=\hbox{\hskip5.7pc} \setbox4=\hbox{\phantom{88.}} \setbox5=\hbox{\phantom{88.8.}} \setbox6=\hbox{\phantom{88.8.8.}} \setbox7=\hbox{\phantom{88.8.8.8.}} \setbox8=\hbox{\hskip.5pc} } \def\chpt#1#2#3{\iflecstyle \medskip\vskip1.5pt\noindent \hbox{\let\cr=\ \hbox to\wd0{{}}\hbox to\wd4{\hfil\bf #1}\ \enspace {\bf #2\quad #3} \hfil}\smallskip \else \fi} \def\chptoflow#1#2{\iflecstyle \vskip-\smallskipamount \hbox{\let\cr=\ \hbox to \wd0{{}}{\bf \qquad}\quad {\bf #1\quad #2} \hfil}\smallskip \else \fi} \def\sect#1#2#3{\iflecstyle \hbox{\hbox to \wd1{{}}\hbox to\wd5{\hfil\smallrm #1} \enspace {\rm #2}\quad{\smallrm #3} \hfil}\par \else \medskip\vskip1.5pt\noindent \hbox{\hbox to\wd0{{}}\hbox to\wd4{\hfil\bf #1}\ \enspace {\bf #2\quad #3} \hfil}\smallskip \fi} \def\sectoflow#1#2{\iflecstyle \hbox{\hbox to \wd1{{}}{\smallrm \qquad}\quad {\rm #1}\quad{\smallrm #2} \hfil}\par \else \vskip-\smallskipamount\noindent \hbox{\hbox to \wd0{{}}{\bf \qquad}\quad {\bf #1\quad #2} \hfil}\smallskip \fi} \def\subsect#1#2#3{\iflecstyle \noindent \hbox{\hbox to \wd2{{}}\hbox to\wd6{\hfil\smallerrm #1} \enspace {\smallrm #2}\quad{\smallerrm #3} \hfil}\par \else \noindent \hbox{\hbox to \wd1{{}}\hbox to\wd5{\hfil\smallrm #1} \enspace {\rm #2}\quad{\smallrm #3} \hfil}\par \fi} \def\subsectoflow#1#2{\iflecstyle \noindent \hbox{\hbox to \wd2{{}}{\smallerrm \qquad}\quad {\smallrm #1}\quad{\smallerrm #2} \hfil}\par \else \noindent \hbox{\hbox to \wd1{{}}{\smallrm \qquad}\quad {\rm #1}\quad{\smallrm #2} \hfil}\par \fi} \def\subsubsect#1#2#3{\iflecstyle \noindent \hbox{\hbox to \wd3{{}}\hbox to \wd7{\hfil\scriptrm #1} \enspace {\smallerrm #2}\quad{\scriptrm #3} \hfil}\par \else \noindent \hbox{\hbox to \wd2{{}}\hbox to \wd6{\hfil\smallerrm #1} \enspace {\smallrm #2}\quad{\smallerrm #3} \hfil}\par \fi} \def\subsubsectoflow#1#2{\iflecstyle \noindent \hbox{\hbox to \wd3{{}}{\scriptrm \qquad}\quad {\smallerrm #1}\quad{\scriptrm #2} \hfil}\par \else \noindent \hbox{\hbox to \wd2{{}}{\smallerrm \qquad}\quad {\smallrm #1}\quad{\smallerrm #2} \hfil}\par \fi} \def\prt#1#2#3{\iflecstyle \medskip\vskip5.5pt\noindent \hbox{\let\cr=\ \hbox to\wd8{{}} {\elevenbf #1: #2\quad #3} \hfil}\smallskip \else \fi} \def\prtoflow#1#2{\iflecstyle \vskip-\smallskipamount\noindent \hbox{\let\cr=\ \hbox to \wd8{{}}{\elevenbf \qquad}\quad {\elevenbf #1\quad #2} \hfil}\smallskip \else \fi} \def\nonum{\phantom{8}} \def\nonumm{\phantom{28}} \def\endtoc{\endgroup \par} \newif\iftocmode \tocmodefalse \catcode`@=11 % borrow the private macros of PLAIN (with care) % the following uses the definition of \newwrite without \outer \def\maketoc{\tocmodetrue\alloc@7\write\chardef\sixt@@n\tc %\newwrite\tc \immediate\openout\tc=\jobname.tc } % file for toc entries \newif\ifquiet \catcode`\_=8 \def\specialline{\ifmmode\def\noxt{_}\else\let\noxt=\begintcref\fi\noxt} \def\begintcref{\futurelet\noxt\begintcrefswitch} \def\begintcrefswitch{\ifx\noxt\specialline\let\noxt=\quiettcref \else\quietfalse\let\noxt=\tcref\fi\noxt} \catcode`\_=\active \let _=\specialline \def\quiettcref_{\quiettrue\tcref} \def\tcref{\futurelet\noxt\normaltcref} \def\normaltcref#1{\def\toxt{#1}\let\noxt=\toxt\maketcref} \def\maketcref{\iftocmode \xdef\copyit{\write\tc{\toxt{\number\pageno}}}\copyit \else \ifhmode\kern\z@\fi \fi \ifquiet\ignorespaces\else\noxt\fi} % the \insert (which is done in tocmode only) suppresses hyphenation, % so the \kern\z@ is put in to give the same effect in non-tocmode. \catcode`@=12 % borrow the private macros of PLAIN (with care) %************************* INDEX MACROS ********************** %% the following is a short setup of what the index file should look like % %%%%%%%%%%%%%%%%%%%%%%%%%% % % \null\vfil\eject % \ifodd\pageno \else\ifblankpages % \null\vskip15pc\centerline{(blank page)}\vfil\eject % \else\global\advance\pageno by 1\fi\fi % \begingroup % \indexformat % % [Heading of some sort --- extend hsize temporarily?] % % \beginindexitems % % \newletter{a}bbreviatory conventions, 63 % % Ades, A. E., 8, 76n, 82 % % \vskip\entryskip % % \newletter{X}erox Palo Alto Research Center, 92 % % \endindexitems % \endgroup % %%%%%%%%%%%%%%%%%%%%%%%%%%% % % At the top of second column of the first page, will have to % introduce a \vtop to9pc{\vfil} (or thereabouts) to make the tops of % the columns line up. Adjust till it works. % If the \hsize of the text has been advanced, it needs to be done % half as much again immediately after \indexformat command; and % also advance \fullhsize by the full amount. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Changed \inx to \idx, to avoid conflict with lpwebmac. -ejb 22 Oct 91 \newdimen\fullhsize \newbox\leftcolumn \newdimen\idxskip \idxskip=7.6pc \outer\def\indexformat{\vfill\eject \ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1 \fi \fi \beginchappageno=\pageno \hsize=13pc \fullhsize=27pc \advance\idxskip by\bls \advance\idxskip by\chapterbaselineskip \advance\idxskip by\belowchapterskip \output={\if L\lr \global\setbox\leftcolumn=\columnbox \global\let\lr=R \else\doubleformat \global\let\lr=L\fi \ifnum\outputpenalty>-20000 \else\dosupereject\fi} \def\makeheadline{\vbox to 0pt{\vskip-22.5pt \fullline{\vbox to8.5pt{}\the\headline}\vss}\nointerlineskip} \def\makefootline{\baselineskip24pt\fullline{\the\footline}} } \def\fullline{\hbox to\fullhsize} \let\lr=L \def\doubleformat{\def\righthoffset{\hoffset=4.0pc} \def\lefthoffset{\hoffset=5.5pc} \ifdoubleside \ifodd\pageno \righthoffset \else \lefthoffset \fi \else \righthoffset \fi \shipout\vbox{\makeheadline \fullline{\box\leftcolumn\hfil\columnbox} \makefootline} \advancepageno } \def\columnbox{\leftline{\pagebody}} \outer\def \beginindexitems {\begingroup \parskip =0pt plus 1pt \leftskip =\normalparindent \parindent =-\normalparindent \ifelevenpoint \tenpoint \else \ninepoint \fi \raggedright} \def \endindexitems {\vfil\eject \endgroup} \newskip\entryskip \entryskip=9pt \def\newletterfont{\ifelevenpoint\twelvebf \else\iftenpoint\elevenbf \else\tenbf \fi \fi} \def\newletter#1{{\newletterfont\uppercase{#1}}} \def\idxspace{\vtop to\idxskip{\vfill}} \let\firstletter=\newletter \outer\def\subidxitem#1\par{\begingroup \advance\parindent by.5\normalparindent \raggedright #1 \par \endgroup} % Use the following \subidxitem defn if \obeylines is used (i.e., if % index entries are not to be separated by blank lines) otherwise % use the defn above... % \outer\def\subidxitem#1 {\begingroup % \advance\parindent by.5\normalparindent % \raggedright #1 % \endgroup} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newif\ifproofmode %\proofmodetrue % this should be false when making camera-ready copy \proofmodefalse \let\indexmodetrue=\proofmodetrue \let\indexmodefalse=\proofmodefalse % run into trouble when preloading macros since among other things % \jobname is not defined. To avoid define a macro \makeindex. \catcode`@=11 % borrow the private macros of PLAIN (with care) % the following uses the definition of \newwrite without \outer \newwrite\idx \def\makeindex{\alloc@7\write\chardef\sixt@@n\idx %\newwrite\idx \immediate\openout\idx=\jobname.ind % file for index reminders } \newif\ifsilent \def\specialhat{\ifmmode\def\next{*}\else\let\next=\beginxref\fi\next} \def\beginxref{\futurelet\next\beginxrefswitch} \def\beginxrefswitch{\ifx\next\specialhat\let\next=\silentxref \else\silentfalse\let\next=\xref\fi \next} \catcode`\*=\active \let *=\specialhat \def\silentxref*{\silenttrue\xref} \def\marginstyle{\vrule height6pt depth2pt width\z@ \sevenrm} \chardef\bslash=`\\ \def\xref{\futurelet\next\xrefswitch} \def\xrefswitch{\begingroup \ifx\next|\aftergroup\vxref % code 1, |arg|. Or 4, |\arg| \else\ifx\next<\aftergroup\anglexref % code 2, \else\ifx\next[\aftergroup\brackxref % code 3, [arg] %] \else\aftergroup\normalxref \fi\fi\fi\endgroup} % case 0, "{arg}" \def\normalxref#1{\def\xreftype{0}\def\text{#1}\let\next=\text\makexref} \def\vxref|{\catcode`\\=\active \futurelet\next\vxrefswitch} \def\vxrefswitch#1|{\catcode`\\=0 \ifx\next\empty% \def\xreftype{4}\def\next{{\tt\bslash\text}}% code 4, |\arg| % \else\def\xreftype{1}\def\next{\text}\fi % code 1, |arg| \else\def\xreftype{1}\def\next{{\tt\text}}\fi % code 1, |arg| %ejb 22 Oct 91 \edef\text{#1}\makexref} {\catcode`\|=0 \catcode`\\=\active |gdef\{}} \def\anglexref<#1>{\def\xreftype{2}\def\text{#1}\let\next=\text\makexref} \def\brackxref[#1]{\def\xreftype{3}\def\text{#1}\let\next=\text\makexref} \def\makexref{\ifproofmode\insert\margin{\hbox{\marginstyle\text}}% \xdef\writeit{\write\idx{\text\space!\xreftype\space \noexpand\number\pageno.}}\writeit \else\ifhmode\kern\z@\fi\fi \ifsilent\ignorespaces\else\next\fi} % the \insert (which is done in proofmode only) suppresses hyphenation, % so the \kern\z@ is put in to give the same effect in non-proofmode. \newinsert\margin \dimen\margin=\maxdimen %\count\margin=0 \skip\margin=0pt % marginal inserts take up no space \catcode`@=12 % borrow the private macros of PLAIN (with care) \def\everyjob{\makeindex} \def\IN#1{*{#1}} \def\INO#1{**{#1}} \def\INA#1{*|#1|} \def\INAO#1{**|#1|} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % init.macro, lecmacros.tex, aczel-lecmacros.tex % % ********************************************************************* % **** DOCUMENT STRUCTURE: CHAPTERS, SECTIONS, SUBSECTIONS, ETC **** % ********************************************************************* % % Chapter, section, and subsection headings are done either with the % commands \chapter, \section, and \subsection or with the commands % \newchapter, \newsection, and \newsubsection. The first three give % unnumbered headings and the latter two give headings that are numbered % automatically. A revised \Newchapter (capitalized) requires the chapter % number as first argument, permitting roman numerals, letters, etc. % When one uses automatic numbering, the values % of \sectionno and \subsectionno at any point in the text are current, % that is, their values will equal those of the most recent section or % subsection heading. At the start of each new chapter, the % values of \sectionno and \subsectionno and reset to 0. (This is % the case for \theoremno, etc., but NOT \displayno.) % % Also included here is the \part macro for handling books arranged in % "parts", like Aczel's. % % To TeX, all of the headings are (specially shaped) paragraphs, so one % can use the \break command to specify line breaks just as in normal % paragraphs. However, an \hfil before a \break command is not recommended % here, since it would throw off the automatic centering. ????? \newif\ifdraft \draftfalse % see output specs \def\draft#1#2{\drafttrue \def\draftline{\smallerrm #1 (\TODAY) #2}} \newif\ifblankpages \blankpagesfalse \def\chapterspace{\null\ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1 \fi\fi \rightline{\Chapterfont {}} \bottompageno=\pageno \vskip 7.5pc plus 2.544pt minus 4pt \vskip \chapterbaselineskip \vskip \belowchapterskip} %\def\chapterbreak{\setbox0=\hbox{\chapternumber\hskip-.25em} % \hfil\break \hbox to\wd0{\hfill}} %\def\chapterbreak{\hfil\break \noindent \pt{\chapternumber}\hskip-.25em} \let\chapterbreak=\cr \let\chcr=\cr % \newchapter{title} \outer\def\newchapter#1\par{\vfill\eject \global\advance \chapterno by 1 \global\sectionno=0 \global\subsectionno=0 \global\subsubsectionno=0 \global\footnoteno=0 \zeroall \def\chapterlabel{\chapternumber} \ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1\fi\fi \rightline{\Chapterfont {}} % number? an option \vskip 7.5pc plus 2.544pt minus 4pt \beginchappageno =\pageno \def\chaptertitle{{\let\cr=\ #1}} \def\sectiontitle{{\let\cr=\ #1}} \def\subsectiontitle{{\let\cr=\ #1}} \begingroup \def\it{\chapterit} \def\tt{\chaptertt} \def\sl{\chaptersl} \def\sc{\chaptersc} \def\rm{\chapterrm} \baselineskip =\chapterbaselineskip \chapterfont %\rightskip= 0pt plus 1fil %\hangindent=2pc \hangafter=1 \iftocmode __{ *chpt{\chapternumber}#1} \else \fi \noindent \chapternumber \hskip.75em \vtop{\halign{##\hfil\cr #1\cr}}\par \endgroup \nobreak \vskip \belowchapterskip \noindent} % for fiddling around with spacing above the chapter title: % argument #2: default = 7.5 (no braces, don't give units) % \newchaptersp{title}spacing(in pc's) \outer\def \newchaptersp #1#2\par{\vfill\eject \global\advance \chapterno by 1 \global\sectionno=0 \global\subsectionno=0 \global\subsubsectionno=0 \footnoteno=0 \zeroall \def\chapterlabel{\chapternumber} \ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1\fi\fi \rightline{\Chapterfont {}} \vskip#2pc plus 2.544pt minus 4pt \beginchappageno =\pageno \def\chaptertitle{{\let\cr=\ #1}} \def\sectiontitle{{\let\cr=\ #1}} \def\subsectiontitle{{\let\cr=\ #1}} \begingroup \def\it{\chapterit} \def\tt{\chaptertt} \def\sl{\chaptersl} \def\sc{\chaptersc} \def\rm{\chapterrm} \baselineskip =\chapterbaselineskip \chapterfont %\rightskip= 0pt plus 1fil %\hangindent=2pc \hangafter=1 \iftocmode __{ *chpt{\chapternumber}#1} \else \fi \noindent \chapternumber \hskip.75em \vtop{\halign{##\hfil\cr #1\cr}}\par \endgroup \nobreak \vskip \belowchapterskip \noindent} % \Newchapter{label}{title} ... allows for Roman Numerals, etc. \outer\def\Newchapter#1#2\par{\vfill\eject \global\advance \chapterno by 1 \global\sectionno=0 \global\subsectionno=0 \global\subsubsectionno=0 \global\footnoteno=0 \zeroall \def\chapterlabel{#1} \ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1\fi\fi \rightline{\Chapterfont {}} % number? an option \vskip 7.5pc plus 2.544pt minus 4pt \beginchappageno =\pageno \def\chaptertitle{{\let\cr=\ #2}} \def\sectiontitle{{\let\cr=\ #2}} \def\subsectiontitle{{\let\cr=\ #1}} \begingroup \def\it{\chapterit} \def\tt{\chaptertt} \def\sl{\chaptersl} \def\sc{\chaptersc} \def\rm{\chapterrm} \baselineskip =\chapterbaselineskip \chapterfont %\rightskip= 0pt plus 1fil %\hangindent=2pc \hangafter=1 \iftocmode __{ *chpt{\chapterlabel}#2} \else \fi \noindent #1\hskip.75em \vtop{\halign{##\hfil\cr #2\cr}}\par \endgroup \nobreak \vskip \belowchapterskip \noindent} % for fiddling around with spacing above the chapter title: % argument #3: default = 7.5 (no braces, don't give units) % \Newchaptersp{label}{title}spacing(in pc's) \outer\def \Newchaptersp #1#2#3\par{\vfill\eject \global\advance \chapterno by 1 \global\sectionno=0 \global\subsectionno=0 \global\subsubsectionno=0 \footnoteno=0 \zeroall \def\chapterlabel{#1} \ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1\fi\fi \rightline{\Chapterfont {}} \vskip#3pc plus 2.544pt minus 4pt \beginchappageno =\pageno \def\chaptertitle{{\let\cr=\ #2}} \def\sectiontitle{{\let\cr=\ #2}} \def\subsectiontitle{{\let\cr=\ #1}} \begingroup \def\it{\chapterit} \def\tt{\chaptertt} \def\sl{\chaptersl} \def\sc{\chaptersc} \def\rm{\chapterrm} \baselineskip =\chapterbaselineskip \chapterfont %\rightskip= 0pt plus 1fil %\hangindent=2pc \hangafter=1 \iftocmode __{ *chpt{\chapterlabel}#2} \else \fi \noindent #1\hskip.75em \vtop{\halign{##\hfil\cr #2\cr}}\par \endgroup \nobreak \vskip \belowchapterskip \noindent} % for un-numbered chapter-like headings, % e.g., Preface, Contents, Contributors, References, Appendices % \chapter{title} % \chaptersp allows fiddling with spacing above heading \outer\def \chapter#1\par{\vfill\eject \global\sectionno=0 \global\subsectionno=0 \global\subsubsectionno=0 \footnoteno=0 \zeroall \ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1\fi\fi \rightline{\Chapterfont {}} \vskip 7.5pc plus 2.544pt minus 4pt \beginchappageno =\pageno \def\chaptertitle{{\let\cr=\ #1}} \def\sectiontitle{{\let\cr=\ #1}} \def\subsectiontitle{{\let\cr=\ #1}} \begingroup \def\it{\chapterit} \def\tt{\chaptertt} \def\sl{\chaptersl} \def\sc{\chaptersc} \def\rm{\chapterrm} \baselineskip =\chapterbaselineskip \chapterfont %\rightskip= 0pt plus 1fil %\hangindent=2pc \hangafter=1 \iftocmode __{ *chpt{*nonum}#1} \else \fi \noindent \vtop{\halign{##\hfil\cr #1\cr}}\par \endgroup \nobreak \vskip \belowchapterskip \noindent} % \chaptersp{title}{spacing(in pc's)} \outer\def \chaptersp #1#2 \par{\vfill\eject \global\sectionno=0 \global\subsectionno=0 \global\subsubsectionno=0 \footnoteno=0 \zeroall \ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1\fi\fi \rightline{\Chapterfont {}} \vskip #2pc plus 2.544pt minus 4pt \beginchappageno =\pageno \def\chaptertitle{{\let\cr=\ #1}} \def\sectiontitle{{\let\cr=\ #1}} \def\subsectiontitle{{\let\cr=\ #1}} \begingroup \def\it{\chapterit} \def\tt{\chaptertt} \def\sl{\chaptersl} \def\sc{\chaptersc} \def\rm{\chapterrm} \baselineskip =\chapterbaselineskip \chapterfont %\rightskip= 0pt plus 1fil %\hangindent=2pc \hangafter=1 \iftocmode __{ *chpt{*nonum}#1} \else \fi \noindent \vtop{\halign{##\hfil\cr #1\cr}}\par \endgroup \nobreak \vskip \belowchapterskip \noindent} \let\Chapter=\chapter \let\Chaptersp=\chaptersp % \newsection puts chapter number in front of section number (i.e. 3.2) % modified version of \newsection in /csli/user/pubs/papers/macros/lecmacros.tex \outer\def \newsection #1\par{\par \global\advance \sectionno by 1 \global \subsectionno =0 \global \subsubsectionno =0 \global\def\sectiontitle{#1} \global\def\subsectiontitle{#1} \penalty -200 \vskip -\parskip \begingroup \def\it{\sectionit} \def\tt{\sectiontt} \def\sl{\sectionsl} \def\sc{\sectionsc} \def\rm{\sectionrm} \advance \abovesectionskip by -\sectionbaselineskip \vskip \abovesectionskip \baselineskip =\sectionbaselineskip \sectionfont \rightskip =0pt plus 1fil \iflecstyle \setbox0 =\hbox {\chapterlabel.\sectionlabel\enspace } \iftocmode __{ *sect{\chapterlabel.\sectionlabel}#1} \else \fi \else \setbox0 =\hbox {\sectionlabel\enspace } \iftocmode __{ *sect{\sectionlabel}#1} \else \fi \fi \leftskip =\wd0 \noindent \llap {\box0}#1\par \endgroup \nobreak \vskip -\parskip % counteract the upcoming \parskip \vskip \belowsectionskip \noindent } \let\sectionlabel=\sectionnumber % \section Heading \par \outer\def \section #1\par{\par \global\def \sectiontitle {{\def\break { }#1}} % sets the running head for the output routine and % treats \break as a space \global\def \subsectiontitle {#1} \penalty -200 % a good point to start a new page \vskip -\parskip % counteracts the upcoming \parskip \begingroup \def\it{\sectionit} \def\tt{\sectiontt} \def\sl{\sectionsl} \def\sc{\sectionsc} \def\rm{\sectionrm} \advance \abovesectionskip by -\sectionbaselineskip \vskip \abovesectionskip \baselineskip =\sectionbaselineskip \sectionfont \rightskip =0pt plus 1fil \iftocmode __{ *sect{*nonum}#1} \else \fi \noindent #1\par \endgroup \nobreak % no page break allowed right after section heading \vskip -\parskip % counteracts the upcoming \parskip \vskip \belowsectionskip \noindent} % \newsubsection Heading \par \outer\def \newsubsection #1\par{\par \global\def \subsectiontitle {{\def\break { }#1}} \global\advance \subsectionno by 1 \global\subsubsectionno=0 \penalty -100 \vskip -\parskip \begingroup \def\it{\subsectionit} \def\tt{\subsectiontt} \def\sc{\subsectionsc} \def\rm{\subsectionrm} \def\sl{\subsectionsl} \advance \abovesubsectionskip by-\subsectionbaselineskip \vskip \abovesubsectionskip \baselineskip =\subsectionbaselineskip \subsectionfont \rightskip =0pt plus 1fil \iflecstyle \setbox0 =\hbox {\chapterlabel.\sectionnumber.\subsectionnumber\enspace } \iftocmode __{ *subsect{\chapterlabel.\sectionnumber.\subsectionnumber}#1} \else \fi \else \setbox0 =\hbox {\sectionnumber.\subsectionnumber\enspace } \iftocmode __{ *subsect{\sectionnumber.\subsectionnumber}#1} \else \fi \fi \leftskip =\wd0 \noindent \llap {\box0}#1\par \endgroup \nobreak \vskip -\parskip % counteract the upcoming \parskip \vskip \belowsubsectionskip \noindent} % \subsection Heading \par \outer\def \subsection #1\par{\par \global\def \subsectiontitle {{\def\break { }#1}} \penalty -100 \vskip -\parskip \begingroup \def\it{\subsectionit} \def\tt{\subsectiontt} \def\sc{\subsectionsc} \def\rm{\subsectionrm} \def\sl{\subsectionsl} \advance \abovesubsectionskip by-\subsectionbaselineskip \vskip \abovesubsectionskip \baselineskip =\subsectionbaselineskip \subsectionfont \rightskip =0pt plus 1fil \iftocmode __{ *subsect{*nonum}#1} \else \fi \noindent #1\par \endgroup \nobreak \vskip -\parskip % counteract the upcoming \parskip \vskip \belowsubsectionskip \noindent} % \newsubsubsection Heading \par \outer\def \newsubsubsection #1\par{\par \global\def\subsubsectiontitle{#1} \global\advance \subsubsectionno by 1 \penalty -100 \vskip -\parskip \begingroup \def\it{\subsubsectionit} \def\tt{\subsubsectiontt} \def\sc{\subsubsectionsc} \def\rm{\subsubsectionrm} \def\bf{\subsubsectionbf} \advance\abovesubsubsectionskip by-\subsubsectionbaselineskip \vskip\abovesubsubsectionskip \baselineskip =\subsubsectionbaselineskip \rightskip =0pt plus 1fil \iflecstyle \setbox0 = \hbox{{\subsubsectionfont %\smallrm \chapterlabel.\sectionnumber.\subsectionnumber.\subsubsectiontag}\enspace } \iftocmode __{ *subsubsect{\chapterlabel.\sectionnumber.\subsectionnumber.\subsubsectiontag}#1} \else \fi \else \setbox0 = \hbox{{\subsubsectionfont %\smallrm \sectionnumber.\subsectionnumber.\subsubsectionnumber}\enspace } \iftocmode __{ *subsubsect{\sectionnumber.\subsectionnumber.\subsubsectionnumber}#1} \else \fi \fi \leftskip =\wd0 \noindent \llap{\box0}{\subsubsectionfont #1}\par \endgroup \nobreak \vskip -\parskip \vskip\belowsubsubsectionskip \noindent} \outer\def \subsubsection #1\par{\par \global\def\subsubsectiontitle{#1} \penalty -100 \vskip -\parskip \begingroup \def\it{\subsubsectionit} \def\tt{\subsubsectiontt} \def\sc{\subsubsectionsc} \def\rm{\subsubsectionrm} \def\bf{\subsubsectionbf} \advance\abovesubsubsectionskip by-\subsubsectionbaselineskip \vskip\abovesubsubsectionskip \baselineskip =\subsubsectionbaselineskip \rightskip =0pt plus 1fil \subsubsectionfont \iftocmode __{ *subsubsect{*nonum}#1} \else \fi \noindent #1\par \endgroup \nobreak \vskip -\parskip \vskip\belowsubsubsectionskip \noindent} % the following is for "parts" (i.e., groups of chapters) % this will make the one header page for each part of the book % say: \newpart{Part Four}{title of part four} \def\newpart#1#2{\vfill\eject \advance \partno by 1 \def\parttitle{{\let\cr=\ #2}} \def\sectiontitle{} \def\chaptertitle{\parttitle} \def\partlabel{\partnumber} \ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1\fi\fi \begingroup \baselineskip=24pt \headline={\hfil} \footline={\ifdraft\hfil\draftline\hfil\else\hfil\fi} \null \vskip 7.5pc plus 2.544pt minus 4pt \iftocmode __{ *prt{#1}#2} \else \fi \noindent \hbox to2pc{\hfil} \vtop{\tabskip=0pt plus 1fil \halign{\partnofont ##\hfil\cr #1\cr\cr} \halign{\partfont ##\hfil\cr #2\crcr}} \vfill\eject \endgroup} \def\part#1{\vfill\eject \def\parttitle{{\let\cr=\ #1}} \def\sectiontitle{} \def\chaptertitle{} \ifodd\pageno \else\ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \else\global\advance\pageno by 1\fi\fi \begingroup \baselineskip=24pt \headline={\hfil} \footline={\ifdraft\hfil\draftline\hfil\else\hfil\fi} \null \vskip 7.5pc plus 2.544pt minus 4pt \iftocmode __{ *prt{*nonum}#1} \else \fi \centerline{\partnofont {}}\vskip 2.5pc \tabskip=0pt plus 1fil \halign to\hsize{\hfil\partfont ##\hfil\cr #1\crcr} \vfil\eject \endgroup} \def\chaptertitle{} \def\chapterlabel{} \def\sectiontitle{} \def\subsectiontitle{} \def\subsubsectiontitle{} % To get an appendix A as a whole chapter, use \Appendix{A}{title} ... % \newection, \newsubsection, etc will work as usual. This arrangement % is suitable perhaps if the document has several parts, one containing % several appendices as chapters (using \part{Appendices}) \let\Appendix=\Newchapter \let\Appendixsp=\Newchaptersp % To get a single chapter full of several appendices as sections, % \newappendix works like a \newsection but enumerated by capital % letters. Use \chapter{Appendices} to head up the chapter. \outer\def \newappendix #1\par{\par \global\advance \appendixno by 1 \global \subsectionno =0 \global \subsubsectionno =0 \global\def\sectiontitle{#1} \global\def\subsectiontitle{#1} \penalty -200 \vskip -\parskip \begingroup \def\it{\sectionit} \def\tt{\sectiontt} \def\rm{\sectionrm} \def\sc{\sectionsc} \def\sl{\sectionsl} \advance \abovesectionskip by -\sectionbaselineskip \vskip \abovesectionskip \baselineskip =\sectionbaselineskip \sectionfont \rightskip =0pt plus 1fil \setbox0 =\hbox {\appendixletter.\enspace } \iftocmode __{ *sect{\appendixletter}#1} \else \fi \leftskip =\wd0 \noindent \llap {\box0}#1\par \endgroup \nobreak \vskip -\parskip % counteract the upcoming \parskip \vskip \belowsectionskip \noindent} \outer\def \newsubappendix #1\par{\par \global\def \subsectiontitle {{\def\break { }#1}} \global\advance \subsectionno by 1 \global\subsubsectionno=0 \penalty -100 \vskip -\parskip \begingroup \def\it{\subsectionit} \def\tt{\subsectiontt} \def\rm{\subsectionrm} \def\sc{\subsectionsc} \def\sl{\subsectionsl} \advance \abovesubsectionskip by-\subsectionbaselineskip \vskip \abovesubsectionskip \baselineskip =\subsectionbaselineskip \subsectionfont \rightskip =0pt plus 1fil \setbox0=\hbox{\appendixletter.\subsectionnumber\enspace } \iftocmode __{ *subsect{\appendixletter.subsectionnumber}#1} \else \fi \leftskip =\wd0 \noindent \llap {\box0}#1\par \endgroup \nobreak \vskip -\parskip % counteract the upcoming \parskip \vskip \belowsubsectionskip \noindent} % \title{Title}{Author} \def\title#1#2\par{%\par \def\jobtitle{#1} \def\jobauthor{#2} \def\author{\hfil} \iflecstyle \eject \begingroup \headline={\hfil} \footline={\ifdraft\hfil\draftline\hfil\else\hfil\fi} \null \vskip7.5pc plus 6pt minus 6pt \tabskip=0pt \begingroup \baselineskip =24pt \let\it=\titlefontit \let\rm=\titlefontrm \let\sl=\titlefontsl \centerline{\vtop{\halign{\titlefont\hfil ##\hfil\cr #1 \crcr \noalign{\vskip 2\bigskipamount} }}} \endgroup \begingroup \baselineskip =\sectionbaselineskip \let\it=\sectionit \let\rm=\sectionrm \let\sl=\sectionsl \centerline{\vtop{\halign{\sectionfont\hfil ##\hfil\cr #2 \crcr }}} \endgroup \vfil\eject \endgroup \ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \advance\pageno by -2 \else \advance\pageno by -1 \fi \else \begingroup \baselineskip =\chapterbaselineskip \headline={\hfil} \let\it=\chapterit \let\rm=\chapterrm \let\sl=\chaptersl \centerline{\vtop{\halign{\chapterfont\hfil ##\hfil\cr #1 \crcr \noalign{\bigskip} }}} \endgroup \begingroup \baselineskip =\sectionbaselineskip \let\it=\subsectionit \let\rm=\subsectionrm \let\sl=\subsectionsl \centerline{\vtop{\halign{\subsectionfont\hfil ##\hfil\cr #2 \crcr \noalign{\bigskip} }}} \vskip 1.5\belowchapterskip \endgroup \noindent \fi} \def\jobtitle{} \def\jobauthor{} % \acknowlpage{...text...} \def\acknowlpage#1{\iflecstyle \begingroup \headline={\hfil} \footline={\ifdraft\hfil\draftline\hfil\else\hfil\fi} \begingroup \advance\leftskip by 1.5pc \advance\rightskip by 1.5pc \null \vskip7.5pc plus 2.544pt minus 4pt \noindent {\chapterfont Acknowledgements}\par \iftocmode __{ *chpt{*nonum}{Acknowledgements}} \else \fi \vskip \belowchapterskip \vskip-.5pc \noindent #1 \vfil\eject \endgroup \endgroup \ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \advance\pageno by -2 \else \advance\pageno by -1 \fi \else \vfil\eject \advance\pageno by -1 \begingroup \headline={\hfil} \footline={\ifdraft\hfil\draftline\hfil\else\hfil\fi} \begingroup \advance\leftskip by 1.5pc \advance\rightskip by 1.5pc \null \vskip7.5pc plus 6pt minus 6pt \centerline{\chapterfont Acknowledgements} \iftocmode __{ *chpt{*nonum}{Acknowledgements}} \else \fi \vskip2pc \noindent #1 \vfil\eject \begingroup \baselineskip =\chapterbaselineskip \null\vskip2pc \centerline{\vtop{\halign{\hfil\tenchapfont ##\hfil\cr \jobtitle \crcr \noalign{\bigskip} }}} \endgroup \begingroup \baselineskip =\sectionbaselineskip \centerline{\vtop{\halign{\hfil\subsectionfont ##\hfil\cr \jobauthor \crcr \noalign{\bigskip} }}} \vskip 1.5\belowchapterskip \endgroup \noindent \endgroup \endgroup \ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \advance\pageno by -2 \else \advance\pageno by -1 \fi \fi } % for acknowledgements in a footnote place "$^*$" after author name % (second argument) in \title command, % and place \acknowlnote{...text...} after \title{.}{.}\par \def\acknowlnote#1{\foottext{$^{\hbox{\tensy\char'003}}$}{#1}} % \abstract{...text...} \def\abstract#1{\par \iflecstyle \begingroup \headline={\hfil} \footline={\ifdraft\hfil\draftline\hfil\else\hfil\fi} \advance\leftskip by 1.5pc \advance\rightskip by 1.5pc \begingroup \baselineskip =24pt \null \vskip5.5pc plus 6pt minus 6pt \tabskip=0pt \centerline{\vtop{\halign{\hfil\titlefont ##\hfil\cr \jobtitle \crcr \noalign{\vskip 2\bigskipamount} }}} \centerline{\vtop{\halign{\hfil\sectionfont ##\hfil\cr \jobauthor \crcr }}} \endgroup \vskip3\bls \begingroup \quotepoint \noindent %{\sl Abstract}: #1 \vfil\eject \endgroup \endgroup \ifblankpages \null\vskip15pc\centerline{(blank page)}\vfill\eject \advance\pageno by -2 \else \advance\pageno by -1 \fi \else \smallbreak \begingroup \quotepoint \advance\leftskip by 1em \advance\rightskip by 1em \noindent %{\sl Abstract}: #1 \bigbreak \endgroup \noindent \fi } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % init.macros, aczel.macros % ************************* % **** MISCELLANEOUS **** % ************************* \newdimen\quotehsize \def\squinch{\advance\leftskip by 1em \advance\rightskip by 1em \quotehsize=\hsize \advance\quotehsize by-2em} \def\beginquote{\smallbreak\begingroup\quotepoint\squinch\noindent} \def\bigquote{\smallbreak\begingroup\squinch\noindent} \def\endquote{\smallbreak\endgroup\par\noindent} \let \beginquotation = \beginquote \let \endquotation = \endquote \def\undertext#1{\hbox{$\underline{\smash{\hbox{#1}}}$}} \def\beginmarginadjust#1#2{\begingroup \advance\leftskip by #1 \advance\rightskip by #2} \def\endmarginadjust{\par\vskip-\parskip\endgroup\noindent} % for slightly indented 'long quotes' in footnotes use % \beginfootquote and \endfootquote (see below) \long\def\begincomment#1{{}} % use these for commenting out text, in between \def\endcomment{} % '\begincomment{' and '}\endcomment' \let\comment=\begincomment \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, \number\year} \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, \number\year} \def\copyright{{\ooalign {\hfil\raise.07ex\hbox{c$\,$}\hfil\crcr\mathhexbox20D}}} %%% Use plain TeX definitions of \item for lp? %------------------------- % redefinition of \item so large markers don't hang over the edge \def\oldhang{\hangindent\parindent} \def\olditem{\par\oldhang\textindent} %used in \footnote !!! \newdimen\itemindent \itemindent=2em \def\iindent{\indent\hbox to\itemindent{\hfil}\hskip-\parindent} \def\ihang{\hangindent\itemindent} \def\itextindent#1{\noindent\hskip\itemindent\llap{\rm #1\enspace}\ignorespaces} \def\itemskip{\vskip\itemskipamt} \def\item{\itemskip\ihang\itextindent} \def\itemitem{\par\iindent\hangindent2\itemindent\itextindent} \def\itemitemitem{\par\iindent\iindent\hangindent3\itemindent\itextindent} \def\beginitems{\vskip\beginitemskip\begingroup\parskip=0pt\noindent} \def\enditems{\vskip\enditemskip\endgroup \noindent} % in footnotes (see below) use \beginfootitems, \footitem, % \footitemitem, and \endfootitems % (the 'begin' and 'end' commands are essential; not so in normal text) \def\spot{$\bullet\halfthin$} \def\ospot{$\circ\halfthin$} \def\block{\hbox{{\vrule height .9ex depth -.1ex width .8ex}$\,$}} \let\bull=\block \def\oblock{\hbox{\raise.1ex\hbox{\exboxhwt{.75}{.75}{.25}}$\,$}} \def\diam{$\diamond\halfthin$} \def\tri{$\triangleright\halfthin$} \def\5star{$\star\halfthin$} \def\6star{$\ast\halfthin$} %-------------------------- \def \normalspaces {\ignorespaces \spaceskip =.3333em plus .1666em minus .1111em\ignorespaces \xspaceskip =.5em plus .2em minus .1666em} % returns TeX to an approximation of the normal interword space % parameters. \def \normalpars {\ignorespaces \parindent =\normalparindent\ignorespaces \parskip =\normalparskip} % returns TeX to the normal values of the paragraph parameters. \def\brk{\hfill\break} % breaks a line without justifying it. The \hfill glue will overpower any % \hfil glue in that line. \def\page{\vfill\eject} \def\blankpage{\vfill\eject\null\vfill\centerline{*** blank page ***}\vfill} %-------------------------- % for entering text 'verbatim', do: % % \beginenv % verbatim stuff here % \endenv % % use a "~" alone on a line to yield a blankline... % {\obeyspaces\global\let =\ } \def\beginenv{\vskip 5pt\catcode`\@=11\begingroup\advance\rightskip by -8em \obeylines\obeyspaces\tt} \def\endenv{\endgroup\catcode`\@=12 \vskip 5pt\vskip-\bls\noindent} \let\beginverb=\beginenv \let\endverb=\endenv \let\verb=\tt \def\squ{\char'040} \def\dol{\char'044} \def\amp{\char'046} \def\bsl{\char'134} \def\lbr{\char'173} \def\rbr{\char'175} \def\subs{\char'137} \def\sups{\char'136} % *************************** % **** MARGIN COMMENTS **** % % Margin comments are useful for queries to the author and for other notes % one may want to make while typesetting. To make a margin comment, type % \rightmargincomment{text of margin comment} OR % \leftmargincomment{text of margin comment} % immediately following a word in a paragraph. TeX will complain if it % finds a \margincomment outside of a paragraph (because of the \vadjust % command contained in the \margincomment macro). \newdimen \leftfalsemargin \leftfalsemargin =8pc \newdimen \leftgutterwidth \leftgutterwidth =2pc \newdimen \leftmarginboxwidth \leftmarginboxwidth =0pt \advance \leftmarginboxwidth by \leftfalsemargin \advance \leftmarginboxwidth by -\leftgutterwidth % i.e., \leftmarginboxwidth = \leftfalsemargin - \leftgutterwidth \newdimen \rightfalsemargin \rightfalsemargin =10pc \newdimen \rightgutterwidth \rightgutterwidth =2pc \newdimen \rightmarginboxwidth \rightmarginboxwidth =0pt \advance \rightmarginboxwidth by \rightfalsemargin \advance \rightmarginboxwidth by -\rightgutterwidth \def\changerightmarginbox#1{\rightfalsemargin =#1 \rightmarginboxwidth =0pt \advance \rightmarginboxwidth by \rightfalsemargin \advance \rightmarginboxwidth by -\rightgutterwidth} \def \strutdepth {\dp\strutbox} % \rightmargincomment{text of margin comment} \def \rightmargincomment #1{\strut \vadjust { \setbox0 =\rightmarginbox {\sl #1\strut} \kern-\strutdepth \marginright }} \let\margincomment=\rightmargincomment \let\mgnct=\margincomment \def \leftmargincomment #1{\strut \vadjust { \setbox0 =\leftmarginbox {\sl #1\strut} \kern-\strutdepth \marginleft }} \let\commentators=\leftmargincomment \def\marginheading #1 {\par\begingroup \setbox0 =\marginbox{\bf #1} \vskip\parskip \marginleft \vskip-\parskip \vskip-\bls \offinterlineskip \null \endgroup} \def \leftmarginbox #1{\vtop{\vtop{\hsize =\leftmarginboxwidth \leftskip =0em \rightskip =0em %plus 1fil \noindent #1} \offinterlineskip \kern -\the\prevdepth \null }} % gives a ragged-right paragraph in a box that is \leftmarginboxwidth wide % and 0 deep. The reference point of \leftmarginbox is that of the first % line of the boxed paragraph. \def \rightmarginbox #1{\vtop{\vtop{\hsize =\rightmarginboxwidth \leftskip =0em \rightskip =0em plus 1fil \noindent #1} \offinterlineskip \kern -\the\prevdepth \null }} \def \marginleft {\vtop to \strutdepth { \baselineskip \strutdepth \vss \leftline {\llap {\hbox to \leftfalsemargin {\box0 \hss}}} \null }} \let\marginnames=\marginleft \def \marginright {\vtop to \strutdepth { \baselineskip \strutdepth \vss \rightline {\rlap {\hbox to \rightfalsemargin {\hss \box0}}} \null }} \let\margintext=\marginright %*********************************************** % *** boxes, real and imaginary *** % % \boxhwt {dimension}{dimension}{dimension} (heighth, width, thickness) % similarly (but strictly in 'pt's): \def\boxhwt #1#2#3{{\vbox{ \hrule height#3pt \hbox{\vrule width#3pt height#1pt \kern#2pt \vrule width#3pt} \hrule height#3pt}}} % draws an outline box that is #1 high, 0pt deep, and #2 wide. The % outline itself is #3 thick (also see 17.16 in TeXbook) % \exboxhwt same as \boxhwt except first two arguments in units of 'ex's \def\exboxhwt #1#2#3{{\vbox{ \hrule height#3pt \hbox{\vrule width#3pt height#1ex \kern#2ex \vrule width#3pt} \hrule height#3pt}}} % \boxhwtbox {dimension}{dimension}{dimension}{horizontal mode material} \def \boxhwtbox #1#2#3#4{\vbox{ \hrule height#3pt \hbox {\vrule width#3pt \kern#2pt \vbox{\kern#1pt \hbox{#4} \kern#1pt}\kern#2pt \vrule width#3pt} \hrule height#3pt}} % makes a horizontal box of #4 and surrounds it with an outline box that % is #3 thick. There are #2 of blank space on both sides of the inner % box and #1 of blank space above and below the inner box. % \vtiptop {vertical mode material} \def \vtiptop #1{\vtop {\vskip 0pt #1}} % builds a box in vertical mode with the reference point at the box's top % left corner. % \widebox {dimension} \def \widebox #1{\hbox to #1{\hss}} % gives a blank box with height 0pt, depth 0pt, and width as specified. % \highbox {dimension} \def \highbox #1{\vbox {\kern #1 \null}} % gives a blank box with width 0pt, depth 0pt, and positive height as % specified. % \deepbox {dimension} \def \deepbox #1{\vtop {\null \kern #1}} % gives a blank box with width 0pt, height 0pt, and positive depth as % specified. % \hbspr {dimension}{horizontal mode material} \def \hbspr#1#2{\hbox spread #1 {\hss \hbox{#2}\hss} } % widens an hbox by #1 without stretching or shrinking its contents (#2). % The two sides of the box are widened equally. % \kernrel {number} \def \kernrel #1{\mathrel {\mkern #1 mu}} % is like \joinrel (see TeXbook), except that it gives explicit control % over the amount of kern. \kernrel can be used to construct new math % relation symbols. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % footnote.macro % ********************** % **** FOOTNOTES ***** % ********************** \def\footnote#1{\edef\Asf{\spacefactor=\the\spacefactor}#1\Asf \insert\footins\bgroup\doublefalse\ninepoint \interlinepenalty=100\let\par=\endgraf \leftskip=0pt \rightskip=0pt \splittopskip=\bls \floatingpenalty=20000 \smallskip\foottextindent{#1}\bgroup\strut\aftergroup\Afoot\let\next} % Effectively takes two arguments: the footnote marker and the footnote % text. \def \Afoot {\strut\egroup} \def\foottextindent#1{\indent\llap{#1$\,$}\ignorespaces} % \enumfootnote{text} automatically increments the footnote counter % and gives automatically numbered footnotes. \def\enumfootnote{\global\advance\footnoteno by1\ignorespaces \footnote{\raise.7ex\hbox{$\halfthin$\sevenrm\footnotenumber}\ignorespaces}} \def\ftntpar{\hfil\break \hbox to\parindent{\hfill}} \let\footpar=\ftntpar \count\footins=1000 %\skip\footins=\bls(cf\def\parameters) \dimen\footins=6in \let\eftnt=\enumfootnote \let\ftnt=\footnote % \enumfootmark, \enumfoottext{text}, and \foottext{#}{text} are used % when footnotes must be divided. As for instance inside display % math. \def\enumfootmark{\global\advance\footnoteno by 1\ignorespaces% \edef\Asf{\spacefactor=\the\spacefactor}% \raise.7ex\hbox{$\halfthin$\sevenrm\footnotenumber}\ignorespaces\Asf} \def\enumfoottext{\ignorespaces \foottext{\raise.7ex\hbox{$\halfthin$\sevenrm\footnotenumber}\ignorespaces}} \def\foottext#1{\insert\footins\bgroup\ninepoint \interlinepenalty100 \let\par=\endgraf \leftskip=0pt \rightskip=0pt \splittopskip=10pt plus 1pt minus 1pt \floatingpenalty=20000 \smallskip\foottextindent{#1}\bgroup\strut\aftergroup\Afoot\let\next} %----------------------------------- % for `paragraphs' inside footnotes \def\footpar{\hfil\break\hbox to\parindent{\hfil}} \let\ftntpar=\footpar %----------------------------------- % for 'items' inside footnotes \def\beginfootitems{\smallbreak} \let\footitem=\item \let\footitemitem=\itemitem \def\endfootitems{\smallbreak\noindent} %\def\endfootitemsnomore{{}\olditem{ }\vskip-1.25\bls} %??? %----------------------------------- % for 'quotes' inside footnotes \let\beginfootquote=\beginquote \let\bigfootquote=\bigquote \let\endfootquote=\endquote %\def\beginfootquote{\smallbreak\begingroup\quotepoint\advance\rightskip by.5\parindent\indent\hskip-.5\parindent\hangindent1.5\parindent\textindent{ } } % \def\bigfootquote{\smallbreak\begingroup\indent\hskip-.5\parindent\hangindent1.5\parindent\textindent{ } } %\def\endfootquote{\smallbreak\endgroup\vskip-\parskip\noindent} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % init.macros % ********************** % **** REFERENCES **** % ********************** % % Put \beginref on a line preceding a list of references % and \endref on a line following the list. % Each reference should be a separate paragraph, and all paragraphs % between \beginref and \endref will be set in the shape of a reference % with the first line negative-indented % (\beginrefnum and \endrefnum work the same but produce numbered references). % NOTE: might consider using \frenchspacing (TeXbook p.74) \newif\ifnumberbib \newcount\bibnumb \bibnumb=0 \def\bibnumber{\number\bibnumb} \def\resetbibnum{\bibnumb=0} \def\bibnum{\ifnumberbib \global\advance\bibnumb by 1 {\rm [\bibnumber]}\else\fi} \def\bibno{[\bibnumber]} \catcode`@=11 \def\makebb{\alloc@7\write\chardef\sixt@@n\bbl %\newwrite\bbl \immediate\openout\bbl=\jobname.bb} % file for bib cite codes \def\cite{\futurelet\nuxt\normalbbnum} \def\normalbbnum#1{\def\tuxt{*#1{\bibno}}\let\nuxt=\tuxt\makebbnum} \def\makebbnum{\xdef\keepit{\write\bbl{ *def\tuxt}}\keepit} \def\bbref{\futurelet\nixt\normalbbref} \def\normalbbref#1#2{\def\tixt{*#1{#2}}\let\nixt=\tixt\makebbref} \def\makebbref{\xdef\saveit{\write\bbl{ *def\tixt}}\saveit} \catcode`@=12 \def \beginref {\par \begingroup \numberbibfalse \bibnumb=0 \def\bibitem{} \def\cite##1{} \ifdim \lastskip < \medskipamount \medskip \fi \leftskip =.6667\normalparindent \parindent =-.6667\normalparindent \parskip =\medskipamount %\frenchspacing \vskip-\bls} \def\endref{\par\endgroup} \newdimen\bibitemindent \bibitemindent=2em \def\beginrefnum{\par \begingroup \numberbibtrue \bibnumb=0 \def\bibindent{\indent\hbox to\bibitemindent{\hfil}\hskip-\parindent} \def\bibhang{\hangindent\bibitemindent} \def\bibtextindent{\noindent\hskip\bibitemindent\llap{\bibnum\enspace}} \def\bibitem{\bibhang\bibtextindent} \ifdim \lastskip < \medskipamount \medskip \fi \parskip=\medskipamount %\frenchspacing \vskip-\bls} \let\endrefnum=\endref \def\bibdash{\vrule height2.40pt depth-2pt width2.00cm} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % display.macro, enum.macro % % ******************************** % **** DISPLAYS AND LEADING **** % ******************************** %\def\hfilbreak{\hfil\break} \def\beginlongdisplay{\leavevmode \hfil\break \hbox{} \par \vskip-\bls \vskip\abovedisplayskip \noindent} \def\endlongdisplay{\vskip\belowdisplayskip \noindent} % \hcenteralign {alignment material} \def \hcenteralign #1{\centerline {\vbox{\halign {#1}}} } % gives a horizontally centered \halign; can be used in display math mode. % However, if the alignment contains \noalign material other than glue, % the alignment does not get centered. For such cases, % \halign to \hsize % with infinitely stretchable glue at the edges (\tabskip 0pt plus 1fil) % is recommended. % \announce {announcement name} \def \announce #1{\par \penalty -200 \ifdim \lastskip < \medskipamount \medskip \fi \leavevmode {\it #1\/}:\enspace \ignorespaces } % announces theorems, proofs, and examples. The word(s) to be announced % should be enclosed in braces. Text following the announcement should % be on the same line as the announcement or on the following one. \def \announceboldly #1\par{\par \penalty -200 \ifdim \lastskip < \medskipamount \smallskip \smallskip\fi \noindent {\bf #1\par \nobreak \smallskip }\noindent} % ********* displays, examples ******* % % \enumdisplay{text}, \itemdisplay{#}{text}, \footitemdisplay{#}{text} % are all related. \enumdisplay automatically increments the counter % and one can use \dispno to refer to it. \footitemdisplay is used % inside of footnotes where \itemdisplay does not work. % NOTE: cutting down \hsize by \enumdisplayskip? =4em if enumeration % gets up to three-digit numbers; otherwise 3.5em? \newskip\enumdisplayskip \enumdisplayskip=4em \long\def\enumdisplay#1{\setbox0=\vtop{\advance\hsize by-\enumdisplayskip \noindent \ignorespaces \vtop{\noindent #1}} \global\advance \displayno by 1 \line {\rm (\displaynumber) \hfil \box0}} \long\def\itemdisplay#1#2{\setbox0=\vtop{\advance\hsize by-\enumdisplayskip \noindent \ignorespaces \vtop{\noindent #2}} \line {\rm #1\hfil \box0}} \long\def\footitemdisplay#1#2{\setbox0=\vtop{\advance\hsize by-\enumdisplayskip \noindent \ignorespaces \vtop{\noindent #2}} \dimen1=\hsize \advance\dimen1 by -\parindent \hbox to \dimen1 {\rm #1\hfil \box0}} \let\enumsentence=\enumdisplay \let\itemsentence=\itemdisplay \let\footitemsentence=\footitemdisplay \def\dispnumadvance{\global \advance \displaynumber by 1} \let\sentnumadvance=\dispnumadvance %---------------------------------------------------------------------- % \dispnoparens % prints a number in parentheses. The number is equal to the current % value of the \enumdisplay counter plus the number given as #1. % \dispno effectively leaves the \enumdisplay counter unaffected. % \dispno must always be given a number argument. For example, \dispno % {+2}, \dispno {-2}, and \dispno {2} are all good but \dispno alone is % not. Note that \dispno {2} and \dispno {+2} are treated alike. \def \dispnoparens #1{\begingroup \advance \displayno by #1\ignorespaces (\displaynumber)\ignorespaces \endgroup } \let\exnoparens=\dispnoparens \let\sentnoparens=\dispnoparens %-------------------------- % \dispno similar to \dispno but no parentheses \def \dispno #1{\begingroup \advance \displayno by #1\ignorespaces \displaynumber\ignorespaces \endgroup } \let\exno=\dispno \let\sentno=\dispno %--------------------------- % for reference numbers that are out of sequence % i.e. if displayno = 100, but you want an example numbered 95, % use \itemdisplay{(\prevdispno{-5})} \newcount\displayref \displayref=0 \def\displayreference{\number \displayref} \def \prevdispno #1{\begingroup \displayref=\displayno \advance \displayref by #1\ignorespaces \displayreference\ignorespaces \endgroup } \let\prevsentno=\prevdispno %---------------------------------------------------------------------- \def \precisevskip #1{\hrule height 0pt depth 0pt \vskip #1 \hrule height 0pt depth 0pt } % gives a precise amount of space either from the top of the page to the % top of the first box on that page or from the bottom of one box in a % vertical list to the top of the next. The invisible horizontal rules % effectively shut off TeX's interbaseline glue. % Formerly called \pagetopskip. %--------------------------------------------------------------------- % \nenumdisplay is used when enumeration continues but there is % intervening text. % And in this case, the first \enum should be \nenum. Cf. enum.macro % % i.e., same as enumdisplay but doesn't increment display number \long\def\nenumdisplay#1{\setbox0=\vtop{\advance\hsize by-\enumdisplayskip \noindent \ignorespaces \vtop{#1}} \line {\rm (\displaynumber) \hfil \box0}} \let\nenumsentence=\nenumdisplay %------------------------------------------------------------------ % \enumwidedisplay{\pointsize}{text} is related to \enumdisplay, but % allows a user to specify a pointsize (usually used when the diagram % is too wide). %first parameter is pointsize (e.g. \ninepoint), second is example \long\def \enumwidedisplay #1#2{#1 \setbox0 =\vtop {\advance \hsize by -4em \noindent \ignorespaces \vtop{#2}} \global\advance \displayno by 1 \line {{\tenrm (\displaynumber)} \hfil \box0}} % \line {{\tenrm (\displaynumber)} \quad \box0 \hfill}} \let\enumwidedisplay=\enumwidesentence % nenumwidedisplay % doesn't increment display number \long\def \nenumwidedisplay #1#2{#1 \setbox0 =\vtop {\advance \hsize by -4em \noindent \ignorespaces \vtop{#2}} \line {{\tenrm (\displaynumber)} \hfil \box0}} \let\nenumwidesentence=\nenumwidedisplay %--------------------------------------------------------------------- % possibly worthless stuff: % % \long\def \displaytext #1{\vtop { % \narrower % \parindent =0pt % \noindent \null\ignorespaces #1}} % \def \centerparline #1{\null \hfil #1\hfil \break} % \def \topic #1{{\it #1}\par \nobreak \smallskip } %--------------------------------------------------------------------- % Figure and Table numbering ... % \figurenumber and tablenumber advance the respective counters to % yield the next consecutive number. Use: Figure \figurenumber % In \lecstyle, get "chapterlabel.figurenumber", otherwise just % a job-wide "figurenumber". % \figno{#} and \tabno{#} work like \dispno for referring to table- % and figure-numbers relative to current count. Chapternumber has to % be supplied in \lecstyle. \newcount\figureno \figureno=0 \def\fignumber{\number\figureno} \newcount\tableno \tableno=0 \def\tabnumber{\number\tableno} \def\figurenumber{\global\advance\figureno by 1\ignorespaces \iflecstyle {\chapterlabel.{\rm\fignumber}}\ignorespaces \else {\rm\fignumber}\ignorespaces \fi} \def\tablenumber{\global\advance\tableno by 1\ignorespaces \iflecstyle {\chapterlabel.{\rm\tabnumber}}\ignorespaces \else {\rm\tabnumber}\ignorespaces \fi} \def\figno#1{\begingroup\advance\figureno by #1{\rm\fignumber}\endgroup} \def\tabno#1{\begingroup\advance\tableno by #1{\rm\tabnumber}\endgroup} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % ************************************************ % **** ENUMERATIONS (AND ITEMIZED OUTLINES) **** % ************************************************ % % Enumerations are started by the \beginenumeration command and finished % by the \endenumeration command. Between the two, each paragraph is % enumerated according to its level: each level has its own enumerator % and gets indented from the previous level by an amount equal to the % current value of \parindent (which can be changed wherever needed). % % (ALSO can use \beginenum and \endenum ... enumerated paragraphs have % to be marked by "\enum" (allowing finer control) % % Changing levels is done with the commands \nextlevel and \endlevel, % typed between paragraphs. \nextlevel makes the next paragraph the start % of a new level; \endlevel ends the current level, and the following % paragraph (if any) picks up where the previous level left off. To skip % levels, it suffices to type two or more \nextlevel's or \endlevel's in % a row. A paragraph that is on the same level as the previous one need % not be marked. At the end of an enumeration, one should finish off all % levels of enumeration that have been started (the number of \nextlevel's % should equal the number of \endlevel's). If this is not done, the % enumeration will spill over onto the regular text. % % There are five types of enumeration items that will advance atomatically: % ordinary numbers, uppercase letters, lowercase letters, uppercase roman % numerals, and lowercase roman numerals. The command \setitems controls % which item type goes with which level. For example, "\setitems A1ai " % will give an enumeration with levels 1 through 4 having uppercase letters, % numbers, lowercase letters, and lowercase roman numerals, respectively, % as the enumeration items. Always give \setitems three or four arguments % (they do not have to be different from one another), an argument being % any one of the following characters: 1, A, a, I, and i. Important: the % arguments may be typed without spaces between them, but there must always % be a space after the final argument. To keep the effects of \setitems % local to a certain enumeration, place it immediately following the % \beginenumeration command. If placed outside of an enumeration, \setitems % will affect all of the following enumerations. This macro package % contains the command "\setitems 1ai " so that if no other \setitems % command is given, enumerations will have numbers at the first level, % lowercase letters at the second, and lowercase roman numerals at the third % and subsequent levels. A final note: the automatic enumeration works % only through the fourth level. % % Enumerations (or itemizations) in which the enumeration item never % changes are obtained with the \constantitem command. For example, % "\constantitem {$\bullet$}" will make every paragraph in an enumeration % begin with a bullet, that is, a blackened-in circle. The argument for % \constantitem must be enclosed in braces if it is more than one character; % also, it must be able to go directly inside an \hbox. % % The item delimiters are kept in the token registers called \leftitemdelim % and \rightitemdelim. This macro package sets \leftitemdelim ={} and % \rightitemdelim ={.}, that is, there will be nothing to the left of the % items and a period to right of them. To have the items in parentheses, % one can specify % \leftitemdelim ={(} % \rightitemdelim ={)}. % % The command \dontenumerate{text not to be enumerated} shuts off the % enumeration temporarily, and the specified text (that indicated in the % braces) will appear as normal text in the midst of the enumeration. \newskip \aboveenumskip \newskip \belowenumskip % The command \settyperegular allows regular enumeration % The command \settypeinternal allows enumeration for inside itemdisplays. \newif\ifenumregular \def\settypeinternal{\aboveenumskip=-\bls \advance\aboveenumskip by 2pt \enumregularfalse} \def\settyperegular{\aboveenumskip=\medskipamount \enumregulartrue} \settyperegular \belowenumskip =\medskipamount \advance\belowenumskip by-3pt \def\incenum#1{\advance\aboveenumskip by #1} \newskip\sepskip % horiz. distance between counter and start of text \sepskip=.75em \newskip \alevelparskip \alevelparskip =\smallskipamount \newskip \blevelparskip \blevelparskip =\smallskipamount \newskip \clevelparskip \clevelparskip =0pt \newskip \dlevelparskip \dlevelparskip =0pt \newskip \elevelparskip \elevelparskip =0pt \newtoks \leftitemdelim \leftitemdelim ={} \newtoks \rightitemdelim \rightitemdelim ={.} %----------------------------- \newcount \levelno \levelno =0 \newcount \alevel \alevel =0 \newcount \blevel \blevel =0 \newcount \clevel \clevel =0 \newcount \dlevel \dlevel =0 \newcount \itemtype \newcount \aitemtype \newcount \bitemtype \newcount \citemtype \newcount \ditemtype \def \enumitem {\ifcase \levelno \aitem \or \bitem \or \citem \else \ditem \fi } \def \aitem {\ifcase \aitemtype a0\or \itemtypeone {\alevel}\or \itemtypetwo {\alevel}\or \itemtypethree {\alevel}\or \itemtypefour {\alevel}\else \itemtypefive {\alevel} \fi } \def \bitem {\ifcase \bitemtype b0\or \itemtypeone {\blevel}\or \itemtypetwo {\blevel}\or \itemtypethree {\blevel}\or \itemtypefour {\blevel}\else \itemtypefive {\blevel} \fi } \def \citem {\ifcase \citemtype c0\or \itemtypeone {\clevel}\or \itemtypetwo {\clevel}\or \itemtypethree {\clevel}\or \itemtypefour {\clevel}\else \itemtypefive {\clevel}\fi } \def \ditem {\ifcase \ditemtype d0\or \itemtypeone {\dlevel}\or \itemtypetwo {\dlevel}\or \itemtypethree {\dlevel}\or \itemtypefour {\dlevel}\else \itemtypefive {\dlevel}\fi } \def \constantitem #1{\def \enumitem {#1} \leftitemdelim ={} \rightitemdelim ={} } \def \setitems #1#2#3#4 {\aitemtype =\chooseitem {#1} \ifnum \aitemtype = 0 \aitemtype =3\fi \bitemtype =\chooseitem {#2} \ifnum \bitemtype = 0 \bitemtype =\the\aitemtype \advance \bitemtype by 1\fi \citemtype =\chooseitem {#3} \ifnum \citemtype = 0 \citemtype =\the\bitemtype \advance \citemtype by 1\fi \ditemtype =\chooseitem {#4} \ifnum \ditemtype = 0 \ditemtype =\the\citemtype \advance \ditemtype by 1\fi } \def \chooseitem #1{\if I#1 1\else \if A#1 2\else \if 1#1 3\else \if a#1 4\else \if i#1 5\else 0\fi \fi \fi \fi \fi } \def \itemtypeone #1{\uppercase\expandafter{\romannumeral #1}} \def \itemtypetwo #1{\ifcase #1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z\fi } \def \itemtypethree #1{\number #1} \def \itemtypefour #1{\ifcase #1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\fi } \def \itemtypefive #1{\romannumeral #1} \setitems ai1 % The itemizers for the first level are lower case letters, for the second % level lower case roman numerals, and for the third level arabic numerals % \setparskips {glue}{glue}{glue} \def \setparskips #1#2#3{\alevelparskip =#1 \blevelparskip =#2 \clevelparskip =#3 } \newskip\enumskip % equivalent to parskip for enumeration may be % different in enum \def\noparskip{\parskip=\normalparskip} \def \chooseparskip {\enumskip =\ifcase \levelno \alevelparskip \or \blevelparskip \or \clevelparskip \or \dlevelparskip \or \elevelparskip \else 0pt \fi } \def \nextlevel {\par \begingroup \advanceindent \advance \levelno by 1 \chooseparskip } \def \samelevel {\par } \def \endlevel {\par \endgroup } \long\def \dontenumerate #1{\par \begingroup \parindent =\normalparindent \leftskip =0em \everypar ={} #1\par \endgroup } \def \advanceindent {\advance \leftskip by 20pt} % formerly 1pt % **** variations and tricks **** % ********************************* % Certain problems arise when the start of the paragraph is not % recognized as for instance when the paragraph begins in math mode. % Placing \noindent in front will solve the problem. \def \beginenumeration {\par \begingroup \clubpenalty =10000 % no orphaned enumeration lines! \widowpenalty =10000 % no widowed enumeration lines either! \everypar ={\ifcase\levelno \advance \alevel by 1 \or \advance \blevel by 1 \or \advance \clevel by 1 \or \advance \dlevel by 1 \else \fi \llap{\the\leftitemdelim \enumitem \the\rightitemdelim \hskip \sepskip}} \chooseparskip \parskip = \enumskip \parindent =0em \ifenumregular \advanceindent \fi %\advanceindent \penalty -200 \vskip -\parskip \vskip \aboveenumskip } \def \endenumeration {\par \endgroup \vskip -\parskip \vskip \belowenumskip } %------------------------------------------------------------------- % The following uses \enum to indicate paragraphs to be enumerated, % e.g. inside an \enumdisplay display % Useful when more than one paragraph is included under each item and % when paragraphs are mixed up. % (modified 1/11/88 to add definition of \nenum (for \nenumdisplay) % cf. display.macro) \newcount\lastenuma \lastenuma=0 \newcount\lastenumb \lastenumb=0 \newcount\lastenumc \lastenumc=0 \newcount\lastenumd \lastenumd=0 \def \beginenum{\settypeinternal \par \begingroup \clubpenalty =10000 % no orphaned enumeration lines! \widowpenalty =10000 % no widowed enumeration lines either! \def\enum{\vskip-\parskip\vskip\enumskip \par \noindent\ifcase\levelno \advance \alevel by 1 \or \advance \blevel by 1 \or \advance \clevel by 1 \or \advance \dlevel by 1 \else \fi \llap{\the\leftitemdelim {\enumrm\enumitem}\the\rightitemdelim \hskip \sepskip}} % used to start count at last reference \def\nenum{\vskip-\parskip\vskip\enumskip \par \noindent\ifcase\levelno \alevel=\lastenuma \advance \alevel by 1 \or \blevel=\lastenumb \advance \blevel by 1 \or \clevel=\lastenumc \advance \clevel by 1 \or \dlevel=\lastenumd \advance \dlevel by 1 \else \fi \llap{\the\leftitemdelim {\enumrm\enumitem}\the\rightitemdelim \hskip \sepskip}} \chooseparskip \parskip = \enumskip \parindent =0em \ifenumregular \advanceindent \fi %\advanceindent \penalty -200 \vskip \aboveenumskip } % save last alevel so we know where to start next time \def \endenum {\par \global\lastenuma=\alevel \global\lastenumb=\blevel \global\lastenumc=\clevel \global\lastenumd=\dlevel \endgroup \vskip -\parskip \vskip -\enumskip \vskip \belowenumskip} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % output.macro % ************************ % **** OUTPUT SPECS **** % ************************ % % see LOCAL CONTROL section below regarding options \clubpenalty =10000 % no orphaned lines allowed \widowpenalty =10000 % no widowed lines allowed \brokenpenalty=10000 % no hyphenated word at page break \doublehyphendemerits =40000 % Two consecutive hyphenated lines are % strongly discouraged. \finalhyphendemerits =10000 % The next-to-last line of a paragraph should % not be hyphenated, but can be if necessary. \catcode`@=11 % borrow the private macros of PLAIN (with care) \newskip \pagefillskip \pagefillskip =0pt \newskip \normalpagefillskip \normalpagefillskip =0pt \newtoks \titleline \titleline ={} \newif\ifdoubleside \def\singlesided{\doublesidefalse\output{\righthoffset\plainoutput}} \def\doublesided{\doublesidetrue\output{\ifodd\pageno\righthoffset \else\lefthoffset\fi \plainoutput}} \def\adjustleft#1{\def\righthoffset{\hoffset=4.0pc \advance\hoffset by #1} \def\lefthoffset{\hoffset=5.5pc \advance\hoffset by #1}} \def\adjustwidth#1{\advance\hsize by #1 \advance\rightfalsemargin by-#1 \rightmarginboxwidth =0pt \advance \rightmarginboxwidth by \rightfalsemargin \advance \rightmarginboxwidth by -\rightgutterwidth } \let\adjustright=\adjustwidth \def\adjusttop#1{\advance\voffset by #1} \def\adjustlength#1{\advance\vsize by #1} \let\adjustbottom=\adjustlength \outer\def\lecstyle{ \hsize =27pc \voffset =4pc \vsize =538pt %45pc \doublesided \footline={\ifdraft \hfil\draftline\hfil \else \ifnum \pageno = 0 \hfil \else \ifnum \pageno = \beginchappageno \chapfootline \else \ifnum \pageno = \bottompageno \chapfootline \else \hfil \fi \fi \fi \fi} \def\chapfootline{\hfil\smallrm\folio\hfil} \headline={\ifnum \pageno = \beginchappageno \hfil \else \ifnum \pageno = \bottompageno \hfil \else \ifodd\pageno \rightheadline \else \leftheadline \fi \fi \fi} \def\rightheadline{\begingroup\def\it{\smallit}\def\tt{\smalltt}\def\bf{\smallbf}\def\sc{\smallerrm}\smallrm\hfil\sectiontitle\quad\folio\endgroup} \def\leftheadline{\begingroup\def\it{\smallit}\def\tt{\smalltt}\def\bf{\smallbf}\def\sc{\smallerrm}\smallrm\folio\quad\chaptertitle\hfil\endgroup} \def\righthoffset{\hoffset=4.0pc} \def\lefthoffset{\hoffset=5.5pc} \tenpoint \lecstyletrue } \outer\def\repstyle{ \voffset =2pc \hsize =27pc \vsize =48pc \doublesided \footline={\ifdraft \hfil\draftline\hfil \else \ifnum \pageno = 0 \hfil \else \ifnum \pageno = 1 \onefootline \else \ifnum \pageno = \bottompageno \onefootline \else \hfil \fi \fi \fi \fi} \def\onefootline{\hfil\smallrm\folio\hfil} \headline={\ifnum \pageno = 1 \hfil \else \ifnum \pageno = \bottompageno \hfil \else \ifodd\pageno \rightheadline \else \leftheadline \fi \fi \fi} \def\rightheadline{\begingroup\def\it{\smallit}\def\tt{\smalltt}\def\bf{\smallbf}\def\sc{\smallerrm}\smallrm\hfil\subsectiontitle\quad\folio\endgroup} \def\leftheadline{\begingroup\def\it{\smallit}\def\tt{\smalltt}\def\bf{\smallbf}\def\sc{\smallerrm}\smallrm\folio\quad\sectiontitle\hfil\endgroup} \def\righthoffset{\hoffset=4.0pc} \def\lefthoffset{\hoffset=5.5pc} \tenpoint \lecstylefalse } \outer\def\reponestyle{ \voffset =2pc \hsize =27pc \vsize =48pc \singlesided \footline={\ifdraft \hfil\draftline\hfil \else \ifnum \pageno = 0 \hfil \else \ifnum \pageno = 1 \onefootline \else \ifnum \pageno = \bottompageno \onefootline \else \hfil \fi \fi \fi \fi} \def\onefootline{\hfil\smallrm\folio\hfil} \headline={\ifnum\pageno<2\hfil \else\ifnum\pageno=\bottompageno\hfil \else\rightheadline\fi\fi} \def\rightheadline{\begingroup\def\it{\smallit}\def\tt{\smalltt}\def\bf{\smallbf}\def\sc{\smallerrm}\smallrm\hfil\sectiontitle\quad\folio\endgroup} \def\righthoffset{\hoffset=4.0pc} \tenpoint \lecstylefalse } \outer\def\msstyle{ \voffset =2.5pc \hsize =27pc \vsize =48pc \singlesided \footline={\ifdraft\hfil\draftline\hfil{\smallrm\folio}\hfil \else\onefootline\fi} \def\onefootline{\hfil{\smallrm\folio}\hfil} \headline={\hfil} \def\righthoffset{\hoffset=4.0pc} \tenpoint \lecstylefalse } \def \pagecontents {\ifvoid\topins \else \unvbox\topins \fi \dimen0 =\dp255 % \ifvoid\margin\else % marginal info is present % \rlap{\kern31pc\vbox to\z@{\kern4pt\box\margin \vss}}\fi % \unvbox255 % undoes the glue setting of the constructed page % \ifvoid\footins \else % \vskip \skip\footins \footnoterule \unvbox\footins % \fi % insertion (except for last 4 l. of this par from manmac) \kern-\dimen0 % to prevent an overfull \vbox \vskip 0pt minus 3pt % allows descenders to go below page bottom \vskip \pagefillskip \global \pagefillskip =\normalpagefillskip } % from Dikran's "margin comments" stuff: %\def \pagecontents {\dimen0 =\dp255 % \ifodd\pageno % right-side pages % \unvbox255 % undoes the glue setting of the constructed page % \kern-\dimen0 % to prevent an overfull \vbox % \vskip 0pt plus \rightpagebottomstretch % \global \rightpagebottomstretch =0pt % \global \vsize =\normalvsize % reset \vsize to its normal value % \else % left-side pages % \setbox0 =\vbox {\unvbox255 } % make box to its natural height % \evenpageheight =\ht0 % the natural height of the left page % \advance \evenpageheight by \pagespread % \ifdim \evenpageheight > \normalvsize % \evenpageheight =\normalvsize % \fi % % The target height for the right page equals either the % % natural height of the left page plus the amount of % % \pagespread or the normal value of \vsize, whichever is % % less. % \global \pagespread =0pt % reset to its normal value % \global \vsize =\evenpageheight % \vbox to \vsize {\unvbox0 % \kern-\dimen0 % \vskip 0pt plus \leftpagebottomstretch % \global \leftpagebottomstretch =0pt} % \vss % \fi } \catcode`@=12 % borrow the private macros of PLAIN (with care) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% following for crosshatch stuff: %\def\crop#1#2{\vbox to 0pt{ % \vskip #1\hbox to 0pt{\hskip #2\cross\hss} % \vss}} %\def\cross{\smash{\hskip -.2pt\vrule height 12pt depth 12pt % \hskip -12.2pt\vrule height .2pt depth.2pt width 24pt}} % %\def\eventopleft {\crop{-3.5pc}{-5pc}} % for vert.mark add 2pc for head+foot %\def\eventopright {\crop{-3.5pc}{4pc}} % sum of horiz marks for both odd %\def\evenbotleft {\crop{5.0pc}{-5pc}} % and even should be equal, %\def\evenbotright {\crop{5.0pc}{4pc}} % i.e., the sum of the second % % arguments in *topleft and *topright % % should be equal in both odd+even %\def\oddtopleft {\crop{-3.5pc}{-4pc}} %\def\oddtopright {\crop{-3.5pc}{5pc}} %\def\oddbotleft {\crop{5.0pc}{-4pc}} %\def\oddbotright {\crop{5.0pc}{5pc}} % %\footline ={\ifodd\pageno \rightfootline \else \leftfootline \fi} % \def \rightfootline{\oddbotleft \hfil \oddbotright} % \def \leftfootline{\evenbotleft \hfil \evenbotright} % %\headline ={\ifnum \pageno = \beginchappageno \hfil \else % \ifodd\pageno \oddtopleft \rightheadline \oddtopright \else % \eventopleft \leftheadline \eventopright \fi \fi} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % hpsgmacros.tex, ling.tex % % ***************************** % **** LINGUISTICS STUFF **** % ***************************** % %------------------------------------------------------------------- % AVM Macros, i.e., defns and macros for AVM's ('attribute-value matrices') % % Typical usage: \avm{ number & third \cr % person & singular} \def\avmspace#1{\unskip\hskip{#1}} %\def\avmdash{\hrule width1ex height1pt} \def\moveup#1{\vskip -#1 \noindent} \def\minusenumskip{\vskip-12pt} \def\avm#1{$\!\left[\vcenter spread9pt{\vfil\tabskip=0pt \halign{##\hfil&\enspace ##\hfil\cr #1\cr} \vfil }\right]\!$} % \avmthin = "squashed avm" to eat up horizontal space when matrices % are too wide for the given hsize \def\avmthin#1#2{$\!\left[\vcenter spread9pt{\vfil\tabskip=0pt \halign{##\hfil&\enspace ##\hfil\cr #2\cr} \vfil }\right]\!\!\mskip-#1mu$} % Can also locally cut down the point-size. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \boxit{arg} draws box around argument and puts a little space % before and after it. uses type size two sizes smaller than current % environment (\smallerrm) %\def\qtrquad{\hskip.25em\relax} %\def\boxit#1{\qtrquad\lower2pt\hbox{{\vbox{\hrule\hbox{\vrule\kern1pt % \vbox{\kern1pt\vbox{\hbox{\smallrm #1}}\kern1pt} % \kern-2pt\vrule}\hrule}}}\qtrquad} \def\boxit#1{\lower1.3pt\hbox{\vbox{\hrule height.3pt \hbox{\vrule width.3pt\kern1.0pt\vbox{\kern1.0pt \hbox{\smallerrm #1}\kern1.5pt}\kern1.0pt\vrule width.3pt} \hrule height.3pt}}} % see \boxhwtbox above ... not quite the same \def\scriptboxit#1{\lower1.4pt\hbox{\vbox{\hrule height.2pt \hbox{\vrule width.2pt\kern1.25pt\vbox{\kern1.0pt \hbox{\subrm #1}\kern1.25pt}\kern.8pt\vrule width.2pt} \hrule height.2pt}}} %--------------- % other 'box' macros ... see ling.tex for fancier stuff \def\vttop#1#2{\vbox{#1\vtop{#2}}} \def\mboxit#1{\vttop{\hrule height .8pt}{\hbox{{\vrule width .8pt}\kern5pt \vttop{\kern5pt}{#1\kern5pt}% \kern5pt{\vrule width .8pt}} {\hrule height .8pt}}} \def\bboxit#1{\vttop{\hrule height .8pt}{\hbox{{\vrule width .8pt}\kern9pt \vttop{\kern9pt}{#1\kern9pt}% \kern9pt{\vrule width .8pt}} {\hrule height .8pt}}} \def\thinboxit#1{\vttop{\hrule height .4pt}{\hbox{{\vrule width .4pt}\kern5pt \vttop{\kern5pt}{#1\kern5pt}% \kern5pt{\vrule width .4pt}} {\hrule height .4pt}}} % \boxed{arg} for text within box. \def\boxtext#1{\vtop{\baselineskip16pt\halign{\hfil##\hfil\cr#1\cr \noalign{\vskip -12pt}}}} \def\boxed#1{\boxit{\boxtext{#1}}\smallskip} %--------------- %------------------------------------------------------------------ % Sample Display % % Set up length of sample displays, saving .5 inches for an identifier % Sample display command % \lsample forms a labeled sample (which is WHAT?) % Arguments are: display identifier % display contents % \sample forms an unlabeled sample % Argument is: display contents %\newdimen \samplelength %\samplelength=3.5in %\newdimen \msamplelength %\msamplelength=4.0in %\newdimen \nsamplelength %\nsamplelength=4.45in % %\def\lsample#1.#2\par{\medskip\noindent %\hfill\hbox to\samplelength{\it #2\hfill} \hbox %to.5in{\hfill\llap{(#1)}}\medskip} % %\def\sample#1\par{\nobreak\noindent\hfill\hbox to\msamplelength{\it %#1\hfill}\smallskip} % %\def\spsample#1\par{\nobreak\noindent\hfill\hbox to\nsamplelength{\it %#1\hfill}\smallskip} % %\def\ssample#1#2#3\par{\def\dgskip{\unskip\/{#1:\ }&} %\nobreak\noindent\hfill\hbox to\nsamplelength{#2 %#3\hfill}\smallskip\def\dgskip{\unskip\/{\rm:\ }&}} %------------------------------------------------------------------ % some stuff from ling.tex (Sells' stuff) % three line example: \shortex{Caithfimid&imeacht}{we-must&leave % (inf)}{We must leave.} % % Catihfimid imeacht % We-must leave(inf) % We must leave \def\shortex#1#2#3{{\hbox to\hsize{\vtop{\baselineskip 14pt \halign{##\hskip6pt\hfil&&##\hskip6pt\hfil\cr #1\cr #2\cr} %\noalign{\smallskip}} {\vskip-\parskip\noindent #3}\hfil}}\par \smallskip}} % This one has no translation line: \def\shortexnt#1#2{{\hbox to \hsize{\vtop{\baselineskip 14pt \halign{##\hskip6pt\hfil&&##\hskip6pt\hfil\cr #1\cr #2\cr\noalign{\smallskip}}}\hfil}}} \def \smalltree #1{\vtop{\baselineskip 30pt{ \halign{\hfil##\hfil\hskip12pt&&\hfil##\hfil\hskip12pt\cr#1\cr}}}} \def \smallertree #1{\vtop{\baselineskip 30pt{ \halign{\hfil##\hfil\hskip2pt&&\hfil##\hfil\hskip2pt\cr#1\cr}}}} \def \closetree #1{\vtop{\baselineskip 30pt{ \halign{\hfil##\hfil\hskip6pt&&\hfil##\hfil\hskip6pt\cr#1\cr}}}} \def \closedtree #1{\vtop{\baselineskip 30pt{ \halign{\hfil##\hfil&&\hfil##\hfil\cr#1\cr}}}} \def \bad {\leavevmode\llap{*}} \def \bunny {\leavevmode\llap{?*}} \def \funny {\leavevmode\llap{?}} \def \good {\leavevmode\llap{\ }} % \good does nothing visible but is % necessary within \beginenumeration to % get the baselines right %--------------------------------------------------------------------- % for large left brace (any number of cases allowed) % use is: Sentence \lcases{choice one\cr choice two\cr}. \def\lcases#1{$\left\{\enspace\vcenter{\normalbaselines\mathsurround=0pt \ialign{\rm ##\hfil\crcr#1}}\right.$} \let\leftcases=\lcases % large right brace % use is: \rcases{choice one\cr choice two\cr} sentence. \def\rcases#1{$\left.\vcenter{\normalbaselines\mathsurround=0pt \ialign{\rm ##\hfil\crcr#1}}\enspace\right\}$} \let\rightcases=\rcases % left and right brace % use is: Sentence \lrcases{choice one\cr choice two\cr} sentence. \def\lrcases#1{$\left\{\enspace\vcenter{\normalbaselines\mathsurround=0pt \ialign{\rm ##\hfil\crcr#1}}\enspace\right\}$} \let\leftrightcases=\lrcases %-------------------------------------------------------------------- \def\gapline{\lower.5ex\hbox{\bf \ --\ }} % gives line to indicate a gap \def\und#1{$\underline{\hbox{#1}}$} % underlines its argument \def\ovr#1{$\overline{\hbox{#1}}$} % puts an overline over its argument % \super{}, \sub{}, and \supern{} -- sub- and super-script stuff while % keeping it roman. % these work in normal text mode ... another definition, \subm{}, % gives results equivalent to \sub{} but works in math mode. % (perhaps \upper{} could be defined to work like \super{} too?) \def \super #1{$^{\hbox{#1}}$} \def \supern #1{$^{\hbox{#1}}$} % same as \super at the moment! \def \sub #1{\lower.5ex\hbox{\scriptrm #1}} \def \subm #1{{}_{_{\hbox{\scriptrm #1}}}} %------------------------------------------------------------- % the following give an abbreviation in small roman caps % (\ninerm in \tenpoint environment) \def \ACC {\hbox{\sc ACC}} \def \ADJ {\hbox{\sc ADJ}} \def \ADJUNCT {\hbox{\sc ADJUNCT}} \def \CASE {\hbox{\sc CASE}} \def \CAUSE {\hbox{\sc CAUSE}} \def \CN {\hbox{\sc CN}} \def \COMP {\hbox{\sc COMP}} \def \DAT {\hbox{\sc DAT}} \def \DEF {\hbox{\sc DEF}} \def \DET {\hbox{\sc DET}} \def \Det {\hbox{{\sc D}et}} \def \FEM {\hbox{\sc FEM}} \def \FIN {\hbox{\sc FIN}} \def \FOCUS {\hbox{\sc FOCUS}} \def \GEN {\hbox{\sc GEN}} \def \MASC {\hbox{\sc MASC}} \def \NEUT {\hbox{\sc NEUT}} \def \N {\hbox{\sc N}} \def \Name {\hbox{{\sc N}ame}} \def \NI {\hbox{\sc NI}} \def \NOM {\hbox{\sc NOM}} \def \NP {\hbox{\sc NP}} \def \NUM {\hbox{\sc NUM}} \def \OBJ {\hbox{\sc OBJ}} \def \OBJTWO {\hbox{\sc OBJ2}} \def \OBL {\hbox{\sc OBL}} \def \PASS {\hbox{\sc PASS}} \def \PAST {\hbox{\sc PAST}} \def \PCASE {\hbox{\sc PCASE}} \def \PERS {\hbox{\sc PERS}} \def \PL {\hbox{\sc PL}} \def \POSS {\hbox{\sc POSS}} \def \PP {\hbox{\sc PP}} \def \PRED {\hbox{\sc PRED}} \def \PRES {\hbox{\sc PRES}} \def \PRO {\hbox{\sc PRO}} \def \Pro {\hbox{{\sc P}ro}} \def \Q {\hbox{\sc Q}} \def \REFL {\hbox{\sc REFL}} \def \REP {\hbox{\sc REP}} \def \RH {\hbox{\sc RH}} \def \S {\hbox{\sc S}} \def \SG {\hbox{\sc SG}} \def \SUBJ {\hbox{\sc SUBJ}} \def \TENSE {\hbox{\sc TENSE}} \def \TOP {\hbox{\sc TOP}} \def \TOPIC {\hbox{\sc TOPIC}} \def \V {\hbox{\sc V}} \def \VP {\hbox{\sc VP}} \def \XADJ {\hbox{\sc XADJ}} \def \XADJUNCT {\hbox{\sc XADJUNCT}} \def \XCOMP {\hbox{\sc XCOMP}} %--------------------------------------------------------------- \def\bHEAD{{\ninebf HEAD}} \def\bFOOT{{\ninebf FOOT}} %-------------------------------------------------------------- % following typically used in math mode % (inter-letter spacing problems otherwise) \def\mmNP{\hbox{\it NP\/}} \def\mmVP{\hbox{\it VP\/}} \def\mmCN{\hbox{\it CN\/}} \def\mmSIT{\hbox{\it SIT\/}} \def\mmINF{\hbox{\it INF\/}} \def\mmSOA{\hbox{\it SOA\/}} \def\mmMOD{\hbox{\it MOD\/}} \def\mmPAST{\hbox{\it PAST\/}} \def\mmPROP{\hbox{\it PROP\/}} \def\mmPRP{\hbox{\it PRP\/}} \def\mmPSP{\hbox{\it PSP\/}} \def\mmTYPE{\hbox{\it TYPE\/}} \def\mm3RDSNG{\hbox{\it 3RDSNG\/}} \def\halfthin{\mskip 1.25mu} \def\neghalfthin{\mskip-1.25mu} %re spacing around single letters in parens? \def\qtrthin{\mskip .625mu} \def\negqtrthin{\mskip-.625mu} %---------------------------------------------------------------- % some stuff for drawing lines in tree-diagrams, etc. ... % basically the contents of Emma's tree.sty ... % works only with Postscript printers \catcode`\@=11 %\input /v1/local/lib/tex/macros/tree.sty % not needed for knuth -ejb % /u2/emma/tex/postscript/tree/regular/tree.sty % /u4/local/lib4/tex/macros/tree.sty % /csli/user/pubs/papers/elgrande/tree.sty \catcode`\@=12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The following are for Kamp's Discourse Representation Structures (DRS's). % \drs draws a box around an argument which is basically an \halign thingy: % columns separated by &'s, % lines separated by \cr's, % line-clumps separated by \noalign{\medskip} % \innerdrs is same as \drs but with negligible \tabskip (= space % before, after, and between columns) % \simpledrs draws a box around a single line of text shorter than \hsize \def\drs#1{\vtop{\hbox{\raise.775\bls\hbox{\vtop{\hrule height.3pt \hbox{\vrule width.3pt\kern1.0pt\vbox{\kern1.0pt \hbox{\vtop{\tabskip=.5em \halign{##\hfil&&##\hfil\cr \noalign{\vskip.5em}#1\noalign{\vskip.5em}}}} \kern1.0pt}\kern1.0pt\vrule width.3pt}\hrule height.3pt}}} }} \def\innerdrs#1{\vtop{\hbox{\raise.775\bls\hbox{\vtop{\hrule height.3pt \hbox{\vrule width.3pt\kern1.0pt\vbox{\kern1.0pt \hbox{\hfil\vtop{\tabskip=.1em \halign{##\hfil&&##\hfil\cr \noalign{\smallskip}#1\noalign{\smallskip}}}\hfil} \kern1.0pt}\kern1.0pt\vrule width.3pt}\hrule height.3pt}}} }} \def\simpledrs#1{\raise.775\bls\hbox{\vtop{\hrule height.3pt \hbox{\vrule width.3pt\kern1.0pt\vbox{\kern1.0pt \hbox{\strut #1}\kern1.0pt}\kern1.0pt\vrule width.3pt} \hrule height.3pt}}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % ***************************** % **** STASS ABBREVIATIONS **** % ***************************** % % from Barwise, Aczel, Gawron & Peters \def\soa#1{\ifmmode\langle\!\langle #1 \rangle\!\rangle \else$\langle\!\langle #1 \rangle\!\rangle$\fi} \let\mmsoa=\soa \let\fact=\soa \let\infon=\soa \def\tuple#1{\ifmmode\langle#1\rangle\else$\langle#1\rangle$\fi} \let\mmtuple=\tuple \let\param=\dot \let\dual=\overline \def\models{\mathrel|\mathrel{\mkern-4mu}=} \let\supports=\models \def\proves{\mathrel|\mathrel{\mkern-4mu}\relbar} \def\forces{\mathrel{\hbox{$\mid\neghalfthin\proves$}}} \def\carries#1{\forces\mskip-12mu\lower1ex\hbox{$_{#1}$}\mskip4.5mu} \def\suppsub#1{\supports\mskip-12mu\lower1ex\hbox{$_{#1}$}\mskip4.5mu} \def\rel#1{\hbox{\smallerrm #1}} \def\smrel#1{\hbox{\scriptrm #1}} \def\subrel#1{\hbox{\subrm #1}} \def\subsubrel#1{\hbox{\subsubrm #1}} \def\rpar#1|#2{\param{#1}_{\mmsoa{#2}}} \let\mmrpar=\rpar \def\set#1{\ifmmode\lbrace #1 \rbrace\else\lbrace #1 \rbrace\fi} \def\prpty#1|#2{\ifmmode\lbrack\, #1 \mid #2 \,\rbrack \else$\lbrack\, #1 \mid #2 \,\rbrack$\fi} \let\reltn=\prpty \let\mmreltn=\mmprpty \def\lprpty#1|#2{\lbrack\, #1 \mid #2 } \def\rprpty{\,\rbrack} \def\type#1#2{\,\widehat{#1}\,( #2 )\,} \def\lsoa{\langle\!\langle} \def\rsoa{\rangle\!\rangle} \def\lsyn#1{\lbrack_{_{\subrel{#1}}}} \def\rsyn{\rbrack} \def\lmn{\lbrack\!\lbrack} \def\rmn{\rbrack\!\rbrack} \def\mng#1{\ifmmode\lmn #1 \rmn\else$\lmn #1 \rmn$\fi} \def\Longishrightarrow{\mathrel{=\mskip-10mu\Rightarrow}} \let\Rarrow=\Rightarrow \let\Larrow=\Leftarrow \let\carrow=\Longishrightarrow \let\rarrow=\rightarrow \let\larrow=\leftarrow \let\involves=\carrow \let\lrarrow=\leftrightarrow \let\Lrarrow= \Leftrightarrow \def\precludes{\mathrel\perp} %\def\precludes{\mathrel\perp\mskip-10.5mu\mathrel\perp} \def\and{\mathbin\&} \let\rhd = \triangleright %\def\BOWTIE{\hbox{\Large $\,\,\bowtie\,\,$}} \def\notrhd{\not\!\rhd} \mathchardef\verbar"233F \def\unlhd{\mathrel{\halfthin\leq\mskip-13mu\raise.63em\hbox{$\verbar$}\neghalfthin}} \let\partof=\unlhd \def\partrel#1#2{\ifmmode #1 \neghalfthin\unlhd\neghalfthin #2 \else $ #1 \neghalfthin\unlhd\neghalfthin #2 $\fi} \def\scverbar{\hbox{\vrule height5.2pt width.33pt depth0pt}} \def\scriptunlhd{\mathrel{\neghalfthin\leq\mskip-8mu\raise.25pt\hbox{\scverbar}\halfthin}} \def\scriptpartrel#1#2{\ifmmode #1 \scriptunlhd #2 \else $ #1 \scriptunlhd #2 $\fi} \let\partofrel=\partrel \let\ftntpartofrel=\scriptpartrel \let \: = \> \def\rus{\hbox{\it\riota}} \let\vphi=\varphi \def\carry#1#2#3{\ifmmode #1 \mid\neghalfthin\proves_{#3} #2 \else $#1 \mid\neghalfthin\proves_{#3} #2$\fi} \def\Diamond{\mathrel{\hbox{\largesy\char'005}}} \def\poss{\ifmmode \Diamond\!\!\rightarrow \else $\Diamond\!\!\rightarrow$\fi} \def\possbox{\ifmmode \Diamond \else $\Diamond$\fi} \def\necbox{\mathop{\mathchoice \exboxhwt{1.4}{1.4}{.25} \exboxhwt{1.4}{1.4}{.25} \exboxhwt{1.0}{1.0}{.2} \exboxhwt{.85}{.85}{.15}}\,} \def\sqqtleft{\raise1ex\hbox{\vbox{ \hrule height.033ex \hbox{\vrule width.033ex height.75ex \kern.65ex \vrule width0ex} \hrule height0ex}}} \def\sqqtright{\raise1ex\hbox{\vbox{ \hrule height.033ex \hbox{\vrule width0ex height.75ex \kern.65ex \vrule width.033ex} \hrule height0ex}}} \def\sqquote#1{\hbox{$\,\sqqtleft\negqtrthin\hbox{#1}\negqtrthin\sqqtright\,$}} \let\sqqts=\sqquote \def\sqqtl{\hbox{$\,\sqqtleft\negqtrthin$}} \def\sqqtr{\hbox{$\negqtrthin\sqqtright\,$}} \let\midd=\vert % for disjunctive phrase-structure rules \def\synbar{$\vert$} \def\concat{\raisebox{4pt}{$\frown$}} % for concatenating Exp's \def\obs{\ifmmode\vec{s}\else$\vec{s}$\fi} \def\epsil{\mathrel{\epsilon}} \def\notepsil{\mathrel{\!\not{\!\epsil\,}}} \def\icon#1{${\cal C}#1$} \def\idis#1{${\cal D}#1$} \def\univ{\ifmmode V_{\!\cal A}\else $V_{\!\cal A}$\fi} \let\mmuniv=\univ \def\parauniv{\ifmmode V_{\!\cal A}[{\cal X}]\else $V_{\!\cal A}[{\cal X}]$\fi} \let\mmparauniv=\parauniv \def\cequal{\mathrel :=} \def\gam#1#2{\ifmmode{\Gamma_{#1}(#2)}\else{$\Gamma_{#1}(#2)$}\fi} \def\plfp#1{\hbox{$I_{\gam{2}{#1,\cdot}}^{\infty}$}} \def\jay#1#2{\hbox{$J_{#1}^{#2}$}} \def\jaylessdef#1#2{\hbox{$\bigcap_{\beta < #2} J_{#1}^{\beta}$}} \def\jayless#1#2{\hbox{$J_{#1}^{< #2}$}} \def\gfp#1{\hbox{$J_{#1}^{\infty}$}} \def\lfp#1{\hbox{$I_{#1}^{\infty}$}} \def\matr#1{$$\left[\nxtwomatrix#1\right]$$} \def\nxtwomatrix#1{\,\vcenter{\normalbaselines\m@th \ialign{$##$\hfil&\quad\hfil$##$\crcr \mathstrut\crcr\noalign{\kern-\baselineskip} #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,} \def\ta{\ifmmode\tau\else$\tau$\fi} \def\si{\ifmmode\sigma\else$\sigma$\fi} \mathchardef\leadsto"3A3B % squiggly arrow \def\BEL{\ifmmode\hbox{\it BEL\/}\else{\it BEL\/}\fi} %-------some Aczel stuff----------- \def\AC{\ifmmode\hbox{\it AC}\else{\it AC}\fi} \def\AFA{\ifmmode\hbox{\it AFA}\else{\it AFA}\fi} \def\ABS{\hbox{ABS}} \def\BAFA{\ifmmode\hbox{\it BAFA}\else{\it BAFA}\fi} \def\BA{\ifmmode\hbox{\it BA}\else{\it BA}\fi} \def\Cat{\hbox{\it Cat}} \def\CCS{\ifmmode\hbox{\it CCS}\else{\it CCS}\fi} \def\FAFA{\ifmmode\hbox{\it FAFA}\else{\it FAFA}\fi} \def\FA{\ifmmode\hbox{\it FA}\else{\it FA}\fi} \def\FCR{\hbox{\it FCR}} \def\FLT{\hbox{\sc FLT}} \def\GA{\ifmmode\hbox{\it GA}\else{\it GA}\fi} \def\NSA{\ifmmode\hbox{\it NSA}\else{\it NSA}\fi} \def\SA{\ifmmode\hbox{\it S\&A}\else{\it S\&A}\fi} \def\SAFA{\ifmmode\hbox{\it SAFA}\else{\it SAFA}\fi} \def\SCCS{\ifmmode\hbox{\it SCCS}\else{\it SCCS}\fi} \def\Sssa{\hbox{\it SS\&SA}} \def\TS{\ifmmode\hbox{\it TS}\else{\it TS}\fi} \def\ZFC{\ifmmode\hbox{\it ZFC\/}\else{\it ZFC\/}\fi} \def\ZF{\ifmmode\hbox{\it ZF}\else{\it ZF}\fi} \def\dprec{\prec\mskip-4.5mu\prec} \def\defequal{\;\;\buildrel{\rm def}\over{=}\;\;} \def\cross{\mathord{\hbox{$\times$}}} \def\cents{\hbox{\rm\rlap/c}} \def\circit#1{{\ooalign{\hfil\raise.07ex\hbox{\scriptrm #1}\hfil\crcr \leavevmode\hbox{\cal\char'015}}}} \def\upharpoonright{\hbox{\phten\char'172}} \let\restr=\upharpoonright \def\qdots{\ifmmode \ldots \else $\ldots$\fi} \def\fourdots{\ifmmode .\ldots \else $.\ldots$\fi} \def\pt#1{\phantom{#1}} %\mathcode`<="413C % changed for lp.tex -ejb 1-Oct-91 %\mathcode`>="413E \def\LaTeX{L\kern-.3em\raise.5ex\hbox{\smallerrm A}\kern-.15em T\kern-.1667em\lower.5ex\hbox{E}\kern-.125em X} \def\csli{\hbox{\sc CSLI}} \def\stass{\hbox{\sc STASS}} %------------------------------------ % the following stuff was for the commutation diagrams in Aczel's ch 7 % (diagonal arrows done by hand!) \def\mapright#1{\smash{ \mathop{\hbox to 3pc{\rightarrowfill}}\limits^{\displaystyle #1}}} \def\maprightb#1{\smash{ \mathop{\hbox to 3pc{\rightarrowfill}}\limits_{\displaystyle #1}}} \def\mapdownr#1{\Big\downarrow \rlap{$\vcenter{\hbox{$#1$}}$}} \def\mapdownl#1{\Big\downarrow \llap{$\vcenter{\hbox{$#1$}}$}} \def\mapleft#1{\smash{ \mathop{\hbox to 3pc{\leftarrowfill}}\limits^{\displaystyle #1}}} \def\mapleftb#1{\smash{ \mathop{\hbox to 3pc{\leftarrowfill}}\limits_{\displaystyle #1}}} \def\mapupr#1{\Big\uparrow \rlap{$\vcenter{\hbox{$#1$}}$}} \def\mapupl#1{\Big\uparrow \llap{$\vcenter{\hbox{$#1$}}$}} \catcode`@=11 \def\maprightp{\mathop{\hbox to 3pc{\rightarrowfill}}} \def\maphorbarp{\raise2pt\hbox to 3pc{\hrulefill}} \newbox\strtbx \setbox\strtbx=\hbox{\vrule height4pt depth2pt width0pt} \def\strt{\relax\ifmmode\copy\strtbx\else\unhcopy\strtbx\fi} \def\maphorbar#1{\smash{ \mathop{\raise2pt\hbox to 3pc{\strt\hrulefill}}\limits^{\displaystyle #1}}} \def\mapverbar{\Big|} \def\maphookright{\mathop{\hbox to 3pc{\righthookfill}}} \def\maphookleft{\mathop{\hbox to 3pc{\lefthookfill}}} \def\maphookup{\Biglhookup} %\def\maphookup{\mapup} % temporary \def\mapleftright{\mathop{\hbox to 3pc{\leftrightarrowfill}}} \def\mapupdown{\Big\updownarrow} \def\mapupdownr#1{\Big\updownarrow \rlap{$\vcenter{\hbox{$#1$}}$}} \def\mapdown{\Big\downarrow} \def\mapup{\Big\uparrow} \def\righthookfill{$\m@th\mathord\lhook\mkern-4mu \mathord- \mkern-6mu \cleaders\hbox{$\mkern-2mu \mathord- \mkern-2mu$}\hfill\mkern-6mu \mathord\rightarrow$} \def\lefthookfill{$\m@th\mathord\leftarrow\mkern-6mu \mathord- \mkern-6mu \cleaders\hbox{$\mkern-2mu \mathord- \mkern-2mu$}\hfill\mkern-6mu \mathord\rhook$} \def\leftrightarrowfill{$\m@th\mathord\leftarrow\mkern-6mu% \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill \mkern-6mu\mathord\rightarrow$} \catcode`@=12 % at signs are no longer letters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % *************************** % **** THMS, DEFNS, ETC. **** % *************************** % %%%%%%%%%%%% modified Barwise format: % this is how the headings for theorems (etc) are made. Say: % \beginthm % Then the body of the theorem. % \endthm % % They will be automatically numbered in these categories: % propositions, lemmas, claims, theorems, corollaries together % definitions by themselves % exercises by themselves % examples by themselves \def\emph{\ifnum \fam=\itfam \ifvmode \rm \else {\it \/}\rm \fi \else \it \fi} \def\betweenskip{\vskip-\belowthingskip\noindent} \newcount \theoremno \theoremno=0 \newcount \definitionno \definitionno=0 \newcount \exampleno \exampleno=0 \newcount \exerciseno \exerciseno=0 \def\zeroall{\global\theoremno=0 \global\exampleno=0 \global\exerciseno=0 \global\definitionno=0 \global\figureno=0 \global\tableno=0} \newif\ifdecnumb \decnumbfalse \def\firstno{\ifdecnumb \chapterlabel.\else\fi} \def\theoremnumber{\firstno\number\theoremno} \def\definitionnumber{\firstno\number\definitionno} \def\examplenumber{\firstno\number\exampleno} \def\exercisenumber{\firstno\number\exerciseno} \long\def\beginthmthing#1{\advance\theoremno by 1 \vskip-\lastskip\vskip\abovethingskip \begingroup \noindent {\bf #1 \theoremnumber:} \it } \long\def\begindefthing#1{\advance\definitionno by 1 \vskip-\lastskip\vskip\abovethingskip \begingroup \noindent {\bf #1 \definitionnumber:} \rm } \long\def\beginslthmthing#1{\advance\theoremno by 1 \vskip-\lastskip\vskip\abovethingskip \begingroup \noindent {\sl #1 \theoremnumber:} \it } \def\endthing{\unskip\endgroup\vskip\belowthingskip\noindent} \def\endthnoskip{\unskip\endgroup\noindent} \def\beginax{\beginthmthing{Axiom}} \let\endax=\endthing \def\begindef{\begindefthing{Definition}} \let\enddef=\endthing \def\beginthm{\beginthmthing{Theorem}} \let\endthm=\endthing \def\beginths{\beginthmthing{Thesis}} \let\endths=\endthing \def\beginprop{\beginthmthing{Proposition}} \let\endprop=\endthing \def\beginlem{\beginthmthing{Lemma}} \let\endlem=\endthing \def\begincor{\beginthmthing{Corollary}} \let\endcor=\endthing \def\beginclm{\beginthmthing{Claim}} \let\endclm=\endthing \def\beginchoice{\beginslthmthing{Choice}} \let\endchoice=\endthing \def\beginexam{\advance\exampleno by 1 \vskip-\lastskip\vskip\abovethingskip \begingroup \noindent {\bf Example \examplenumber:} \rm } \let\endexam=\endthing \def\continueexam{ %does not advance counter \vskip-\lastskip\vskip\abovethingskip \begingroup % for "consequtive" running examples \noindent {\bf Example \examplenumber, cont'd:} \rm } \let\endcontexam=\endthing \def\continueexamn#1{ % does not advance counter \vskip-\lastskip\vskip\abovethingskip \begingroup % use with interspersed running eg's \noindent {\bf Example #1:} \rm } % usage: \continueexamn{5, cont'd} ... \endcexn \let\endcontexamn=\endthing % or: \continueexamn{\examno{-2}, cont'd} ... \def\beginexer{\advance\exerciseno by 1 \vskip-\lastskip\vskip\abovethingskip \begingroup \noindent {\sl Exercise\/} \exercisenumber: } \let\endexer=\endthing %------------------------ %\def\ptbox{\ifelevenpoint \mathchoice %\boxhwt8{5.5}{.3}\boxhwt8{5.5}{.3}\boxhwt53{.2}\boxhwt42{.15} % \else \iftenpoint \mathchoice %\boxhwt{7.3}5{.28}\boxhwt{7.3}5{.28}\boxhwt{4.8}{2.7}{.2}\boxhwt{3.8}2{.15} % \else \mathchoice %\boxhwt{6.6}{4.5}{.2}\boxhwt{6.6}{4.5}{.2}\boxhwt4{2.5}{.15}\boxhwt{3.5}2{.15} % \fi \fi} \def\ptbox{\mathchoice \exboxhwt{1.5}{1.0}{.25} \exboxhwt{1.5}{1.0}{.25} \exboxhwt{1.1}{.7}{.2} \exboxhwt{.85}{.55}{.15}} \def\proofbox{\hbox{$\ptbox\,$}} \def\beginproof{\noindent {\it Proof.\/} \ } \def\endproof{\nobreak\vskip-\bls\rightline\proofbox \vskip\belowthingskip\noindent} \def\mmendproof{\nobreak\vskip-\lastskip\endproof \vskip2\belowthingskip\noindent} %------------------------ \def\therefore{\hbox{\tinysy \lower.15ex \hbox{\tinysy \char'016 \char'016}\hskip-.735em \raise1.25ex \hbox{\tinysy \char'016}}} \let\thrfr=\therefore % three circles in a small pyramid %------------------------ % for refering to numbered theorems, corollaries, etc (like \dispno) \def\thmno#1{\begingroup\advance\theoremno by #1\ignorespaces \theoremnumber\ignorespaces\endgroup } \let\axno=\thmno \let\propno=\thmno \let\lemno=\thmno \let\corno=\thmno \let\clmno=\thmno \def\defno#1{\begingroup\advance\definitionno by #1\ignorespaces \definitionnumber\ignorespaces\endgroup } \def\examno#1{\begingroup\advance\exampleno by #1\ignorespaces \examplenumber\ignorespaces\endgroup } \def\exerno#1{\begingroup\advance\exerciseno by #1\ignorespaces \exercisenumber\ignorespaces\endgroup } %------------------------ % need something for "labelling" examples, axioms, definitions, and theorems % (sorta like in LaTeX) ... % Usage: directly after \beginthing{...}, do: \label{yourlabel} % Then cite by: \ref{yourlabel} (gives just a numeral, the theorem % (etc) number; text must explicitly supply parentheses or, in % lecstyle, the initial chapterlabel+period)...to cite a theorem in % chapter 3, do "3.\ref{\flag}" \newcount\labeltag \def\label#1{\advance\labeltag by 1 \countdef #1=\labeltag #1=\number\theoremno} \def\labelexam#1{\advance\labeltag by 1 \countdef #1=\labeltag #1=\number\exampleno} \def\labelexer#1{\advance\labeltag by 1 \countdef #1=\labeltag #1=\number\exerciseno} \def\labelpage#1{\advance\labeltag by 1 \countdef #1=\labeltag #1=\number\pageno} \def\ref#1{\the #1} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % a second format (modified Aczel): % this is how the headings for theorems, etc. are made % say: \theorem{Then the body of the theorem.} (inside braces!) % They will be automatically numbered in these categories: % definitions, propositions, lemmas, claims, theorems, corollaries together % exercises by themselves % examples by themselves % If you want to have something in the same format as one of these, % say: \newthing{first letter}{restofletters:\quad} % the funny grouping is because the first letter is capital and the % rest are in small caps \def\newthing#1{\smallskip\noindent{\bf #1^^|#1|}} % \bf was \csc \def\firstnumber{\iflecstyle \chapterlabel \else \sectionnumber \fi} \long\def\statething#1#2{\advance\theoremno by 1 \vskip-\lastskip \vskip\abovethingskip \noindent {\bf \firstnumber.\theoremnumber}\enspace {\bf #1}: {\it #2}\par\vskip\belowthingskip} \def\titlelemma#1#2{\vskip\abovethingskip\newthing{#1}:\par\nobreak \centerline{\sl #2}\vskip\belowthingskip} \def\vartitlelemma#1#2{\vskip\abovethingskip\newthing{#1}:\par\nobreak {\noindent \sl #2}\vskip\belowthingskip} \def\definition{\statething{Definition}} \def\proposition{\statething{Proposition}} \def\lemma{\statething{Lemma}} \def\claim{\statething{Claim}} \def\theorem{\statething{Theorem}} \def\corollary{\statething{Corollary}} \def\exercise{\statething{Exercise}} \def\example{\statething{Example}} \def\proof{\noindent{\it Proof.\/} \ } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % ************************* % **** LOCAL CONTROL **** % ************************* % % this sorta stuff belongs in the master .tex file for current job; % don't uncomment this stuff here! % hyphenation exceptions \hyphenation{seman-tic seman-tics anti-foun-da-tion anaph-ora ana-phor-ic ana-phor-i-cal-ly or-gan-ism en-vi-ron-ment in-for-ma-tion pro-po-si-tion} %\overfullrule=0pt % include this to get rid of line-overflow marks %\doublespace % a pseudo-doublespace macro ... must precede 'style' % command (below) % %\lecstyle % csli lecture notes format (tenpoint) %\repstyle % csli reports format (larger page, tenpoint) %\reponestyle % one-sided csli reports format (larger page, tenpoint) %\msstyle % singlesided, tenpoint, ... %\psychstyle % Amer Psych Assoc format (need to input psych.macros) % %\elevenpoint % include if default for specified 'style' is not okay. %\tenpoint % must come AFTER the 'style' command. \tenpoint is % the default: looks slick, but is harder to read % %\baselinecontrol{#pts} % allows finer control than doublespace. Must % follow 'style' and environment commands. % %\makeindex % include if index mechanism is to be used %\indexmodefalse % include this when making camera-ready copy % (to make invisible the index entries in the margins). % currently set to \proofmodetrue. % %\draft{..text..} % '...text...' allowing up to 40 characters or so; % e.g., 'not for quotation, do not copy'. % makes centered footline saying 'DRAFT (date) ..text..' %\draftfalse % turns \draft off --- for camera-ready copy % To produce only a subset of pages, put the page numbers on separate % lines in a file called pages.tex \let\Shipout=\shipout \newread\pages \newcount\nextpage \openin\pages=pages \def\getnextpage{\ifeof\pages\else {\endlinechar=-1\read\pages to\next \ifx\next\empty % in this case we should have eof now \else\global\nextpage=\next\fi}\fi} \ifeof\pages\else\message{OK, I'll ship only the requested pages!} \getnextpage\fi \def\shipout{\ifeof\pages\let\next=\Shipout \else\ifnum\pageno=\nextpage\getnextpage\let\next=\Shipout \else\let\next=\Tosspage\fi\fi \next} \newbox\garbage \def\Tosspage{\deadcycles=0\setbox\garbage=}