emTEX 3.0 [3a]

Implementiert durch Eberhard Mattes

08.08.1990

Inhaltsverzeichnis

1 Aufruf 3 1.1 MS-DOS und PC-DOS . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 OS/2 protected mode . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Verändern der Speicherverteilung . . . . . . . . . . . . . . . . . . 5 1.5 Dateinamen in der Kommandozeile . . . . . . . . . . . . . . . . . 5 1.6 Anführungszeichen in der Kommandozeile . . . . . . . . . . . . . 5 1.7 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Automatischer Aufruf eines Editors 6

3 Verzeichnisse und Environment-Variablen 7

4 Virtueller Speicher unter DOS 8

5 80286-Prozessor 9

6 bigTEX 9

7 Sonstige Hinweise 10 7.1 Zeilenende . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7.2 Dateiende . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7.3 Abbruch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7.4 Dateinamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

7.5 errorlevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 A Zeichenumwandlung bei Verwendung von /c 11 B Bekannte Fehler 11

1 Aufruf

1.1 MS-DOS und PC-DOS

tex [options] [&format] [input file] [TEX commands]

1.2 OS/2 protected mode

texp [options] [^&format] [input file] [TEX commands]

1.3 Optionen

Optionen werden durch ”-“ oder ”/“ eingeleitet. Zwischen den einzelnen Optionen muß mindestens ein Leerzeichen stehen. Groß- und Kleinschreibung der Optionen wird zur Zeit nicht unterschieden. Immer wieder verwendete Optionen (z.B. /m*) können auch in der Environment-Variablen EMTEXOPT angegeben werden, diese werden vor den in der Kommandozeile angegebenen beachtet. Es gibt die folgenden Optionen:

/7 Beim Lesen der Eingabedatei(en) wird bei jedem Zeichen Bit 7 gelöscht. Dies ist bei Verwendung mancher Texteditoren (z.B. WordStar) erforderlich.

/8 8-Bit-Zeichensatz für Eingabe zulassen. Diese Option ist nur bei INITEX (also nach /i) zulässig. Die Einstellung wird in der fmt-Datei gespeichert. Unzulässig sind die Codes 0–8, 10–11, 14–31, 127 und 255, siehe aber /r.

/a* Hiermit wird der Name der Datei für den automatischen Editoraufruf eingestellt. Zwischen ”/a“ und dem Dateinamen kann ”:“, ”=“, ”:=“ oder gar nichts stehen. In diesem Dateinamen muß ”\“ als Verzeichnistrennzeichen verwendet werden. Weitere Informationen finden Sie in Abschnitt 2.

/b                 \batchmode.

/c* tcp-Datei zur Umwandlung von Sonderzeichen und zur Zeichensatzumsetzung einstellen. Zwischen ”/c“ und dem Dateinamen kann kann ”:“, ”=“, ”:=“ oder gar nichts stehen. Diese Option ist nur bei INITEX (also nach /i) zulässig); die Tabellen werden in der fmt-Datei gespeichert. Wenn /c* angegeben ist, wird /8 ignoriert. /r kann zusätzlich zu /c* angegeben werden und wird zusätzlich zur tcp-Datei beachtet. Weitere Informationen finden Sie in der Beschreibung von maketcp und in Abschnitt A. Die Standarderweiterung ist tcp, die Datei wird im Arbeitsverzeichnis und in den in der Environment-Variablen TEXIN-PUT aufgeführten Verzeichnissen gesucht. Wenn Sie Umlaute u.ä. unter Verwendung einer tcp-Datei eingeben, ist Ihr Text nicht mehr mit üblichen TEX-Versionen verträglich! Aber Sie können die Spezialzeichen in Ihren Text bei Bedarf mit dem Programm texconv so umwandeln lassen, daß der Text mit allen anderen TEX-Versionen verwendet werden kann.

/d Expanded Memory (LIM) nicht benutzen (nur DOS).

/e                 \errorstopmode.

/i INITEX aktivieren. INITEX ist kein separates Programm, vielmehr ist diese Option zu verwenden. Hiermit können fmt-Dateien erzeugt werden. Manche Optionen können nur bei INITEX verwendet werden, diesen muß /i vorangehen.

