\newtoks\fontlist % the font list itself \newcount\listcount % used to traverse font's list \newcount\fontno % actual font number within the list \def\dftface{} % default font face (\rm) % default font size \newdimen\dftsize \dftsize=15pt % working font-size \newdimen\wftsize \wftsize=15pt % small-caps \newdimen\smallc \newif\ifsmall \def\beginsmallcaps{\global\smalltrue} \def\endsmallcaps{\global\smallfalse} \newcount\status \status=0 \def\face{} \newcount\fontstyle \fontstyle=0 \def\style{\ifcase\fontstyle roman\or italic\or slant\fi} \newcount\fontvariant \fontvariant=0 \def\variant{\ifcase\fontvariant roman\or medium\or bold\or black\fi} \newcount\tmpstyle \tmpstyle=0 \newcount\tmpvariant \tmpvariant=0 % Font commands \def\fontcommand{% Set the actual font according to face style, variant and size values \ifsmall\setsize{}\else% we've got small caps, change their size \font\wfont=\fontname\csname\face-\style-\variant\endcsname\space at\wftsize\wfont% \fi} \def\setsize#1{% Set the desired font size for the actual set \ifsmall% \smallc=\wftsize \advance \smallc by -2.2pt \font\wfont=\fontname\csname\face-\style-\variant\endcsname\space at\smallc\wfont% \else% \font\wfont=\fontname\csname\face-\style-\variant\endcsname\space at#1\wfont% \xdef\wftsize{#1}\fi} \def\countfontlist{% count item numbers within the font list \listcount=0 \def\\##1{\advance\listcount1\relax}\the\fontlist} \def\registerfont#1{% register a font adding it to the font list \countfontlist \let\\=\relax \edef\act{\noexpand\fontlist={\the\fontlist \\{#1}}}\act} \def\setfont#1{% Set the desired font as active (if it exists) \listcount=0 \def\ok{}% \def\\##1{\advance\listcount by1\relax \def\orig{##1} \def\arg{#1}% \ifx\orig\arg\xdef\face{#1}\def\ok{1}\fi}\the\fontlist% \ifx\empty\ok \immediate\write16{THE FONT '#1' IS NOT REGISTERED!}% \status=1 % update status \else% \fontcommand\fi} \def\registerfontface#1#2{% register a font metric \edef\esc{\escapechar=\the\escapechar}% \escapechar=-1% \global\catcode`-=11% \noexpand\font#1=#2 \esc\relax \global\catcode`-=12} \def\installfont#1#2{% wrapper for registerfontface \expandafter\registerfontface\csname #1\endcsname{#2}} % % Variants % \def\mf#1{\tmpvariant=\fontvariant \fontvariant=1 {\fontcommand{#1}}% \fontvariant=\tmpvariant} \def\bf#1{\tmpvariant=\fontvariant \fontvariant=2 {\fontcommand{#1}}% \fontvariant=\tmpvariant} \def\bc#1{\tmpvariant=\fontvariant \fontvariant=3 {\fontcommand{#1}}% \fontvariant=\tmpvariant} % % Styles % \def\it#1{\tmpstyle=\fontstyle \fontstyle=1 {\fontcommand{#1}}% \fontstyle=\tmpstyle} \def\sl#1{\tmpstyle=\fontstyle \fontstyle=2 {\fontcommand{#1}}% \fontstyle=\tmpstyle} \def\sc#1{\beginsmallcaps% {\fontcommand\expandafter\uppercase{#1}}\endsmallcaps} \def\setrm#1#2{% set \rm command \def\savesize{\dftsize} % we don't want the default size changed if we're wrong \xdef\dftsize{#2} \xdef\wftsize{#2} \setfont{#1} \ifnum\status>0 % there was an error \xdef\dftsize{\savesize} % restore the default size \status=0 % reset status \immediate\write16{\noexpand\rm command hasn't been set}% \else% \global\def\rm{\xdef\dftsize{#2} \xdef\wftsize{#2} \setfont{#1}}% \immediate\write16{\noexpand\rm has command been set to #1 at #2}\fi} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % First of all, we need to install and register our fonts, in no % particular order % \registerfont {berkeley} % registers the berkeley family \installfont {berkeley-roman-roman} {pbyk8r} \installfont {berkeley-roman-medium} {pbym8r} \installfont {berkeley-roman-bold} {pbyb8r} \installfont {berkeley-roman-black} {pbyc8r} \installfont {berkeley-italic-roman} {pbyko8r} \installfont {berkeley-italic-medium} {pbymo8r} \installfont {berkeley-italic-bold} {pbybo8r} \installfont {berkeley-italic-black} {pbyco8r} \installfont {berkeley-slant-roman} {pbyki8r} \installfont {berkeley-slant-medium} {pbymi8r} \installfont {berkeley-slant-bold} {pbybi8r} \installfont {berkeley-slant-black} {pbyci8r} \registerfont {vera} % registers the vera-mono family \installfont {vera-roman-roman} {fvmr8r} \installfont {vera-roman-medium} {fvmr8r} \installfont {vera-roman-bold} {fvmb8r} \installfont {vera-roman-black} {fvmb8r} \installfont {vera-roman-italic} {fvmro8r} \installfont {vera-italic-roman} {fvmro8r} \installfont {vera-italic-medium} {fvmro8r} \installfont {vera-italic-bold} {fvsbo8r} \installfont {vera-italic-black} {fvsbo8r} \installfont {vera-slant-roman} {fvmro8r} \installfont {vera-slant-medium} {fvmro8r} \installfont {vera-slant-bold} {fvsbo8r} \installfont {vera-slant-black} {fvsbo8r} \setrm{berkeley}{15pt}\rm % set up the \rm command % setup the page as we want it \advance \hoffset by -.88in \advance \voffset by -.44in \parindent=0pt \parskip=10pt \hsize=600pt \vsize=900pt \baselineskip=16.5pt \lineskip=2pt \lineskiplimit=2pt \def\ret{\hfill\break} (Berkeley 15pt)\ret roman \mf{medium} \bf{bold} \bc{black} \sl{slanted} \it{italic} \sc{small caps,} and CAPS \mf{medium \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bf{bold \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bc{black \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \setsize{20pt}\ret\ret(Berkeley 20pt)\ret roman \mf{medium} \bf{bold} \bc{black} \sl{slanted} \it{italic} \sc{small caps,} and CAPS \mf{medium \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bf{bold \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bc{black \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \setsize{22.4pt}\ret\ret(Berkeley 22.4pt)\ret roman \mf{medium} \bf{bold} \bc{black} \sl{slanted} \it{italic} \sc{small caps,} and CAPS \mf{medium \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bf{bold \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bc{black \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \setfont{vera}\setsize{12pt}\ret\ret(Vera mono 15pt)\ret roman \mf{medium} \bf{bold} \bc{black} \sl{slanted} \it{italic} \sc{small caps,} and CAPS \mf{medium \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bf{bold \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bc{black \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \setsize{16pt}\ret\ret(Vera mono 20pt)\ret roman \mf{medium} \bf{bold} \bc{black} \sl{slanted} \it{italic} \sc{small caps,} and CAPS \mf{medium \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bf{bold \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \bc{black \sl{slanted} \it{italic} \sc{small caps,} and CAPS} \end