%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 7.1.93
% Dokumentation zu DVI.APP
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% statt trennung.sty auch
% \hyphenation{Satz-sys-tem}
% einf�gen
%
\documentstyle[11pt,german,refman,trennung]{article}
\font\logo=logo10
\title{{\Huge\sf Anleitung DVI-Treiber}\\[2.5ex]{Version 1.00 vom \today}\\[-3ex]}
\author{\sf\em Markus Pristovsek}
\pagestyle{headings}

\def\itm[#1]{\item[$\bullet $\bf #1:]}
\def\is[#1]{\item[$\bullet $\sc #1:]}

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Titelseite

\sloppypar
\sf
\maketitle
\makeauthor

\tableofcontents
\vfill

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\clearpage
\section{Was kann DVI}


Es handelt sich um ein Anzeigeprogramm f�r DVI-Dateien, die vom Satzsystem 
{\TeX} erzeugt werden. Es ist multitaskingf�hig, d.h. es kann unvollst�ndige 
Dateien, die noch in der Bearbeitung sind, anzeigen. Dabei wird das GEM-%
Multitasking kaum gebremst. Man kann zwei DVI-Dateien gleichzeitig betrachten.

Wenn Zeichens�tze nicht gefunden werden, wird zuerst nach dem gleichen 
Zeichensatz in magstep0 gesucht; wird dieser nicht gefunden, so nimmt der 
Treiber cmr10 in magstep0. Der Font wird in die Missingdatei eingetragen. Bei 
der Suche werden alle Zeichs�tze innerhalb der eingestellten Toleranz gefunden. 
Die Toleranz sollte nicht zu klein gew�hlt werden, normal ist ca. 5\%.

Es kann die Datei verkleinert anzeigen ($2\times $, $3\times $, $4\times $, 
$6\times $ sowie $8\times $ kleiner) und besitzt eine Lupe sowie ein Ma�band.

Die Bedienung kann mit der Maus �ber Popup-Men�s oder mit der Tastatur erfolgen. 
Das Programm kann durch einfaches Umbenennen als Accessory gestartet werden.

Es existieren Druckertreiber. Der Ausdruck einer Seite ist, soweit sinnvoll, im 
Hintergrund realisiert. Dabei wird meist im Ordner {\$}TMPDIR eine Datei 
angelegt (beim 9-Nadel). Dieser Ordner sollte also m�glichst auf Festplatte oder 
RAM-Disk liegen. (Ansonsten wird der aktuelle Ordner benutzt.)

Die Druckertreiber benutzen MiNT und shared Memory. Sie stellen sich so gut es 
geht auf die aktuelle Aufl�sung in DpI ein. Es existieren Treiber f�r Epson 
9-Nadel, 24-Nadel (ungetestet), HP Deskjet (und verwandte Laser- und 
Tintenstrahldrucker), SLM804 und IMG-Dateien. Au�erdem liegt der Sourcescode bei.

Das Programm ist 58kB lang. (Jedes Mal wird's l�nger\dots )

Seit neustem existieren auch Treiber f�r den Querdruck.

\subsection{Warum noch 'nen DVI-Treiber?}

Wer sich mit den {\TeX}-Implementierungen f�r den Atari ST etwas auskennt wei�, 
da� es mindestens 3 verschiedene DVI-Previewer gibt. (Mit den Strunk-Programmen 
kenn ich mich nicht gut aus. Aber genug, da� der Treiber auch mit Strunk-{\TeX} 
klarkommt.) Leider haben die Lindner-Treiber, die ich fr�her benutzte (und die 
zum Drucken immer noch das beste sind), vier gro�e Nachteile:

\begin{itemize}
\item Sie benutzen kein GEM.
\item Sie sind {\bf L A N G S A M}.
\item Sie k�nnen keine halbfertigen DVI-Dateien lesen.
\item Sie brauchen exakt den richtigen Zeichensatz, um zu arbeiten.
\end{itemize}

Was macht ein Hobbyprogrammierer: Er besorgt sich erst einmal die Sourcen oder 
vesucht, es anders besser zu machen. Darum habe ich eine GEM-Interface f�r den 
Lindner-Treiber geschrieben. Es funktionierte sehr gut, nur wurde der Treiber 
dadurch nicht schneller. Immerhin lief er schon als Accessory, man konnte also 
seinen Text editieren und direkt die Layoutergebnisse begutachten.

Au�erdem hatte ich in den Lindner-Treiber ein Lupe (wie unter X-Windows) und 
weitere Verkleinerungen auch beim Druckertreiber (1:1, 1:2, 1:3, 1:4, 1:8) 
eingebaut.

Leider erwiesen sich die �nderungen des Kerns, um unvollst�ndige Dateien zu 
lesen, als zu schwierig (bzw. ich war zu faul den Kern von vorne bis hinten 
durchzuarbeiten, zumal dort der PureC-Editor am Rand seiner Leistung ist).

Dieser Kern ist in WEB geschrieben, da� f�hrt zwar zu guter Kommentierung, 
verstreut aber Routinen einer Funktion im schlimmsten Fall �ber den gesamten 
Quelltext (einige hundert Kilobyte), so da� man v�llig vergi�t, welche Variablen 
wo definiert waren und was diese bedeuten. Au�erdem wurden in wilder Mischung 
normale und statische, globale und lokale Variablen benutzt. Aus diesen Gr�nden 
scheiterte die Zulassung beliebiger Zeichens�tze.

Au�erdem bevorzugt jeder seinen Programmierstil. Ich mag's mehr modular (der 
Treiber besteht aus 11 etwa gleichgro�en Modulen) und ist nahezu ohne globale 
Variablen.

Um nicht mi�verstanden zu werden: Der Lindner-Treiber ist sehr gut in 
Betriebssicherheit und Ausdrucksqualit�t. Au�erdem arbeitet er sogar 
einigerma�en mit wenig Speicher.

Jedenfalls hatte ich vor einiger Zeit eine Routine zum Lesen von PK-Dateien 
geschrieben, die ich f�r einen (noch immer unfertigen) Fontkonvertierer 
gebraucht hatte. Die hatte ich einmal etwas zu erweitern versucht, um 
DVI-Dateien zu lesen, da mir Lutz Birkhahn (der Autor des {\logo METAFONT} zum 
Lindner-{\TeX}) zusammen mit der PK-Beschreibung eine DVI-Beschreibung geschickt 
hatte.

Dann habe ich Ascreen aus dem Netz geholt. Gefiel mir gut, benutzte GEM, hatte 
jedoch wieder einige Nachteile:

\begin{itemize}
\item Bei 240dpi und gro�en Zeichens�tzen wurde manchmal M�ll angezeigt.
\item Man wurde zu oft gen�tigt, Fenster zu schlie�en.
\item Lief nicht als Accessory parallel zum Editor und konnte auch keine 
unvollst�ndigen Dateien lesen.
\end{itemize}

In den Weihnachtsferien habe ich dann aus allen Fragmenten, die ich besa� (es 
wurden keine fremden Sourcecodes verwendet) einen Treiber zusammengeschustert. 
Das Ergebnis liegt nun hier vor ihnen, wenn Bytes liegen k�nnen\dots

Allerdings habe ich mich an den Algorithmen zur Synchronisation und zum 
Buchstabenauspacken aus der Lindner-Dokumentation orientiert.


\subsection{Was baucht man?}

\attention
Man braucht MiNT. Das sollte aber kein Problem sein; im Gegenteil sind die 
zus�tzlichen M�glichkeiten von MiNT schon ohne den Treiber ein Grund, es zu 
benutzen. Au�erdem ist es das neue offizielle Atari-Betriebssystem.

Man braucht, wenn man {\TeX} und den Treiber gleichzeitig laufen lassen will 
�ber ein Megabyte {\em freien} Speicher:

690kB~{\TeX} + 250kB~DVI-Treiber + 260kB~MiNT + 
40kB~Mintshell + 30kB~Tosingem $\approx $1270kB als minimal belegter Speicher. 
Druckt man auch mit diesem Treiber aus, dann braucht man schon so ein Megabyte 
Speicher.

Auf einem 1040ST mit einem MB kann nur der Treiber solo oder zusammen mit einem 
Editor laufen. Installiert man dann noch einige Helferchen (NVDI od. Quickst, 
Xcontrol) oder will man echtes Multitasking, dann ist man ganz schnell bei 2MB.

Man braucht nat�rlich eine {\TeX}-Implementation -- wozu sollte man denn sonst 
einen DVI-Treiber brauchen?


\subsection{Rechtliches}

\attention {\bf Ich �bernehme KEINE HAFTUNG f�r Sch�den oder Verluste jeglicher 
Art, die durch Benutzung des Programmes entstanden oder mitverursacht sein 
k�nnten.}

Dieses Programm ist wie vieles um {\TeX} Freeware. Ich verbiete �brigens 
keineswegs den Vertrieb �ber PD-Versender, ich verlange lediglich eine 
Nachricht; Verboten ist es nur dann, wenn der Bezug einer Diskette DM 10 
�berschreitet oder ein Paket angeboten wird.

Fr�her habe ich die guten PD-Programme immer �ber solche Serien bekommen. 
Allerdings kann ich das internationale Computernetz nur weiterempfehlen (bzw. 
das MAUS-Netz, wenn man keinen Zugang zum Internet hat).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\clearpage
\section{Bedienung}

Nichts einfacher als das: Man klickt den Men�eintrag {\tt �ffnen\dots} bzw. den 
Accessoryeintrag an und w�hlt die gew�nschte Datei aus.

\attention Der letzte Ordnername ({\tt fonts} bei Strunk bzw. {\tt res144.scr} 
bei Lindner) ist der Treibername. Er darf beim Zeichensatzpfad nicht mit 
angegeben werden.

Benutzt man die {\TeX}-Shell von Heidrich, Kie�ling \& Maluschka, dann kann man 
die Datei PREVIEW.INF als Druckertreiber installieren.


\subsection{Maustasten}

\subsubsection*{Linke Maustaste}

Wenn eine Datei geladen ist, dann erscheint auf der linken Maustaste ein Popup-%
Men�.

Es hat folgende Gestalt:

\setlength{\unitlength}{1mm}
\begin{picture}(131.5,60)
\thicklines
\put(12,52.5){\Large\bf Popupmen�}
\put(10,5){\framebox(31.5,45)}
\put(15,45){\makebox(25,5){Weiterbl�ttern\hfill}}
\put(15,40){\makebox(25,5){Zur�ckbl�ttern\hfill}}
\put(15,35){\makebox(25,5){Gehe zu Seite\hfill}}
\put(13,30){\makebox(28,5){- - - - - - - - - - -}}
\put(15,25){\makebox(25,5){Verkleinern\hfill}}
\put(15,20){\makebox(25,5){Vergr��ern\hfill}}
\put(13,15){\makebox(28,5){- - - - - - - - - - -}}
\put(15,10){\makebox(25,5){Sonstiges\hfill$\Rightarrow $ }}
\put(15,5){\makebox(25,5){Ende\hfill}}

\put(72,52.5){\Large\bf Submen�}
\put(70,0){\framebox(36.5,50)}
\put(75,45){\makebox(30,5){Drucke Seite\hfill}}
\put(75,40){\makebox(30,5){Drucken\dots\hfill}}
\put(73,35){\makebox(33,5){- - - - - - - - - - -}}
\put(75,30){\makebox(30,5){Suchen\dots\hfill}}
\put(75,25){\makebox(30,5){ASCII-Dump\dots\hfill}}
\put(73,20){\makebox(33,5){- - - - - - - - - - -}}
\put(75,15){\makebox(30,5){Einstellungen\dots\hfill}}
\put(75,10){\makebox(30,5){Pfade\dots\hfill}}
\put(75,05){\makebox(30,5){Laden\dots\hfill}}
\put(75,00){\makebox(30,5){Speichern\dots\hfill}}
\end{picture}

Kommt man auf den Pfeil, so erscheint ein Submen� (s.o.). Diese Men�s sind 
eigentlich nur f�r den Accessorybetrieb n�tig. Aber wer sich an Ascreen gew�hnt 
hat, wird an dieser Bedienung seine Freude haben.

Was {\tt Suchen\dots} und {\tt ASCII-Dump\dots} bewirkt, siehe Abschnitt 
\ref{suchen} bzw. \ref{ASCII}.

\subsubsection*{Rechte Maustaste}

Die rechte Maustaste ist eine Lupe. Dabei erscheint der vergr��erte Ausschnitt 
invertiert. Ist die Bildschirmdarstellung verkleinert, so ist das Bild in der 
eigentlichen Orginalgr��e; ansonsten wird es halt einfach vergr��ert (aber das 
kann z.B. die GEM-Lupe auch). Diese Funktion ist eigentlich nur bei 
Verkleinerung richtig sinnvoll.

\subsubsection*{Mittlere Maustaste}

Die mittlere Maustaste bei einer Dreitastenmaus (sie habe keine? Ich auch 
nicht\dots ) ist das Ma�band. Bei einer Atari-Maus tun es auch beide Tasten 
gleichzeitig.

Dann erscheint eine Linie und in der oberen linken Ecke des Fensters wird die 
ungef�hre L�nge in Inch angezeigt. Man beachte, da� die Anzeige nur mit ganzen 
Zahlen rechnet und deshalb relativ ungenau ist.

Wenn man eine Strecke �ber Eck ausmesssen will, hat man mit der Atari-Maus eine 
zus�tzliche M�glichkeit: Ausmessen, eine Taste loslassen und wieder neu 
ansetzen. Dabei bleib die Anzeige der alten Strecke erhalten.



\subsection{Tastaturkommandos}

Alle laufenden Aktionen (Drucken, Bl�ttern, Suchen) kann man mittels 
{\sc Shift+Shift} abbrechen.

Es gibt zwei Arten von Seitennummern: Die physikalische Numerierung, die erste 
Seite in der DVI-Datei ist Null, und die Nummer in dem ersten Register, die 
logische Numerierung. So kann zum Beispiel die Seite physikalisch 99 die 
logische Seite 0 (Titel) sein.

Allerdings mu� die logische Nummer nicht in irgendeinem der zehn Register sein; 
dies ist lediglich Konvention. Und so wird zwar die logische Nummer angezeigt, 
aber gebl�ttert (au�er bei {\tt Gehe zu Seite} und beim Drucken) wird in der 
Reihenfolge, in der die Seiten in der DVI-Datei stehen.

(Das hat im �brigen seinen Grund auch in der M�glichkeit unfertige Dateien zu 
lesen; denn vielleicht gibt es die logisch n�chste Seite noch nicht. Eine 
physikalisch n�chste Seite gibt es dagegen immer, auch wenn sie erst halbfertig 
ist.)

Der Treiber springt am Anfang immer zur physikalisch ersten Seite der 
DVI-Datei.

\begin{itemize}

\is[Escape] DVI beenden, zur�ck zum Desktop.
\is[Enter] Wenn Teile der Seite noch weiter unten liegen, dann werden sie 
sichtbar bemacht; ist man am Seitenende, dann wird zur (physikalisch) n�chsten 
Seite gegangen. Damit kann man das ganze Dokument durchbl�ttern.
\is[Return] Eine Seite (physikalisch) voran.
\is[Backspace] Eine Seite (physikalisch) zur�ck.
\is[G] Gehe zur logischen Seite (wie {\sc Control L})
\is[$>$] Die Anzeige eine Stufe weiter verkleinern.
\is[$<$] Die Anzeige eine Stufe wieder vergr��ern.
\is[Control+$\Leftarrow $] Linken Rand bei der Anzeige festlegen.
\is[Control+$\Uparrow $] Oberen Rand bei der Anzeige festlegen.
\is[Clr Home] An den linken oberen Rand gehen.
\is[$\Leftarrow\ \Rightarrow\ \Uparrow\ \Downarrow $] Bewegung des Auschnittes 
um $^1/_4$ Schrittweite in die entsprechende Richtung.
\is[Shift+$\Leftarrow\ \Rightarrow\ \Uparrow\ \Downarrow $] Bewegung des 
Auschnittes um die ganze Schritteweite in die entsprechende Richtung. (Das Ganze 
funktioniert auch mit arretierter Caps-Lock-Taste.
\is[+ (-)] Schrittweite verdoppeln (halbieren).
\is[Help] Hilfedialog einblenden.

\end{itemize}


\subsection{Men�eintr�ge}

% Grafik: Men�leiste
\setlength{\unitlength}{1mm}
\begin{picture}(120,40)
\thicklines
\put(0,35){\line(1,0){120}}\put(0,36){\bf DVI}\put(10,36){\bf Datei}
\thinlines
\put(7,0){\framebox(28,35)}
\put(10,30){\makebox(25,5){�ffnen\dots\hfill\^{}O}}
\put(10,25){\makebox(25,5){Schlie�en\hfill\^{}S}}
\put(7,20){\makebox(28,5){- - - - - - - - - - -}}
\put(10,15){\makebox(25,5){Drucke Seite\hfill\^{}P}}
\put(10,10){\makebox(25,5){Drucken\dots\hfill\^{}D}}
\put(7,5){\makebox(28,5){- - - - - - - - - - -}}
\put(10,0){\makebox(25,5){Ende\hfill\^{}Q}}
\put(38,36){\bf Arbeit}
\put(37,5){\framebox(38,30)}
\put(40,30){\makebox(35,5){n�chste Seite\hfill +$\Rightarrow\,$}}
\put(40,25){\makebox(35,5){vorige Seite\hfill +$\Leftarrow\,$}}
\put(40,20){\makebox(35,5){Gehe zu Seite\hfill\^{}L}}
\put(37,15){\makebox(38,5){- - - - - - - - - - - - - - -}}
\put(40,10){\makebox(35,5){Suchen\dots\hfill\^{}F}}
\put(40,05){\makebox(35,5){ASCII--Dump\dots\hfill}}
\put(37,0){\makebox(38,5){- - - - - - - - - - - - - - -}}
\put(40,-5){\makebox(35,5){Mehrspaltenlayout\hfill}}
\put(78,36){\bf Optionen}
\put(77,10){\framebox(32,25)}
\put(80,30){\makebox(30,5){Einstellungen\dots\hfill}}
\put(80,25){\makebox(30,5){Pfade\dots\hfill}}
\put(77,20){\makebox(33,5){- - - - - - - - - - - - -}}
\put(80,15){\makebox(30,5){Laden\dots\hfill}}
\put(80,10){\makebox(30,5){Speichern\dots\hfill}}
\put(77,5){\makebox(33,5){- - - - - - - - - - - - -}}
\put(80,0){\makebox(30,5){~bis 7 Einstellungen\hfill}}
\end{picture}


Es gibt drei Men�eintr�ge: {\tt Datei}, {\tt Arbeit} und {\tt Optionen}.

Die Men�eintr�ge sind eigentlich selbsterkl�rend, nur zu den Buchstabenbefehlen 
(Shortcuts) ist noch anzumerken, da� +$\Leftarrow $ {\sc Shift+Cursor Links} 
und analog +$\Rightarrow $ {\sc Shift+Cursor Rechts} hei�t.

Unter {\tt Mehrspaltenlayout} hat man Zugriff auf die M�glichkeit, mehrere 
Seiten auf einer Druckseite unterzubringen. (Siehe \ref{layout})

Unter {\\ Optionen} stehen alle im Standartpfad gefundenen Datei mit 
Einstellungen zur Auswahl. Man mu� als nicht mehr m�hsam die Datei mit den 
gew�nchten Einstellungen anw�hlen (oder gar die Einstellungen von Hand ver�ndern), 
es reicht den Men�eintrag anzuklicken.

\subsection{Suchen}\label{suchen}

Mit {\tt Suchen\dots} im Men� {\tt Optionen} kann nach einer Zeichenfolge 
gesucht werden. Allerdings ist die Funktion bei den Massen von Daten, die 
durchw�hlt werden m�ssen, kein Wunder an Geschwindigkeit (170 Seiten zu 
durchsuchen, dauert ca. 7min).

Das zu demonstrieren erscheint ein Fenster, das die aktuell bearbeitete Seite 
anzeigt. Wenn man ein anderes Fenster in den Vordergrund holt, wird es 
geschlossen. Man kann es mit {\sc Shift+Shift} und Beantwortung der Alertbox mit 
"`Nein"' wiederbekommen.

Das {\bf �} und die Ligaturen {\bf ff, fi, fl, ffi, ffl} werden korrekt erkannt. 
������ m�ssen nach altem Schema als \verb|"A"O"U"a"o"u| gesucht werden, d.h alle 
Doppelpunkte oder -striche werden zu "'. Deutsche An- bzw. Ausf�hrungszeichen 
werden an \verb|"`| bzw. \verb|"'| erkannt.  Das \c{C}\'edille wird zu einem 
Komma.

Wenn man die neuen Zeichens�tze hat, mu� man nach ������ suchen, denn Zeichen 
mit Nummer gr��er 127 werden nicht konvertiert!. (Da ich diese nicht besitze, 
konnte ich sie auch nicht testen.)

Jedes Zeichen kleiner 128, das der ST nicht kennt, wird zu $|$. Folgen mehrere 
solcher unbekannten Zeichen, so werden sie alle auf ein {\bf Einziges} $|$ 
abbgebildet.

\u{O} mu� als $|$O gesucht werden. Genauso wird aus $\Psi $ ein $|$. 
Wird eine solche Zeichenkette gefunden, springt der Cursor auf die jeweilige 
Seite und unter der Zile, in der das Wort ist, erscheint eine gepunktete Linie. 
(Diese verschwindet manchmal schnell wieder. Da mu� man dann selber suchen\dots )

Der ST kennt: $\Gamma ,\Delta ,\Theta ,\Lambda, \Pi, \Sigma, \Omega $,%
\`{},\'{},\^{},\~{},$\circ $,�,ff,ffi,ffl,ffi,ffl,{\ae},{\oe},{\o},%
{\AE},{\OE},{\O}, {\char60}, {\char62}, {"'} und @. Und nat�rlich den 
stinknormalen ASCII-Zeichensatz.

Ihm fehlen: $\Xi, \Upsilon, \Psi $,{\i},{\j},\u{},\v{}.

Aber ich denke, f�r deutsche und englische Texte sollte dies ausreichen. Ach ja, 

\attention
{\em Wortgrenzen werden nur in der Einstellung {\tt Leerzeichen erkennen} 
erkannt, sonst mu� man die Worte zusammen schreiben. Die Qualit�t der Erkennung 
von Leerzeichen bei} {\rm La{\TeX}}{\em-Compilaten ist hoch $\approx 95$\% 
(andere benutze ich nicht!)}

Die Kugel wird �brigens als \verb*|\item|-Befehl interpretiert.

Der Treiber versucht, Worttrennungen zu erkennen und r�ckg�ngig zu machen. 
Leider f�llt dem hin und wieder auch ein Gedankenstrich oder ein Zwischen-%
Hauptw�rter-Strich zum Opfer.

\subsubsection*{Beispiele}

{\bf Ohne Leerzeichen:}

Sucht man nach: "`k��ten sich z�rtlich!"' So sollte der Suchstring 
lauten: "`k"'u�tensichz"'artlich!"'

Sucht man nach: "`j\'asni \`o\v{c}i"', so sucht man nach "`j\'{}asni\`{}o$|$ci"', 
wenn man Erfolg haben will.

Sucht man "`$\bullet $ Ist es m�glich"' so mu� man nach 
"`\verb|\|item Istesm"oglich"' suchen.

{\bf Mit Leerzeichen:}

Sucht man nach: "`k��ten sich z�rtlich!"' So sollte 
der Suchstring lauten: "`k"'u�ten sich z"'artlich!"'

Sucht man nach: "`j\'asni \`o\v{c}i"', so sucht man nach "`j\'{}asni 
\`{}o$|$ci"', wenn man Erfolg haben will.

Sucht man "`$\bullet $Ist es m�glich"' so mu� man nach "`\verb|\|item Ist es 
m"oglich"' suchen.

\subsection{ASCII-Dump}\label{ASCII}

Schon einmal trotz aller Warnungen (oder sind die etwas ausgeschaltet) eine 
Orginaldatei gel�scht und nur noch die DVI-Datei war vorhanden?

Nun, kein schlimmes Problem mehr, denn der wesentliche Inhalt kann gerettet 
werden, ohne den Ausdruck einzuscannen und mit einem Texterkennungsprogramm zu 
behandeln. Nach Eingabe von Start- und Endseite wird auf der Platte eine Datei 
mit der Endung \verb|.dmp| angelegt, die den Inhalt als ASCII-Text enth�lt.

Wenn man mal sehen will, wie der Text bei der Suche aussieht, dann schaut man 
sich einfach die ASCII-Datei an, es ist dieselbe Routine, die diesen erzeugt.

Ein bischen Nacharbeit wird dabei allerdings vonn�ten sein, denn es werden keine 
Abs�tze erkannt und leider nicht immer alle Leerzeichen.


\subsection{Warum 144dpi als Voreinstellung?}

�brigens ist 144dpi deswegen voreingestellt, weil die Bildschirmaufl�sung ca. 
72dpi (auf dem SM124) ist und wenn man 1:2 verkleinert, dann kann man die 
Strecken auf dem Bildschirm mit dem Lineal ausmessen. (Geht gut!)

Dabei kann man die Texte in dieser Aufl�sung noch gut lesen. Aber Fonts in in 
72dpi k�nnen nicht richtig erzeugt werden.

Au�erdem ist 144dpi nahe an 150dpi, die mein Blubber-Drucker (und auch der 
SLM804) kann. Man sieht dann zwar Kl�tzchengrafik, aber auch damit kann man 
korrekturlesen. Und ein 150dpi-Ausdruck braucht nur ein Drittel der Zeit (und 
ein Viertel soviel Speicher pro Seite).


\section{Parameterdatei}

Beim Start durchsucht DVI alle unter \$PATH eingetragenen Pfade nach der Datei 
DVI.SET. Findet er sie, so werden die Einstellungen geladen. Diese sind im 
ASCII-Format gespeichert.

Man kann aber zum Beispiel mehrere solche Dateien anlegen, zum Beispiel eine 
andere mit Namen HP{\_}300.SET. Dort wurden vorher die Parameter f�r den Ausdruck 
mit dem Deskjet f�r 300dpi get�tigt. Analog k�nnte man auch eine Datei 
HP{\_}600.SET und EPSON9.SET anlegen\dots

Im Men� {\tt Optionen...} werden sie angezeigt. (D.h. alle Dateien mit der 
Endung "`.set"` werden angezeigt und auf Mausklick geladen.)


\section{Mehr Seiten auf einer Druckseite}\label{layout}

Jetzt gibt es endlich die M�glichkeit des Buchdruckes. Dazu braucht man einen 
Druckertreiber, der die Seite drehen kann (z.B. {\tt JP\_90}).

Will man zum Beispiel ein Heft drucken, dann sollte man angeben (Vier Seiten pro 
DIN A4-Blatt):

Modulofaktor 4 und dazu 2 und 3 anw�hlen, Offset f�r 3: (4.85in,0) f�r DIN 
A5-Seiten. Das Ganze ausdrucken.

Modulofaktor 4 und dazu 1 und 4 anw�hlen, Offset f�r 1: (4.85in,0), die Seiten 
von vorhin gedreht einlegen und ausdrucken. Fertig ist ein vieseitiges Heft!

Das Ganze ist �hnlich wie bei DVIDVI angelegt, doch kann hier jede Seite die 
Startseite sein.

\attention Wichtig ist, um brauchbare Ergebnisse zu begkommen, eine feste 
Seitengr��e anzugeben (z.B. DIN A4 297mm*210mm).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\clearpage\section{Die Druckertreiber}

Die Druckertreiber sind eigenst�ndige Programme. Sie werden mit einer 
Kommandozeile aufgerufen. Dabei gibt es folgenden Parameter:

\centerline{\tt shared\_mem\_datei weite hoehe h\_dpi v\_dpi (datei)}

Wenn man selber einen Treiber schreibt, dann sollte man die Dateien 
{\tt TREIBER.C} und {\tt FAST\_DVI.S} benutzen. Man mu� dann nur noch eine 
Routine schreiben, die die Grafik in Druckebefehle umwandelt; das Filelocking 
und alles andere ist schon vorhanden.

Wenn man den 9-Nadel, den 24-Nadel oder den IMG-Treiber benutzt, dann sollte die 
Environmentvariable {\$}TMPDIR auf einem sinnvollen Wert stehen. Denn der legt 
dort die Zwischendatei an. Dies erreicht man z.B. durch Eintragung in der 
{\tt MiNT.CNF}-Datei. Die Zwischendatei wird nach erfolgreichem Druck wieder 
gel�scht.

Der IMG-Treiber erzeugt in diesem Ordner die IMG-Datei {\tt PRINTxx.IMG}, wobei 
{\tt xx} eine noch nicht belegte Zahl von 00-99 ist.

Wenn man z.B. Preview in 144dpi macht, dann ist ein schneller Testausdruck 
in z.B. 150dpi n�tzlich. Und genau das machen die Treiber automatisch.

Der HP-Treiber unterst�tzt folgende Aufl�sungen: 1200*1200, 600*600, 300*300, 
150*150, 100*100 und 75*75dpi. (Nat�rlich nur wenn dies m�glich ist.) Dabei 
orientiert er sich an der horizontalen Aufl�sung. (HP meint: Laser600, JP350WS 
und Deskjet.)

Der 9-Nadel-Treiber unterst�tzt folgende Aufl�sungen:
\begin{itemize}
\item Horizontal: 240, 120, 90, 80 und 72dpi.
\item Vertikal: 216, 144 und 72dpi.
\end{itemize}

Die 24-Nadeltreiber naturgem�� 180 oder 360 vertikal/horizontal.

Ein eigener Treiber sollte dies m�glichst auch, das hei�t die n�chste sinnvolle 
Aufl�sung unterst�tzen.

Der IMG-Treiber unterst�tzt naturgem�� (und mit ziemlichen Rundungsfehlern) jede 
Aufl�sung. Es liegt an den GDOS-Druckertreibern, was sie daraus machen. Er ist 
einer der wenigen Treiber, die die IMG-Datei zumindest teilweise komprimieren.

Die Treiber zeigen auf allgemeinen Wunsch wieder den Status oben links an: 
Solange in die tempor�re Datei geschrieben wird, erscheint ein {\bf p}. Druckt 
man, dann wird dieses abwechselnd durch * oder + ersetzt.

F�r eigene Treiber siehe die Erkl�rungen in \verb|TREIBER.H| lesen, oder man 
(frau?) benutze meine Mail-Adresse. {\bf BITTE} eine selbstfabrizierten Treiber 
auch an mich schicken, damit alle etwas von der Arbeit haben.

Der {\tt JP\_90}-Treiber druckt das Blatt gedreht aus.

�berfordert der Treiber die parallele Schnittstelle, so kann man hinter der 
Zeichenfolge {\tt PATCH:} die zwei folgenden Worte ver�ndern (Normal $00 04 und 
$00 20). Das erste ist die Wartezeit bis Strobe, das Zweite die Wartezeit bis 
Ende Strobe.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\clearpage\appendix


\section{Unterst�tzte {\tt special}-Befehle}

Hier sp�testens merkt man noch ein paar Einschr�nkungen. Zur Zeit kann der 
Treiber zwar alle Specials der Lindnertreiber, aber immer noch nicht die bei 
Strunk verwendeten *-Dateien (Name entfallen). Dies ist aber in Planung. 
Vielleicht werden auch irgentwann die em{\TeX}-Grafik-Specials unterst�tzt. (Hat 
jemand eine Liste aller sinnvollen {\tt special}?)

(\# hei�t: Zahl soll folgen; @ hei�t: String soll folgen)

\begin{itemize}

\item {\tt synchronize} Nur in TFM-Koordniaten rechnen; verschlechtert i.a. die 
Qualit�t. Allein wenn man mit dem chemstruct-Paket arbeitet, kann dieser Befehl 
sinnvoll sein.

\item {\tt reset{\_}synchronize} Jetzt wird (hoffentlich) wieder optimale 
Qualit�t erzeugt. (Standart)

\item {\tt max{\_}drift\verb*| |\#} Setze den Wert, ab dem eine Synchronisation 
erzwungen wird, auf diese Zahl.

\item {\tt reset{\_}max{\_}drift} Setze den Wert, ab dem eine Synchronisation 
erzwungen wird, auf den Defaultwert (2).

\item {\verb*|graphic img @|} Lade die Datei @. Es wird eine Datei im IMG-%
Standartformat erwartet.

\end{itemize}



\section{Parameter}

Man kann die Datei auch mit Parametern starten. Die Parameter lauten analog zu 
den Lindertreibern: (\# hei�t: Zahl soll folgen; @ hei�t: String soll folgen)

(Vielleicht schickt mir mal jemand die Parameter von den Strunk-Treibern.)

\begin{itemize}
\itm[A@] Drucken in Datei @, dabei werden die Seiten an das Ende geh�ngt.

\itm[B\#] Nach dem Laden der Datei wird zu dieser Seite gesprungen.

\itm[D~] Es wird beim Drucken jede zweite Seite �bersprungen.

\itm[E\#] Wenn gedruckt wird, dann ist diese die letzte Seite, die gedruckt wird.

\itm[F@] Gibt den Zeichensatzpfad an.

\itm[G@] Gibt den Pfad f�r Grafiken an.

\itm[H\#] Gibt den linken Rand an. Ma�e in {\bf In}ch, {\bf cm} oder {\bf mm}.

\itm[V\#] Gibt analog den oberen Rand an.

\itm[T\#] Gibt die Toleranz bei der Zeichensatzsuche an (ungef�hr Prozent).

\itm[N~] Es soll nicht gedruckt werden, sondern nur angezeigt.

\itm[Z@] Zus�tzliche Parameter, der n�chste Buchstabe sagt, was genau neu 
spezifiziert werden soll: \begin{itemize}

\itm[A\#] Gibt die Verkleinerung an. Nur Werte von 1, 2, 3, 4, 6 und 8 sind 
sinnvoll, ansonsten wird nichts dargestellt, nur die Fenstergr��e erscheint 
ma�st�blich. Aber die Lupe geht dennoch.

\itm[L\#] Gibt an, ob Lindner-{\TeX} (eine 1 folgt) oder Strunk-{\TeX}.

\itm[I~@] Gibt den Treibernamen an. Bei Lindner ist die nur die Endung, z.B. 
{\tt scr} (res101 erzeugt der Treiber selber), bei Strunk ist es z.B. 
{\tt fonts}.

\itm[R\#] Horizontale Aufl�sung in dpi.

\itm[S\#] Vertikale Aufl�sung in dpi.
\end{itemize}
\end{itemize}



\section{Zeichensatzbibliotheken}

Der Treiber liest ab sofort auch Fontlibaries (flibs), ein Format was einige 
Vorteile hat: Suchen nach Zeichens�tzen wird schneller und es wird weniger 
Plattenspeicherplatz gebraucht. Das Programm zum Erstellen der Flibs stammt 
nicht von mir. Deswegen ist die Erkl�rung in Englisch, Anmerkeungen in Deutsch 
sind von mir:

FontLib Manager - Version 1.03 for ATARI \copyright 1990 Georg Hessmann/Robert Stabl

usage: flib c$|$a$|$x$|$d$|$z$|$p$|$l$|$t$[$v$]$ library $[-|[$modules$]*]$

\begin{itemize}
\itm[c,a] create library / add (replace) module(s) to (in) library, (Flib 
erzeugen (c) bzw. Zeichensatzdatei hinzuf�gen)
\itm[x] extract module(s) from library, (Zeichensatzdatei aus Flib entfernen, 
wird nicht gel�scht)
\itm[d] delete module(s) in library, (l�scht Zeichensatz in Flib)
\itm[t] print table, (Inhaltsverzeichnis anzeigen)
\itm[r] rename module(s) in library, (Zeichensatzdatei umbenennen)
\itm[z] create new flib from old flib, (aus alt mach neu... (?))
\itm[p] test checksums of all modules, (Inhalt testen)
\itm[l] create a flib link (second arg is the link destination), (Link erzeugen; 
wird vom Treiber zur Zeit noch nicht unterst�tzt)
\itm[v] verbose mode, (ausf�hrliche Meldungen)
\itm[?] print this help, (Hilfe anzeigen)
\itm[-] read module name(s) from stdin. (Namen der Module von der 
Standarteingabe lesen (also auch z.B. aus einer Pipe))
\end{itemize}

Leider scheint PureC 1.0 nur vom Bios zu lesen, als stdin; deswegen geht die 
Ausgabeumleitung unter MiNT nicht!

\attention Der Name der Fontdateien ist {\tt pkxxxx}, wobei {\tt xxxx} f�r die 
Aufl�sung in dpi steht: 144dpi in magstephalf $= 0144*1.095=157.68 \approx 157$ 
(immer abrunden!) Wenn man einen Namen der Form {\tt flibxxxx} verwendet, so mu� 
man die Flibkennung unter {\tt Pfade...} entsprechen ver�ndern.



\section{Bekannte Probleme und Unvertr�glichkeiten}

Wenn kein Fenster ge�ffnet ist, dann gehen keine Tasturkommandos. Das ist ein 
Problem von MiNT. Alle GEM-Prozesse, die unter MiNT-Domain 1 laufen, haben 
dieses Problem.

Eventuell gibt es bei manchen Druckertreibern beim Ausdruck einen {\sl Memory 
Protection-Fault}. Dann hilft es,  {\tt DVI.APP} auf {\sl readable} zu stellen.

Durch die Art der Zeichensatzsuche bekommt AFX Probleme. Wenn eine bestimmte 
Zahl von Dateien ge�ffnet und wieder geschlossen wurde, dann kann AFX nur noch 
bestimmte Zeichens�tze �ffnen. Der Fehler liegt in AFX (oder TOS$<=$1.04). Es 
ist �brigens wenig sinnvoll, Flib noch mit AFX zu komprimieren: Das Lesen wird 
g�hnend langsam und die Flib-Datei wird kaum k�rzer (ca. 5\%).

Au�erdem scheint zusammen mit MINIX.XFS das Problem \verb|\| und \verb|/| als 
Ordnertrenner akut zu werden. Ich bitte hiermit {\attention} 
TOS-Pfadnamenkonventionen zu benutzen, denn es ist {\bf kein} GNU-Programm. 

Manchmal reagiert der Treiber tr�ge, wenn er in den Vordergrund geklickt 
werden soll. Also l�nger die Maustaste dr�cken.

Irgentwann demn�chst wird das Drag{\&}Drop-Protokoll unterst�tzt sowie die 
Verwendung von Farben.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Versionen}

\begin{itemize}

\item Version 0.2 vom 20.2.92

Erste nicht vollst�ndig lauff�hige Version. Das Laden von PK-Zeichens�tzen 
funktionierte bereits. Danach mehr oder weniger Funkstille bis zur

\item Version 0.90 vom 23.12.92

Erste halbwegs funktionf�hige Version. Tastaturbedienung und Multitasking 
klappen noch nicht.

\item Version 0.91 vom 5.1.93

Tasturbedinenung geht, nur noch Iconisierung, Seitennummeranzeige und 
Parameterdatei fehlen.

\item Version 0.92 vom 10.2.93

Voll funktionf�hig; Druckertreiber nutzten jetzt shared Memory und stellen sich 
auf alle Vergr��erungen ein. Verkleinerung 1:6 ist hinzugef�gt. Kommandozeile 
wird ausgewertet, das hei�t jetzt kann man den Lindner-Treiber ersetzen. (Man 
sollte ihn aber noch nicht in die Tonne kloppen!)

\item Version 0.93 vom 11.3.93

Jetzt wird doch synchronisiert. Mea maxima culpa daf�r, da� ich glaubte, darauf 
verzichten zu k�nnen. Ich habe ein Notenblatt gemacht und es sah einfach 
abscheulich aus. Au�erdem wurden die Striche bisher zu breit oder zu schmal 
gerechnet.

Es kann jetzt auch nach einer Zeichenfolge in der DVI-Datei gesucht werden. (s. 
\ref{suchen}) Dabei entstand die M�glichkeit, auch seitenweise ASCII-Dumps 
anzulegen. Somit kann man mit wenig Nacharbeit aus den DVI-Dateien wieder die 
Eingangsdateien gewinnen.

Au�erdem l�uft der Treiber wieder mit Farbe. Auf Wunsch wird diese sogar zur 
Darstellung genutzt. Und etwas schneller wurde der Treiber. Auch gibt es jetzt 
bei 1:1 Darstellung eine Lupe.

\item Version 0.94 vom 27.3.1993

V�llig neues Men�layout, Popupmen� mit Untermen�. Beachtet die Voreinstellung 
f�r Farbe, holt Bildschirmaufl�sung von VDI. Es gehen jetzt auch wieder 
Zeichens�tze mit mehr als 193 Zeichen.

Jetzt auch mit Ma�band und alle Lindner-Specials werden unterst�tzt, inklusive 
dem Laden von IMG-Dateien. Somit sind alle (m.E. sinnvollen) Funktionen des 
Lindnertreibers in gleichwertiger Weise vorhanden.

\item Version 0.95 vom 14.4.1993

Viele neue Druckertreiber sind dabei und das Drucken in eine Datei geht. 
Fenstergr��enverwaltung (...) v�llig �berarbeitet.

Kein Nachlaufen der Tastatur mehr.

\item Version 0.96 vom 6.5.93

Unterst�zung von Flibs (Zeichensatzbibliotheken). Popupmen� nur noch, wenn die 
Maus sich vollst�ndig im Fenster ist. Clipping bei Boxen geht endlich wieder. 
Weitere Voreinstellungen m�glich. Diverse Fehler entdeckt... Anzeige beim 
Drucken wieder eingebaut, Fehler bei langen Dateinamen behoben, NEC P6 geht nun. 
Auch wird in den Dialogboxen Let'em Fly voll unterst�tzt.

\item Version 1.00 vom \today

Es ist wie angek�ndigt die 1.00-Version, allerdings eher deswegen, weil dieses 
Programm sonst nie fertig wird\dots

Neu ist der Mehrseitendruck (leider noch genauso kompliziert wie dieses Wort) 
f�r Deskjet und kompatible und das komfortable Auswahlniveau f�r die Parameter.

\end{itemize}

\section{Danksagungen}

Dank geht an Alf Hoheisel (erster Tester), Stefan Haake (moderiert 
ftp.uni-stuttgart, entdeckte viele Fehler, opt. Tastaturbelegung), Marcus 
Haebler (f�r diverse Fehlerreporte, NECp6-Treiber, Portierung nach GNU-C, 
Filesystemtest), Michael Hoppe (Fehlerreporte und HP IV-Laser) und andere. (Wer 
sich �bergangen f�hlt, bitte melden.)

\section{Meine Adresse}

{\large Markus Pristovsek}\\
Boumannstra�e 66\\
W1000 Berlin 28 \footnote%
{Wird ab 1.7.93 zu {\bf 13467 Berlin}}

{\bf Oder per email:} prissi@marie.physik.tu-berlin.de


\end{document}