Die Arbeit mit TeX kann vor allem bei komplexeren Satzproblemen sehr hilfreich sein, gestaltet sich manchmal aber als recht schwierig. Vor allem das hÀufige Hin und Her (Editor <-> TeX) ist lÀstig, da TeX kein WYSIWYG erlaubt. Hier bieten einige Editoren mit eingebauter Shell eine gute Alternative.
Ich möchte Ihnen eine Möglichkeit zeigen, wie man dieses Problem auf einfache Weise lösen kann. Im folgenden will ich mich auf die von mir benutzte Konfiguration beziehen. Als Editor benutze ich EDISON, da dieser ASCII-Texte erzeugt und sowohl ĂŒber Batchjob-Möglichkeiten als auch FlieĂtextmodus verfĂŒgt. Als TeX benutze ich das von Stefan Lindner vertriebene C-TeX und kann mich im folgenden auch nur auf dieses beziehen. Andere TeX-Versionen sind aber Ă€hnlich aufgebaut. Da sowohl der Editor als auch die Textdateien wĂ€hrend des Compilierens im RAM verbleiben, wird ein 1-MByte-Rechner leider nicht ausreichen.
ZunĂ€chst soll fĂŒr den interessierten, aber mit TeX nicht so vertrauten Leser erklĂ€rt werden, wie man mit TeX arbeitet. AnschlieĂend werden die Arbeitsweise der Job-Datei und zum SchluĂ ein kleines Hilfsprogramm beschrieben.
Arbeiten mit TeX
Da TeX eher mit einem Compiler als mit einem Editor verwandt ist, gestaltet sich die Arbeit hiermit Ă€hnlich der mit einer Programmiersprache. Der âQuelltextâ enthĂ€lt den eigentlichen Text, der bei herkömmlichen Compilern nicht vorhanden ist, und zusĂ€tzliche Satz(Programm)-Befehle, in denen beschrieben wird, wie der eigentliche Text denn nun anzuordnen ist. Er vereinigt also die âProgrammbefehleâ und die zu verarbeitenden Daten in einer Datei. Dieser Text wird mit einem herkömmlichen Editor, der aber ĂŒber einen FlieĂtextmodus verfĂŒgen sollte, erzeugt und dann vom TeX-Programm verarbeitet, das hierzu auf weitere âBibliothekenâ zurĂŒckgreift. Hierbei entsteht ein DVI (DeVice Independent)-File, welches den verarbeiteten Text enthĂ€lt. ZusĂ€tzlich werden noch eine LOG-Datei, in der der Compilationsverlauf protokolliert wird, und einige Hilfsdateien erzeugt.
AnschlieĂend kann man den (DVI-)Text mit einem GerĂ€tetreiber sichtbar machen. FĂŒr gewöhnlich benutzt man einen âPreviewerâ, um die formatierten Seiten auf dem Bildschirm kontrollieren zu können. Sobald man dann zufrieden ist, lĂ€Ăt man die Seiten auf einem beliebigen Drucker ausgeben. Es existieren TeX-Treiber vom 9-Nadler bis zum Laserbelichter. Die Treiber benötigen neben dem DVI-File noch Informationen, wo sie die ZeichensĂ€tze finden können. Diese sind in einer Informationsdatei abgelegt, die noch einige weitere Informationen enthalten können, was aber vom Treiber und benutztem TeX-System abhĂ€ngt.
Die Jobs
Das Handhaben der Dateien und Programme ist nicht ganz einfach. Jobs, das heiĂt vorbereitete Befehlsabfolgen, erleichtern diese Arbeit. Im folgenden soll beschrieben werden, wie man unter dem Editor âEDISONâ hiermit umgeht:
Sie editieren Ihren Text mit dem Editor und starten dann den Job âTeX Top Windowâ mit F1 (vgl. Listing 1). Dieser sichert zunĂ€chst die Dateien, da man vor RechnerabstĂŒrzen nie sicher sein kann. Eine eventuell schon vorhandene LOG-Datei wird gelöscht. Nun wird das TeX-Programm gestartet. Da EDISON nun aber den Dateinamen des aktuellen Fensters - im Job durch @TOP symbolisiert - inklusive des Pfadnamens ĂŒbergibt, TeX aber nur den Dateinamen erwartet, finden die beiden nicht direkt zueinander. Es muĂ ein Filterprogramm (Listing 2) eingefĂŒgt werden, das den Pfad vom Gesamtnamen trennt, diesen zum Standardpfad erklĂ€rt und nur den Dateinamen weitergibt.
Das Umsetzen des Standardpfades ist notwendig, damit TeX seine SETUP-Datei dort sucht und nicht etwa im EDITOR-Ordner. Anders als dies zum Teil bei TeX-Installationen ĂŒblich ist, muĂ man fĂŒr die TeX-, DVI-, LOG- usw. Dateien denselben Pfad benutzen, da EDIS ON sonst nicht voll nutzbar ist. Hierzu legt man einen Ordner an, der fĂŒr alle kleinen Dateien (z.B. Briefe) bestimmt ist. Auch eine entsprechend eingestellte âTEXSETUPâ-Datei wird hineinkopiert (als Beispiel kann hier Listing 3 dienen). Da der Pfad durch âTEX_CMDL.TTPâ gesetzt wird, können Sie auch mehrere Text-Ordner anlegen. In jedem muĂ sich aber eine âTEXSETUPâ-Datei befinden.
Nachdem die Datei nun geTeXt wurde, gelangt man direkt zurĂŒck in den Editor, der den Anwender hierauf durch einen Beep hinweist. Im Falle eines Fehlers hat der Editor auch schon die LOG-Datei geladen (@ERRLO AD @ XTOP.LOG). Nun wird noch der Standardpfad restauriert und der Job beendet. Hiermit liegt uns nun eine DVI-Datei vor, die nur noch begutachtet werden muĂ. Hierbei hilft uns der folgende Job:
âShow Top Windowâ. Hier lĂ€uft alles wie oben ab, bis auf die Tatsache, daĂ der Standardpfad diesmal auf die âINFâ-Datei des âPreviewerâ gesetzt wird. Die Optionen mĂŒssen sie jeweils Ihren WĂŒnschen entsprechend anpassen. Die Print-Jobs sind Ă€hnlich und auf einen âStar NL-10â abgestimmt.FĂŒr gröĂere Projekte, wie zum Beispiel eine Diplomarbeit, empfiehlt es sich, den Suchpfad bzw. die Dateinamen fest auf die Hauptdatei zu legen. Hierdurch ist es möglich, in irgendeiner Unterdatei zu arbeiten und den Job direkt, ohne erst die Fenster wechseln zu mĂŒssen, zu starten. Die Jobs âTex Diplomâ bis âPrint Diplomâ sollen als Beispiel dienen. Weitere Ausbaumöglichkeiten wĂ€ren zum Beispiel noch Metafont- oder Index-Jobs.
Nachhilfe
Zum SchluĂ noch einige Worte zu âTEX_CMDL.TTPâ. Das Programm ist in Listing 2 wiedergegeben und arbeitet wie folgt: ZunĂ€chst werden alle Optionen und Sonstiges direkt in die neue Kommandozeile kopiert. Der letzte Eintrag ist der Dateiname inkl. Pfad. Dieser wird in den String âpfadâ kopiert. Hier wird dann nach dem Beginn des eigentlichen Dateinamens gesucht ( entspricht âhâ), der dann ebenfalls in die Kommandozeile kopiert wird. Der verbleibende Pfad wird analysiert und sowohl Standardlaufwerk (falls nötig) als auch der Standardpfadname gesetzt. Das Programm schlieĂt mit dem Aufruf von TeX und gibt dessen Return-Wert weiter. Das Standardlaufwerk und der dazugehörende Pfad werden vom Job mit @CHDIR zurĂŒckgesetzt. Ăbersetzt nimmt das Programm nur 926 Bytes in Anspruch. Wenn Sie die Stack-GröĂe auf ca. 500 Bytes einstellen, wird das Programm auch im Speicher nicht viel Platz beanspruchen.
Literatur:
[1] H. Kopka: LaTeX - Eine EinfĂŒhrung
[2] E. Krajewski, H. Hilgers: Edison Handbuch
[3] S. Lindner: TeX Manual
; Job-Datei fĂŒr TeX Albertus Grunwald 3.10.91
; -------------------------
@JOB1 TeX Top Window
@CSAVE
@DEL @XTOP.LOG
E:\TEX\TEX_CMDL.TTP &lplaing @TOP
@ERRLOAD @XTOP.LOG
@BELL
@CHDIR
@END
; -------------------------
@JOB2 Show Top Window
@CSAVE
@CHDIR E:\TEX\
@DEL @XTOP.PRT
E:\TEX\SCREEN.TTP -j -v2.0cm @XTOP.DVI @XTOP.PRT
@ERRLOAD @XTOP.PRT
@CHDIR
@END
; -------------------------
@JOB3 Print(120) Top Wind
@CSAVE
@CHDIR E:\TEX\
@DEL @XTOP.PRT
E:\TEX\NL10.TTP -j -v0 -ql @XTOP.DVI @XTOP.PRT
@ERRLOAD @XTOP.PRT
@CHDIR
@END
; -------------------------
@JOB4 Print(240) Top Wind
@CSAVE
@CHDIR E:\TEX\
@DEL @XTOP.PRT
E:\TEX\NL10.TTP -j -v0 -q2 @XTOP.DVI @XTOP.PRT
@ERRLOAD @XTOP.PRT
@CHDIR
@END
; -------------------------
@JOB5 TeX Diplom
@CSAVE
E:\TEX\TEX_CMDL.TTP &lplaing E:\DIPLOM\DIPLOM.TEX
@ERRLOAD @XTOP.LOG
@BELL
@END
; -------------------------
@JOB6 Show Diplom
@CSAVE
@CHDIR E:\TEX\
E:\TEX\SCREEN.TTP -v2.0cm E:\DIPLOM\DIPLOM.DVI
@ERRLOAD @XTOP.PRT
@CHDIR
@END
; -------------------------
@JOB7 Print(240) Diplom
@CSAVE
@CHDIR E:\TEX\
E:\TEX\NL10.TTP -v0 -q2 E:\DIPLOM\DIPLOM.DVI
@ERRLOAD @XTOP.PRT
@CHDIR
@END
Listing 1: Mit diesen einfachen Job-Befehlen lĂ€Ăt sich die Arbeit mit TeX wesentlich vereinfachen.
% Beispiel fĂŒr ein Setup, wie es fĂŒr die Arbeit
% mit Edison geeignet ist
tfmpaths = E:\TEX\texinput\tfm; % Die standard-Fonts
inputpaths = ., % Der aktuelle Pfad|
E:\TEX\texinput\stdinput,
E:\TEX\texinput\temp,
E:\TEX\graphics;
outputpath = .; % TemporÀre Dateien, z.B.
% .aux, .toc fĂŒr LaTeX
logpath = .;
dvipath = .;
dumppath = E:\TEX\texinput\formats;
formatpaths = E:\TEX\texinput\formats;
defaultformat = E:\TEX\texinput\formats\lplaing.fmt;
poolfile = E:\TEX\tex.poo;
Listing 2: Dieses C-Listing dient dem Setzen des Standardpfades und dem Aufruf des TeX-Programms.
/*************************************************
**
** Kommandozeilenbearbeitung fĂŒr TeX
**
** von Albertus Grunwald 18.2.1991
** geschrieben mit Turbo C
** (c) 1992 MAXON Computer
*************************************************/
#include <stdio.h>
#include <string.h>
#include <tos.h>
#define _toupper( c) ( ( (c)>='a' && (c)<='z') ? (c)+'A'-'a' : (c) )
int main( int argc, char *argv[] )
{
COMMAND cmdln;
int i, index;
char c, *h , *path;
/* Optionen kopieren */
for( index=0, i=1; i<argc-1; i++)
{ while( ( c= *argv[i]++)!= '\0')
cmdln.command_tail[index++]= c;
cmdln.command_tail[index++]= ' ';
}
/* Pfad- und Dateiname trennen */
path= argv[argc-1];
if( (h= strrchr( path,'\\') )!= NULL)
h++;
else if( (h= strrchr( path,':') )!= NULL)
h++;
else
h= path;
/* Dateiname kopieren */
for( index=0; ( c= *h)!= '\0'; h++, index++)
{ cmdln.command_tail[index]= c;
*h= '\0';
}
cmdln.command_tail[index]='\0';
cmdln.length= index+1;
if( path[1]== ':')
{ Dsetdrv( _toupper(path[0])-'A');
Dsetpath( path+2);
}
else
Dsetpath( path);
return( (int)Pexec( 0, "E:\\TEX\\TEX.TTP", &cmdln, NULL) );
}
Listing 3: Hier ein Vorschlag fĂŒr eine TEXSETUP-Datei. Je nachdem, welches TeX-System Sie verwenden, ist diese entsprechend anzupassen.