\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
