inweb-bootstrap/Patterns/TeX/Base/inweb-macros.tex
2020-04-25 23:51:13 +01:00

222 lines
7.5 KiB
TeX

\def\weavesectionsss#1#2#3#4#5{\vfill\eject\noindent{\titlefont #2}\mark{#3}\vskip 0.5in\par\noindent\titlepage}
\def\weavesectionss#1#2#3#4#5{\vfill\eject\noindent{\stitlefont #2\hfill #5}\mark{#3}\bigskip\par\noindent\titlepage}
\def\weavesections#1#2#3#4#5{\bigskip\goodbreak\noindent{\bf #4#1. #2.}\mark{#3}\quad}
\def\weavesection#1#2#3#4#5{\bigskip\goodbreak\noindent{\bf #4#1.}\mark{#3}\quad}
\def\tweavesections#1#2#3#4#5{\bigskip\goodbreak\noindent{\bf #5.#4#1. #2.}\quad}
\def\tweavesection#1#2#3#4#5{\bigskip\goodbreak\noindent{\bf #5.#4#1.}\quad}
\def\nsweavesections#1#2#3#4#5{\noindent{\bf #4#1. #2.}\mark{#3}\quad}
\def\nsweavesection#1#2#3#4#5{\noindent{\bf #4#1.}\mark{#3}\quad}
\raggedbottom
\nopagenumbers
\newif\iftitle
\def\titlepage{\global\titletrue}
\headline={\iftitle\hfil\global\titlefalse\else\tenrm\hfil{\sourcefont \firstmark\qquad\the\pageno}\fi}
\titlepage
\def\quotesource#1{\medskip{\narrower\noindent{\sourcefont #1}\par}\smallskip}
\def\cast#1#2{{#1}$\;\rightarrow\;${#2}}
\def\comp#1#2{{#1}$\;\sim\;${#2}}
\def\al{$\alpha$}
\def\be{$\beta$}
\def\nonterminal#1{$\langle${\xreffont\pdfliteral direct{1 1 0 0 k}#1\special{PDF:0 g}}$\rangle$}
\def\fixed#1{{\bf #1}}
\def\from{\par\qquad\quad$\leftarrow$\quad}
\def\continuation{\par\qquad\quad\phantom{$\leftarrow$}\quad}
\font\tentex=cmtex10
\font\sourcefont=cmss10
\font\xreffont=cmss9
\hyphenchar\xreffont=-1
\font\usagefont=cmss8
\font\inchhigh=cminch
\font\sinchhigh=cminch at 60pt
\font\titlefont=cmss10 at 24pt
\font\stitlefont=cmss10 at 20pt
\font\sstitlefont=cmss10 at 20pt
\font\ssstitlefont=cmr10 at 12pt
\font\ninerm=cmr9
\font\eightrm=cmr8
\font\sixrm=cmr6
\font\ninei=cmmi9
\font\eighti=cmmi8
\font\sixi=cmmi6
\skewchar\ninei='177 \skewchar\eighti='177 \skewchar\sixi='177
\font\ninesy=cmsy9
\font\eightsy=cmsy8
\font\sixsy=cmsy6
\skewchar\ninesy='60 \skewchar\eightsy='60 \skewchar\sixsy='60
\font\sevenss=cmss10 at 7pt
\font\eightss=cmssq8
\font\eightssi=cmssqi8
\font\ninebf=cmbx9
\font\eightbf=cmbx8
\font\sixbf=cmbx6
\font\ninett=cmtt9
\font\eighttt=cmtt8
\hyphenchar\tentt=-1 % inhibit hyphenation in typewriter type
\hyphenchar\ninett=-1
\hyphenchar\eighttt=-1
\font\ninesl=cmsl9
\font\eightsl=cmsl8
\font\nineit=cmti9
\font\eightit=cmti8
\font\tenu=cmu10 % unslanted text italic
\font\magnifiedfiverm=cmr5 at 10pt
\font\manual=manfnt % font used for the METAFONT logo, etc.
\font\cmman=cmman % font used for miscellaneous Computer Modern variations
\newskip\ttglue
\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
\def\it{\fam\itfam\tenit}%
\textfont\itfam=\tenit
\def\sl{\fam\slfam\tensl}%
\textfont\slfam=\tensl
\def\bf{\fam\bffam\tenbf}%
\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
\scriptscriptfont\bffam=\fivebf
\def\tt{\fam\ttfam\tentt}%
\textfont\ttfam=\tentt
\tt \ttglue=.5em plus.25em minus.15em
\normalbaselineskip=12pt
\def\MF{{\manual META}\-{\manual FONT}}%
\let\sc=\eightrm
\let\big=\tenbig
\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}%
\normalbaselines\rm}
\def\ninepoint{\def\rm{\fam0\ninerm}%
\textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
\textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei
\textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
\def\it{\fam\itfam\nineit}%
\textfont\itfam=\nineit
\def\sl{\fam\slfam\ninesl}%
\textfont\slfam=\ninesl
\def\bf{\fam\bffam\ninebf}%
\textfont\bffam=\ninebf \scriptfont\bffam=\sixbf
\scriptscriptfont\bffam=\fivebf
\def\tt{\fam\ttfam\ninett}%
\textfont\ttfam=\ninett
\tt \ttglue=.5em plus.25em minus.15em
\normalbaselineskip=11pt
\def\MF{{\manual hijk}\-{\manual lmnj}}%
\let\sc=\sevenrm
\let\big=\ninebig
\setbox\strutbox=\hbox{\vrule height8pt depth3pt width\z@}%
\normalbaselines\rm}
\def\ttninepoint{\def\rm{\fam0\ninerm}%
\textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
\textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei
\textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
\def\it{\fam\itfam\nineit}%
\textfont\itfam=\nineit
\def\sl{\fam\slfam\ninesl}%
\textfont\slfam=\ninesl
\def\bf{\fam\bffam\ninebf}%
\textfont\bffam=\ninebf \scriptfont\bffam=\sixbf
\scriptscriptfont\bffam=\fivebf
\def\tt{\fam\ttfam\ninett}%
\textfont\ttfam=\ninett
\normalbaselineskip=11pt
\normalbaselines\rm}
\def\eightpoint{\def\rm{\fam0\eightrm}%
\textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
\textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei
\textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
\def\it{\fam\itfam\eightit}%
\textfont\itfam=\eightit
\def\sl{\fam\slfam\eightsl}%
\textfont\slfam=\eightsl
\def\bf{\fam\bffam\eightbf}%
\textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
\scriptscriptfont\bffam=\fivebf
\def\tt{\fam\ttfam\eighttt}%
\textfont\ttfam=\eighttt
\tt \ttglue=.5em plus.25em minus.15em
\normalbaselineskip=9pt
\def\MF{{\manual opqr}\-{\manual stuq}}%
\let\sc=\sixrm
\let\big=\eightbig
\setbox\strutbox=\hbox{\vrule height7pt depth2pt width\z@}%
\normalbaselines\rm}
\def\tenmath{\tenpoint\fam-1 } % use after $ in ninepoint sections
\def\tenbig#1{{\hbox{$\left#1\vbox to8.5pt{}\right.\n@space$}}}
\def\ninebig#1{{\hbox{$\textfont0=\tenrm\textfont2=\tensy
\left#1\vbox to7.25pt{}\right.\n@space$}}}
\def\eightbig#1{{\hbox{$\textfont0=\ninerm\textfont2=\ninesy
\left#1\vbox to6.5pt{}\right.\n@space$}}}
\catcode`@=11 % borrow the private macros of PLAIN (with care)
\def\|{\leavevmode\hbox{\tt\char`\|}} % vertical line
% macros for verbatim scanning
\chardef\other=12
\def\ttverbatim{\begingroup\ttninepoint\frenchspacing
\catcode`\\=\other
\catcode`\{=\other
\catcode`\}=\other
\catcode`\$=\other
\catcode`\&=\other
\catcode`\#=\other
\catcode`\%=\other
\catcode`\~=\other
\catcode`\_=\other
\catcode`\^=\other
\obeyspaces \obeylines \tt}
\outer\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=\z@
\catcode`\|=0 \rightskip-5pc \ttfinish}
{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
|obeylines % end of line is active
|gdef|ttfinish#1^^M#2\endtt{#1|vbox{#2}|endgroup|tenpoint$$}}
\catcode`\|=\active
{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}}
% macros for syntax rules (again, not in Appendix E)
\def\[#1]{\silenttrue\xref|#1|\thinspace{\tt#1}\thinspace} % keyword in syntax
\def\beginsyntax{\endgraf\nobreak\medskip
\begingroup \catcode`<=13 \catcode`[=13
\let\par=\endsyntaxline \obeylines}
\def\endsyntaxline{\futurelet\next\syntaxswitch}
\def\syntaxswitch{\ifx\next\<\let\next=\syntaxrule
\else\ifx\next\endsyntax\let\next=\endgroup
\else\let\next=\continuerule\fi\fi \next}
\def\continuerule{\hfil\break\indent\qquad}
\def\endsyntax{\medbreak\noindent}
{\catcode`<=13 \catcode`[=13
\global\let<=\< \global\let[=\[
\gdef\syntaxrule<#1>{\endgraf\indent\silentfalse\xref\<#1>}}
\def\is{\ $\longrightarrow$ }
\def\alt{\ $\vert$ }
% macros to demarcate lines quoted from TeX source files
\def\beginlines{\par\begingroup\nobreak\medskip\parindent\z@ \obeylines
\nobreak \everypar{\strut}}
\def\endlines{\endgroup\medbreak\noindent}