/l Nur OS/2 protected mode: Kleine Priorität wählen, so daß TEX fast nur dann läuft, wenn der Rechner sonst nichts besseres zu tun hat (für interaktive Eingabe nicht zu empfehlen).

/m* Mit dieser Option können Sie die Größen verschiedener Speicherbereiche einstellen. Siehe Abschnitt 1.4.

/n                 \nonstopmode.

/o 8-Bit-Zeichensatz (Codes 128–254) für Ausgabe zulassen. Diese Option ist nur bei INITEX (also nach /i) zulässig. Die Einstellung wird in der fmt-Datei gespeichert. Ausgabe eines ”ä“ (Code Page 850) ohne

/o: ^^84, mit /o: ä.

/r Normalerweise sind die einzigen erlaubten Steuerzeichen Tab (\char9) und Form Feed (\char12). Wenn /r angegeben wird, sind alle Steuerzeichen 0–31 erlaubt. Ausnahme: Ctrl-Z (26) am Zeilenanfang wird als Dateiende interpretiert. Diese Option ist nur bei INITEX (also nach /i) zulässig. Die Einstellung wird in der fmt-Datei gespeichert.

   /s                 \scrollmode.

1.4 Verändern der Speicherverteilung

Die Aufteilung des Speichers kann mit Optionen geändert werden. Dies ist nur in Sonderfällen nötig, die Voreinstellungen sind für die meisten Anwendungen geeignet. Zwischen /mx und der Zahl kann ”:“, ”=“, ”:=“ oder nichts stehen.

Option Folgende Fehlermeldung wird beseitigt:  Bereich  Vorgabewert
TeX capacity exeeded, sorry […]  von–bis  DOS / OS/2
/mn#  semantic nest size (Modusschachtelung)  20–3000  40 / 100
/mf#  font memory (Zeichensatzdaten)  5000–65500  32766
/mp#  pool size (Zeichenketten)  20000–65500  50000
/ms#  save size (Rettung durch Gruppen)  100–16000  600
/mt#  pattern memory (Silbentrennung)  5000–65500  10000

Wenn Sie z.B. das Kommando

     set emtexopt=/ms:2000 /mp45000

angeben, wird ”save size“ auf Kosten von ”pool size“ vergrößert. Siehe auch [1], Seiten 300–301.

Bei bigTEX ist der Maximalwert für /mf# 262141, die Voreinstellung ist 81920.

1.5 Dateinamen in der Kommandozeile

Wenn Sie einen Dateinamen in der Kommandozeile angeben, müssen Sie folgendes beachten: Da TEX das Zeichen ”\“ speziell auffaßt (Makroaufruf), müssen Sie als Verzeichnistrennzeichen das Zeichen ”/“ verwenden. Da emTEX das Zeichen ”/“ am Anfang eines Kommandozeilenarguments als Anfang einer Option betrachtet, müssen Sie, falls der Dateiname mit ”/“ beginnt, die Laufwerksbezeichnung voransetzen:

     tex d:/mytexts/myfile

1.6 Anführungszeichen in der Kommandozeile

Wenn Sie über die Kommandozeile ein Anführungszeichen an TEX übergeben wollen, so müssen Sie ”\"“ eingeben.

1.7 Beispiele

Hier wird INITEX aufgerufen und plain.fmt erzeugt; Spezialzeichen der Code Page 850 sollen in TEX-Kommandos umgesetzt werden; Zeichen im Bereich 128– 254 werden direkt (also nicht hexadezimal) ausgegeben (DOS):

     tex -i -c:850_tex plain -o \dump

Hier wird LaTEX im \scrollmode gestartet und die Datei myfile bearbeitet:

     tex -s &lplain myfile

2 Automatischer Aufruf eines Editors

