Anleitung DVI-Treiber

Version 1.00 vom 21. Juni 1993

Markus Pristovsek

Inhaltsverzeichnis

1 Was kann DVI 3 1.1 Warum noch ’nen DVI-Treiber? . . . . . . . . . . . . . . . . . . 3 1.2 Was baucht man? . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Rechtliches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Bedienung 6 2.1 Maustasten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Tastaturkommandos . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Menüeinträge . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Suchen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5 ASCII-Dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.6 Warum 144dpi als Voreinstellung? . . . . . . . . . . . . . . . . 10

3 Parameterdatei 10

4 Mehr Seiten auf einer Druckseite 11

5 Die Druckertreiber 12

A Unterstützte special-Befehle 14

B Parameter 14

C Zeichensatzbibliotheken 15 D Bekannte Probleme und Unverträglichkeiten 16 E Versionen 16 F Danksagungen 18 G Meine Adresse 18

1 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×, 3×, 4×, 6× sowie 8× 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…)

Seit neustem existieren auch Treiber für den Querdruck.

1.1 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:

• Sie benutzen kein GEM.

• Sie sind L A N G S A M.

• Sie können keine halbfertigen DVI-Dateien lesen.

• Sie brauchen exakt den richtigen Zeichensatz, um zu arbeiten.

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 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:

• Bei 240dpi und großen Zeichensätzen wurde manchmal Müll angezeigt.

• Man wurde zu oft genötigt, Fenster zu schließen.

• Lief nicht als Accessory parallel zum Editor und konnte auch keine unvollständigen Dateien lesen.

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… Allerdings habe ich mich an den Algorithmen zur Synchronisation und zum Buchstabenauspacken aus der Lindner-Dokumentation orientiert.

1.2 Was baucht man?

! → 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 freien Speicher:

690kB TEX + 250kB DVI-Treiber + 260kB MiNT + 40kB Mintshell + 30kB Tosingem ≈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?

1.3 Rechtliches

! → 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).

2 Bedienung

Nichts einfacher als das: Man klickt den Menüeintrag Öffnen… bzw. den Accessoryeintrag an und wählt die gewünschte Datei aus.

