%
% LATEX $VER: GermanDoc.ltx 2.5 (26.11.94)
%
% BESCHREIBUNG: Diese LaTeX-Datei enthält die vollständige Beschreibung
%               und Dokumentation der Amiga-Implementierung von
%               MetaFont 2.71 für deutschsprachige Benutzer.  Eine
%               englische Übersetzung ist verfügbar.
%
% DATUM: 06.11.1993 (V1.0)
%
% AUTOR: Andreas Scherer
%        Roland-Straße 16
%        52070 Aachen
%        Germany
%        <scherer@genesis.informatik.rwth-aachen.de>
%
% Änderungen: 07.11.1993: Korrekturen (V1.1)
%             11.11.1993: Umstellung auf den `script' style (V1.2)
%             19.11.1993: Weitere Korrekturen (V1.3)
%             22.11.1193: Noch mehr Korrekturen (V1.4)
%             09.12.1993: Noch mehr Korrekturen (V1.5)
%             10.12.1993: Ich möchte mich ent-, ent-, ent...
%                         Es tut mir viel, viel, viel...
%                         Um das Online Display zu aktivieren, muß
%                         die Umgebungsvariable MFWTERM auf den
%                         kleingeschriebenen (!) Wert "amiterm"
%                         gesetzt werden (V1.6)
%             15.12.1993: Neue Versionen von PKtoGF und GFtype (V1.7)
%             10.01.1994: Drucker-Offset geändert (V1.8)
%             21.01.1994: Erweiterte Information über die Erzeugung
%                         von base-Dateien wegen Problemen mit `modes.mf'
%                         statt `pastex-modes.mf'.  Dieses Problem
%                         wurde von Stefan Sell gemeldet. (V1.9)
%             27.03.1994: Schon wieder Tippfehler. (V1.10)
%             29.04.1994: Trennfehler in `article'-Form. (V1.11)
%             17.05.1994: Anführungszeichenfehler. (V1.12)
%             18.06.1994: Copyright erweitert. (V1.13)
%             19.09.1994: Neue Version 2.1 von `modes.mf'. (V1.14)
%             23.09.1994: LaTeX2e ist längst offiziell.  (V1.15)
%             21.10.1994: `koma-script' ist Ersatz für `script'.  (V1.16)
%             10.11.1994: Komplette Überarbeitung für das Update.  (V2.0)
%             19.11.1994: Entgültiger Einbau von EVPaths abgeschlossen.
%                         Die internen Vorgaben werden angehängt.  (V2.1)
%             20.11.1994: Fehlender `*' im AMSFONTS Pfad.
%                         Zusätzlicher Eintrag `old-german/*'.  (V2.2)
%             21.11.1994: Weitere Anregungen von Giuseppe Ghibò.  (V2.3)
%             22.11.1994: Weitere Anregungen von Georg Heßmann.  (V2.4)
%             26.11.1994: Neueste Testergebnisse.  (V2.5)
%
% KONSISTENZPRÜFUNG: Die folgende Zeichenkette wurde automatisch durch das
%                    "CheckSum"-Programm von Robert Solovay erzeugt und
%                    darf nicht von Hand verändert werden.
%
%                    checksum = "61633 1131 7225 61487"
%
% URHEBERRECHT:
% Die gedruckte Form dieser Dokumentation ist urheberrechtlich geschützt.
% (c) 1993,1994 Andreas Scherer.  Alle Rechte sind vorbehalten.
%
% Die elektronische Form dieser Dokumentation ist urheberrechtlich geschützt.
% (c) 1993,1994 Andreas Scherer.  Alle Rechte sind vorbehalten.
%
% Die Anfertigung und Verteilung von unveränderten Kopien der
% elektronischen Form dieser Dokumentation ist erlaubt, sofern der
% elektronische Urheberrechtshinweis und dieser Berechtigungshinweis
% bei allen Kopien erhalten bleibt.
%
% Die Anfertigung und Verteilung von veränderten Versionen der
% elektronischen Form dieser Dokumentation ist erlaubt unter den
% Bedingungen für unveränderte Kopien, sofern das gesamte hiervon
% abgeleitete Werk unter den Bedingungen eines mit diesem
% vergleichbaren Berechtigungshinweises verteilt wird.

%\documentclass{article}
\documentclass[twoside,10pt]{scrartcl}
\usepackage{german}
% Die Datei "german.sty" von DANTE e.V. wird auf jeden Fall benötigt.
% Sie ist zum Beispiel bei PasTeX dabei.
% Falls Sie noch nicht über die KOMA-SCRIPT Stilfamilie verfügen, kann
% ich sie Ihnen zum einen bestens empfehlen, zum anderen können Sie aber
% auch diese Dokumentation mit der normalen ARTICLE-Klasse formatieren.
% Dazu müssen Sie lediglich die Zeile mit `\documentclass' durch die
% kommentierte Form ersetzen und in der Definition von `\bigmanual'
% "\magstep4" durch "\magstep3" austauschen.
% An dieser Stelle vielen Dank an Axel Sommerfeldt, der mich auf die
% KOMA-Script-Familie aufmerksam machte, als nach Umstellung auf LaTeX2e
% die alte Version nicht mehr funktionierte.

\language=1 % Deutsch in meiner mehrsprachigen TeX-Konfiguration

\newfont{\manual}{manfnt} % METAFONT in text
\newfont{\bigmanual}{manfnt scaled \magstep4} % METAFONT in titles

\newcommand{\names}[1]{{\small#1}}
\newcommand{\MetaFont}{{\manual META}\-{\manual FONT}}
\newcommand{\BigMetaFont}{{\bigmanual META}\-{\bigmanual FONT}}
\newcommand{\IniMF}{Ini\names{MF}}
\newcommand{\VirMF}{Vir\names{MF}}
\newcommand{\GFtoDVI}{\names{GF}to\names{DVI}}
\newcommand{\GFtoPK}{\names{GF}to\names{PK}}
\newcommand{\GFtype}{\names{GF}type}
\newcommand{\MFT}{\names{MFT}}
\newcommand{\PKtoGF}{\names{PK}to\names{GF}}
\newcommand{\PKtype}{\names{PK}type}
\newcommand{\VFtoVP}{\names{VF}to\names{VP}}
\newcommand{\VPtoVF}{\names{VP}to\names{VF}}
\newcommand{\DVIPS}{\texttt{DVIPS}}
\newcommand{\PASCAL}{\textsc{Pas\-cal}}
\newcommand{\CallMF}{Call\names{MF}}

\title{\BigMetaFont\ f"ur den {\sl AMIGA}\\
  \medskip Dokumentation zu Version 2.71\bigskip}

\author{Andreas Scherer\\
  Roland-Stra"se 16\\
  52070 Aachen\\
  Germany\\
  \texttt{\small scherer@genesis.informatik.rwth-aachen.de}}

\begin{document}

\maketitle

\begin{abstract}
\small\baselineskip=11pt
Dieser Text beschreibt meine Implementierung von \MetaFont\ in der
Version~2.71 f"ur den Commodore Amiga.  \MetaFont\ ist der Name eines
Systems zur Zeichensatzerzeugung von Prof.~Donald E. Knuth von der
Stanford Universit"at.  Es liest Textdateien mit \glq Programmen\grq,
die das Aussehen von Buchstaben, graphischen Symbolen oder anderen Elementen
festlegen, die f"ur die Erstellung von qualitativ hochwertigen Dokumenten
ben"otigt werden.  Schriftsatzsysteme wie \TeX\ verwenden die Informationen
"uber die Zeichensatzabmessungen, die von \MetaFont\ erzeugt werden, und
Druckertreiber oder Bildschirmanzeiger verwenden die Pixelinformationen,
wohin die "`Tinte"' gesetzt werden soll.  Der Einsatz der zugeh"origen
Programme wird einigerma"sen genau beschrieben, es wird aber keine
Einf"uhrung in die \MetaFont-Sprache selbst gegeben.  Genaue Informationen
"uber die Programmierung mit \MetaFont\ finden sich im Literaturverzeichnis.
(Abschnitt~\ref{bibliography} dieses Textes.)
\end{abstract}

\vfill
{\small\noindent\baselineskip=11pt
Die gedruckte Form dieser Dokumentation ist urheberrechtlich gesch"utzt.
\hfil\break
\copyright~1993,~1994 Andreas Scherer.  Alle Rechte sind vorbehalten.

\noindent
Die elektronische Form dieser Dokumentation ist urheberrechtlich gesch"utzt.
\hfil\break
\copyright~1993,~1994 Andreas Scherer.  Alle Rechte sind vorbehalten.

\noindent
Die Anfertigung und Verteilung von unver"anderten Kopien der elektronischen
Form dieser Dokumentation ist erlaubt, sofern der elektronische
Urheberrechtshinweis und dieser Berechtigungshinweis bei allen Kopien
erhalten bleibt.

\noindent
Die Anfertigung und Verteilung von ver"anderten Versionen der
elektronischen Form dieser Dokumentation ist erlaubt unter den
Bedingungen f"ur unver"anderte Kopien, sofern das gesamte hiervon
abgeleitete Werk unter den Bedingungen eines mit diesem vergleichbaren
Berechtigungshinweises verteilt wird.\par}

\newpage
\tableofcontents

\newpage
\section{Urheberrechtshinweise}
Das \MetaFont-Programm ist \copyright~1984 f"ur Donald E. Knuth.  Alle
Rechte sind vorbehalten.  Der vollst"andige \texttt{WEB}-Quelltext ist
ver"offentlicht als~\cite{knuth.d}.  Die zugeh"origen Hilfsprogramme
stammen von verschiedenen Autoren, unterliegen aber ausdr"ucklich nicht
dem Urheberrecht und d"urfen uneingeschr"ankt verwendet werden.

Diese Implementierung von \MetaFont~2.71 f"ur den Commodore Amiga ist
zu \names{FREEWARE} erkl"art.  Alle Rechte sind vorbehalten.  Sie d"urfen
das Paket verwenden, kopieren und weitergeben, und zwar in archivierter oder
installierter Form, aber nicht mehr als eine geringe Bearbeitungsgeb"uhr
f"ur Disketten und Versand verlangen.

Alle Programme dieses "`Anwenderbausatzes"' verwenden das "`EVPaths"'
Paket.  "`EVPaths"' ist \copyright~1994 f"ur Giuseppe Ghib\`o.  Alle
Rechte sind vorbehalten.  Der Einsatz von "`EVPaths"' erfolgt mit
freundlicher Genehmigung des Autors.  

Obwohl betr"achtliche Arbeit investiert wurde, das \MetaFont-Programm
fehlerfrei und zuverl"assig zu machen, wird keinerlei Gew"ahrleistung
"ubernommen;  der Autor und der Implementierer weisen jede Verantwortung
f"ur Sch"aden, die sich, direkt oder indirekt, aus der Benutzung
oder dem Verhalten dieser Programme ergeben, zur"uck.

Diese Arbeit war "`Liebesm"uhe"' und sowohl der Autor als auch der
Implementierer hoffen, da"s zuk"unftige Benutzer und Benutzerinnen
daran ihre Freude haben.

Bitte senden Sie Anmerkungen, Vorschl"age, Fehlermeldungen oder sonstige
Zuschriften an eine der Adressen, die auf der ersten Seite angegeben sind.
Dort k"onnen Sie auch ein "`Entwicklerpaket"' erhalten, das den kompletten
Quelltext mit allen "Anderungen und Erweiterungen umfa"st.
(Siehe Abschnitt~\ref{source} f"ur n"ahere Einzelheiten.)

\bigskip
\noindent\TeX\ ist ein Warenzeichen der American Mathematical Society.

\noindent\MetaFont\ ist ein Warenzeichen von Addison-Wesley Publishing Company.

\noindent Commodore ist ein eingetragenes Warenzeichen von
Commodore Electronics Limited.

\noindent Amiga, Amiga\names{DOS}, Amiga Kickstart und Amiga Workbench sind
eingetragene Warenzeichen von Commodore-Amiga Incorporated.

\noindent \names{SAS} und \names{SAS/C} sind eingetragene Warenzeichen von
\names{SAS} Institute Incorporated.

\noindent PostScript ist ein eingetragenes Warenzeichen von Adobe Systems
Incorporated.

\section{Systemvoraussetzungen}
Die minimale Rechnerkonfiguration, mit der diese Implementierung von
\MetaFont\ getestet wurde, war ein Commodore Amiga~2000 mit dem
handels"ublichen 68000~Prozessor von Motorola, 2~\names{MB} Chip\names{RAM}
und 4~\names{MB} Fast\names{RAM}, wobei mit den Standard\-einstellungen
tat\-s"ach\-lich nur etwa 1~\names{MB} benutzt wurde.  Der Speicherbedarf
kann sich in Abh"angigkeit vom zu generierenden Zeichensatz und den
gew"ahlten Einstellungen in der \MetaFont-Konfiguration erh"ohen. (Siehe
Abschnitt~\ref{memory}.)  Das Betriebssystem bestand aus Kickstart~37.175
und Workbench~38.36.  Alle in diesem Paket enthaltenen Programme k"onnen
unter Version~1.3 des Betriebssystems ablaufen. Nur die Bildschirmanzeige
von \MetaFont\ ben"otigt Version~2, da sie erweiterte Graphikfunktionen
einsetzt.  Bei Verwendung der Version~1.3 ist diese Eigenschaft
ausgeschaltet.

Es sind gesonderte Versionen der \IniMF- und \VirMF-Programme vorhanden,
die f"ur erweiterte Ger"ateausstattungen wie den Amiga~3000 oder Amiga~4000
oder Amigas mit Turbokarten gedacht sind.  Diese beiden Programme verwenden
Eigenschaften des 68020~Motorola Prozessors, die im 68000~Prozessor nicht
vorhanden sind.  Unter gleichen Bedingungen laufen diese Programmversionen
etwa zwanzig bis drei"sig Prozent schneller als die nicht-optimierten
Versionen, auf Amigas ohne Prozessor mit den 32~Bit-Erweiterungen st"urzen
sie jedoch ab!  Alle anderen Programme in diesem Paket sind so "ubersetzt,
da"s sie auf jeder handels"ublichen Amiga-Ausstattung laufen.

\MetaFont\ ist ein gro"ses System, gedacht f"ur gro"se Aufgaben.  Die
Erzeugung von \texttt{cmr10} f"ur den 300~dpi DeskJet-Druckertreiber aus dem
Pas\TeX-Paket ben"otigt auf einer 50~\names{MH}z schnellen 68030-Turbokarte
mit mathematischem Koprozessor und ausreichend viel 32~Bit-\names{RAM} nur
52~Sekunden, auf einem Standard-Amiga mit 7~\names{MH}z und recht langsamem
16~Bit \names{RAM} dagegen 10~Minuten und 50~Sekunden, obwohl die Programme
auf beiden Konfigurationen laufen.  Ein ganz brutaler Test, bei
deaktiviertem Fast\names{RAM} (es blieben nur 2~\names{MB} Chip\names{RAM},
in denen alle notwendigen Programme und die Eingabedateien Platz fanden),
ben"otigte 17~Minuten und 40~Sekunden.

\section{Kompatibilit"at}
Dies ist \MetaFont~2.71 f"ur den Commodore Amiga.  Es stimmt v"ollig
"uberein mit der originalen Implementierung von Donald E. Knuth und hat den 
\names{TRAP}-Test vom 25.~Januar 1992 gl"anzend bestanden.  Lediglich in
\texttt{trapman.tex} als zul"assig gekennzeichnete Abweichungen traten auf.
\texttt{diff}-Dateien, die den letzten Lauf des \names{TRAP}-Testes
dokumentieren, werden auf Anfrage vom Implementierer zug"anglich
gemacht.  (Siehe Abschnitt~\ref{source} zu Einzelheiten.)

Weiter enthalten sind die Hilfsprogramme \GFtoDVI\ Version~3.0 (Oktober
1989), \GFtoPK\ Version~2.3 (Juli 1990), \GFtype\ Version~3.1 (M"arz 1991),
\MFT\ Version~2 (Oktober 1989), \PKtoGF\ Version~1.1 (Oktober 1990) und
\PKtype\ Version~2.3 (November 1989) sowie \VFtoVP\ und \VPtoVF, beide in
der Version 1.2 (September 1990).

\section{Installation}
\label{install}
\subsection{Entpacken des Archives}
Der "`\MetaFont-Anwenderbausatz"' ist in sich vollst"andig; alles was
Sie zur Erzeugung wundersch"oner Zeichens"atze f"ur \TeX\ ben"otigen,
finden Sie darin.  Dieser Abschnitt beschreibt die verschiedenen
Unterverzeichnisse und ihren Inhalt.  Normalerweise sollte dieses Paket
in Form eines \texttt{LHA}-Archives vorliegen, das eine arbeitsf"ahige
Installation aller Programme und Skripten enth"alt.  Leider gibt es
kein \glq Installer\grq-Skript, aber die Installation ist trotzdem sehr
einfach.  Zuerst m"ussen Sie die Dateien mit dem Kommando
\begin{verbatim}
   > LHa x MetaFontV2.71[.lha] <Installationspfad oder -Device>
\end{verbatim}
auspacken.  (Sie ben"otigen dazu das \texttt{LHa}-Programm.  Sollten Sie es
noch nicht haben, holen Sie es sich von der Fish-Diskette~715 mit der
aktuellen Version.\footnote{Aber schicken Sie kein Geld an Stefan Boberg,
denn es erfolgt keine Lieferung!})  Ein Hauptverzeichnis \texttt{MetaFont}
wird angelegt, das das vollst"andige Archiv in einzelnen Unterverzeichnissen
enth"alt, wie sie im folgenden beschrieben werden.  Sie sollten dem
Hauptverzeichnis den Namen "`\texttt{MF:}"' mit "`\texttt{Assign}"'
zuweisen.  Insgesamt ben"otigen Sie weniger als 3~\names{MB} Platz auf der
Festplatte, um das komplette \MetaFont-System zu installieren.

\begin{description}
\item{\texttt{MetaFont/bases}:} Dieses Verzeichnis enth"alt die
\texttt{base}-Dateien, die \MetaFont\ zu Beginn eines Laufes sehr
schnell laden kann.  Hier finden Sie auch die Datei \texttt{plain.mf}
(Version~2.71) und einige Installationsdateien f"ur die Formate
\texttt{plain} und \texttt{cm}.  Neue \texttt{base}-Dateien sollten
in diesem Verzeichnis angelegt werden.

\item{\texttt{MetaFont/bin}:} Der wichtigste Teil dieses Paketes sind die
eigentlichen Programmdateien f"ur \MetaFont\ und die zugeh"origen
Hilfsprogramme.  Sie sollten dem Betriebssystem behilf"|lich sein, und die
\texttt{PATH}-Umgebungsvaria\-ble um einen Verweis auf dieses Verzeichnis
erweitern, damit die Programme aufgerufen werden k"onnen.  Eine
ausf"uhrlichere Beschreibung, wie die Programme aufzurufen sind, wird im
n"achsten Abschnitt~\ref{running} gegeben.

\item{\texttt{MetaFont/config}:} Die vorliegende Implementierung von
\MetaFont\ ist in der Lage, die Speicherbelegung beim Programmaufruf
anzupassen, falls die benutzten Einstellungen zu klein f"ur eine gestellte
Aufgabe sind.  In solch einem Fall bricht \MetaFont\ unwiderruf"|lich die
Verarbeitung mit der Fehlermeldung \texttt{METAFONT capacity exceeded,
sorry...} ab.  Die Konfigurationsdatei \texttt{mfmemory.config} enth"alt
Eintr"age der Form
\begin{verbatim}
   set memmax             65530     % default 30000
   set screenheight         200     % default  1024
   set <internal size> <user value> % default <value>
\end{verbatim}
Sie k"onnen die Einstellungen in beschr"anktem Ma"se ver"andern oder
einzelne Zeilen aus dieser Datei l"oschen, so da"s dann auf interne Werte
zur"uckgegriffen wird.  (Diese sind in der \glq default\grq-Spalte
vermerkt.  Siehe Abschnitt~\ref{memory} zu Einzelheiten "uber die
Speicherkonfiguration.)  Die Datei \texttt{modes} enth"alt eine Liste
von Einstellungen, die mit der betriebsfertigen \texttt{base}-Datei dieses
Benutzerbausatzes zusammenarbeiten.\footnote{Diese sind \emph{nicht}
vertr"aglich mit den Pas\TeX-Einstellungen aus \texttt{pastex-modes.mf} aus
dem CallMF Paket; sie beziehen sich stattdessen auf die Standardverteilung
\texttt{modes.mf}.}  Mehrere Drucker und der Standard-Previewer werden
unterst"utzt.  Sie k"onnen die Eintr"age an Ihre eigene Konfiguration
anpassen.

\item{\texttt{MetaFont/doc}:} Zumindest dieses Verzeichnis kennen Sie schon,
da Sie ja diesen Text lesen.  Hier finden Sie die Dokumentation zu
\MetaFont~2.71 sowohl in deutscher als auch in englischer Sprache.  Die
\LaTeX-Quellendateien m"ussen vorhanden sein, dagegen k"onnen die
\texttt{dvi}-Ausgabedateien bei unzureichendem Diskettenplatz gel"oscht
sein.  Diese k"onnen Sie mit Hilfe einer lauf"|f"ahigen \TeX-Installation
aber neu erzeugen; es werden keine speziellen Makros oder ungew"ohnlichen
Zeichens"atze ben"otigt.

\item{\texttt{MetaFont/inputs}:} Dieses Verzeichnis ist lediglich gedacht
f"ur \MetaFont-Program\-mierer und Systemadministratoren.  Es enth"alt
Textdateien, die f"ur die Erzeugung neuer oder ver"anderter
\texttt{base}-Dateien ben"otigt werden.  Hier sollten Sie zum Beispiel
die vollst"andige Sammlung der Computer Modern Zeichens"atze installieren,
dem Standard f"ur die meisten \TeX-Anwender.  Au"serdem k"onnen Sie hier
Ihre eigenen Zeichensatzprogramme hinzuf"ugen.

\item{\texttt{MetaFont/pool}:} \MetaFont\ (genau wie \TeX) ist ein
\PASCAL-Pro\-gramm und mu"s wegen der Einschr"ankungen dieser
Programmiersprache eine eigene Methode zur Verwaltung von Zeichenketten
anwenden.  Die \texttt{pool}-Datei \texttt{mf.pool} enth"alt alle Texte
und Meldungen, die \MetaFont\ auf Ihren Bildschirm oder in die Logdatei
ausgeben will.  Sie wurde maschinell durch \texttt{TANGLE} bei der
"Ubersetzung erzeugt und sollte nicht gel"oscht oder in irgendeiner Weise
ver"andert werden.

\item{\texttt{MetaFont/rexx}:} Dieses Verzeichnis enth"alt das Public Domain
Paket \glq\CallMF\grq\ (Version~1.0), bestehend aus drei ARexx-Skripten von
Georg He"smann, Martin Bok"am\-per, J"org H"ohle und Ulrich Wisser.
Es ist sehr sinnvoll in Zusammenhang mit He"smann's Pas\TeX\null.  Sowohl
der Bildschirmanzeiger als auch der Druckertreiber versuchen \CallMF\
aufzurufen, falls ein Zeichensatz in einer bestimmten Auf"|l"osung nicht
vorhanden ist.  Die ARexx-Skripten erzeugen den fehlenden Zeichensatz
entweder automatisch oder in einem gesonderten Lauf.

Die Dokumentation zu \CallMF~\cite{hessmann} finden Sie in einem
Unterverzeichnis von \texttt{rexx}, deshalb wird an dieser Stelle nicht
n"aher auf die Installation und Verwendung von \CallMF\ eingegangen.
Lediglich auf Kompatibilit"atsschwierigkeiten sei an dieser Stelle
hingewiesen.  Ich verwende derzeit ausschlie"slich Modi aus der
Standardverteilung \texttt{modes.mf}, Pas\TeX\ geht aber von
\texttt{pastex-modes.mf} aus.  Leider stimmen die Bezeichnungen
in diesen beiden Dateien nicht mit einander "uberein, so da"s hier
eine eigene Anpassung notwendig ist.

Empfohlen sei im Zusammenhang mit \CallMF\ auch Version~5.58 des Programmes
\DVIPS\ von Tomas Rokicki in der exzellenten Amiga-Anpassung von Giuseppe
Ghib\`o, die ebenfalls den Mechanismus mit den ARexx-Skripten verwendet.
\end{description}

\subsection{Steuerung der Konfigurationsgr"o"sen}
\label{memory}
Urspr"unglich handelt es sich bei \MetaFont\ (und \TeX) um ein
\PASCAL-Pro\-gramm, das nicht in der Lage ist, seine Speicherkonfiguration
zur Laufzeit anzulegen.  Um diese zu ver"andern, m"ussen Sie normalerweise
den Quelltext von \MetaFont\ mit ge"anderten internen Vorgabewerten neu
"ubersetzen.  Doch mit dieser Implementierung brauchen Sie nicht mehr die
Meldung "`\texttt{ask a wizard to enlarge me}"' f"urchten, sondern k"onnen
stattdessen selbst \glq zaubern\grq!  Sie wurde n"amlich mit Hilfe des
\texttt{Web2C}-Sprachwandlers aus der \names{UNIX}-Verteilung durchgef"uhrt
und somit ist es m"oglich, die zus"atzliche Eigenschaft zur Kontrolle der
internen Variablen einzubauen.

Die Programme \IniMF\ und \VirMF\ verwenden zur Einrichtung ihrer
Konfiguration die Datei \texttt{mfmemory.config}, die in einzelnen
Zeilen Anweisungen der Form
\begin{verbatim}
   set memmax       100000
   set screenheight    400
   set scalefactor       2
\end{verbatim}
enthalten sollte.  Die Beispieldatei im \texttt{config}-Verzeichnis \glq
\texttt{set}\grq zt die in meiner gegenw"artigen Standardkonfiguration
verwendeten Werte, die etwas h"oher sind als die internen Vorgabewerte.
Nicht alle Einstellungen m"ussen in dieser Datei angegeben werden.
Beachten Sie aber, da"s Sie auch nicht alle Einstellungen bis zum
Maximum hochdrehen k"onnen -- dazu m"u"sten Sie mehr als 8~Gigabyte
freien Speicher haben!\footnote{Sollten Sie soviel haben, dann glaube
ich Ihnen nicht!}

Wenn Sie eine Standard-\texttt{base}-Datei mit \IniMF\ erzeugen, so ist
jede weitere "Anderung der Konfiguration \texttt{mfmemory.config} zul"assig
f"ur \VirMF\ in Verbindung mit dieser speziellen base-Datei, au"ser
"Anderungen am Wert \texttt{memtop}.  Dies f"uhrt zur \MetaFont-Meldung
"`{\ttfamily(Fatal base file error; I'm stymied)}"', was anzeigt, da"s
diese \texttt{base}-Datei von einem \IniMF\ mit einer anderen Konfiguration
stammt.

Hier ist eine vollst"andige Liste aller Parameter, die in der
Konfigurationsdatei zul"as\-sig sind, ihre Vorgabewerte und einige
Regeln f"ur ihre kleinsten und gr"o"sten Werte:
\begin{center}
\begin{tabular}{|l|r|r|l|}\hline
  Bezeichnung & Vorgabe & Grenzwert & Zweck\\\hline
  \texttt{memmax} & 30000 & \texttt{maxhalfword} & Gr"o"se des Hauptspeichers\\
  \texttt{maxinternal} & 100 & ${}\leq259774$ & Anzahl der Internas\\
  \texttt{bufsize} & 500 & \texttt{maxhalfword} & Eingabezeichen\\
  \texttt{errorline} & 72 & \texttt{maxhalfword} & L"ange der Fehlerzeile\\
  \texttt{halferrorline} & 42 & $<$\texttt{errline$-15$} & Erste Fehlerzeile\\
  \texttt{maxprintline} & 79 & $\geq60$ & L"ange der Ausgabezeile\\
  \texttt{screenwidth} & 768 & 4095 & Breite der Bildschirmanzeige\\
  \texttt{screenheight} & 1024 & 4095 & H"ohe der Bildschirmanzeige\\
  \texttt{stacksize} & 30 & 300 & Anzahl der Eingabequellen\\
  \texttt{maxstrings} & 2000 & \texttt{maxhalfword} & Anzahl der Zeichenketten\\
  \texttt{poolsize} & 32000 & \texttt{maxhalfword} & und der enthaltenen Zeichen\\
  \texttt{movesize} & 5000 & 10000 & Speicher f"ur Oktantenschritte\\
  \texttt{maxwiggle} & 300 & 1000 & Gerundete Punkte pro Kreis\\
  \texttt{gfbufsize} & 100 & 4096 & Ausgabepuffergr"o"se\\
  \texttt{pathsize} & 300 & 1000 & Knotenzahl in einem Pfad\\
  \texttt{bistacksize} & 785 & 785 & Teilungsstack\\
  \texttt{headersize} & 25 & 100 & Worte in \names{TFM}-K"opfen\\
  \texttt{ligtablesize} & 5000 & 32510 & Ligaturen/Einr"uckungen\\
  \texttt{maxkerns} & 500 & 1000 & Unterschiedliche Abst"ande\\
  \texttt{maxfontdimen} & 50 & 100 & Anzahl von \glq fontdimen\grq sionen\\
  \texttt{memtop} & 30000 & \texttt{memmax} & H"ochste Speicherstelle\\
  \texttt{scalefactor} & 1 & 10 & Anzeige \glq\names{SF}\grq-fach verkleinert\\
  \texttt{maxinopen} & 6 & 20 & Anzahl der Ausgabedateien\\
  \texttt{paramsize} & 150 & 1000 & Makro-Parameter\\\hline
\end{tabular}
\end{center}
Einige dieser Werte werden vor ihrer Verwendung noch mit 4 oder~8
multipliziert, so da"s die tats"achlich ben"otigte Bytezahl f"ur eine
spezielle Einstellung nicht so einfach zu bestimmen ist.  Solange Sie
jedoch keine Probleme mit den Vorgabewerten oder dieser Standardkonfiguration
haben, empfehle ich Ihnen, sie so zu lassen.  In den meisten F"allen von
ungen"ugender Speichergr"o"se mu"s nur \texttt{memmax} erh"oht werden, und
dies wurde tats"achlich bis zum f"urchterlich hohen Wert~750.000 ausprobiert,
und zwar auf meinem Amiga~2000 mit 8~\names{MB} 32~Bit Fast\names{RAM}.

Sie k"onnen die Gr"o"se der Bildschirmanzeige durch Ver"anderung der beiden
Werte \texttt{screenwidth}, \texttt{screenheight} und \texttt{scalefactor}
beeinflussen.  Die Bedeutung der ersten beiden d"urfte klar sein, nur sei
angemerkt, da"s \texttt{screenheight} den Wert f"ur die {\em interlaced\/}
Darstellung bezeichnet, obwohl non-interlaced Bildschirmmodi automatisch
erkannt werden und entsprechend nur halb soviele Pixelzeilen angezeigt
werden.  Au"serdem wird durch die beiden Werte nicht die Fenstergr"o"se
sondern die zugeh"origen Werte \texttt{innerwidth} und \texttt{innerheight}
eingestellt.  Der \texttt{scalefactor} ist ein Reduktionsfaktor, das hei"st
die Anzeige wird sowohl in der H"ohe als auch in der Breite um diesen Faktor
verkleinert dargestellt.  Um sinnvoll mit dieser Einstellung arbeiten zu
k"onnen, enth"alt die mitgelieferte \texttt{plain.base} die internen Vorgaben
\begin{verbatim}
   screen_rows:=4095; screen_cols:=4095; % infinity
\end{verbatim}
wie sie in der Druckermodusdatei \texttt{modes.mf} festgelegt sind.  Bei
der Bildschirm\-anzeige verwendet \MetaFont\ den jeweils kleineren Wert
von \texttt{screenheight} und \texttt{screen\_rows} beziehungsweise
\texttt{screenwidth} und \texttt{screen\_cols}, so da"s mit diesen
Maximalwerten nur die in der Konfigurationsdatei angegebenen Werte
ber"ucksichtigt werden.

Im Unterschied zu "alteren Versionen von \VirMF\ ist es jetzt nicht mehr
notwendig, das "`Online Display"' explizit durch Setzen der
Umgebungsvariablen \texttt{MFWTERM} auf den (kleingeschriebenen) Wert
\verb+"amiterm"+ zu aktivieren.  Vorteilhafterweise sollte
\texttt{MFWTERM} gar nicht gesetzt sein.  Allerdings kann durch Angabe eines
abweichenden Wertes die Bildschirmanzeige auch in den Modi \texttt{proof}
und \texttt{smoke} unterdr"uckt werden.

\subsection{Verwendung der Umgebungsvariablen}
\label{environment}
\MetaFont\ kennt und verwendet zahlreiche Umgebungsvariablen bei der Suche
nach den unterschiedlichen Eingabedateien, f"ur den Aufruf des Systemeditors
als Antwort auf das \glq\texttt{E}\grq-Kommando im Fehlerfall und zur
Einstellung der Bildschirmanzeige.  \IniMF\ und \VirMF\ verwenden einen
Algorithmus zur rekursiven Suche nach \texttt{base}-Kommando\-dateien, der
Konfigurationsdatei \texttt{mfmemory.config}, den
Zeichensatzbeschreibungsprogrammen und der Textdatei \texttt{mf.pool}.  Auch
die zugeh"origen Hilfsprogramme kennen diese und weitere Umgebungsvariablen
und verwenden sie entsprechend.  In der alten Version kam es an einigen
Stellen zu unerw"unschten "Uberschneidungen in der Verwendung von
Umgebungsvariablen, die mit dieser neuen Version beseitigt sind.

Sie k"onnen die Umgebungsvariablen wie "ublich entweder mit dem Systemaufruf
\begin{verbatim}
    SetEnv <Variable> <Ersetzung>
\end{verbatim}
setzen oder ver"andern, um die bei Ihnen g"ultige Konfiguration zu
ber"ucksichtigen, oder Sie k"onnen die internen Standardwerte beibehalten.
Hier ist eine Liste der Suchpfad-Umge\-bungen, ihrer Vorgabewerte und
dessen, was \MetaFont\ in den jeweiligen Verzeichnissen zu finden hofft.

\begin{center}
\begin{tabular}{|l|l|l|}\hline
  Variable & Vorgabewert & Dateien\\
  \hline
  \texttt{MFBASES}  & \verb+"MF:bases"+ & \texttt{*.base} Kommandodateien\\
  \texttt{MFINPUTS} & \verb+"MF:inputs/*,"+ & \\
                    & \verb+"MF:mfinputs/*,"+ & \\
                    & \verb+"MF:inputs/amsfonts/sources/*,"+ & \\
                    & \verb+"MF:mfinputs/amsfonts/sources/*,"+ & \\
                    & \verb+"MF:inputs/old-german/*,"+ & \\
                    & \verb+"MF:mfinputs/old-german/*"+ &
    \texttt{*.mf} Programmdateien\\
  \texttt{MFPOOL}   & \verb+"MF:,MF:pool"+ & \texttt{mf.pool} Textverzeichnis\\
  \texttt{MFCONFIG} & \verb+"MF:config"+ & \texttt{mfmemory.config}\\
  \hline
\end{tabular}
\end{center}

Zus"atzlich dazu wurden auch f"ur die Hilfsprogramme einige
Umgebungsvariable eingerichtet, die insbesondere die Unterscheidung
zwischen den verschiedenen Arten von Zeichensatzkodierungen erm"oglichen.
\begin{center}
\begin{tabular}{|l|l|l|}\hline
  Variable & Vorgabewert & Dateien\\
  \hline
  \texttt{GFFONTS}  & \verb+"TEX:gf/*,"+ & \\
                    & \verb+"TEX:fonts/gf/*,"+ & \\
                    & \verb+"TEX:texfonts/gf/*"+ & \texttt{*.*gf} Dateien\\
  \texttt{PKFONTS}  & \verb+"TEX:pk/*,"+ & \\
                    & \verb+"TEX:fonts/pk/*,"+ & \\
                    & \verb+"TEX:texfonts/pk/*,"+ & \\
                    & \verb+"TEX:pk/amiga/*,"+ & \\
                    & \verb+"TEX:fonts/pk/amiga/*,"+ & \\
                    & \verb+"TEX:texfonts/pk/amiga/*,"+ & \\
                    & \verb+"TEX:pk/deskjet/*,"+ & \\
                    & \verb+"TEX:fonts/pk/deskjet/*,"+ & \\
                    & \verb+"TEX:texfonts/pk/deskjet/*,"+ & \\
                    & \verb+"TEX:pk/cx/*,"+ & \\
                    & \verb+"TEX:fonts/pk/cx/*,"+ & \\
                    & \verb+"TEX:textfonts/pk/cx/*,"+ & \\
                    & \verb+"TEX:pk/ljfour/*,"+ & \\
                    & \verb+"TEX:fonts/pk/ljfour/*,"+ & \\
                    & \verb+"TEX:texfonts/pk/ljfour/*"+ &
    \texttt{*.*pk} Dateien\\
  \texttt{VFFONTS}  & \verb+"TEX:vf,"+ & \\
                    & \verb+"TEX:fonts/vf,"+ & \\
                    & \verb+"TEX:texfonts/vf"+ & \texttt{*.vf} Dateien\\
  \texttt{PLFONTS}  & \verb+"TEX:pl,"+ & \\
                    & \verb+"TEX:fonts/pl,"+ & \\
                    & \verb+"TEX:texfonts/pl"+ & \texttt{*.[v]pl} Dateien\\
  \hline
\end{tabular}
\end{center}

Alle Programme in der neuen Version suchen ohne Ber"ucksichtigung dieser
Pfade immer zuerst im aktuellen Verzeichnis nach den jeweiligen Dateien.
Dadurch konnte insbesondere das Problem mit der Notation f"ur das "`aktuelle"'
Verzeichnis beseitigt werden.  Zwar ist weiterhin die leere Zeichenkette
und zus"atzlich der Punkt~\verb/"."/ erlaubt, jedoch bringt dies keinerlei
Gewinn; eine Datei wird stets von der ersten Stelle ihres Auftretens im
Gesamtsuchpfad aus benutzt.

Die umst"andliche Angabe von mehrfach geschachtelten Unterverzeichnissen
ist nicht mehr notwendig.  An jeden beliebigen Eintrag in einer
Umgebungsvariablen kann jetzt ein Stern~\texttt{*} angeh"angt werden,
wodurch sowohl in diesem Pfad als auch in jedem direkten Unterpfad nach der
erforderlichen Datei gesucht wird (siehe den obigen Eintrag f"ur
\texttt{MFINPUTS}).  Beliebig tiefe Suche im Verzeichnisbaum ist durch
Anh"angen eines Doppelsterns~\texttt{**} m"oglich, kann aber bei stark
verzweigten Verzeichnissen beim Aufruf der Programme etwas Zeit kosten.

Eine weitere positive Eigenschaft der neuen Pfadsuchroutinen ist, da"s Sie
die obigen Vorgabewerte nicht in die Umgebungsvariablen aufnehmen m"ussen.
Wenn Ihre Konfiguration die Verwendung anderer oder zus"atzlicher Pfade
erfordert, gen"ugt die Angabe der fehlenden Eintr"age in die entsprechende
Umgebungsvariable.  S"amtliche internen Vorgaben werden dann einfach daran
angeh"angt, also im Suchproze"s zum Schlu"s auf jeden Fall ber"ucksichtigt.

An dieser Stelle m"ochte ich mich bei Giuseppe Ghib\`o bedanken, der mir
freundlicherweise den Quelltext seines \texttt{EVPATHS}-Paketes zur
Verf"ugung gestellt hat.  Ohne diese konstruktive Mitwirkung w"urde es
die elegante Implementierung der rekursiven Pfadsuche f"ur \MetaFont\
nicht geben.  Insgesamt verdankt die neue Version ihre Existenz und den
erweiterten Umfang dem hartn"ackigen Fordern aus Italien.

Tritt bei der Verarbeitung ein Fehler auf oder unterbrechen Sie \MetaFont\
bei seiner Arbeit, so meldet sich \MetaFont\ mit dem Fragezeichen als
Eingabemarke.  Geben Sie in solch einem Fall \glq\texttt{e}\grq\ (oder
\glq\texttt{E}\grq) ein, so wird dadurch Ihr Texteditor aufgerufen.  Welcher
das in Ihrem Fall ist, wird durch die Umgebungsvariable \texttt{MFEDIT}
gesteuert, die ein Aufrufmuster enth"alt, um Ihren bevorzugten Systemeditor
in der gerade bearbeiteten Datei an der fehlerhaften Stelle zu positionieren.
Dies ist nicht notwendigerweise die Datei, mit der Sie \MetaFont\ aufgerufen
haben.  Geben Sie als Wert von \texttt{MFEDIT} einen beliebigen Programmaufruf
oder ein beliebiges Skript an, der/das Ihren Editor in der Datei
\glq\verb/%s/\grq\ und der Zeile \glq\verb/%d/\grq\ positioniert.  Die
Standardeinstellung lautet folgenderma"sen und startet den mit dem
Betriebssystem gelieferten Editor \texttt{MEmacs}:
\begin{verbatim}
   EDITOR "MEmacs goto %d %s"
\end{verbatim}
Im \texttt{rexx}-Verzeichnis finden Sie einige ARexx-Skripten zur Verwendung
des Cygnus Ed Professional Editors.  Wenn Sie diese verwenden wollen,
m"ussen Sie einfach der Umgebungsvariablen \texttt{MFEDIT} die Zeichenkette
\begin{verbatim}
   "rx MF:rexx/MFEdit.rexx %s %d"
\end{verbatim}
zuweisen.  Das zweite Skript \texttt{NameStruc} m"ussen Sie in das
\texttt{REXX:}-Verzeichnis kopieren, da es direkt aus \texttt{MFEdit.rexx}
aufgerufen wird.

Wie schon in der vorangegangenen Version, k"onnen Generierungsl"aufe f"ur
die virtuellen Ger"atetreiber \texttt{proof} und \texttt{smoke} am
Bildschirm mitverfolgt werden, so wie es im \glq\MetaFont book\grq\ von
Don Knuth~\cite{knuth.c} beschrieben ist.  Da dies aber einige erweiterte
Bibliotheksroutinen verwendet, die in "alteren Versionen des Betriebssystems
nicht vorhanden sind, funktioniert dies nur ab Amiga\names{DOS}~2.0 und
h"oher.  Die explizite Aktivierung durch Setzen der Umgebungsvariablen
\texttt{MFWTERM} auf den Wert \glq\texttt{amiterm}\grq\ ist nicht mehr
notwendig, da dies zu Mi"sverst"andnissen f"uhrte.

\section{Verwendung der Programme}
\label{running}
\subsection{Erzeugung neuer base-Dateien mit IniMF}
Obwohl Sie eine betriebsfertige \texttt{plain.base}-Datei in diesem Paket
finden, kann es sein, da"s Sie zus"atzliche \texttt{base}-Dateien erzeugen
wollen, die andere \MetaFont-Kommandos als die Standardeinstellung aus dem
\glq\MetaFont book\grq~\cite{knuth.c} enthalten.  Zu diesem Zweck gibt es
das Programm \IniMF, das in der Lage ist, solche neuen bin"aren
\texttt{base}-Dateien zu erzeugen, die dann sehr schnell nachgeladen werden
k"onnen.  Wenn Sie \IniMF\ vom \names{CLI} (command line input, die Shell)
ohne Argumente aufrufen, meldet es sich mit zwei Sternchen, die anzeigen,
da"s "`\MetaFont\ begierig darauf ist, Gro"ses zu leisten"' und Sie "`bitte
einen Datei\-namen eingeben"' sollen.
\begin{verbatim}
   > IniMF
   This is METAFONT, C Version 2.71 (INIMF)
   **
\end{verbatim}
Wenn Sie dem hier gegebenen Vorschlag folgen, ist es ganz einfach,
den n"achsten Schritt zu tun.  Beantworten Sie die
\MetaFont-Eingabeauf"|forderung mit dem Namen eines
"`Initialisierungsprogrammes"' wie zum Beispiel des mitgelieferten
\texttt{plain.inimf} oder \texttt{cm.inimf} und der Rest wird v"ollig
automatisch ausgef"uhrt, so da"s schnell eine neue \texttt{base}-Datei
\texttt{plain.base} oder \texttt{cm.base} entsteht.  Oder Sie
geben eine Folge von \texttt{input}-Kommandos ein, um mehrere
Dateien in die \texttt{base} einzubinden.  Das letzte Kommando sollte
\texttt{dump} lauten; dies weist \IniMF\ an, die verdichtete
Kommandodatei zu erzeugen und seinen Bearbeitungslauf zu beenden.
Alternativ k"onnen Sie auch folgenden Einzeiler eingeben
\begin{verbatim}
   > IniMF plain.inimf
\end{verbatim}
was zum gleichen Ergebnis wie oben f"uhrt.

Wenn Sie, wie hier vorgeschlagen, \texttt{plain.inimf} oder \texttt{cm.inimf}
verwenden, wird die Standardverteilung \texttt{modes.mf} (aktuelle
Version~2.1) von "`Karl Berry and the \MetaFont\ community"' in der
\texttt{base}-Datei eingebaut.  Diese Datei enth"alt Beschreibungen f"ur eine
Vielzahl von Ausgabeger"aten, wie verschiedenen Matrix-, Laser- oder
Tintenstrahldrucker, Fotosatzmaschinen und Bildschirmanzeigern.  Es gibt
einen kleinen Nachteil, wenn \texttt{modes.mf} komplett eingebunden wird,
denn dadurch wird die \texttt{base}-Datei erheblich gr"o"ser.  Es steht Ihnen
aber frei, nur diejenigen Modi zu kopieren und in einer Datei \texttt{local.mf}
abzulegen, die Sie f"ur Ihre eigene Konfiguration ben"otigen.  Dann sollten
Sie in \texttt{plain.inimf} die Zeile "`\texttt{input modes}"' durch
"`\texttt{input local}"' ersetzen und wie bereits beschrieben mit Hilfe von
\IniMF\ die \texttt{base}-Datei neu erzeugen.

Pas\TeX niker, die das \CallMF-Paket verwenden wollen, k"onnen an dieser
Stelle einige Probleme bekommen, denn Georg He"smann hat sich eigene
Modusbezeichnungen ausgedacht, die \emph{nicht} mit denen aus
\texttt{modes.mf} zusammenpassen.  Diese "Anderungen sind in der Datei
\texttt{pastex-modes.mf} im Verzeichnis \texttt{MF:rexx/callmf/inputs}
gesammelt.  Sie k"onnen diese Modi einsetzen, m"ussen dazu aber die
Eintr"age in \texttt{modes} anpassen und die \texttt{base}-Datei neu
erzeugen, um sie zu verwenden.

\subsection{Erzeugung neuer Zeichensatzgr"o"sen mit VirMF}
\label{examples}
Die Produktionsversion von \MetaFont\ hei"st \glq\VirMF\grq\ und
unterscheidet sich in einigen Punkten von \IniMF\null.  Das Programm ist
dazu gedacht, in hoher Geschwindigkeit Zeichens"atze zu erzeugen und kann
deshalb keine \texttt{base}-Dateien schreiben, diese aber zu Beginn eines
Laufes schnell einlesen. Genau wie \IniMF\ k"onnen Sie \VirMF\ auf zweierlei
Weise aufrufen.  Geben Sie lediglich seinen Namen ein (und gesetzt, das
Betriebssystem wei"s, wo es das Programm zu suchen hat), so meldet sich
\MetaFont\ f"ur einen interaktiven Dialog.
\begin{verbatim}
   > VirMF
   This is METAFONT, C Version 2.71
   **
\end{verbatim}
Sie k"onnen diese Auf"|forderung mit jedem g"ultigen Kommando beantworten und
dabei die \glq plain\grq\ \texttt{base} voraussetzen, wie sie im \glq\MetaFont
book\grq~\cite{knuth.c} beschrieben wird.

Als leichten Einstieg versuchen Sie doch einfach folgendes.  (Zitiert von
Seite~31 des \glq\MetaFont book\grq~\cite{knuth.c}).  Geben Sie
\glq\verb/\relax/\grq\ ein---also R"uckstrich, \texttt{r}, \texttt{e},
\texttt{l}, \texttt{a}, \texttt{x}---und dr"ucken Sie $\langle$return$\rangle$
(oder was auch immer auf Ihrer Tastatur f"ur "`Zeilenende"' steht).
\MetaFont\ ist ganz begierig darauf loszulegen, bereit einen gro"sen
Zeichensatz zu erzeugen; Sie aber sagen ihm, es erst einmal ruhig anzugehen,
denn dies wird ein ganz vergn"uglicher Spaziergang.  Der R"uckstrich bedeutet,
da"s \MetaFont\ nicht eine Datei einlesen soll, sondern direkt Anweisungen von
der Tastatur entgegen zu nehmen; der Befehl \glq\texttt{relax}\grq\ bedeutet
"`tue nichts"'.

Die Maschine wird jetzt mit einem einzelnen Sternchen antworten:
\glq\texttt{*}\grq.  Dies bedeutet, da"s sie jetzt bereit ist, Befehle
(und nicht den Namen einer Datei) entgegen zu nehmen.  Nur so zum Spa"s
geben Sie jetzt folgendes ein:
\begin{verbatim}
   drawdot (35,70); showit;
\end{verbatim}
und $\langle$return$\rangle$---nicht vergessen, die Strichpunkte mit dem
anderen Zeug einzugeben.  Ein mehr oder weniger runder Klecks sollte jetzt
auf Ihrem Bildschirm erscheinen!  Und Sie sollten ein weiteres Sternchen
als Eingabeauf"|forderung sehen.  Tippen Sie jetzt
\begin{verbatim}
   drawdot (65,70); showit;
\end{verbatim}
und $\langle$return$\rangle$, um einen zweiten Klecks zu erhalten.
(Im folgenden werden wir die Notwendigkeit, nach jeder Eingabezeile
$\langle$return$\rangle$ zu dr"ucken, nicht mehr erw"ahnen.)
Zum Abschlu"s tippen Sie
\begin{verbatim}
   draw (20,40)..(50,25)..(80,40); showit;
   shipit; end.
\end{verbatim}
Dies malt eine Kurve durch drei gegebene Punkte, zeigt das Gesamtergebnis
an, schreibt es gleichzeitig in eine Ausgabedatei und beendet das Programm.
\MetaFont\ sollte noch mit \glq\verb/[0]/\grq\ antworten, was soviel
bedeutet, da"s es einen Buchstaben mit der Nummer Null in dem gerade
verarbeiteten "`Zeichensatz"' geschrieben hat; und es sollte Ihnen mitteilen,
da"s es eine Ausgabedatei mit dem Namen \texttt{mfput.2602gf} erzeugt hat.

Alternativ k"onnen Sie auch ein oder mehrere Argumente beim Aufruf von
\VirMF\ angeben.  Das erste Argument kann der Name einer abweichenden
\texttt{base}-Datei sein, was durch ein vorangestelltes \verb/&/-Zeichen
(wie bei \verb/&plain/) festgelegt wird, und es d"urfen mehrere Kommandos
in Form einer Zeichenkette folgen, die nach dem Einlesen der \texttt{base}-Datei
ausgef"uhrt werden.  Zum Beispiel geben Sie folgendes ein, wenn Sie einen
Zeichensatz in einer bestimmten Auf"|l"osung erzeugen wollen:
\begin{verbatim}
   > VirMF &plain "\mode:=amiga; mag:=magstep2; input cmr10"
\end{verbatim}
Sie m"ussen die Anf"uhrungszeichen in dieser Form eingeben, denn die
Strichpunkte haben eine besondere Bedeutung f"ur das Betriebssystem des
Amiga.  Dieses Kommando wird den normalen Textzeichensatz \texttt{cmr10}
passend f"ur den Bildschirmanzeiger der Auf"|l"osung 100~dpi in zweifacher
Vergr"o"serung erzeugen, so da"s der Zeichensatz die Bezeichnung
\texttt{cmr10.144gf} erhalten wird und \MetaFont\ folgenden Text auf
Ihren Bildschirm (und in die Logdatei) schreiben wird.
\begin{verbatim}
 This is METAFONT, C Version 2.71
 (cmr10.mf (cmbase.mf) (roman.mf (romanu.mf [65] [66] [67] [68]
 [69] [70] [71] [72] [73] [74] [75][76] [77] [78] [79] [80] [81]
 [82] [83] [84] [85] [86] [87] [88] [89] [90]) (romanl.mf [97]
 [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108]
 [109] [110] [111] [112] [113] [114] [115] [116] [117] [118]
 [119] [120] [121] [122]) (greeku.mf [0] [1] [2] [3] [4] [5] [6]
 [7] [8] [9] [10]) (romand.mf [48] [49] [50] [51] [52] [53] [54]
 [55] [56] [57]) (romanp.mf [36] [38] [63] [62]) (romspl.mf [16]
 [17] [25] [26] [27] [28]) (romspu.mf [29] [30] [31]) (punct.mf
 [33] [60] [35] [37] [39] [40] [41] [42] [43] [44] [46] [47] [58]
 [59] [61] [64] [91] [93] [96])  (accent.mf [18] [19] [20] [21]
 [22] [23] [24] [32] [94] [95] [125] [126] [127]) (romlig.mf [11]
 [12] [13] [14] [15]) (comlig.mf [34] [45] [92] [123] [124]) ) )
 Font metrics written on cmr10.tfm.
 Output written on cmr10.144gf (128 characters, 7276 bytes).
 Transcript written on cmr10.log.
\end{verbatim}

Wenn Sie sich schon etwas mit der \MetaFont-Sprache auskennen, wissen Sie
sicher, was an dieser Stelle noch m"oglich ist; falls nicht, rate ich
Ihnen, sich das \glq\MetaFont book\grq~\cite{knuth.c} oder den zweiten Band
von Kopka~\cite{kopka.erw} zu kaufen.

\subsection{Umwandlung zwischen den gf- und pk-Formaten}
\MetaFont\ (und \TeX) ist ein h"ochst portables Programmiersystem, das es
f"ur eine Vielzahl von Rechnern gibt, angefangen bei kleinen Systemen wie
dem Amiga bis hin zu echten "`Zahlenfressern"'.  Auch seine bin"are Ausgabe
ist unabh"angig von einer speziellen technischen Ausstattung.  Wie in dem
Beispiellauf aus Abschnitt~\ref{examples} gezeigt, erzeugt \MetaFont\
normalerweise drei verschiedene Ausgabedateien.

Schriftsatzsysteme wie \TeX\ k"ummern sich nicht darum, wo am Ende die
Tinte hinkommt.  Sie wollen lediglich Informationen dar"uber, wie gro"s die
einzelnen Buchstaben sind und wo in einem bestimmten Zeichensatz sie sich
befinden.  Diese Informationen werden in eine \glq\texttt{tfm}\grq-Datei
geschrieben (im Beispiel war das \texttt{cmr10.tfm}) und enthalten die
"`(\TeX) font metric"' Information.

Druckertreiber und Bildschirmanzeiger, die "`device independent files"'
verarbeiten, wie sie von \TeX\ oder anderen Programmen erzeugt werden,
brauchen dagegen Informationen "uber das tats"achliche Aussehen der
verwendeten Zeichen.  \MetaFont\ schreibt diese Pixelinformation f"ur
jeden Buchstaben eines Zeichensatzes im sogenannten "`generic font"'
Format, das hei"st es schreibt eine \glq\texttt{gf}\grq-Datei
(\texttt{cmr10.144gf} in obigem Beispiel).  Die Dateiendung bezeichnet
dabei die spezifische Auf"|l"osung des erzeugten Zeichensatzes in "`Punkten
pro Zoll"', so da"s Sie zwischen Zeichens"atzen f"ur den Bildschirmanzeiger
und den Druckertreiber unterscheiden k"onnen. Das "`generic font"' Format
ist an dieser Stelle sehr gut geeignet und einige Ger"atetreiber k"onnen
es sogar direkt verarbeiten.

In den meisten F"allen aber wird Ihr \TeX-System mit etwas ganz anderem
arbeiten, der sogenannten \glq\texttt{pk}\grq-Darstellung der Pixelinformation.
\glq\texttt{pk}\grq-Dateien enthalten die gleiche Information wie die
zugeh"origen \glq\texttt{gf}\grq-Dateien, nur ist diese stark komprimiert, so
da"s \glq\texttt{pk}\grq-Dateien viel kleiner sind.  Die Umwandlung zwischen
diesen beiden Formaten der Pixelinformation geschieht mit Hilfe der beiden
Programme \GFtoPK\ und \PKtoGF\null.  Diese werden folgenderma"sen aufgerufen
\begin{verbatim}
   > GFtoPK [-v] gffile [pkfile]
   > PKtoGF [-v] pkfile [gffile]
\end{verbatim}
Die \glq\texttt{-v}\grq-Option sagt den Programmen, etwas "`wortreicher"'
zu sein, ansonsten w"urden Sie "uberhaupt keine Ausgabe am Bildschirm sehen.
Das erste Argument bezeichnet die Eingabedatei (dabei ist die Endung wichtig)
im jeweiligen Ausgangsformat.  Das optionale zweite Argument bezeichnet die
Ausgabedatei im jeweils anderen Format.  Geben Sie dieses zweite Argument
nicht an, so wird die Endung der Eingabedatei auf standardisierte Weise in
die Endung der Ausgabedatei umgewandelt.  Der Aufruf
\begin{verbatim}
   > GFtoPK cmr10.144gf
\end{verbatim}
wird \texttt{cmr10.144gf} nach \texttt{cmr10.144pk} umwandeln.  Sie k"onnen
f"ur das zweite Argument auch einen vollst"andigen Pfadnamen voranstellen,
so da"s dann die Ausgabedatei gleich in das richtige Verzeichnis
geschrieben wird.

\subsection{Probedrucke der Zeichens"atze mit GFtoDVI}
\MetaFont\ kennt zwei spezielle Modi genannt \texttt{proof} und
\texttt{smoke}, die zwei virtuellen Ger"atetreibern entsprechen mit einer
Auf"|l"osung von 2602~dpi.  Das Programm \GFtoDVI\ kann formatierte
Ausdrucke dieser Zeichens"atze erzeugen.  Geben Sie einfach ein
\begin{verbatim}
   > GFtoDVI
\end{verbatim}
und \GFtoDVI\ wird Sie nach einem \texttt{gf}-Dateinamen fragen.  Sie k"onnen
einige interne Einstellungen "andern, indem Sie einen Schr"agstrich an den
Dateinamen anh"angen.  Dann wird Sie \GFtoDVI\ zur Ersetzung spezieller
Zeichens"atze auf"|fordern, meistens zur Einstellung eines ger"ateabh"angigen
\glq gray\grq\ oder \glq black\grq\ Zeichensatzes.  (Siehe hierzu das
\glq\MetaFont book\grq~\cite{knuth.c}.)  Wie die meisten anderen Programme,
kann auch \GFtoDVI\ Aufrufargumente direkt aus der Kommandozeile "ubernehmen,
so da"s Sie auch einfach
\begin{verbatim}
   > GFtoDVI cmr10.2602gf/
\end{verbatim}
eingeben k"onnen und anschlie"send weitere Eingaben angefordert werden.

\subsection{Ausdruck von Zeichensatzprogrammen mit MFT}
Eine andere Besonderheit dieser Implementierung ist das Programm \MFT, das
gew"ohnliche \MetaFont\ Programmquellen in \TeX\ Eingabedateien umwandelt,
um sie an"-schlie"-"send formatiert ausdrucken zu k"onnen.  Das einzige
Aufrufargument ist der Name einer \glq\texttt{mf}\grq-Datei, die Teile eines
\MetaFont-Programmes enth"alt.  Sie k"onnen die Arbeitsweise von \MFT\
dadurch beeinflussen, da"s Sie ein anderes Formates als \texttt{plain.mft}
angeben.  Es macht sicher Spa"s, mit anderen Einstellungen herumzuspielen.
\begin{verbatim}
   > MFT file[.mf] [-cs] [change[.ch]] [style[.mft]]
\end{verbatim}

\subsection{Analyse von gf- und pk-Dateien}
Mehr zu Testzwecken gedacht sind die folgenden beiden Programme.  Sie
liefern genaue Informationen "uber den Inhalt der Pixeldateien im \glq
generischen\grq\ und im \glq komprimierten\grq\ Format in Textform.
\begin{verbatim}
   > GFtype [-m] [-i] gffile
   > PKtype pkfile
\end{verbatim}
Die beiden Optionen f"ur \GFtype\ bedeuten "`Mnemonische Ausgabe"' und
"`pIxel Ausgabe"'.  Ihre Angabe wird weitere Informationen zur Textausgabe
hinzuf"ugen, besonders die Darstellung der einzelnen Buchstaben in der Form
von \names{ASCII} \glq Bildern\grq\ f"ur die eingehende Kontrolle dessen, was
\MetaFont\ produziert.

\subsection{Virtuelle Zeichens"atze}
Neu in die Verteilung aufgenommen habe ich Konvertierungsprogramme zur
Erzeugung von "`virtuellen Zeichens"atzen"'.  Nicht zuletzt dank \DVIPS\
von Tomas Rokicki und geeigneten Ausgabetreibern f"ur PostScript kann die
Besch"aftigung mit dieser Form der Zeichenmanipulation interessant sein.
\begin{verbatim}
   > VFtoVP vfmfile tfmfile vplfile
   > VPtoVF vplfile vfmfile tfmfile
\end{verbatim}
Zu beachten ist hier lediglich, das "`VF"' eigentlich nur f"ur "`Grand
Wizards"' gedacht sind.  Hier sollte man schon sehr genau wissen, was man
vorhat.  (Ich wei"s das leider noch nicht, so da"s ich hier nicht mehr dazu
sagen will.)

\section{Empfohlene Lekt"ure}
\label{bibliography}
Hier ist eine kurze Liste mit B"uchern zu \MetaFont\ und seinen Kollegen,
die eingehende Informationen "uber die Programmierung mit dieser Sprache
enthalten.  Au"serdem finden Sie darin viel Interessantes "uber die
Geschichte von \TeX\ und \MetaFont\ seit 1977, Schriftsatz mit Computern
im allgemeinen sowie "uber das literarische Programmieren, das bei der
Entwicklung von "`Computers \& Typesetting"' verwendet wurde.

\begin{thebibliography}{99}
\bibitem{hessmann} Georg He"smann u.~a.,
  ARexx Unterst"utzung f"ur \MetaFont, Dokumentation zur Version 1.0,
  Beschreibung des \glq\CallMF\grq-Paketes von Georg He"smann, Martin
  Bok"amper, J"org H"ohle und Ulrich Wisser zur Verwendung mit Pas\TeX.
\bibitem{knuth.a} Donald E. Knuth, Computers \& Typesetting~A:
  The \TeX book, Addison-Wesley Publishing Company, 19.~Auf"|lage, Juni
  1990.  {\em Das\/} Referenzhandbuch f"ur alle Benutzer des \TeX-Systems.
  Es beschreibt die \TeX-Sprache auf vielschichtige Weise.
\bibitem{knuth.b} Donald E. Knuth, Computers \& Typesetting~B:
  \TeX: The Program, Addison-Wesley Publishing Company, 4.~Auf"|lage,
  Februar 1991.  Dieser 600~Seiten starke Schm"oker enth"alt den ausf"uhrlich
  dokumentierten Quelltext f"ur das \TeX-Programm, geschrieben in \texttt{WEB}.
\bibitem{knuth.c} Donald E. Knuth, Computers \& Typesetting~C:
  The \MetaFont book, Addison-Wesley Publishing Company, 4.~Auf"|lage,
  Juni 1990.  {\em Das\/} Referenzhandbuch f"ur alle Benutzer des
  \MetaFont-Systems.  Es beschreibt die \MetaFont-Sprache auf
  vielschichtige Weise.
\bibitem{knuth.d} Donald E. Knuth, Computers \& Typesetting~D:
  \MetaFont: The Program, Addison-Wesley Publishing Company, 4.~Auf"|lage,
  Februar 1992.  Dieser 566~Seiten starke Schm"oker enth"alt den ausf"uhrlich
  dokumentierten Quelltext f"ur das \MetaFont-Programm,
  geschrieben in \texttt{WEB}.
\bibitem{knuth.e} Donald E. Knuth, Computers \& Typesetting~E:
  Computer Modern Typefaces, Addison-Wesley Publishing Company, 1.~Auf"|lage,
  Mai 1986.  Dieses Buch enth"alt Beispiele f"ur alle Buchstaben und Zeichen
  der Computer Modern Zeichensatzfamilie, die das Erscheinungsbild aller
  \TeX nischen Schriftst"ucke pr"agt.
\bibitem{knuth.vf} Donald E. Knuth, Virtual Fonts: More Fun for Grand
  Wizards.  \textsl{TUGboat}~\textbf{11}, 1990, Heft~1, Seite~13--23.
\bibitem{knuth.lit} Donald E. Knuth, Literate Programming, Center for the
  Study of Language and Information, 1.~Auf"|lage, 1992.  Dies ist eine
  Zusammenstellung von Knuthschen Texten im Zusamenhang mit dem
  "`literarischen Programmieren"', wie es in h"ochster Vollendung bei
  den \TeX- und \MetaFont-Programmen angewandt wurde.  Au"serdem enth"alt
  es eine Liste aller Fehler von \TeX~82 (bis einschlie"slich den
  20.~September 1991).
\bibitem{kopka.ein} Helmut Kopka,
  \LaTeX--Eine Einf"uhrung, Addison-Wesley Publishing Company, 4.~Auf"|lage,
  1992.  Dies ist der erste von zwei B"anden f"ur deutschsprachige
  \LaTeX-Benutzer.  Offenbar ist es beliebter als das Referenzhandbuch
  von Leslie Lamport.  1994~ist eine v"ollig "uberarbeitete Ausgabe der
  B"ucher von Helmut Kopka in einer dreib"andigen Reihe erschienen.
\bibitem{kopka.erw} Helmut Kopka,
  \LaTeX--Erweiterungsm"oglichkeiten mit einer Einf"uhrung in \MetaFont,
  Addison-Wesley Publishing Company, 3.~Auf"|lage, 1992.  Band~2 mit einer
  Einf"uhrung in die Programmierung mit \MetaFont\ und das literarische
  Programmieren mit \texttt{WEB} und \texttt{CWEB}.
\end{thebibliography}

\section{Geschichte}
Diese Amiga-Umsetzung von \MetaFont~2.71 basiert zum gro"sen Teil auf
dem kompletten \TeX- und \MetaFont-System von Edmund Mergl, wie es
auf den Fish-Disket\-ten 611--616 ver"offentlicht wurde.  Ausgehend von
\MetaFont~2.7 aus dieser Implementierung habe ich viele "Anderungen
und Erweiterungen vorgenommen.  Der gr"o"ste Unterschied zwischen der
Version von Edmund Mergl und meiner eigenen ist, da"s nun \MetaFont\ f"ur
sich allein stehend konzipiert ist, mit v"ollig selbst"andigem Quelltext
und Hilfsmitteln.  (Siehe Abschnitt~\ref{source}.)

Von Beginn an habe ich auf dem Amiga mit dem \names{SAS/C}-Entwicklungssystem
in den Versionen~6.3 und~6.51 gearbeitet.  Dieser gro"sartige Compilers ist
v"ollig kompatibel mit dem \names{ANSI}-Standard und hat eine ganze Reihe
von Auslassungen bez"uglich Stil und Sprache bei dem Versuch festgestellt,
den Quelltext neu zu "ubersetzen.  Eine gro"se Aufr"aumaktion f"ur die
Zusatzquellen in \names{C}, insbesondere die Einf"uhrung der vollst"andigen
Prototypen und die Korrektur einiger fehlender Casts, war deshalb notwendig.

Sobald die selbsterzeugte Version~2.7 sauber lief, wurde sie mit der
bekannten Amiga-Umsetzung von Stefan Becker von Fish-Diskette~486
verglichen und erwies sich als derart langsamer, da"s Verbesserungen
notwendig waren, um mit diesem System zu wetteifern.  Der kritische Kern der
"`inneren Schleife"' von \MetaFont\ wurde in Assembler f"ur den Motorola~68020
umgeschrieben, wof"ur ich an dieser Stelle meinem Bruder danken m"ochte.  Dies
ergab eine Beschleunigung des Laufzeitverhaltens um etwa zwanzig bis drei"sig
Prozent verglichen mit der nichtoptimierten Version und um etwa f"unf bis acht
Prozent gegen"uber der optimierten Version von Stefan Becker.

Der gl"anzend bestandene \names{TRAP}-Test bewies die Korrektheit der gemachten
"Anderungen dieser Implementierung, wobei die Testroutine von Don Knuth
tats"achlich den letzten b"osen Fehler meiner eigenen Umsetzung fand (der
ausgerechnet etwas mit der Variablen \glq\verb/be_careful/\grq\ zu tun hatte).
Jedoch zeigte der Augenschein, da"s sowohl mein eigenes \MetaFont\ als auch
das von Stefan Becker Probleme mit der Bildschirmanzeige hatten.  Weder die
Implementierung von Stefan Becker noch die von Edmund Mergl arbeiteten so,
wie im \glq\MetaFont book\grq~\cite{knuth.c} beschrieben.  Besonders die
Testroutine \texttt{6test.mf} f"ur die Computer Modern Zeichens"atze machte
dies deutlich.  (Ein Beispiel f"ur diesen Test findet man auf Seite~192
von~\cite{knuth.c}.)  Mit einer ge"anderten Version von \texttt{amiga.c},
die gleichzeitig einige fortgeschrittene Funktionen f"ur die Ausgabe
verwendet und deshalb auch die Version~2 des Amiga Betriebssystems
ben"otigt, lief es besser.

Unter Anwendung einiger Ideen von David Crooke aus seiner Amiga-Umset\-zung
von \TeX~3.141, baute ich eine ge"anderte Pfadsuche sowie die M"oglichkeit
der Speicherkonfiguration in \MetaFont\ ein.
(Siehe Abschnitt~\ref{memory} zu Einzelheiten dar"uber.)

Im September~1993 erfolgte dann der erste Schritt in Richtung Version~2.71
mit den Fehlerbeschreibungen des Addison-Wesley-Verlages.  Alle "Anderungen,
die die neue Version betrafen, wurden in die Change-Datei eingebaut.

Schlie"slich erhielt ich im Oktober~1993 die offizielle
Version~2.71\footnote{vom Stuttgarter ftp-Server \texttt{ftp.uni-stuttgart.de
(129.69.8.13)}.  Dieser wurde mittlerweile durch den DANTE-Server
\texttt{ftp.dante.de (129.206.100.192)} ersetzt.}, die das alte System
vollst"andig ersetzt.  Sie enth"alt ein neues \texttt{plain.mf}
\texttt{base}-Programm und einen v"ollig neuen \names{TRAP}-Test.  Die letzte
wichtige "Anderung dieser Implementation war die Bereitstellung einer wirklich
\names{GROSSEN} Version von \MetaFont\ (und von \TeX~3.1415), indem
\texttt{max\_quarterword} auf 32.767 (32~Kilo Viertelworte) und
\texttt{max\_halfword} auf 1.073.741.823 (1~Giga Halbworte) erweitert wurde,
so da"s nun wirklich niemand mehr an die maximal m"ogliche Einstellung sto"sen
wird (Sie br"auchten schon mehr als 8~Giga Byte freien Speicher!).  Dabei
scheint jeder zu glauben, da"s \glq262.142\grq\ als maximaler Wert von
\texttt{memmax} festgelegt sei, nur weil es so in~\cite{knuth.b}
und~\cite{knuth.d} angegeben ist.  Dieser Wert gilt jedoch nur f"ur
36~Bit Worte.  Die vorliegende \names{C}-Implementation arbeitet aber
auf der Basis von "`64~Bit Worten"', das hei"st ein Halbwort ist als
\textbf{long int} definiert, so da"s die viel gr"o"seren Werte verwendet
werden k"onnen.

\subsection{Erweiterungen}
Die wesentlichste Neuerung an diesem \MetaFont-Paket betrifft die
Pfadsuche.  Dank der gro"sz"ugigen Unterst"utzung durch Giuseppe Ghib\`o
konnte ich auf "au"serst einfache und elegante Weise die rekursive Suche
nach Dateien in Unterverzeichnissen installieren, ein Vorhaben, das bisher
am Umfang der neuen \names{UNIX}-Verteilung scheiterte.  Um
Mi"sverst"andnisse zu vermeiden, wurde das "`aktuelle"' Verzeichnis aus der
Rekursion entfernt.  Dateien im aktuellen Verzeichnis werden grunds"atzlich
zuerst verwendet.  Wie "ublich werden die einzelnen Pfade in den
Umgebungsvariablen durch Kommata getrennt.  Durch Anh"angen eines
Sterns~\glq\texttt*\grq\ an einen solchen Pfad wird dieser zusammen mit
allen direkten Unterverzeichnissen durchsucht.  Doppelte Sterne~\glq
\texttt{**}\grq\ bewirken die beliebig tiefe Suche im Verzeichnisbaum, was
allerdings etwas Zeit beim Start der Programme beanspruchen kann.  F"ur die
verschiedenen Dateiarten sind interne Vorgabewerte definiert, die \MetaFont\
und seine Hilfsprogramme automatisch erkennen, ohne da"s sie in den externen
Umgebungsvariablen wiederholt werden m"u"sten.

Der leicht zu handhabende Quelltext erm"oglichte gleichzeitig die deutliche
Vereinfachung der kompletten Entwicklungskonfiguration f"ur \TeX, \MetaFont\
und \emph{alle} zugeh"origen Hilfsprogramme.  Insbesondere ist jetzt auch
die Erstellung und Verwendung von "`virtuellen"' Zeichens"atzen m"oglich,
also die Verkn"upfung von Zeichen aus beliebigen Definitionsdateien unter
einem neuen Namen.  In diesem Zusammenhang sei jedem ernsthaften \TeX-Anwender
auf dem Amiga die Verwendung des Programmes \DVIPS\ von Tomas Rokicki in
der wirklich hervorragenden Umsetzung f"ur den Amiga von Giuseppe Ghib\`o
empfohlen, die in Version~5.58 auch das \CallMF-Paket unterst"utzt.

Neben den vier neuen Umgebungsvariablen zur Suche nach Zeichensatzdateien
(siehe Abschnitt~\ref{environment}) hat sich auch die Verwendung der
Variablen \texttt{MFWTERM} entscheidend ge"andert.  Nachdem ich in der
ersten Dokumentation einen fehlerhaften Eintrag angegeben hatte, der
wahrscheinlich bei vielen Benutzern die Verwendung des "`Online Display"'
verhinderte, habe ich mich in dieser neuen Version dazu entschieden, auf
die externe Aktivierung der Bildschirmanzeige zu verzichten.

\subsection{Danksagung}
Seit Ver"offentlichung der ersten Version meiner \MetaFont-Implementierung
habe ich mehrere Zuschriften mit Hinweisen erhalten, die zu einer
Verbesserung dieser Dokumentation gef"uhrt haben.  Teilweise wurden die
beschriebenen Schwierigkeiten in der Version vom Mai~1994 f"ur die
Pas\TeX-Verteilung auf der "`Meeting Pearls"'-CD beseitigt, wenn auch im
Anschlu"s daran noch eine Anfrage bez"uglich des "`Online Display"'
erfolgte.  Gl"ucklicherweise handelte es sich in keinem Fall um Fehler
in den Programmen, sondern lediglich um Ungenauigkeiten und Auslassungen in
der Dokumentation.  F"ur die Zuschriften danke ich Stefan Sell, Markus
Eiblmeier und Dieter Sach.

Besonderer Dank gilt Georg He"smann, der meine \MetaFont-Implemen\-tierung
f"ur "`Pas\TeX\ on CD"' verwendete, und mir einige Erweiterungen
abverlangte, die die Qualit"at der Programme wesentlich steigerte.
Insbesondere ist ihm zu verdanken, da"s \IniMF\ und \VirMF\ "`resident"'
sind.

Den gr"o"sten Einflu"s auf dieses erweiterte Programmpaket hatte jedoch
Giuseppe Ghib\`o, der mich dazu dr"angte, seine hervorragende Umsetzung
der rekursiven Pfadsuche zu installieren.  Ohne sein Paket \texttt{EVPATHS}
h"atte ich mich nie an diese Aufgabe gemacht.  Daneben erm"oglichte mir
sein einfach zu installierender und zu verwendender Quelltext aber auch den
Einbau der zus"atzlichen Programme \VFtoVP\ und \VPtoVF\ sowie die Trennung
der unterschiedlichen Dateiformate f"ur die Zeichens"atze durch
zus"atzliche Umgebungsvariablen.

\section{Quelltext}
\label{source}
Bei diesem Paket handelt es sich um den "`\MetaFont\ Benutzerbausatz"', der
keinerlei Quelltext f"ur die eigentlichen Programme enth"alt.  Auf Anfrage
ist beim Implementierer ein "`Entwicklerbausatz"' erh"altlich.  Wenn Sie den
haben wollen, brauchen Sie nur einen R"uckumschlag mit 10~Deutschen Mark
(oder 10~US~Dollar) an die Adresse zu schicken, die auf der ersten Seite
dieser Dokumentation angegeben ist, und Sie werden die neueste Version mit
allen notwendigen Hilfsmitteln f"ur die Neu"ubersetzung und alle
zuk"unftigen Fehlerbeseitigungen auf Diskette erhalten.  Je nach Interesse
kann ich auch Version~3.1415 von \TeX\ zur Verf"ugung stellen.

Im Zeitalter der elektronischen Medien haben an dieser Stelle all
diejenigen deutliche Vorteile, die "uber einen Zugang zum Internet
verf"ugen.  Da ich mir dann den Aufwand f"ur die Diskettenversion und die
schriftliche Beantwortung sparen kann, ist der Quelltext kostenlos
erh"altlich, wenn Sie mir eine elektronische Adresse mitteilen, an die ich
den Quelltext per EMail oder besser \texttt{ftp} schicken kann.  Dies soll
auf keinen Fall eine Herabsetzung oder gar Ausnutzung der "`normalen"'
Benutzer sein, es handelt sich lediglich um eine erhebliche
Arbeitserleichterung.

\end{document}