Wenn TEX einen Fehler feststellt und die Eingabe aus einer Datei erfolgt, so kann mit ”E“ ein Editor aufgerufen werden; siehe [1], Seite 34. Mit /a* kann der Name einer Datei eingestellt werden, in die die Zeilennummer, der Dateiname der betreffenden Eingabedatei und der Dateiname der log-Datei geschrieben wird. Über die Environment-Variable EMTEXED kann eingestellt werden, was in diese Datei geschrieben werden soll. Dabei steht ”%1“ für die Zeilennummer, ”%2“ für den kompletten Pfadnamen der Eingabedatei und ”%3“ für den kompletten Pfadnamen der log-Datei. Mit ”%%“ kann ein Prozentzeichen eingefügt werden. Wenn die Environment-Variable EMTEXED nicht gesetzt ist, wird als Maske

     emtexed %1 %2 %3

verwendet. Wenn Sie z.B. den Norton-Editor verwenden, können Sie

     set emtexed=ne +%1 %2

angeben. Wird z.B. die Option /a=ed.bat angegeben und wurde in Zeile 172 der Datei test.tex (Verzeichnis d:\mytex) ein Fehler entdeckt, so sieht nach Verlassen von emTEX mit ”E“ die Datei ed.bat wie folgt aus (Environment-Variable EMTEXED nicht gesetzt):

     emtexed 172 d:\mytex\test.tex d:\mytex\test.log

Um dieses Feature benützen zu können, müssen Sie TEX über eine Batch-Datei aufrufen, z.B. über texed.bat (bzw. texed.cmd):

     @echo off
     rem texed.bat
     if exist texed2.bat del texed2.bat
     tex /a=texed2.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
     if exist texed2.bat texed2

Vorsicht bei Benutzung eines Netzwerks: Hier müssen für die einzelnen Benutzer verschiedene Batch-Dateien verwendet werden, damit es nicht zu Konflikten kommt. Sie können hierzu Environment-Variablen benutzen. Wenn Sie die Environment-Variable EMTEXED nicht benützen, müssen Sie eine weitere Batch-Datei namens emtexed.bat (bzw. emtexed.cmd) anlegen, die dann den Editor aufruft.

Nun noch ein Beispiel für die Programmer’s WorkBench (oder für den Microsoft-Editor) unter OS/2. Hier ist es empfehlenswert, den Editor dauernd geladen zu lassen. Der Aufruf von emTEX erfolgt mit der folgenden Batch-Datei:

     @echo off
     rem glatexed.cmd
     set emtexed=%%2 %%1
     texp -a=c:\ init\ emtexed.m -x ^&lplaing %1 . . . %9

Wenn Sie nun für die Programmer’s WorkBench folgende Makros definieren

     texed:=Arg "c:\\init\\emtexed.m" Setfile Begfile _texed1
     _texed1:=Arg Setfile -> _texed2
     _texed2:=Setfile Arg Arg " [0-9]" Psearch -> _texed3
     _texed3:=Right Arg Endline Lasttext Mark _texed4
     _texed4:=Arg Refresh Lasttext Mark

(für den Microsoft-Editor:)

     texed:=Arg "c:\\init\\emtexed.m" Setfile Arg Mpage _texed1
     _texed1:=Arg Setfile -> _texed2
     _texed2:=Setfile Arg Arg " [0-9]" Psearch -> _texed3
     _texed3:=Right Arg Endline " " Emacscdel Mark _texed4
     _texed4:=Arg Refresh Lasttext Mark

und mit

     texed:Ctrl+E

einer Taste zuweisen, können Sie durch Drücken von [figure: Ctrl]+[figure: E]zur gewünschten Zeile kommen. Das Verzeichnis c:\init und die Datei c:\init\emtexed.m müssen existieren, bevor [figure: Ctrl]+[figure: E]gedrückt wird.

3 Verzeichnisse und Environment-Variablen

Beim Öffnen einer Datei wird diese zuerst im Arbeitsverzeichnis gesucht, dann in den durch die Environment-Variable festgelegten Verzeichnissen, und zuletzt im Standardverzeichnis:

   \emtex\texinput  Eingabedateien.
   \emtex\tfm         tfm-Dateien.
   \emtex\texfmts     fmt-Dateien und tex.poo.

Die Standardversion verwendet die folgenden Environment-Variablen:

EMTEXED Maske für Editoraufruf (siehe Abschnitt 2).

EMTEXOPT Optionen (siehe Abschnitt 1.3).

TEXFMT Verzeichnisse für fmt-Dateien und tex.poo.