! → Der letzte Ordnername (fonts bei Strunk bzw. 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.

2.1 Maustasten

Linke Maustaste

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

Es hat folgende Gestalt:

Popupmenü^{Weiterblättern}^{Zurückblättern}^{Gehe zu Seite}^{- - - - - - - - - - -}^{Verkleinern}^{Vergrößern}^{- - - - - - - - - - -}^{Sonstiges ⇒}^{Ende}  Submenü^{Drucke Seite}^{Drucken…}^{- - - - - - - - - - -}^{Suchen…}^{ASCII-Dump…}^{- - - - - - - - - - -}^{Einstellungen…}^{Pfade…}^{Laden…}^{Speichern…}

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 Suchen… und ASCII-Dump… bewirkt, siehe Abschnitt 2.4 bzw. 2.5.

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.

Mittlere Maustaste

Die mittlere Maustaste bei einer Dreitastenmaus (sie habe keine? Ich auch nicht…) 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.

2.2 Tastaturkommandos

Alle laufenden Aktionen (Drucken, Blättern, Suchen) kann man mittels 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 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.

•Escape: DVI beenden, zurück zum Desktop.

•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.

•Return: Eine Seite (physikalisch) voran.

•Backspace: Eine Seite (physikalisch) zurück.

•G: Gehe zur logischen Seite (wie Control L)

•>: Die Anzeige eine Stufe weiter verkleinern.

•<: Die Anzeige eine Stufe wieder vergrößern.

•Control+⇐: Linken Rand bei der Anzeige festlegen.

•Control+⇑: Oberen Rand bei der Anzeige festlegen.

•Clr Home: An den linken oberen Rand gehen.

•⇐ ⇒ ⇑ ⇓: Bewegung des Auschnittes um ^{1}/_{4} Schrittweite in die entsprechende Richtung.

•Shift+⇐ ⇒ ⇑ ⇓: Bewegung des Auschnittes um die ganze Schritteweite in die entsprechende Richtung. (Das Ganze funktioniert auch mit arretierter Caps-Lock-Taste.

•+ (-): Schrittweite verdoppeln (halbieren).

•Help: Hilfedialog einblenden.

2.3 Menüeinträge

DVI Datei Öffnen… ˆ O Schließen ˆ S - - - - - - - - - - - Drucke Seiteˆ P Drucken… ˆ D - - - - - - - - - - - Ende  ˆ Q Arbeit nächste Seite +⇒ vorige Seite  +⇐ Gehe zu Seite  ˆ L - - - - - - - - - - - - - - - Suchen…  ˆ F ASCII–Dump… - - - - - - - - - - - - - - - Mehrspaltenlayout  Optionen Einstellungen… Pfade… - - - - - - - - - - - - - Laden… Speichern… - - - - - - - - - - - - - bis 7 Einstellungen

Es gibt drei Menüeinträge: Datei, Arbeit und Optionen.

Die Menüeinträge sind eigentlich selbsterklärend, nur zu den Buchstabenbefehlen (Shortcuts) ist noch anzumerken, daß +⇐ Shift+Cursor Links und analog +⇒ Shift+Cursor Rechts heißt.

Unter Mehrspaltenlayout hat man Zugriff auf die Möglichkeit, mehrere Seiten auf einer Druckseite unterzubringen. (Siehe 4)

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.

2.4 Suchen

Mit Suchen… im Menü 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 Shift+Shift und Beantwortung der Alertbox mit ”Nein“ wiederbekommen.

Das ß und die Ligaturen ff, fi, fl, ffi, ffl werden korrekt erkannt. ÄÖÜäöü müssen nach altem Schema als "A"O"U"a"o"u gesucht werden, d.h alle Doppelpunkte oder -striche werden zu “. Deutsche An- bzw. Ausführungszeichen werden an "` bzw. "' erkannt. Das Çédille 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 Einziges | abbgebildet.

Ŏ muß als |O gesucht werden. Genauso wird aus Ψ 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…)

Der ST kennt: Γ, Δ, Θ, Λ, Π, Σ, Ω,` ,´ ,ˆ ,˜ ,∘,ß,ff,ffi,ffl,ffi,ffl,æ,œ,ø,Æ,Œ,Ø, ¡, ¿, “ und @. Und natürlich den stinknormalen ASCII-Zeichensatz.

Ihm fehlen: Ξ, Υ, Ψ,ı,ȷ,˘ ,ˇ .

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

! → Wortgrenzen werden nur in der Einstellung Leerzeichen erkennen erkannt, sonst muß man die Worte zusammen schreiben. Die Qualität der Erkennung von Leerzeichen bei LaTEX-Compilaten ist hoch ≈ 95% (andere benutze ich nicht!)

Die Kugel wird übrigens als \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.

Beispiele

Ohne Leerzeichen:

Sucht man nach: ”küßten sich zärtlich!“ So sollte der Suchstring lauten: ”k“ußtensichz“artlich!“

Sucht man nach: ”jásni òči“, so sucht man nach ”j´ asni` o|ci“, wenn man Erfolg haben will.

Sucht man ”• Ist es möglich“ so muß man nach ”\item Istesmöglich“ suchen.

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ásni òči“, so sucht man nach ”j´ asni ` o|ci“, wenn man Erfolg haben will.

Sucht man ”•Ist es möglich“ so muß man nach ”\item Ist es möglich“ suchen.

2.5 ASCII-Dump

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 .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.

2.6 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).

3 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… Im Menü Optionen... werden sie angezeigt. (D.h. alle Dateien mit der Endung ”.set” werden angezeigt und auf Mausklick geladen.)

4 Mehr Seiten auf einer Druckseite

Jetzt gibt es endlich die Möglichkeit des Buchdruckes. Dazu braucht man einen Druckertreiber, der die Seite drehen kann (z.B. 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.

! → Wichtig ist, um brauchbare Ergebnisse zu begkommen, eine feste Seitengröße anzugeben (z.B. DIN A4 297mm*210mm).

5 Die Druckertreiber

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

        shared mem datei weite hoehe h dpi v dpi (datei)

Wenn man selber einen Treiber schreibt, dann sollte man die Dateien TREIBER.C und 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 MiNT.CNF-Datei. Die Zwischendatei wird nach erfolgreichem Druck wieder gelöscht.

Der IMG-Treiber erzeugt in diesem Ordner die IMG-Datei PRINTxx.IMG, wobei 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:

• Horizontal: 240, 120, 90, 80 und 72dpi.

• Vertikal: 216, 144 und 72dpi.

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 p. Druckt man, dann wird dieses abwechselnd durch * oder + ersetzt.

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

Der JP 90-Treiber druckt das Blatt gedreht aus.

Überfordert der Treiber die parallele Schnittstelle, so kann man hinter der Zeichenfolge PATCH: die zwei folgenden Worte verändern (Normal 0004und00 20). Das erste ist die Wartezeit bis Strobe, das Zweite die Wartezeit bis Ende Strobe.

A Unterstützte 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 emTEX-Grafik-Specials unterstützt. (Hat jemand eine Liste aller sinnvollen special?) (# heißt: Zahl soll folgen; @ heißt: String soll folgen)

• 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.

• reset synchronize Jetzt wird (hoffentlich) wieder optimale Qualität erzeugt. (Standart)

• max drift␣# Setze den Wert, ab dem eine Synchronisation erzwungen wird, auf diese Zahl.

• reset max drift Setze den Wert, ab dem eine Synchronisation erzwungen wird, auf den Defaultwert (2).

• graphic␣img␣@ Lade die Datei @. Es wird eine Datei im IMG-Standartformat erwartet.

B 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.)

•A@: Drucken in Datei @, dabei werden die Seiten an das Ende gehängt. •B#: Nach dem Laden der Datei wird zu dieser Seite gesprungen. •D : Es wird beim Drucken jede zweite Seite übersprungen. •E#: Wenn gedruckt wird, dann ist diese die letzte Seite, die gedruckt wird. •F@: Gibt den Zeichensatzpfad an. •G@: Gibt den Pfad für Grafiken an. •H#: Gibt den linken Rand an. Maße in Inch, cm oder mm. •V#: Gibt analog den oberen Rand an. •T#: Gibt die Toleranz bei der Zeichensatzsuche an (ungefähr Prozent).

•N : Es soll nicht gedruckt werden, sondern nur angezeigt. •Z@: Zusätzliche Parameter, der nächste Buchstabe sagt, was genau neu spe-

zifiziert werden soll:

•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. •L#: Gibt an, ob Lindner-TEX (eine 1 folgt) oder Strunk-TEX. •I @: Gibt den Treibernamen an. Bei Lindner ist die nur die Endung, z.B.

scr (res101 erzeugt der Treiber selber), bei Strunk ist es z.B. fonts. •R#: Horizontale Auflösung in dpi. •S#: Vertikale Auflösung in dpi.

C 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 \begin{matrix}c \\ ◯ \end{matrix}1990 Georg Hessmann/Robert Stabl usage: flib c|a|x|d|z|p|l|t[v] library [−|[modules]∗]

•c,a: create library / add (replace) module(s) to (in) library, (Flib erzeugen (c)

bzw. Zeichensatzdatei hinzufügen) •x: extract module(s) from library, (Zeichensatzdatei aus Flib entfernen, wird

nicht gelöscht) •d: delete module(s) in library, (löscht Zeichensatz in Flib) •t: print table, (Inhaltsverzeichnis anzeigen) •r: rename module(s) in library, (Zeichensatzdatei umbenennen) •z: create new flib from old flib, (aus alt mach neu... (?)) •p: test checksums of all modules, (Inhalt testen) •l: create a flib link (second arg is the link destination), (Link erzeugen; wird

vom Treiber zur Zeit noch nicht unterstützt) •v: verbose mode, (ausführliche Meldungen) •?: print this help, (Hilfe anzeigen)

•-: read module name(s) from stdin. (Namen der Module von der Standarteingabe lesen (also auch z.B. aus einer Pipe))

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

! → Der Name der Fontdateien ist pkxxxx, wobei xxxx für die Auflösung in dpi steht: 144dpi in magstephalf = 0144∗1.095 = 157.68 ≈ 157 (immer abrunden!) Wenn man einen Namen der Form flibxxxx verwendet, so muß man die Flibkennung unter Pfade... entsprechen verändern.

D 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 Memory Protection-Fault. Dann hilft es, DVI.APP auf 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 \ und / als Ord- ! → nertrenner akut zu werden. Ich bitte hiermit TOS-Pfadnamenkonventionen zu

benutzen, denn es ist 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.

E Versionen

• 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

• Version 0.90 vom 23.12.92

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

• Version 0.91 vom 5.1.93

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

• 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!)

• 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. 2.4) 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.

• 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.

• 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.

• 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.

• Version 1.00 vom 21. Juni 1993 Es ist wie angekündigt die 1.00-Version, allerdings eher deswegen, weil dieses Programm sonst nie fertig wird…

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

F Danksagungen

Dank geht an Alf Hoheisel (erster Tester), Stefan Haake (moderiert ftp.unistuttgart, 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.)

G Meine Adresse

Markus Pristovsek

Boumannstraße 66 W1000 Berlin 28 ^{1}

Oder per email: prissi@marie.physik.tu-berlin.de

1Wird ab 1.7.93 zu 13467 Berlin F Danksagungen 18