Dass die üblichen Textverarbeitungen wie Word, die nach dem Prinzip WYSIWYG arbeiten, manchmal nerven, darauf braucht hier nicht eingegangen zu werden. Ich vermute, dies liegt vornehmlich an der Komplexität der Programme, die gerade von der Darstellung des „fertig gesetzten“ Textes am Bildschirm herrührt. Doch woran es auch liegen mag, dass diese Programme so unzuverlässig funktionieren, ist eigentlich zweitrangig; festzuhalten ist für die Praxis, dass Word & Co. eindeutige Schwächen haben - und dass es für bestimmte Arten von Dokumenten bessere Alternativen gibt.
Im Folgenden möchte ich die Arbeitsumgebung vorstellen, die mir bereits im Studium gute Dienste geleistet hat und mit der ich auch heute noch arbeite, wenn ich nicht mit dem Rest der Welt kompatibel sein muss.
Auch wenn hier nicht weiter auf die Schwächen der WYSIWYG-basierten Lösungen eingegangen werden soll, so möchte ich dennoch die Vorteile von Auszeichnungssprachen wie LaTeX gegenüber dieser Programmgattung hervorheben.
Auszeichnungssprachen wie LaTeX trennen das Schreiben vom Setzen des Dokuments und reduzieren damit die Komplexität zumindest während der Schreibphase. Der Text kann in einem beliebigen Texteditor geschrieben werden. Dabei werden Überschriften, Fußnoten, eben alle Gliederungselemente und Formatierungen lediglich logisch ausgezeichnet. Wie das konkret aussieht, kann unten im Beispiel gesehen werden. Erst im zweiten Schritt erfolgt dann das Setzen des Textes in ein fertiges Dokument - im Falle von LaTeX regelmäßig in ein PDF-Dokument.
Die Möglichkeit, einen beliebigen Texteditor zum Schreiben seiner Texte verwenden zu können, versetzt den Anwender in die Lage, sich ein Programm aussuchen zu können, mit welchem er nicht nur gut klar kommt, sondern welches auch rock-solid, sprich ausgereift und absturzsicher ist - wie der GNU Emacs.
Nur ganz kurz soll auf die Vor- und Nachteile des Textsatzsystems LaTeX aus meiner Sicht eingegangen werden. Und ja, natürlich hat LaTeX auch Nachteile; diese sollen hier keinesfalls verschwiegen werden.
Vorteile:
Nachteile:
Für mich das wesentliche Argument für LaTeX: Die tägliche Arbeit läuft - hat man sich erst eingearbeitet - weitaus einfacher und unproblematischer ab als mit WYSIWYG-Textverarbeitungen. Ich habe nicht mit verrutschenden Fußnoten, farblichen Markierungen, die sich auf einmal nicht mehr löschen lassen (das hatte ich erst kürzlich bei Word), durcheinandergewürfelten Formatierungen und Programmabstürzen oder anderen Widrigkeiten zu kämpfen. Natürlich ist kein Programm perfekt, aber mit meiner jetztigen Emacs-Lösung geht mir das Arbeiten weitaus entspannter von der Hand - und das ist gerade bei umfangreichen Dokumenten wichtig.
Beispiele, wie eine LaTeX-Quelldatei aussehen kann, gibt es im Web viele. Häufig werden dabei aber viele unterschiedliche Befehle und sogar Formeln demonstriert, so dass der Jurist sich schnell wieder abwendet. Allerdings werden gerade für juristische Arbeiten nur sehr wenige der vielen Befehle benötigt. Damit man sich besser eine Vorstellung davon machen kann, wie die (juristische) Arbeit mit LaTeX aussehen kann, folgt nun ein Ausschnitt aus einer LaTeX-Quelldatei, in der ein paar der wichtigsten Auszeichnungen verwendet werden, die in der täglichen Arbeit gebraucht werden.
\section{Einleitung}
Dies ist ein kurzer Text, der zeigen soll, wie die Arbeit mit LaTeX aussehen
kann.\footnote{Und das ist eine Fußnote.} LaTeX verfügt über sehr viele hilfreiche
Funktionen. Möchte man beispielsweise ein Stichwortverzeichnis automatisch erstellen
lassen, so kann man im Text die entsprechenden \index{Wörter} einfach markieren und
LaTeX stellt später ein Stichwortverzeichnis samt Seitenangaben zusammen.
Mehr dazu unten.
Aufzählungen werden folgendermaßen ausgezeichnet.
\begin{itemize}
\item{Erster Punkt}
\item{Zweiter Punkt}
\item{Dritter Punkt}
\end{itemize}
Das soll es unter dieser Überschrift erstmal sein.
\subsection{Überschrift eine Ebene tiefer}
Wenn es notwendig ist, kann man Wörter auch als \textbf{fett} oder \textit{kursiv}
markieren sowie unzählige andere Auszeichnungen nutzen.
\subsection{Nochmal eine Überschrift auf gleicher Ebene}
Und noch mehr Text. Und so weiter und so fort...
Eine solche Quelldatei wird mit einem beliebigen Texteditor erstellt. Auf die Wahl des Editors werde ich gleich noch kurz eingehen, obwohl hier natürlich klar ist, dass es der Emacs werden wird. Es gibt aber auch noch einige andere Editoren, die die Eingabe der LaTeX-Befehle sehr vereinfachen und teilweise die Lesbarkeit der Quelldatei auf verschiedene Weise erleichtern.
Nachdem der Text im Quellformat geschrieben wurde, ruft man (i.d.R. direkt aus seinem LaTeX-Editor) das Programm pdfLaTeX auf, welches die Quelldatei in ein sauber gesetzes PDF-Dokument übersetzt.
Eine einfache und vollständige LaTeX-Quelldatei ist im Wikipedia-Artikel über LaTeX zu finden.
Wenn Sie nun überzeugt sind vom systematischen Ansatz von Auszeichnungssprachen und das Textsatzsystem LaTeX als Ihre Lösung in Betracht ziehen, folgt nun die Erläuterung der Einrichtung einer entsprechenden Arbeitsumgebung.
LaTeX-Quelldateien werden im Plain Text geschrieben. Grundsätzlich ist es daher möglich, jeden Texteditor zum Schreiben von LaTeX-Dokumenten zu verwenden. Es haben sich jedoch eine Reihe von Editoren herausgebildet, die spezielle Funktionen enthalten, um insbesondere die Eingabe der LaTeX-Befehle zu vereinfachen. Eine Übersicht ist in der Wikipedia zu finden.
Mit der genannten Emacs-Erweiterung AucTeX gibt es ein hervorragendes System für den Umgang mit LaTeX-Dateien. RefTeX erleichtert zudem das Referenzieren und previewlatex kann bei Bedarf WYSIWYG-Elemente im Emacs anzeigen, so dass die LaTeX-Quelldatei (noch) besser lesbar wird. Eine grundlegende Einführung in den Emacs als LaTeX-Editor findet sich u.a. in dem Buch LaTeX - Der Typographische Einstieg von Tobias Berndt.
Gerade für den Juristen bietet sich meiner Ansicht nach der Emacs an, denn für juristische Texte benötigen wir die vielen Funktionen, die LaTeX bietet, kaum. Im Gegensatz zu anderen Editoren kann man beim Emacs sehr schön nicht benötigte Optionen ausblenden und auch den Quelltext durch den sog. fold-mode besser lesbar machen. Die zum Schreiben juristischer Texte wenigen benötigten Tastenkombinationen hat man schnell gelernt - so dass auf bunte Icons zum Klicken verzichtet werden kann.
Als kleiner Merkzettel im Folgenden die wichtigsten Befehle bei der Arbeit mit den GNU Emacs als LaTeX-Editor. Ein paar Befehle habe ich an meine eigenen Bedürfnisse angepasst. Die notwendigen Konfigurationen werden anschließend dokumentiert.
Setzt man den originalen Emacs ein, so muss man sich - zumindest als Verwender einer deutschen Tastatur - Gedanken über die gewünschte Tastenbelegung machen. Denn der Emacs wurde für PC-Tastaturen entwickelt; auf dem Mac sieht das alles etwas anders aus. Im Kern geht es darum, dass in der Grundeinstellung der Emacs Metakey auf die Taste Alt gelegt wird, diese Taste aber bei einer deutschen Tastaturbelegung für die Eingabe einiger Zeichen, wie eckige und geschweifte Klammern, das @-Zeichen oder die Tilde gebraucht wird. Weitere Erläuterungen dazu mit unterschiedlichen Lösungsvarianten findet man bei enqueu.eu. Ich benutze ganz schlicht die folgende Variante, mit der ich die die Cmd-Taste zur meinem Emacs-Metakey mache und somit auf spezielle Mac-Befehle im Emacs verzichte:
(setq ns-alternate-modifier 'none) ;; Meta weg vom Option Key
(setq ns-command-modifier 'meta) ;; Cmd-Key ist Meta
Dies ist bereits oben im Rahmen der Grundkonfiguration besprochen worden.
Die allerwichtigsten Befehle für den täglichen Umgang mit meiner LaTeX-Umgebung in der Übersicht (M = Meta = Cmd-Taste, C = Ctrl).
Funktion | Kommando |
---|---|
Wörter springen | M-Pfeiltasten |
An den Zeilenanfang springen | C-a |
Ans Zeilenende springen | C-e |
Buffer wechseln | F1 (*) |
Absatz auffüllen | M-q |
Undo | C-_ |
Einfügen einer neuen Überschrift | C-c C-s |
Einfügen einer Fussnote | C-c C-f C-f (*) |
Fold-Mode (de)aktivieren | C-c C-o C-f |
Alles zusammenfalten | C-C C-o C-b |
Markieren einer Quelle mit TODO | C-c C-f C-t (*) |
Löschen der TODO-Markierung | C-c C-f C-d |
Markierung setzen | C-Space |
Markierten Text ausschneiden | C-w |
Markierten Text kopieren | M-w |
Markierten Text einfügen | C-y |
Inhaltsverzeichnis anzeigen (RefTeX) | M-t |
(*) Diese Befehle habe ich angepasst. Dazu unter der nächsten Überschrift.
Die meisten der o.g. Befehle sind standardmäßig in Emacs bzw. AucTeX so vorgesehen. Einige habe ich jedoch selbst definiert. So habe ich zum Einfügen von Fußnoten und der TODO-Funktion die Font-Anweisungen von AucTeX umfunktioniert. Dazu ist folgendes notwendig.
^F
ein \footnote{}
und bei ^T
ein \todo{}
hinterlegen.
Nun sollte man mit C-c C-f C-f
eine Fußnote und mit C-c C-f C-t
eine TODO-Anweisung eingeben können. Es ist dabei auch möglich, einen
Text, der von der Anweisung eingeschlossen werden soll, vorher zu
markieren. Soll die Anweisung wieder gelöscht werden - im Falle von
TODO - so reicht es, den Kursor in der Anweisung zu platzieren und
C-c C-f C-d
einzugeben.
Häufig möchte man innerhalb des eigenen Dokuments verweisen. Es ist sehr unschön, wenn man nach Fertigstellung der Arbeit alle diese Referenzierungen erneut kontrollieren muss. Mit LaTeX kann man sich diese Arbeit sparen, wenn man folgende Befehle zur Referenzierung benutzt.
Kapitel mit Anker (werden von AucTeX automatisch erstellt):
\section{Formelsammlung}
\label{sec:Formeln}
Dann kann man irgendwo schreiben:
Wie bereits in Kapitel~\ref{sec:Formeln} auf Seite~\pageref{sec:Formeln} beschrieben...
Daraus wird dann etwas wie „Wie bereits in Kapitel 1.3 auf Seite 24 beschrieben…“. Die Tilde („~“, am Mac Alt+n) bezeichnet bei LaTeX im Übrigen ein geschütztes Leerzeichen.
Sehr praktisch ist es auch, LaTeX ein Stichwortverzeichnis erstellen zu lassen. Wie bereits im Beispiel oben werden hierzu einfach die jeweiligen Stichworte im Text markiert.
\index{Stichwort}
Das Stichwortverzeichnis wird dann an der Stelle des Dokuments ausgegeben, an der der folgende Eintrag vorgenommen wurde.
\renewcommand{\indexname}{Stichwortverzeichnis}
\printindex
Mit dem Aufruf des folgenden Kommandos wird ein Index erstellt, der beim nächsten Kompilieren des Dokuments eingebunden wird. Dabei gibt die Datei index.ist das Layout des Verzeichnisses an.
$ makeindex -g -s index.ist Dissertation
Hier eine index.ist:
quote '+'
headings_flag 1
heading_prefix "{\\bf "
heading_suffix "}\\nopagebreak%\n \\indexspace\\nopagebreak%"
delim_0 "\\dotfill "
delim_1 "\\dotfill "
delim_2 "\\dotfill "
delim_r "~--~"
suffix_2p "\\,f"
suffix_3p "\\,ff"
Mit Hilfe des Programms BibTeX ist es möglich, das LaTeX-Dokument mit einer Bibliographie zu verbinden. Ich sage es gleich: Ich verwende es nicht! Da es aber eine durchaus interessante Sache ist, möchte ich hier kurz darauf eingehen - und auch meine Gründe nennen, warum ich es nicht einsetze. Über Feedback würde ich mich sehr freuen. Vielleicht liege ich mit meiner Einschätzung völlig daneben.
Die Vorteile der Einbindung der Bibliographie liegen auf der Hand: Fußnoten und Einträge im Literaturverzeichnis sind immer gleich formatiert; im Literaturverzeichnis erscheinen alle zitierten Quellen - nicht mehr und nicht weniger. Von daher wäre es eine feine Sache.
Dass ich mich letztlich aber doch gegen die Einbindung der Bibliographie entschieden habe, hat zwei Gründe:
Bei meinen Recherchen bin ich auf gute Quellen zum Thema gestoßen, die ich hier noch kurz anbringen möchte.
Ich habe oben schon erwähnt, dass ich nicht BibTeX verwende, um Quellenangaben in meine Texte einzubinden. Vielleicht fehlt mit einfach die Disziplin, das Konzept stringend umzusetzen. Oder meine Arbeitsweise passt einfach nicht dazu: Wenn ich eine Quelle, z.B. einen Aufsatz oder Kommentar verarbeite, dann übernehme ich viele Zitate zunächst „blind“, ohne dass mir die für die Aufnahme des Titels in die Literaturverwaltung erforderlichen Daten vorliegen. Ich übernehme vielmehr das Zitat direkt in meine Fußnote und markiere sie entsprechend, damit ich später weiß, dass ich die Quelle noch nicht selbst eingesehen habe. Ein Hin- und Herspringen zwischen Schreibwerkzeug und Literaturverwaltung hat sich für mich als äußerst uneffektiv herausgestellt. Wenn mich jemand eines Besseren belehren kann, sehr gerne! Schreiben Sie mir eine E-Mail.
Besonders der Umgang mit Quellenangaben hat mich bei der Arbeit im Plain Text zunächst vor Probleme gestellt. Denn ich hatte es mir angewöhnt, Quellenangaben, die ich noch nicht selbst kontrolliert hatte, sondern in einem Aufsatz etc. gefunden hatte, zwar direkt zu übernehmen, aber farblich zu markieren, um zu wissen, dass ich sie beim nächsten Bibliotheksbesuch kontrollieren muss. Solche farblichen Markierungen sind nunmal im Plain Text nicht möglich. Ich habe dieses „Problem“ für mich folgendermaßen gelöst:
Damit die noch zu kontrollierenden Quellenangaben in der PDF-Fassung
meiner Arbeit vorgehoben sind, habe ich den folgenden eigenen
LaTeX-Befehl kreiert, der lediglich dafür sorgt, dass der Text rot
gefärbt wird, wenn ich ihn mit \todo{}
einschließe.
\newcommand{\todo}[1]{\textbf{\textcolor{red}{#1}}}
Oben habe ich bereits erläutert, dass ich diese Markierung mit der
Tastenkombination C-c C-f C-t
einfüge und später mit C-c C-f C-d
wieder lösche.
Um auch in der Editierfassung im Emacs leicht erkennen zu können, wo noch zu kontrollierende Quellenangaben stehen, habe ich durch folgenden Eintrag in meiner Emacs-Konfiguration das Syntax Highlighting von AucTeX angepasst.
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(font-latex-user-keyword-classes (quote (("my_todo" (("todo" "{"))
(:underline "red" :foreground "black" :background "red") command)))))
Diesen Eintrag habe ich natürlich nicht manuell vorgenommen, sondern
über M-x customize-variable
die o.g. Variable
font-latex-user-keyword-classes bearbeitet. Dort habe ich die
folgenden Einträge in der Eingabemaske vorgenommen:
Nun sollte im Emacs der Text zwischen den Klammern, also die noch zu kontrollierende Quellenangabe einen roten Hintergrund haben. Weitere Informationen sind in der AucTeX-Dokumentation unter fontification of macros zu finden.
Da ich mein Literaturverzeichnis nicht automatisch durch BibTeX
generieren lasse, muss ich es von Hand erstellen und pflegen. Das
Schreiben und Verwalten von Tabellen in LaTeX ist leider ein recht
unschönes Unterfangen; ich verwende daher einen Minor-Mode aus dem
Org-Mode, den sog. orgtbl-mode
. Dieser Mode ermöglicht es mir,
Tabellen in einer sehr komfortablen Weise zu schreiben und die Tabelle
anschließend auf Befehl in die LaTeX-Syntax umzusetzen. Eine sehr
fuchsige Lösung, wie ich finde.
Mein Literaturverzeichnis hat eine eigene Datei bekommen, die mit dem folgenden Befehl in das Hauptdokument eingebunden wird.
\input{Literaturverzeichnis.tex} % Manuelles Literaturverzeichnis
Die Datei Literaturverzeichnis.tex sieht folgendermaßen aus. Im oberen
Bereich befindet sich nach den Kommentaren die zu pflegende Tabelle in
der Org-Mode-Syntax. Diese wird durch den Comment-LaTeX-Befehl
auskommentiert, so dass sie nicht in der LaTeX-Ausgabe landet. Durch
die Eingabe von C-c C-c
mit dem Kursor in der Org-Mode-Tabelle wird
diese in die LaTeX-Syntax übersetzt und die LaTeX-Fassung unten im
Dokument wird ersetzt.Die Datei Literaturverzeichnis.tex sieht
folgendermaßen aus. Im oberen Bereich befindet sich nach den
Kommentaren die zu pflegende Tabelle in der Org-Mode-Syntax. Diese
wird durch den Comment-LaTeX-Befehl auskommentiert, so dass sie nicht
in der LaTeX-Ausgabe landet. Durch die Eingabe von C-c C-c
mit dem
Kursor in der Org-Mode-Tabelle wird diese in die LaTeX-Syntax
übersetzt und die LaTeX-Fassung unten im Dokument wird ersetzt.
% Diese Datei beinhaltet das manuell erstellte Literaturverzeichnis.
% Sie wird in das Hauptdokument dissertation.tex eingebunden.
% =======================================================================================
% Tabellen in LaTeX zu schreiben macht nicht wirklich Spaß. Mehr Spaß macht die Magie des
% OrgTbl-Mode. In dieser Datei kann die Liste der Literatur im Rahmen des folgenden
% LaTeX-Kommentars bearbeitet werden. Durch C-c C-c wird die Tabelle in die LaTeX-Syntax
% exportiert und unten eingefügt bzw. aktualisiert.
% =======================================================================================
% Tabelle in der Orgmode-Syntax (Aktualisieren der LaTeX-Ausgabe unten mit C-c C-c):
% =======================================================================================
\begin{comment}
#+ORGTBL: SEND Literatur orgtbl-to-latex
| Mayer, Carl | Besteuerung von Aktien- und Umtauschanleihen, DStR 2009, 234 ff. |
| Eberhart, John | Das Haus am See, 3. Auflage, München 2007 |
| | |
| | |
\end{comment}
% =======================================================================================
% Folgendes nicht händisch editieren! Es wird automatisch aktualisiert.
% =======================================================================================
% BEGIN RECEIVE ORGTBL Literatur
\begin{tabular}{ll}
Mayer, Carl & Besteuerung von Aktien- und Umtauschanleihen, DStR 2009, 234 ff. \\
Eberhart, John & Das Haus am See, 3. Auflage, München 2007 \\
& \\
& \\
\end{tabular}
% END RECEIVE ORGTBL Literatur
Siehe dazu auch A LaTeX-example of radio tables in der Dokumentation des Org-Mode.
Beim Austausch von LaTeX-Dateien zwischen Benutzern unterschiedlicher Betriebssysteme und/oder LaTeX-Editoren kann es manchmal zu dem unschönen Effekt kommen, dass Umlaute und Sonderzeichen nicht korrekt dargestellt werden. Das ist kein spezielles LaTeX-Problem, sondern tritt auch bei anderen Textdateien auf.
Hilfreich ist es dann, wenn man auf den kleinsten gemeinsamen Nenner ausweichen kann - Ascii. Glücklicherweise lassen sich Umlaute und Sonderzeichen auch in einer speziellen LaTeX-Syntax kodieren. Und der GNU Emacs bietet eine Möglichkeit der Konvertierung in beide Richtungen:
You can switch back and forth between TeX format ({\'e}) and iso-format (é)
with the commands iso-tex2iso and iso-iso2tex.
Hier nun die wenigen nötigen Konfigurationen, um die entsprechenden Erweiterungen des GNU Emacs, AucTeX und RefTeX, zu starten. Ich schreibe LaTeX-Dokumente ausschließlich unter MacOS X. Daher bezieht sich meine Konfiguration nur auf diese Plattform.
;; Pfade laden
(add-to-list 'load-path "~/elisp/auctex/")
(add-to-list 'load-path "~/elisp/auctex/preview/")
;; Pfad für LaTeX:
(if macosx-p
(progn
(setenv "PATH" (concat "/usr/texbin:" (getenv "PATH")))))
;; AucTeX laden
(load "auctex.el" nil t t)
(setq TeX-PDF-mode t)
;; RefTeX einpflechten und laden
(setq reftex-plug-into-AUCTeX t)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
; Table of Contents auf Meta-t legen
(global-set-key "\M-t" 'reftex-toc)
;; Preview-LaTeX
(load "preview-latex.el" nil t t)
Nun soll SyncTeX eingerichtet werden, so dass man beim Aufruf der PDF-Datei in Skim direkt die Stelle hervorgehoben bekommt, an der aktuell der Kursor im Emacs positioniert ist (sog. SyncTeX forward search) und man andererseits aus Skim direkt an die entsprechende Stelle im LaTeX-Quelltext im Emacs springen kann (sog. SyncTeX backward search).
Bedienung:
C-c C-c
aus dem Emacs hebt
Skim nun die aktuelle Kursor-Position hervor.
(if macosx-p
(progn
(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)
(setq TeX-source-correlate-method 'synctex)
(add-hook 'LaTeX-mode-hook
(lambda()
(add-to-list 'TeX-expand-list
'("%q" skim-make-url))))
(defun skim-make-url () (concat
(TeX-current-line)
" "
(expand-file-name (funcall file (TeX-output-extension) t)
(file-name-directory (TeX-master-file)))
" "
(buffer-file-name)))
(setq TeX-view-program-selection '((output-pdf "Skim")))
(setq LaTeX-command "latex -synctex=1")
(setq TeX-view-program-list (quote
(("Skim" "/Applications/Skim.app/Contents/SharedSupport/displayline %n %o %b")
("Preview" "open -a Preview.app %o"))))
;; Emacs als Server starten, damit Skim ihn ansteuern kann:
(setq server-use-tcp t)
(server-start)
)) ;; Klammern schließen Bedingung OS X
In seinen Einstellungen muss Skim nun mitgeteilt werden, dass er mit dem Emacs zusammen arbeiten soll. Skim greift dabei auf den Befehl emacsclient zurück; der Emacs muss daher als Server gestartet werden (siehe oben).
Der mit OS X mitgelieferte Emacs hat seinen emacsclient im Verzeichnis
/usr/bin
. Dieses Verzeichnis ist auch im Pfad, so dass der einfachste
Weg darin besteht, die bestehende Datei in /usr/bin
durch einen
symbolischen Link auf den Client der tatsächlich verwendeten
graphischen Emacs-Version zu ersetzen:
$ su admin
$ sudo mv /usr/bin/emacsclient /usr/bin/emacsclient_save
$ sudo ln -s /usr/local/Cellar/emacs/24.1/bin/emacsclient /usr/bin/emacsclient