TEXTFM Verzeichnisse für tfm-Dateien.

TEXINPUT Verzeichnisse für Eingabedateien und tcp-Datei.

TMP Verzeichnis für temporäre Daten.

Die Environment-Variablen TEXFMT, TEXTFM und TEXINPUT können jeweils mehrere Verzeichnisse enthalten; diese werden durch Strichpunkte voneinander getrennt.

bigTEX verwendet die gleichen Environment-Variablen und die gleichen Standardverzeichnisse mit folgenden Ausnahmen (da andere fmt-Dateien erforderlich sind):

BTEXFMT Verzeichnisse für fmt-Dateien und tex.poo.

   \emtex\btexfmts    fmt-Dateien und tex.poo.

4 Virtueller Speicher unter DOS

Falls Expanded Memory (LIM) vorhanden ist und die /d-Option nicht angegeben ist, wird dieser Speicher zum Auslagern benutzt, falls die Daten nicht in den ”normalen“ Speicher passen.

Wenn zuwenig (oder kein) Expanded Memory verfügbar ist oder die /d-Option verwendet wird, legt emTEX automatisch bei Bedarf eine Datei an, die für die nicht in den Speicher passenden Daten verwendet wird. Mit der Environment-Variable TMP kann festgelegt werden, in welchem Verzeichnis diese Datei angelegt wird. Zum Beispiel wird mit dem Kommando

     set tmp=H:\

emTEX angewiesen, die temporäre Datei auf Laufwerk H: anzulegen. Die temporäre Datei sollte möglichst auf eine Memory-Disk gelegt werden. Falls die Environment-Variable TMP nicht gesetzt wird, legt emTEX die Datei im Stammverzeichnis des aktuellen Laufwerks an. In der Environment-Variablen TMP reicht eine Laufwerksbezeichnung nicht aus, es muß ein Verzeichnisname angegeben werden! Der direkte Zugriff von emTEX auf Expanded Memory ist effizienter als die Benutzung einer temporären Datei in einer Memory-Disk.

Je weniger konventioneller Speicher (Adreßbereich bis 640 KByte) emTEX zur Verfügung steht, desto langsamer ist emTEX; es ist also unter Umständen besser, dem EMS-Treiber zu sagen, er solle weniger Expanded Memory verwalten; dadurch wird bei manchen Treibern weniger konventioneller Speicher benötigt (die Standardversion von emTEX benötigt bis zu 512 KByte, bigTEX bis zu 2560 KByte Expanded Memory).

5 80286-Prozessor

Wenn der Rechner mit einem 80286-Prozessor (oder ”größer“) ausgestattet ist, kann unter DOS tex286.exe statt tex.exe verwendet werden. Diese Version ist kürzer und ein bißchen schneller. Wenn Sie die 80286-Version benutzen wollen, sollten Sie tex286.exe in tex.exe umbenennen.

6 bigTEX

(Noch in Entwicklung befindlich; es wird eine Vorabversion ausgeliefert, spätere Versionen werden schneller sein.) Diese TEX-Version stellt mehr Speicher zur Verfügung, ist aber deutlich langsamer als die Standardversion. Es müssen andere fmt-Dateien benutzt werden. Das Standardverzeichnis für diese Dateien ist bei bigTEX \emtex\btexfmts. Über die Environment-Variable BTEXFMT kann ein anderer Suchpfad eingestellt werden. Der Aufruf von bigTEX geschieht mit btex, btex286 oder btexp (die Abschnitte 1.1 und 5 sind sinngemäß anzuwenden). Achtung: INITEX (/i-Option) benötigt sehr viel Speicher, es ist eine minimale DOS-Konfiguration erforderlich (selbst der Tastaturtreiber für die nicht-englische Tastaturbelegung sollte entfernt werden). Oder Sie verwenden OS/2 (die erzeugten fmt-Dateien können auch unter DOS benutzt werden).

7 Sonstige Hinweise

7.1 Zeilenende

Die Steuercodes CR, CR/LF und LF werden jeweils als Zeilenende anerkannt. Die Länge einer Eingabezeile ist auf 1024 Zeichen (bigTEX: 3000) begrenzt. Wenn der Editor Ctrl-Z als Dateiendemarkierung verwendet, muß die letzte Zeile mit CR, CR/LF oder LF beendet werden, sie darf nicht mit Ctrl-Z enden.

