\hoffset=-0.3truecm \hsize=16.5truecm \vsize=24.5truecm \font\tolvfet=dcbx12 \language\german \hyphenation{nicht-eng-li-sche} \nopagenumbers \def\idag{[16.\ März 1997]} \def\TJ{\ooalign{\hidewidth\vrule height 1.0ex depth -0.96ex width 0.42em\kern0.03em\hidewidth\crcr T}} \def\tj{\leavevmode\rlap{\vrule height 0.65ex depth -0.64ex width 0.28em}t} \headline{\ifnum\pageno>1 \rm\idag\hfil Seite \folio\else\rm\idag\hfil\fi} \centerline{\tolvfet Euro{\TeX}} \bigskip\noindent Ab Version 3.0 erlaubt {\TeX} Eingabe von Achtbitfonts. In Euro{\TeX} hat man das ausgenutzt, so daß nichtenglische Buchstaben in höchtsmöglichem Grade wie englische Buchstaben behandelt werden. Diese Beschreibung betrifft die Euro{\TeX}-Erweiterungen, aufbauend auf \qt{plain} {\TeX}, Version 3.141, mit Verwendung von dc-Fonts. \item{$\bullet$}Nichtenglische Buchstaben sind im Textteil des Manuskripts erlaubt (in Gleichungen nur durch Gebrauch von{\tt\ \backslash hbox}). Man kann alle Buchstaben im Font ISO Latin 1 außer dem Buchstaben{\tt\ \"y }verwenden. Buchstaben wie{\tt\ ä ö ü ß à â ç è é ê î ï ô û ù æ ø å }lassen sich also direkt in die{\tt\ tex}-Datei eintasten. Umschreibungen wie{\tt\ \backslash "a \backslash "o \backslash "u \backslash ss \backslash `a \backslash \caret a \backslash c c \backslash `e \backslash 'e \backslash \caret e \backslash \caret\backslash i \backslash "\backslash i \backslash \caret o \backslash \caret u \backslash `u \backslash ae \backslash o \backslash aa }werden aber weiterhin verstanden. Die Buchstaben im Font ISO Latin 1 können auch in Namensbefehlen verwendet werden. Zeichen in ISO Latin 1, die nicht Buchstaben sind, werden in der Regel nicht verstanden. {\TeX} versteht aber die Zeichen{\tt\ § ¡ ¿ £ « » }in Textmodus und die Zeichen{\tt\ $±$ $·$ }in Mathematikmodus. \item{$\bullet$}{\TeX} kann Wörter trennen, die die Buchstaben im dc-Font enthalten. Die Behandlung wird dieselbe, unabhängig davon, ob die Buchstaben direkt oder mittels Makros eingegeben werden. \item{$\bullet$}Sprachen lassen sich durch den Befehl{\tt\ \backslash language\backslash $\langle${\rm Sprache}$\rangle$} wählen, wobei $\langle$Sprache$\rangle$ eines der Wörter {\tt english} {\tt german} {\tt french} {\tt italian} {\tt polish} {\tt danish} {\tt norwegian} {\tt swedish} {\tt icelandic} {\tt finnish} ist. %Wörter{\tt\ english german french italian polish %danish norwegian swedish icelandic finnish }ist. Bei der Wahl einer Sprache werden Regeln für Silbentrennung, Anführungszeichen und Satzleerraum gesetzt. Für jede der zehn Sprachen ist eine Trenntabelle mit Silbentrennungsregeln eingelesen. Richtige Anführungszeichen in jeder Sprache werden durch den Befehl{\tt\ \backslash qt\{$\langle${\rm Text}$\rangle$\}\ }oder --- für einfache Anführungszeichen ---{\tt\ \backslash siqt\{$\langle${\rm Text}$\rangle$\}} erzeugt. Die unterschiedlichen Anführungszeichen werden unten behandelt. Satzleerraum ist für alle Sprachen außer Französisch zu{\tt\ \backslash nonfrenchspacing }definiert; für Französisch ist er{\tt\ \backslash frenchspacing}. Innerhalb eines Dokuments kann man beliebig oft zwischen den Sprachen wechseln. Die Sprachwahl gilt, bis eine neue Sprache gewählt wird. Beim Auslaß des Befehls{\tt\ \backslash language\backslash $\langle${\rm Sprache}$\rangle$ }wird Englisch gewählt. \item{$\bullet$}Test auf die gewählte Sprache läßt sich mittels des Befehls{\tt\ \backslash ifnum\backslash language=\backslash englishhyphenation }durchführen. Entsprechend für die anderen Sprachen. Andere{\tt\ \backslash if}-Tests lassen sich auch benutzen. \item{$\bullet$}Anführungszeichen werden traditionell unterschiedlich in den einzelnen Sprachen geschrieben. Die üblichsten Schreibweisen in den zehn Sprachen sind: \hihi{Englisch} \lohi{Deutsch} \ltgt{Französisch} \ltgt{Italienisch} \lohi{Polnisch} \lohi{Dänisch} \ltgt{Norwegisch} \hiqq{Schwedisch} \lohi{Isländisch} \hiqq{Finnisch}. Durch den Befehl{\tt\ \backslash qt\{$\langle${\rm Text}$\rangle$\}\ }werden die erwähnten Anführungszeichen in den zehn Sprachen erzeugt. Einfache Anführungszeichen erhält man durch den Befehl{\tt\ \backslash siqt\{$\langle${\rm Text}$\rangle$\}}. Mit diesem Befehl ergibt sich also: \sihihi{Englisch} \silohi{Deutsch} \siltgt{Französisch} \siltgt{Italienisch} \silohi{Polnisch} \silohi{Dänisch} \siltgt{Norwegisch} \sihiqq{Schwedisch} \silohi{Isländisch} \sihiqq{Finnisch}. Unabhängig von der Sprachwahl sind weiterhin{\tt\ `` }und{\tt\ '' }Ligaturen für `` und~''. Ferner sind{\tt\ << }und{\tt\ >> }Ligaturen für << und >>. Diese erhält man auch durch direkte Eingabe von {\tt\ « }und{\tt\ »}. Ebenfalls werden selbstverständlich die Einzelzeichen ` und ' durch die Eingaben{\tt\ ` }und{\tt\ ' }erzeugt. Auch die übrigen Anführungszeichen lassen sich unabhängig von der gewählten Sprache erzeugen. Die Anführungszeichen erscheinen, wie in der untenstehenden Tabelle gezeigt. Die Tabelle zeigt gleichzeitig, in welcher Sprache ein Anführungszeichen traditionell gebraucht wird. \halign{\qquad\qquad\tt #\hfil&\qquad ergibt\quad #\hfil&\qquad #\hfil\cr \backslash lohi\{unten-oben\}&\lohi{unten-oben}& Deutsch Polnisch Dänisch Isländisch\cr \backslash hihi\{oben-oben\}&\hihi{oben-oben}&Englisch Spanisch Italienisch\cr \backslash hiqq\{oben-gleiche\}&\hiqq{oben-gleiche}& Schwedisch Finnisch Norwegisch\cr \backslash ltgt\{außen\}&\ltgt{außen}& Französisch Italienisch Spanisch Norwegisch\cr \backslash gtlt\{innen\}&\gtlt{innen}&Deutsch Dänisch\cr \backslash gtgt\{rechts\}&\gtgt{rechts}&Schwedisch Finnisch\cr} \item{}Einfache Anführungszeichen erscheinen durch ein vorangestelltes{\tt\ si}, d.h.\ mittels der Makros{\tt\ \backslash silohi \backslash sihihi \backslash sihiqq \backslash siltgt \backslash sigtlt \backslash sigtgt}. Bei vorangestellten Gänsefüßchen ergibt der Makro{\tt\ \backslash hiqq }eine bessere Lage als die Ligatur{\tt\ ''}: \halign{\qquad\qquad\tt #\hfil&\qquad ergibt\quad #\hfil\cr \backslash hiqq\{Schwedisch\}&\hiqq{Schwedisch}\cr ''Schwedisch''&''Schwedisch''.\cr} \item{}Sehen Sie den Unterschied? \item{$\bullet$}Makros für Buchstaben und diakritische Zeichen. Zusätzlich zu den Buchstaben, die im {\TeX}-Buch definiert sind, haben folgende Zeichen eigene Namen: \halign{\qquad\qquad\tt #\hfil&\qquad ergibt\quad #\hfil&\ #\hfil&\qquad #\hfil\cr \backslash dh \backslash DH &\dh &\DH &(Edh)\cr \backslash th \backslash TH &\th &\TH &(Thorn)\cr \backslash ng \backslash NG &\ng &\NG &(lappisches Äng)\cr \backslash y \ \backslash Y &\y &\Y &(niederländisches ij)\cr \backslash dj \backslash DJ &\dj &\DJ &(kroatisches und lappisches durchstrichenes d)\cr \backslash lp \backslash Lp &\hbox{\lp}&\hbox{\Lp}&(katalanisches l Punkt, wie in \qt{para\lp lel}).\cr} \item{}({\tt\backslash lp }ist eigentlich kein Buchstabe, sondern ein Makro, der ein Punkt hinter das l anbringt, falls das Wort dort nicht getrennt wird.) Diakritische Zeichen (Umlaute, Akzente u.ä.) lassen sich erzeugen, wie im {\TeX}-Buch beschrieben. Drei zusätzliche Makros sind definiert: \halign{\qquad\qquad\tt #\hfil&\qquad ergibt\quad #\hfil&\qquad #\hfil\cr \backslash k o &\k o &(Krummhaken, Ogonek, rechtsverschoben für \k A, \k E, \k a, \k u)\cr \backslash p L &\p L &(Strich, nur für tschechisches und slowakisches \p d, \p t, \p l, \p L und lettisches \p g)\cr \backslash r u &\r u &(Kringel).\cr} \item{}Mit den obigen Makros kann man Namen wie Lech Wa\l\k esa, Pel\.eda Lazdyn\k u, Pie\v s\p tany, \TH ingvellir, Morgunbla\dh i{\dh} und B\'a\dj a\v soaivi schreiben. Richtige Schreibungen solcher Namen lassen sich nicht anhand der traditionellen cm-Fonts erzeugen. \item{$\bullet$}Der Kurzbefehl{\tt\ \backslash| }wird benutzt, um Zeichen zu scheiden. Er wird benutzt, um ein Wort von einem Bindestrich (-) zu scheiden, falls {\TeX} es nicht schafft, den Ausdruck zu trennen. Falls zum Beispiel {\TeX} den Ausdruck{\tt\ \$n\$-Komponentensystem }nicht trennen kann, sollte man stattdessen schreiben: {\tt\$n\$-\backslash|Komponentensystem}. Ebenfalls, wenn {\TeX} es nicht schafft, das Wort vor dem Bindestrich in einem Ausdruck wie{\tt\ Tschebyschow-Polynome }zu trennen, sollte man stattdessen schreiben:{\tt\ Tschebyschow\backslash|-Polynome}. Mit einem solchen Gebrauch von{\tt\ \backslash| }wird {\TeX} die aktuellen Wörter trennen können. Hinter einem Apostroph (') läßt sich{\tt\ \backslash| }auf dieselbe Weise benutzen. Um {\TeX} dazu zu bringen, das Wort \qt{d'Alembert} zu trennen, schreibe man{\tt\ d'\backslash|Alembert}. Hinter einem Schrägstrich (/) läßt sich auch{\tt\ \backslash| }auf diese Weise benutzen, aber der Makro{\tt\ \backslash hskip0pt }ist dort besser, weil dieser einen Umbruch unmittelbar hinter dem Schrägstrich erlaubt. Der Kurzbefehl{\tt\ \backslash| }läßt sich auch dazu benutzen, die Zeichen einer Ligatur zu scheiden. Somit ergibt{\tt\ fl }die Ligatur \qt{fl}, aber{\tt\ f\backslash|l }ergibt \qt{f\|l}. Eine solche Scheidung der Ligaturen ist kaum wichtig, aber für kyrillische Fonts kann sie notwendig sein. In Mathematikmodus ergibt{\tt\ \backslash| }das Normzeichen $\|$. \item{$\bullet$}Für deutsche Silbentrennung sind zwei Makros definiert. Der Makro{\tt\ \backslash SS }ist großes ß (Eszett). Er ergibt die Ausgabe \qt{SS}, ruft aber eine andere Silbentrennung hervor als diejenige, die man durch die Schreibweise{\tt\ SS} erhält. Der Befehl{\tt\ \backslash SS }ergibt immer richtige Silbentrennung für großes ß. Dies ist in der untenstehenden Tabelle gezeigt: \halign{\qquad\qquad\tt #\hfil&\qquad ergibt\quad #\hfil&\qquad #\hfil\cr GRÖSSE &GRÖS-SE &(falsch)\cr GRÖ\backslash SS E &GRÖ-SSE &(richtig, vergleiche Grö-ße)\cr MASSTHEORIE &MASSTHEO-RIE &(ein Bindestrich fehlt)\cr MA\backslash SS THEORIE &MASS-THEO-RIE &(vollständig, wie in Maß-theo-rie).\cr} \item{}Der Makro{\tt\ \backslash ck }(und der für große Buchstaben zugehörige{\tt\ \backslash CK}) ergibt richtige Silbentrennung nach der alten Rechtschreibung bei der Buchstabenverbindung \qt{ck}. Mit der Schreibweise{\tt\ Verrü\backslash ck ungen }erhält man somit die Trennmöglichkeiten \qt{Ver-rückungen}, \qt{Verrük-kungen} und \qt{Verrückun-gen}. Der Makro muß aber nicht in Wörtern wie \qt{rückwärts} benutzt werden, in denen \qt{ck} nicht getrennt werden kann. Die Schreibweise \hbox{\tt rü\backslash ck wärts} ergäbe die Trennung \qt{rük-kwärts} (falsch), während die Schreibweise{\tt\ rückwärts }die Trennung \qt{rück-wärts} ergibt (richtig). \item{$\bullet$}Für Skandinavisch und Deutsch vor der Rechtschreibungsreform sind Makros für drei gleiche Konsonanten, die zu zwei Konsonanten zusammengezogen sind, definiert. Solche Konsonantengruppen müssen derart getrennt werden, daß $2+1$ gleiche Konsonanten entstehen. Beispiele solcher Wörter sind \qt{Nu\lll ösung} und \qt{Progra\mmm odul} (Deutsch) und \qt{to\ppp unkt} und \qt{ta\lll inje} (Norwegisch), die durch Trennung an der aktuellen Stelle \qt{Null-lösung}, \qt{Programm-modul}, \qt{topp-punkt} und \qt{tall-linje} heißen. Durch die Schreibweisen{\tt\ Nu\backslash lll ösung}, {\tt Progra\backslash mmm odul}, {\tt to\backslash ppp unkt }und{\tt\ ta\backslash lll inje }wird immer die richtige Ausgabe dieser Wörter erzeugt. Folgende Makros ergeben richtige Behandlung solcher Konsonantengruppen:{\tt\ \backslash bbb},{\tt\ \backslash ddd},{\tt\ \backslash fff},{\tt\ \backslash ggg},{\tt\ \backslash kkk},{\tt\ \backslash lll},{\tt\ \backslash mmm},{\tt\ \backslash nnn},{\tt\ \backslash ppp},{\tt\ \backslash rrr},{\tt\ \backslash sss},{\tt\ \backslash ttt}. (Entsprechend für große Buchstaben:{\tt\ \backslash BBB},{\tt\ \backslash DDD}, usw.) \item{$\bullet$}Die Achtbitfonts enthalten einige Zeichen, die eigene Namen haben. Diese sind in der untenstehenden Tabelle gezeigt: \halign{\qquad\qquad\tt #\hfil&\qquad ergibt\quad #\hfil&\qquad #\hfil\cr \backslash pound &\pound\cr \backslash promille &\promille\cr \backslash ? &\? &(umgekehrtes Fragezeichen)\cr \backslash ! &\! &(umgekehrtes Ausrufezeichen)\cr \backslash caret &\caret &(Einschaltungszeichen (etwas verschieden von Zirkumflex \^{}))\cr \backslash wave &\wave &(Wiederholungszeichen (etwas verschieden von Tilde \~{}))\cr \backslash underscore &\underscore &(Unterstrich (verschieden vom Makro{\tt\ \backslash \underscore}, der \_ ergibt))\cr \backslash visiblespace &\visiblespace &(sichtbares Leerzeichen).\cr} \item{}Die Zeichenfolgen{\tt\ ?`\ }und{\tt\ !`\ }waren früher Ligaturen für \? und \!, diese sind aber nicht mehr definiert. In Mathematikmodus ist der Kurzbefehl{\tt\ \backslash !\ }weiterhin als \qt{negativer kleiner Leerraum} definiert. Die Schreibweise{\tt\ \backslash it\backslash\$ }ergab früher {\it\pound}, %eigentlich: $\mathchar"424 $, ergibt aber jetzt {\it\$}. Die Zeichen{\tt\ < > | }(und{\tt\ "}) in Textmodus waren früher nur in Schreibmaschinenschrift verwendbar, können aber jetzt in allen Textfonts benutzt werden. Die Makros{\tt\ \backslash\{},{\tt\ \backslash\}\ }und{\tt\ \backslash backslash }waren früher nur in Mathematikmodus definiert, gelten aber jetzt auch in Textmodus. \item{$\bullet$}Im Makro{\tt\ \backslash hyphenation }lassen sich sowohl die Buchstaben in ISO Latin 1 wie Makros für die Buchstaben in den dc-Fonts benutzen. Man kann also{\tt\ \backslash hyphenation\{ång-ström\} }oder{\tt\ \backslash hyphenation\{\backslash aa ng-str\backslash "om\} }schreiben. In beiden Fällen wird \qt{Ångström} immer richtig getrennt. Geschweifte Klammern lassen sich aber nicht in {\tt \backslash hyphenation} benutzen. Somit ergibt {\tt \backslash hyphenation\{\{\backslash aa\}ng-str\backslash "om\}} eine Fehlermeldung in {\TeX}. \item{$\bullet$}In den Makros{\tt\ \backslash uppercase }und{\tt\ \backslash lowercase }können die Buchstaben in ISO Latin 1 und Makros für diakritische Zeichen benutzt werden. Makros für eigene Buchstaben wie{\tt\ \backslash aa \backslash oe \backslash l }werden aber nicht richtig behandelt. Auch nicht Buchstaben, die ihr diakritisches Zeichen wechseln (wie \p d, \v D und \p t, \v T), werden richtig behandelt. Somit ergibt{\tt\ \backslash uppercase\{\backslash "o\backslash oe\backslash ss\backslash l\backslash k a\backslash "\backslash i\backslash p t\} }die Ausgabe \qt{\uppercase{\"o\oe\ss\l\k a\"\i\p t}}. Um diesem abzuhelfen, sind zwei neue Makros{\tt\ \backslash upcase }und{\tt\ \backslash lowcase }eingeführt. Diese ergeben richtige Behandlung für alle Buchstaben in den dc-Fonts, ob sie direkt oder mittels Makros geschrieben sind, samt die meisten Buchstaben mit diakritischen Zeichen. Somit ergibt der Befehl\hbox{\tt\ \backslash upcase\{\backslash "o\backslash oe\backslash ss\backslash l\backslash k a\backslash "\backslash i\backslash p t\} }die Ausgabe \qt{\upcase{\"o\oe\ss\l\k a\"\i\p t}}. Eine Ausnahme bilden die litauischen Vokale mit Ogonek (\k i, \k u) und die lettischen Konsonanten mit Cedille (\p g, \c k, \c l, \c n). {\TeX} gibt eine Fehlermeldung, wenn man versucht, diese mit{\tt\ \backslash upcase }oder{\tt\ \backslash lowcase }zu behandeln. Die Makros{\tt\ \backslash upcase }und{\tt\ \backslash lowcase }wirken außerdem nicht über Abschnitte. Die aktiven Zeichen{\tt\ § ¡ £ « » }dürfen nicht mit{\tt\ \backslash uppercase}, und damit auch nicht mit{\tt\ \backslash upcase}, benutzt werden. {\TeX} gibt eine Fehlermeldung bei solchem Gebrauch. Die entsprechenden Makros{\tt\ \backslash S \backslash !\ \backslash pound \backslash qt }lassen sich aber benutzen. \item{$\bullet$}Ausgabe in eine Datei (mit{\tt\ \backslash write}) --- z.B.\ in Verbindung mit Erarbeitung eines Registers --- war früher für nichtenglische Buchstaben problematisch in {\TeX}. Alle Buchstaben in ISO Latin 1 werden jetzt als solche ausgegeben, ob sie direkt oder mit Makros eingeben sind. Andere dc-Buchstaben werden als Makros auf die Gestalt{\tt\ \backslash char `\caret\caret xy } ausgegeben. Beispielsweise wird{\tt\ \backslash "o }als{\tt\ ö }ausgegeben, {\tt \backslash ss }wird als{\tt\ ß }ausgegeben, {\tt \backslash oe }wird als{\tt\ \backslash char `\caret\caret f7 } ausgegeben, während{\tt\ \backslash k a }als{\tt\ \backslash char `\caret\caret a1 } ausgegeben wird. Weil der Makro{\tt\ \backslash char `\caret\caret xy }nachfolgende Leerzeichen verschluckt, bedeutet dies, daß ein Zwischenraum hinter einem Wort, das mit einem solchen Makro endet, verschwinden wird. Buchstaben, die nicht in die dc-Fonts eingehen, die aber mit {\TeX} gebildet werden können, werden normalerweise als Makros ausgegeben. Eine Ausnahme bilden die litauischen Vokale mit Ogonek (\k i, \k u) und die lettischen Konsonanten mit Cedille (\p g, \c k, \c l, \c n). Diese lassen sich nicht mit {\TeX} weiter verarbeiten, wenn sie in eine Datei geschrieben werden. Die Probleme mit schwer lesbaren oder nicht verarbeitbaren Makros werden durch Verwendung von{\tt\ \backslash string }reduziert. Beispielsweise ergibt der Befehl{\tt\ \backslash string\backslash k\backslash space a }die Ausgabe{\tt\ \backslash k a}. Falls aber die Wörter, die in eine Datei geschrieben sind, sortiert werden sollen, sind in der Praxis nur die Buchstaben, die in ISO Latin 1 eingehen, für eine solche Ausgabe zweckmäßig. \item{$\bullet$}Die dc-Fonts werden überall in Textmodus benutzt. In Mathematikmodus werden die cm-Fonts benutzt, wie im {\TeX}-Buch beschrieben. Unten ist der Font dcr10 (Zehnpunkt-Antiqua) gezeigt. Die Zeichen stehen in allen dc-Fonts auf derselben Stelle. Die dc-Fonts enthalten die Buchstaben der wichtigsten europäischen Sprachen, die mit lateinischer Schrift geschrieben werden. Leider wurde kein Platz für die katalanischen Buchstaben \lp, \Lp, die litauischen Buchstaben \.e, \.E, \k i, \k I, \k u, \k U, \=u, \=U und die lettischen Buchstaben \=a, \=A, \=e, \=E, \=\i, \=I, \=u, \=U, \p g, \c G, \c k, \c K, \c l, \c L, \c n, \c N\ gefunden. Aus nordischer Sicht ist es auch von Interesse, daß die lappischen Buchstaben \tj, \TJ\ fehlen. Auf der anderen Seite gehen angeblich die Buchstaben \"y, \"Y in keine europäische Sprache ein. Die niederländischen Buchstabenverbindungen \y, \Y\ scheinen auch, einen sehr beschränkten Nutzwert zu haben. \vfil\eject % A testbed for font evaluation (see The METAFONTbook, Appendix H) \tracinglostchars=0 \tolerance=1000 \raggedbottom \nopagenumbers \parindent=0pt \newlinechar=`@ \hyphenpenalty=200 \doublehyphendemerits=30000 \newcount\m \newcount\n \newcount\p \newdimen\dim \chardef\other=12 \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\hours{\n=\time \divide\n 60 \m=-\n \multiply\m 60 \advance\m \time \twodigits\n\twodigits\m} \def\twodigits#1{\ifnum #1<10 0\fi \number#1} \def\init{%\message{@Name of the font to test = } \def\fontname{dcr10} %\read-1 to\fontname \startfont %\message{Now type a test command (\string\help\space for help):} } \def\startfont{\font\testfont=\fontname % \leftline{\sevenrm Test of \fontname\unskip\ on \today\ at \hours} \medskip \testfont \setbaselineskip \ifdim\fontdimen6\testfont<10pt \rightskip=0pt plus 20pt \else\rightskip=0pt plus 2em \fi \spaceskip=\fontdimen2\testfont % space between words (\raggedright) \xspaceskip=\fontdimen2\testfont \advance\xspaceskip by\fontdimen7\testfont} {\catcode`\|=0 \catcode`\\=\other |gdef|help{|message{% \init switches to another font;@% \end or \bye finishes the run;@% \table prints the font layout in tabular format;@% \text prints a sample text, assuming TeX text font conventions;@% \sample combines \table and \text;@% \mixture mixes a background character with a series of others;@% \alternation interleaves a background character with a series;@% \alphabet prints all lowercase letters within a given background;@% \ALPHABET prints all uppercase letters within a given background;@% \series prints a series of letters within a given background;@% \lowers prints a comprehensive test of lowercase;@% \uppers prints a comprehensive test of uppercase;@% \digits prints a comprehensive test of numerals;@% \math prints a comprehensive test of TeX math italic;@% \names prints a text that mixes upper and lower case;@% \punct prints a punctuation test;@% \bigtest combines many of the above routines;@% \help repeats this message;@% and you can use ordinary TeX commands (e.g., to \input a file).}}} \def\setbaselineskip{\setbox0=\hbox{\n=0 \loop\char\n \ifnum \n<255 \advance\n 1 \repeat} \baselineskip=6pt \advance\baselineskip\ht0 \advance\baselineskip\dp0 } \def\setchar#1{{\escapechar-1\message{\string#1 character = }% \def\do##1{\catcode`##1=\other}\dospecials \read-1 to\next \expandafter\finsetchar\next\next#1}} \def\finsetchar#1#2\next#3{\global\chardef#3=`#1 \ifnum #3=`\# \global\chardef#3=#2 \fi} \def\promptthree{\setchar\background \setchar\starting \setchar\ending} \def\mixture{\promptthree \domix\mixpattern} \def\alternation{\promptthree \domix\altpattern} \def\mixpattern{\0\1\0\0\1\1\0\0\0\1\1\1\0\1} \def\altpattern{\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0} \def\domix#1{\par\chardef\0=\background \n=\starting \loop \chardef\1=\n #1\endgraf \ifnum \n<\ending \advance\n 1 \repeat} \def\!{\discretionary{\background}{\background}{\background}} \def\series{\promptthree \!\doseries\starting\ending\par} \def\doseries#1#2{\n=#1\loop\char\n\!\ifnum\n<#2\advance\n 1 \repeat} \def\complower{\!\doseries{`a}{`z}\doseries{'31}{'34}\par} \def\compupper{\!\doseries{`A}{`Z}\doseries{'35}{'37}\par} \def\compdigs{\!\doseries{`0}{`9}\par} \def\alphabet{\setchar\background\complower} \def\ALPHABET{\setchar\background\compupper} \def\lowers{\docomprehensive\complower{`a}{`z}{'31}{'34}} \def\uppers{\docomprehensive\compupper{`A}{`Z}{'35}{'37}} \def\digits{\docomprehensive\compdigs{`0}{`4}{`5}{`9}} \def\docomprehensive#1#2#3#4#5{\par\chardef\background=#2 \loop{#1} \ifnum\background<#3\m=\background\advance\m 1 \chardef\background=\m \repeat \chardef\background=#4 \loop{#1} \ifnum\background<#5\m=\background\advance\m 1 \chardef\background=\m \repeat} \def\names{ {\AA}ngel\aa\ Beatrice Claire Diana \'Erica Fran\c{c}oise Ginette H\'el\`ene Iris Jackie K\=aren {\L}au\.ra Mar{\'\i}a N\H{a}ta{\l}{\u\i}e {\O}ctave Pauline Qu\^eneau Roxanne Sabine T\~a{\'\j}a Ur\v{s}ula Vivian Wendy Xanthippe Yv{\o}nne Z\"azilie\par} \def\punct{\par\dopunct{min}\dopunct{pig}\dopunct{hid} \dopunct{HIE}\dopunct{TIP}\dopunct{fluff} \$1,234.56 + 7/8 = 9\% @ \#0\par} \def\dopunct#1{#1,\ #1:\ #1;\ `#1'\ ?`#1?\ !`#1!\ (#1)\ [#1]\ #1*\ #1.\par} \def\bigtest{\sample hamburgefonstiv HAMBURGEFONSTIV\par \names \punct \lowers \uppers \digits} \def\math{\textfont1=\testfont \skewchar\testfont=\skewtrial \mathchardef\Gamma="100 \mathchardef\Delta="101 \mathchardef\Theta="102 \mathchardef\Lambda="103 \mathchardef\Xi="104 \mathchardef\Pi="105 \mathchardef\Sigma="106 \mathchardef\Upsilon="107 \mathchardef\Phi="108 \mathchardef\Psi="109 \mathchardef\Omega="10A \def\ii{i} \def\jj{j} \def\\##1{|##1|+}\mathtrial \def\\##1{##1_2+}\mathtrial \def\\##1{##1^2+}\mathtrial \def\\##1{##1/2+}\mathtrial \def\\##1{2/##1+}\mathtrial \def\\##1{##1,{}+}\mathtrial \def\\##1{d##1+}\mathtrial \let\ii=\imath \let\jj=\jmath \def\\##1{\hat##1+}\mathtrial} \newcount\skewtrial \skewtrial='177 \def\mathtrial{$\\A \\B \\C \\D \\E \\F \\G \\H \\I \\J \\K \\L \\M \\N \\O \\P \\Q \\R \\S \\T \\U \\V \\W \\X \\Y \\Z \\a \\b \\c \\d \\e \\f \\g \\h \\\ii \\\jj \\k \\l \\m \\n \\o \\p \\q \\r \\s \\t \\u \\v \\w \\x \\y \\z \\\alpha \\\beta \\\gamma \\\delta \\\epsilon \\\zeta \\\eta \\\theta \\\iota \\\kappa \\\lambda \\\mu \\\nu \\\xi \\\pi \\\rho \\\sigma \\\tau \\\upsilon \\\phi \\\chi \\\psi \\\omega \\\vartheta \\\varpi \\\varphi \\\Gamma \\\Delta \\\Theta \\\Lambda \\\Xi \\\Pi \\\Sigma \\\Upsilon \\\Phi \\\Psi \\\Omega \\\partial \\\ell \\\wp$\par} \def\mathsy{\begingroup\skewtrial='060 % for math symbol font tests \def\mathtrial{$\\A \\B \\C \\D \\E \\F \\G \\H \\I \\J \\K \\L \\M \\N \\O \\P \\Q \\R \\S \\T \\U \\V \\W \\X \\Y \\Z$\par} \math\endgroup} \def\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} % octal constant \def\hex#1{\hbox{\rm\H{}\tt#1}} % hexadecimal constant \def\setdigs#1"#2{\gdef\h{#2}% \h=hex prefix; \0\1=corresponding octal \m=\n \divide\m by 64 \xdef\0{\the\m}% \multiply\m by-64 \advance\m by\n \divide\m by 8 \xdef\1{\the\m}} \def\testrow{\setbox0=\hbox{\penalty 1\def\\{\char"\h}% \\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\A\\B\\C\\D\\E\\F% \global\p=\lastpenalty}} % \p=1 if none of the characters exist \def\oddline{\cr \noalign{\nointerlineskip} \multispan{19}\hrulefill& \setbox0=\hbox{\lower 2.3pt\hbox{\hex{\h x}}}\smash{\box0}\cr \noalign{\nointerlineskip}} \newif\ifskipping \def\evenline{\loop\skippingfalse \ifnum\n<256 \m=\n \divide\m 16 \chardef\next=\m \expandafter\setdigs\meaning\next \testrow \ifnum\p=1 \skippingtrue \fi\fi \ifskipping \global\advance\n 16 \repeat \ifnum\n=256 \let\next=\endchart\else\let\next=\morechart\fi \next} \def\morechart{\cr\noalign{\hrule\penalty5000} \chartline \oddline \m=\1 \advance\m 1 \xdef\1{\the\m} \chartline \evenline} \def\chartline{&\oct{\0\1x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&} \def\chartstrut{\lower4.5pt\vbox to14pt{}} \def\table{$$\global\n=0 \halign to\hsize\bgroup \chartstrut##\tabskip0pt plus10pt& &\hfil##\hfil&\vrule##\cr \lower6.5pt\null &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline} \def\endchart{\cr\noalign{\hrule} \raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B& &\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$\par} \def\:{\setbox0=\hbox{\char\n}% \ifdim\ht0>7.5pt\reposition \else\ifdim\dp0>2.5pt\reposition\fi\fi \box0\global\advance\n 1 } \def\reposition{\setbox0=\vbox{\kern2pt\box0}\dim=\dp0 \advance\dim 2pt \dp0=\dim} \def\centerlargechars{ \def\reposition{\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}}} \def\text{{\advance\baselineskip-4pt \setbox0=\hbox{abcdefghijklmnopqrstuvwxyz} \ifdim\hsize>2\wd0 \ifdim 15pc>2\wd0 \hsize=15pc \else \hsize=2\wd0 \fi\fi On November 14, 1885, Senator \& Mrs.~Leland Stanford called together at their San Francisco mansion the 24~prominent men who had been chosen as the first trustees of The Leland Stanford Junior University. They handed to the board the Founding Grant of the University, which they had executed three days before. This document---with various amendments, legislative acts, and court decrees---remains as the University's charter. In bold, sweeping language it stipulates that the objectives of the University are ``to qualify students for personal success and direct usefulness in life; and to promote the publick welfare by exercising an influence in behalf of humanity and civilization, teaching the blessings of liberty regulated by law, and inculcating love and reverence for the great principles of government as derived from the inalienable rights of man to life, liberty, and the pursuit of happiness.'' \moretext (!`THE DAZED BROWN FOX QUICKLY GAVE 12345--67890 JUMPS!)\par}} \def\moretext{?`But aren't Kafka's Schlo{\ss} and {\AE}sop's {\OE}uvres often na{\"\i}ve vis-\`a-vis the d{\ae}monic ph{\oe}nix's official r\^ole in fluffy souffl\'es? } \def\omitaccents{\let\moretext=\relax} \def\sample{\table\text} \ifx\noinit!\else\init\fi \table \end