Allgemeines
Um LaTeX sinnvoll einsetzen und damit möglichst ökonomisch
arbeiten zu können, sollte ein leistungsfähiger Editor
verwendet werden. GNU Emacs, the
GNU incarnation of the advanced, self-documenting,
customizable, extensible real-time display editor Emacs
ist ein erstaunliches Stück freier Software und ein wahres
Urgestein: seine Entstehung fällt in den Gründungszeitraum des
GNU-Projektes von Richard M. Stallman.
Gleich vorweg:
Emacs ist ein Monster. Er hat so viele Features, dass ich
fürchte, bis an mein Lebensende nicht alle entdeckt zu
haben. Gerade während ich diesen Text schreibe und dafür hin
und wieder in die Doku luge, sehe ich neue Sachen, die ich
schon früher gut hätte brauchen können (zum Beispiel weiß ich
seit gerade eben, dass Alt-Q einen kompletten Absatz je nach
Modus strukturgerecht eingerückt und aufgefüllt formatiert).
In der Tat kann der GNU Emacs mittlerweile alles mögliche:
Dateien managen, Newsgroups abonnieren, im Netz browsen,
Tetris spielen oder auch einfach nur Text editieren. Es
existieren Versionen für Unix/Linux, Mac, DOS, Windows und
andere. Diese Hinweise beziehen sich auf meine eigenen
Erfahrungen mit der GNU/Linux-Version des GNU Emacs Version 21
(2002).
Parallel wird der XEmacs entwickelt, der
allerdings auch aufgrund diverser Differenzen zwischen den
Entwicklern eigenständig bleibt. Nach kurzem Testen bin ich
wieder auf den1 etwas übersichtlicheren GNU Emacs
umgeschwenkt, zumal mit der 21er-Release eine Reihe
benutzerfreundlicher Elemente und endlich auch eine grafische
Menüintegration eingebunden wurde.
Diese Seite soll nur Hinweise darauf geben, wo relevante
Information zu finden ist. Das Lesen der jeweiligen
Dokumentation kann dem geneigten Leser leider nicht abgenommen
werden. Dafür sind die Pakete aber hervorragend dokumentiert,
einerseits im Web, andererseits bereits bei der Software
beiliegend.
GNU Emacs ist Freie Software,
lesenswert ist das mitgelieferte umfangreiche Manual. Ein
Beispiel für die Unterhaltsamkeit, aus den Antinews:
Variable-size characters are not supported in Emacs 20. You cannot use fonts which contain oversized characters, and using italic fonts can result in illegible display. However, text which uses variable-size fonts is unreadable anyway. With all characters in a frame laid out on a regular grid, each character having the same height and width, text is much easier to read.
Der GNU Emacs bringt hervorragende Unterstützung mit, die den Autoren bei der Erstellung eines auch umfangreichen Textes mit LaTeX unterstützen. Neben einem eingebauten Basis-Modus sind hier vor allem die Zusatzpakete AucTeX und RefTeX zu nennen.
AucTeX
AucTeX ist eine komplette und sehr ausgereifte Arbeitsumgebung
für den Emacs. Bei konsequenter Anwendung können die
Eingabefehler minimiert werden und effizienter gearbeitet
werden.
AucTeX bietet erweiterte Funktionalitäten, so
ist es etwa möglich, einen LaTeX-Lauf direkt über das Menü
durchzuführen, und bei etwaigen Fehlermeldungen direkt dorthin
im Dokument zu springen und es gleich
auszubessern. Gleichermaßen werden Dokumente automatisch
eingerückt, es existieren diverse
Outline-Modi. LaTeX-Syntax-Checks können per Menü ausgeführt
werden, es existiert eine Fülle von neuen Macros, die
LaTeX-spezifische Befehle und Formatierungen ausführen.
Beispiele
- Die Tastenfolge Ctrl-C Ctrl-C startet einen LaTeX-Lauf beim ersten Anwenden, beim zweiten Mal automatisch einen BibTeX-Lauf (wenn es BibTeX-Dateien findet), dann weitere LaTeX-Läufe, bis alle Referenzen komplett aufgelöst sind. Ein weiteres Drücken der gleichen Kombination öffnet dann den DVI-Previewer. Komfortabler geht es nicht! (Screenshot)
- Die Tastenfolge Ctrl-C e fragt den Benutzer nach einer LaTeX-Umgebung, die dann interaktiv näher spezifiziert werden kann.
AucTeX-Home:
http://mirrors.sunsite.dk/auctex/www/auctex/
AucTeX-Doku:
http://mirrors.sunsite.dk/auctex/www/auctex/doc/
RefTeX
Mit RefTeX erhält der Emacs eine ausgedehnte Funktionalität zur stärkeren Autorenunterstützung und strikten Einhaltung der internen Dokumentstruktur. RefTeX bietet Unterstützung für Labels, Referenzen, Zitate und die Indexerstellung. RefTeX automatisiert die einzelnen Aufgaben, die ansonsten dem Autoren unterliegen, umfassend. So können mit wenigen Tastenkürzeln bzw. Menüpunkte Referenzierungspunkte in Kürze aufgefunden und eingefügt werden. Auch gibt es einen Modus, mit dem auf einen Blick eine strukturierte Darstellung des Dokumentes gewechselt werden kann. Dies ist vor allem bei langen Texten wie etwa Diplomarbeiten sinnvoll.
Beispiele
- Die Tastenfolge Ctrl-C [ öffnet einen referenzierten BibTeX-Buffer und fragt nach einem Suchstring. Hier kann komfortabel nach einem Literatureintrag gesucht werden, der an dieser Stelle als Zitat eingefügt wird (Format interaktiv wählbar). Das gleiche funktioniert für Referenzen, die kontext-sensitiv funktionieren: nach dem Wort Tabelle werden bspw. nur Tabellenlabels gelistet (Screenshot)
- Die Tastenfolge Ctrl-C & über einem Label oder innerhalb einer BibTeX-Datenbank listet automatisch sämtliche referenzierten Stellen im Dokument (oder in zusammenhängenden Dokumenten) auf. So können Änderungen bequem und konsequent durchgeführt werden (Screenshot)
Dokumentation
RefTeX-Home:
http://zon.astro.uva.nl/~dominik/Tools/reftex/
RefTeX in a Nutshell:
http://zon.astro.uva.nl/~dominik/Tools/reftex/reftex-nutshell.html
BibTeX-Unterstützung
Für die Erstellung von BibTeX-Dateien bietet der Emacs eine
hervorragende Unterstützung. Das oben genannte Paket RefTeX
hält diverse Makros bereit, die das Erstellen und Editieren
von BibTeX-Datenbanken sehr vereinfacht. Eine automatische
Syntaxprüfung ist implementiert; so können Eingabefehler, die
bei einem späteren BibTeX-Lauf durchaus nicht immer ganz
einfach zu lokalisieren sind (wie etwa fehlende Maskierung von
Umlauten), sofort vermieden werden.
Eine automatische
Suche oder Sortierung der Einträge geschieht ebenso schnell
wie die Auswahl verschiedener Eintragstypen aus dem Menü oder
durch Shortcuts. So werden gleichzeitig auch die benötigten
Felder eingefügt, und die nicht-erlaubten weggelassen. Durch
Makros kann schnell zwischen den Einträgen navigiert werden,
es ist auch möglich, bereits geschriebene Einträge auf
Knopfdruck aus dem vorherigen Datensatz in das richtige Feld
zu übernehmen. Dies ist zum Beispiel sinnvoll, wenn aus einer
Zeitschrift mehrere Artikel aufgenommen werden, um den Titel
nicht mehrmals schreiben zu müssen oder die Maus um Copy &
Paste zu bemühen. Es lohnt sich, diese Kürzel sofort zu
verinnerlichen, damit ist eine optimale, schnelle Arbeit
möglich, die nicht mit technischen Details und
Unzulänglichkeiten ablenkt. Es ist natürlich möglich, gleich
mehrere BibTeX-Datenbanken von mehreren Dokumenten aus
einzubeziehen.
Erstellung eines Registers (Index) mit Emacs
Die Registererstellung ist über eine Schnittstelle zu
MakeIndex sehr konsequent umgesetzt. Ich habe bisher nur mit
MakeIndex gearbeitet und kann zu Xindy etc. leider nichts
beitragen. Ein Register ist nicht ohne Schmerzen zu erstellen
-- zumindest, wenn es aussagekräftig sein soll. Mein eigenes
ist bei weitem nicht perfekt geworden, ein gutes Register
erfordert also ebenso gute Planung. Automatische
Stichwortgeneratoren sind ohne anschließende manuelle
Überprüfung nutzlos, die semantischen Zusammenhänge sind bei
weitem komplexer als es anfangs scheinen mag.
RefTeX
bietet ein Makro, mit dem bestimmte Begriffe oder Phrasen
bereits beim Schreiben in einen Buffer zwischengespeichert
werden. Dieser Buffer erhält die Endung .rip. Zwar dürfte es bei gelegentlich
auftretendem Diplomarbeits-Überdruss auch mal mit Rest in
Peace übersetzt werden, sonst steht es für
RefTeX-Index-Phrases. Aus diesem separaten Buffer
wiederum kann dann jede Phrase in den gewünschten Dateien
überprüft und in einem interaktiven Menü mit einem
LaTeX-Index-Befehl versehen werden. Eine Hierarchisierung der
Begriffe kann vorher erfolgen. Um hier Arbeit zu sparen,
unbedingt die sehr gute, knappe RefTeX-Doku lesen!
Ich
habe den Modus sehr zu schätzen gelernt, und man hat es
wirklich schnell drauf. Haariger ist die intellektuelle
Arbeit, die unvermeidlich ist: Wie soll mit Synonymen
umgegangen werden? Welches hierarchische Schema, Ober- und
Unterbegriffe werden gewählt? RefTeX kann einem diese Arbeit
natürlich nicht abnehmen, die letztendliche Ausführung jedoch
ist besser kaum denkbar.
Achtung: Unbedingt vorher auch die MakeIndex-Doku lesen! Die Eigenheiten des Programms verlangen leider für eine korrekte deutsche Sortierung (Option -g) eine spezielle Maskierung der Umlaute, Umlaute in Index-Befehlen müssen in Sections etc. vor dem Zerbrechen geschützt werden! Ich habe Umlaute in Index-Befehlen mit > maskiert und dies in eine MakeIndex-Style-Datei geschrieben. Diese heißt dann zum Beispiel deutsch.ist, die Anweisung quote '>'.
Konfiguration
Hier ist meine eigene Emacs-Konfigurationsdatei, die ich für meine Diplomarbeit benutzt habe. Sie sorgt zum Beispiel auch dafür, dass Umlaute automatisch in die Tex-Notation ("a) umgewandelt werden (für bessere Portabilität), oder Anführungszeichen für die korrekte Form nach dem German-Paket nicht umständlich durch zwei Tasten eingegeben werden müssen ("`), sondern auf der normalen Taste liegen. Die Teile stammen aus der Dante-TeX-FAQ, die immer gute Tipps bietet.
Dante TeX-FAQ:
http://www.dante.de/faq/de-tex-faq/
Lisp-Code-Seiten/Emacs-Wiki: http://www.emacswiki.org/