7.2 Dateiende

Das Zeichen Ctrl-Z wird am Zeilenanfang als Dateiendemarkierung behandelt. Wenn Ctrl-Z nicht am Anfang einer Zeile steht, wird es wie die anderen Steuerzeichen behandelt (siehe /r), die letzte Zeile der Datei darf daher nicht mit Ctrl-Z ohne vorangehendes Zeilenende CR, LF oder CR/LF enden.

7.3 Abbruch

emTEX kann mit [figure: Ctrl]+[figure: C]unterbrochen werden (siehe [1] Seite 299). Allerdings hat dies erst dann eine Auswirkung, wenn das nächste Zeichen auf den Bildschirm ausgegeben wird. Unter OS/2 kann emTEX mit [figure: Ctrl]+[figure: Break]ganz abgebrochen werden (nur für Notfälle). Falls Sie einmal keine Möglichkeit finden, emTEX zu beenden, während dieses auf eine Eingabe wartet, sollten Sie (aber auch nur dann) [figure: Ctrl]+[figure: Z]gefolgt von [figure: �]eingeben.

7.4 Dateinamen

Dateinamen werden auf 8+3 Zeichen verkürzt (z.Z. indem Zeichen am Ende weggelassen werden), z.B. wird circlew10.tfm auf circlew1.tfm verkürzt. Eventuell wird die Methode zur Verkürzung der Dateinamen in einer der nächsten Versionen geändert.

In TEX-Texten muß in Dateinamen ”/“ statt ”\“ zur Angabe von Verzeichnissen benutzt werden, da ”\“ von TEX als Anfang eines Makronamens aufgefaßt wird. Beispiel:

     \input /mytexts/myfile

7.5 errorlevel

Mit ”if errorlevel“ kann abgefragt werden, ob ein Fehler auftrat. emTEX liefert 0, falls alles perfekt ist, 1, falls nur Warnungen auftraten, 2, falls ein Fehler auftrat oder [figure: Ctrl]+[figure: C]gedrückt wurde, 3, falls emTEX aufgrund eines internen Fehlers oder Speichermangels o.ä. aufgegeben hat.

A Zeichenumwandlung bei Verwendung von /c

Zur Zeit wird nur eine tcp-Datei mitgeliefert: 850_tex.tcp. Diese wandelt einige Zeichen der Code Page 850 in TEX-Kommandos um:

á \'a  â \^a  à \`a
ä \"a  ã \~a  å \aa{}
ā \b{a}  æ \ae{}  Á \'A
Â \^A  À \`A           Ä \"A
Ã \~A  Å \AA{}  Æ \AE{}
ç \c{c}      Ç \c{C}  é \'e
ê \^e  è \`e           ë \"e
É \'E  Ê \^E  È \`E
Ë \"E  í \'\i{}  î \^\i{}
ì \`\i{}     ï \"\i{}  Í \'I
Î \^I  Ì \`I           Ï \"I
ñ \~n  Ñ \~N  ó \'o
ô \^o  ò \`o           ö \"o
õ \~o  ø \o{}          ō \b{o}
Ó \'O  Ô \^O  Ò \`O
Õ \~O        Ö \"O  Ø \O{}
ú \'u  û \^u  ù \`u
ü \"u  Ú \'U  Û \^U
Ù \`U        Ü \"U           ÿ \"y
Ý \'Y  ý \'y  ß \ss{}
¶ \P{}  § \S{}  / c \hbox{\rm\rlap/c}
£ \pounds\{\}  \begin{matrix}c \\ ◯ \end{matrix} \copyright\{\}

Die Zeichen mit \' oder \` funktionieren nicht im tabbing-Environment von LaTEX.

B Bekannte Fehler

Es erfolgt keine Fehlermeldung, wenn beim Schreiben einer Datei (außer der temporären Datei unter DOS) die Platte voll wird.

Literatur

[1] Donald E. Knuth. The TEXbook. Addison-Wesley, Reading, Massachusetts, 1984.