home *** CD-ROM | disk | FTP | other *** search
- ==============================================================================
- MAKEDOT.DOC für makedot 1.1c VERSION: 22.09.1990
- ==============================================================================
-
- Dieses Programm wird zur Erzeugung von Parameterdateien für dvidot
- verwendet. Es hat zwei Funktionen:
-
- - Umwandlung einer Textdatei in eine Parameterdatei (.dot).
-
- - Umwandlung einer Parameterdatei (.dot) in eine Textdatei.
-
- Wenn Sie eine Parameterdatei ändern wollen, müssen Sie diese
- zunächst in eine Textdatei umwandeln lassen. Diese Textdatei können
- Sie dann mit einem Texteditor ändern. Anschließend kann aus dieser
- Textdatei eine Parameterdatei erzeugt werden.
-
-
- Aufruf
- ======
-
- Umwandlung einer Textdatei in eine Parameterdatei:
-
- makedot -c <eingabe_datei> [<ausgabe_datei>]
-
- Die Standarderweiterung für die Ausgabedatei ist dot. Wenn keine
- Ausgabedatei angegeben wird, wird der Name der Eingabedatei (mit .dot)
- verwendet. Wenn für die Eingabedatei - angegeben wird, so wird
- von der Standardeingabe (stdin) gelesen.
-
-
- Umwandlung einer Parameterdatei in eine Textdatei:
-
- makedot -d <eingabe_datei> [<ausgabe_datei>]
-
- Die Standarderweiterung für die Eingabedatei ist dot. Wenn keine
- Ausgabedatei angegeben wird, wird der Name der Eingabedatei
- (ohne Erweiterung .dot) verwendet. Wenn für die Ausgabedatei - angegeben
- wird, so erfolgt die Ausgabe auf die Standardausgabe (stdout).
-
-
- Aufbau der Textdatei
- ====================
-
- Eine Textdatei kann Kommentarzeilen enthalten. Diese beginnen mit
- einem `*'. Alle Zeichen nach diesem Stern werden ignoriert.
- Auch Leerzeilen werden ignoriert.
-
- Alle anderen Zeilen enthalten ein Schlüsselwort nach dem
- ein Gleichheitszeichen stehen muß. Nach dem Gleichheitszeichen
- folgen die Parameter für dieses Schlüsselwort. (Die Parameter
- können bei manchen Schlüsselwörtern auch fehlen.)
-
-
- Schlüsselwörter
- ---------------
-
- In der folgenden Tabelle sind alle Schlüsselwörter aufgeführt.
- Sie müssen alle hier gezeigten Schlüsselwörter (außer COMMENT und
- VF_PATH) in der gezeigten Reihenfolge benutzen. Optionale Teile einer
- Zeile sind in eckige Klammern eingeschlossen, Alternativen
- durch senkrechte Striche getrennt. Für die verschiedenen
- Sorten von Argumenten werden diese Abkürzungen benutzt:
-
- d Längenangabe (dimension): Zahl und TeX-Einheit (auch px)
- n Zahl
- s Druckersteuersequenz
- t Text
-
- Diese Argumenttypen sind weiter unten erklärt. Nun folgt
- Tabelle der Schlüsselwörter:
-
- [COMMENT=[t]] Kommentar. Der Kommentar wird in der
- Parameterdatei gespeichert aber ignoriert.
-
- ENV_NAME=t Name einer Environmentvariablen, aus der
- dvidot Optionen entnehmen soll.
-
- LOG_NAME=t Name der Protokolldatei.
-
- FONT_PATH=t Pfad für Zeichensatzdateien. Dies ist
- die Voreinstellung für /pf*.
-
- [VF_PATH=t] Pfad für vf-Dateien. Dies ist die
- Voreinstellung für /pv* und sollte
- leergelassen werden.
-
- PAGE_WIDTH=d Seitenbreite. Voreinstellung für /w#.
-
- PAGE_HEIGHT=d Seitenhöhe. Voreinstellung für /h#.
-
- FORM_LENGTH=[d] Blattlänge. Voreinstellung für /hf#.
- Wird nur bei FF_METHOD=LF benötigt.
- Wenn d nicht angegeben ist, verwendet
- dvidot die eingestellte Seitenhöhe
- als Blatthöhe.
-
- RESOLUTION=n1 n2 Auflösung. n1 ist die Voreinstellung
- für /rx#, n2 ist die Voreinstellung
- für /ry#.
-
- COLUMNS=n Maximale Anzahl der Druckspalten
- im Grafikmodus. Dieser Wert ist eine
- obere Grenze für /w#.
-
- ONE_LINE_FEED=[n] Dieser Wert wird bei INIT1 und INIT2
- zum Programmieren des Zeilenabstandes
- des Druckers verwendet. Wenn bei
- LINE_FEED (siehe unten) der Zeilenabstand
- umprogrammiert wird, so muß das
- Argument bei ONE_LINE_FEED leer bleiben.
-
- BLANK_WIDTH=[n] Breite eines Leerzeichens. Leerzeichen
- werden am linken Rand benutzt, um
- den Druckkopf nach rechts zu bewegen.
- Hierzu wird die Breite eines Leerzeichens
- in Grafikpunkten benötigt. Sollen keine
- Leerzeichen zum Einrücken benutzt werden,
- so ist das Argument leer zu lassen.
-
- METHOD=n1 n2 Druckmethode. Der Wert n1 gibt an, wieviele
- Bytes pro Grafikspalte an den Drucker
- geschickt werden müssen (1 bis 6).
- Der Wert n2 gibt an, wie oft eine
- Zeile überdruckt werden soll (mit kleinstem
- Zeilenabstand dazwischen). Wenn z.B. der
- Nadelabstand 1/72 Zoll beträgt und der
- Drucker halbwegs zuverlässig 1/216-Zoll-
- Papervorschübe ausfühen kann, sollte für
- n2 3 angegeben werden. Damit wird in diesem
- Beispiel eine vertikale Auflösung von 216 DPI
- erzielt. Es können Werte von 1 bis 6
- verwendet werden.
-
- MAX_WIDTH=[n1 [n2]] Wenn die Seitenbreite (in Grafikpunkte
- umgerechnet) auf einen dieser Werte ein-
- gestellt wird, so wird die Seitenbreite
- um eins verringert, damit der Drucker keinen
- Zeilenvorschub erzeugt, wenn der rechte
- Rand erreicht wird. Auf diese Weise wird
- am rechten Rand ein Grafikpunkt leergelassen.
-
- PINS=n1 n2 Bitnummern der Nadeln. n1 ist das Bit,
- das für die oberste Nadel zuständig ist,
- n2 ist das Bit, das für die unterste
- Nadel zuständig ist (meistens PINS=0 7
- oder PINS=7 0). Es können Werte von 0 bis 7
- angegeben werden.
-
- MAX_LF=n Dies ist die der größte mit einer
- Druckersteuersequenz (siehe LINE_FEED)
- erzielbare Zeilenvorschub in Grafikpunkten.
-
- FF_METHOD=FF|LF Seitenvorschub mit der Druckersteuersequenz
- FORM_FEED (siehe unten) oder mit vielen
- Zeilenvorschüben (siehe FORM_LENGTH).
-
- S_OPTION=OFF|SLOW|DOUBLE_STRIKE
- Bedeutung der /s+-Option. Bei Einstellung
- von OFF gibt es /s+ überhaupt nicht.
- Bei SLOW bewirkt /s+ die Verwendung von
- INIT2 statt INIT1. Bei DOUBLE_STRIKE
- bewirkt /s+ die Verwendung von INIT2 statt
- INIT1 sowie das Drucken mit zwei Durch-
- läufen pro Zeile. Wenn mit zwei Durchläufen
- pro Zeile gedruckt wird, werden beim
- ersten Durchlauf nur die 1., 3., usw.
- Grafikspalte bedruckt, beim zweiten
- Durchlauf nur die 2., 4., usw. Grafikspalte.
- Dies ist für Drucker gedacht, die eine
- Nadel nicht zweimal in Folge abfeuern können.
-
- INIT1=[s] Druckersteuersequenz, die zu Beginn an
- den Drucker geschickt wird, falls /s-
- eingestellt ist (Voreinstellung).
- Als Parameter für Druckersteuersequenz
- wird der mit ONE_LINE_FEED eingestellte
- Wert verwendet.
-
- INIT2=[s] Druckersteuersequenz, die zu Beginn an
- den Drucker geschickt wird, falls /s+
- eingestellt ist.
- Als Parameter für Druckersteuersequenz
- wird der mit ONE_LINE_FEED eingestellte
- Wert verwendet.
-
- EXIT=[s] Druckersteuersequenz, die am Ende
- an den Drucker geschickt wird.
-
- GRAPH_MODE=[s] Druckersteuersequenz, die den Grafikmodus
- einleitet. Auf diese Sequenz folgen
- unmittelbar die Grafikdaten. Als Parameter
- für die Druckersteuersequenz wird die
- Breite der Grafik (Grafikpunkte) verwendet.
-
- GRAPH_END=[s] Druckersteuersequenz, die unmittelbar
- nach den Grafikdaten an den Drucker
- geschickt wird. Üblicherweise leer.
-
- LINE_FEED=[s] Druckersteuersequenz zum Erzeugen eines
- Zeilenvorschubs. Wenn ONE_LINE_FEED
- gesetzt ist, muß der damit eingestellte
- Zeilenvorschub erzeugt werden. Außerdem
- wird diese Sequenz bei FF_METHOD=LF
- verwendet.
-
- FORM_FEED=[s] Druckersteuersequenz zum Erzeugen eines
- Blattvorschubs. Wird bei FF_METHOD=FF
- benötigt.
-
- POS_X=[s] Druckersteuersequenz zum direkten
- horizontalen Positionieren des Druckkopfs.
- Als Parameter für die Druckersteuersequenz
- wird die horizontale Position in Grafikpunkten
- verwendet. Nicht erforderlich.
-
- Druckersteuersequenzen
- ----------------------
-
- Die Druckersteuersequenzen bestehen im allgemeinen aus mehreren
- Stücken, die jeweils durch Leerzeichen getrennt werden. Für jedes
- einzelne Stück gibt es die folgenden Möglichkeiten:
-
- ASCII-Steuercodenamen und andere Codenamen.
-
- NUL Code 00(hex) 0(dez).
- SOH Code 01(hex) 1(dez).
- STX Code 02(hex) 2(dez).
- ETX Code 03(hex) 3(dez).
- EOT Code 04(hex) 4(dez).
- ENQ Code 05(hex) 5(dez).
- ACK Code 06(hex) 6(dez).
- BEL Code 07(hex) 7(dez).
- BS Code 08(hex) 8(dez).
- TAB Code 09(hex) 9(dez).
- HT Code 09(hex) 9(dez).
- LF Code 0A(hex) 10(dez).
- VT Code 0B(hex) 11(dez).
- FF Code 0C(hex) 12(dez).
- CR Code 0D(hex) 13(dez).
- SO Code 0E(hex) 14(dez).
- SI Code 0F(hex) 15(dez).
- DLE Code 10(hex) 16(dez).
- DC1 Code 11(hex) 17(dez).
- DC2 Code 12(hex) 18(dez).
- DC3 Code 13(hex) 19(dez).
- DC4 Code 14(hex) 20(dez).
- NAK Code 15(hex) 21(dez).
- SYN Code 16(hex) 22(dez).
- ETB Code 17(hex) 23(dez).
- CAN Code 18(hex) 24(dez).
- EM Code 19(hex) 25(dez).
- SUB Code 1A(hex) 26(dez).
- ESC Code 1B(hex) 27(dez).
- FS Code 1C(hex) 28(dez).
- GS Code 1D(hex) 29(dez).
- RS Code 1E(hex) 30(dez).
- US Code 1F(hex) 31(dez).
- DEL Code 7F(hex) 127(dez).
-
- Klartext.
-
- 'x Einzelzeichen. Jedes Zeichen nach <'> wird direkt übernommen.
- "xxx" Mehrere Zeichen. Alle Zeichen zwischen <"> und dem nächsten
- <"> in derselben Zeile werden direkt übernommen.
-
- Zahlen (geben einen Zeichencode an).
-
- 0### Oktalzahl. # sind die einzelnen Ziffern (0-7).
- 0x## Hexadezimalzahl. # sind die einzelnen Ziffern (0-9, A-F).
- ### Dezimalzahl. # sind die einzelnen Ziffern (0-9).
- Vorsicht: Bei führender Null wird eine Zahl als Oktalzahl
- interpretiert (siehe 0###).
-
- Steuerzeichen.
-
- ^A Steuerzeichen: ^a bis ^z und ^A bis ^Z ergeben Codes 1 bis 26,
- ^@ ergibt Code 0.
-
- Parameter (Einfügen eines Parameters (Zahl) in die Druckersteuersequenz).
-
- Hier sind folgende Angaben möglich (xx siehe unten):
- xx+# Zuvor # zum Parameter addieren
- xx-# Zuvor # vom Parameter subtrahieren
- xx*#+# Zuvor Parameter mit erster Zahl multiplizieren, dann
- zweite Zahl addieren
- xx*#-# Zuvor Parameter mit erster Zahl multiplizieren, dann
- zweite Zahl subtrahieren
- Nur xx ist nicht zulässig, Sie sollten stattdessen xx+0 verwenden.
- Für xx gibt es folgende Möglichkeiten:
-
- D1 bis D9
- Der Parameter wird als Dezimalzahl (Text) mit führenden
- Nullen eingefügt (D1: eine Stelle, D9: neun Stellen).
-
- L
- Der Parameter wird als Binärzahl (ein Byte) eingefügt.
- Es wird das niederwertige Byte verwendet.
-
- H
- Der Parameter wird als Binärzahl (ein Byte) eingefügt.
- Es wird das höherwertige Byte verwendet.
-
- LH
- Der Parameter wird als Binärzahl in zwei Bytes zerlegt
- eingefügt (niederwertiges Byte zuerst, dann höherwertiges).
-
- HL
- Der Parameter wird als Binärzahl in zwei Bytes zerlegt
- eingefügt (höherwertiges Byte zuerst, dann niederwertiges).
-
-
- Beispiele für Druckersteuersequenzen
- ------------------------------------
-
- 240-DPI-Grafikmodus des EPSON FX-80:
-
- ESC '* 3 LH+0
-
- Hexadezimal sieht das so aus: 1B 2A 03 n1 n2, wobei n1+256*n2
- die Breite der Grafik in Grafikpunkten (Spalten) ist.
-
- Zeilenvorschub bei NEC P6:
-
- FS '3 L+0 LF
-
- Hexadezimal sieht das so aus: 1C 33 n1 0A. Das Papier
- wird um n1/360 Zoll bewegt.
-
- Horizontale Positionierung bei C.ITOH 8510A:
-
- ESC 'F D4+0
-
- Hexadezimal sieht das so aus: 1B 46 n1 n2 n3 n4, wobei n1 bis n4
- Ziffern (30 bis 39) sind, die die horizontale Position angeben.
-
- 24-Nadel-Grafikmodus, bei dem die Anzahl der Bytes + 1 angegeben wird:
-
- ESC "[g" LH*3+1 5
-
- Wenn z.B. 100 Grafikspalten gedruckt werden, sieht das hexadezimal so aus:
-
- 1B 5B 67 2D 01 05
- ^^^^^
- 301 = 3*100+1
-
- Sinnloses Beispiel:
-
- ^A "abc" TAB ' 010 10 0x10 " ' "
-
- Hexadezimal sieht das so aus: 01 61 62 63 09 20 08 0A 10 20 27 20.
-
-
- Hinweise
- ========
-
- Einige der Einstellungen können auch über Kommandozeilenoptionen von
- dvidot verstellt werden -- das ist der Weg der vorzuziehen ist.
- Pro Drucker (und Modus) sollte nur eine Parameterdatei verwendet werden.
- Über die Paramterdatei werden für die einstellbaren Dinge, z.B.
- Pfad für Zeichensätze, lediglich halbwegs sinnvolle Werte vorgegeben,
- die eigentliche Einstellung geschieht über die Kommandozeilenoptionen
- und die Konfigurationsdateien.
-
- Bitte die mitgelieferten Parameterdateien nicht verändern!
- (Sie können diese aber -- unter anderem Namen -- weiterverwerten.)
-
- Wenn Sie eine neue Parameterdatei erstellt und erfolgreich getestet
- haben, sollten Sie diese an den Autor (Adresse siehe readme.doc) schicken,
- damit auch andere Leute etwas von Ihrer Mühe haben und für jeden Drucker
- ein gewisser Standard gewahrt wird.
-
- Wenn Sie Ihren Nadeldrucker nicht mit dvidot/makedot betreiben können,
- sollten Sie sich mit dem Autor in Verbindung setzen, so daß dvidot/makedot
- entsprechend erweitert werden können.
-
- Wenn Sie für einen Drucker Zeichensätze benötigen, die bisher nicht
- vom Autor angeboten werden, sollten Sie sich an diesen wenden, bevor
- Sie Ihren Rechner mit MFjob quälen. Es reicht wenn einer die Zeichensätze
- ausrechnen läßt! Allerdings sollten Sie selbst geeignete METAFONT-Parameter
- für den gewünschten Drucker finden und mitteilen.
-
- Wenn eine Parameterdatei in einer Druckersteuersequenz xx*#+# oder xx*#-#
- enthält, kann diese nicht mit älteren Versionen von dvidot verwendet werden.
-
-
- Entstehungsgeschichte
- =====================
-
- Version 1.0a (21.02.90):
- ------------------------
-
- Erste Version.
-
-
- Version 1.1a (22.03.90):
- ------------------------
-
- - Neues Schlüsselwort: VF_PATH.
-
- - METHOD=n1 n2: Nun n1 und n2 von 1 bis 6.
-
-
- Version 1.1b (22.06.90):
- ------------------------
-
- - xx*#+# und xx*#-#.
-
-
- Version 1.1c (22.09.90):
- ------------------------
-
- - Fehler beseitigt: Die Ausgabe von `makedot -d' bei LH+n und HL+n mit n
- ungleich 0 war falsch.
-
-
- - Fehler beseitigt: Die Ausgabe von `makedot -d' bei BLANK_WIDTH=<leer>
- war falsch.
-
-
- -------- Ende von MAKEDOT.DOC -------------
-