Skip to content

Die vim-LaTeXSuite

Die LaTeX-Suite für den Editor vim war mein Einstieg in die LaTeX-Welt unter GNU/Linux. Denn ich nutz(t)e vim und da lag es nahe, den für LaTeX-Dokumente zu verwenden. Jedoch fühlte sich die Bearbeitung der Texte immer irgendwie umständlich an. Daher ging ich damals schnell auf die Suche nach Alternativen. Im folgenden will ich euch die Grundprinzipien mal näherbringen.

Wie AUCTeX sollte auch die LaTeX-Suite ein Teil des Paketmanagements sein. Im Idealfalle lässt es sich direkt nach der Installation nutzen. Bei Debian, Ubuntu und den abgeleiteten Distributionen ist eventuell Handarbeit nötig. Denn diese aktivieren das Paket nicht sofort. Der Nutzer muss auf der Kommandozeile den Befehl vim-addons install latex-suite (oder als Root vim-addons -w install latex-suite) eingeben. Damit werden diverse Symlinks in das .vim-Verzeichnis gelegt. Wer es lieber manuell hat, kann den Anweisungen auf der Download-Seite folgen. Im wesentlichen ist da nur das Paket herunterzuladen, zu entpacken und schließlich müssen die Dateien an die richtige Stelle kopiert werden.

Die LaTeX-Suite sollte nun (La)Tex-Dateien beim Öffnen erkennen. Das ist jedoch nicht immer der Fall. Die wichtigste Einstellung ist dabei filetype plugin on. Sie sollte entweder in der globalen oder zumindest in der lokalen vimrc gesetzt sein. Damit werden dann die Dateien mit den üblichen Endungen korrekt identifiziert und die LaTeX-Suite steht zur Verfügung. Die Autoren der Software empfehlen weiterhin folgende Einstellungen zu setzen.

set grepprg=grep\ -nH\ $*
filetype indent on
let g:tex_flavor=’latex’

Die erste Zeile benutzt das Programm grep mit Optionen, die den Dateinamen mit anzeigen. Diese Angabe benötigt LaTeX-Suite für die Verarbeitung bestimmter Informationen. Die zweite Zeile bringt automatische Einrückung des Quellcodes und erhöht so die Lesbarkeit des Codes. Ab der Version 7 von vim werden Dateien mit der Endung .tex als Plain-TeX behandelt und die LaTeX-Suite steht nicht zur Verfügung. Meist wird diese Endung auch für LaTeX-Dateien verwendet (Wer es besser machen will, nutzt .ltx.). Daher empfiehlt sich diese Einstellung für alle, die die Endung .tex für die LaTeX-Dateien nutzen.

Beim Öffnen einer leeren Datei passiert zunächst nichts. Wenn ihr die grafische Version des Vim benutzt, dann seht ihr drei neue Menüeinträge. Am einfachsten ist es, nach meiner Auffassung, mit i in den Eingabemodus zu wechseln und dort EDO einzugeben. Dann erscheint das Grundgerüst einer LaTeX-Datei versehen mit Markern der Art: <+..+>. Diese könnt ihr mit der Tastenkombination Strg+j anspringen und in die entsprechenden Felder Werte eintragen. Gerade bei der Dokumentklasse wäre es wünschenswert, wenn die Software eine Auswahlliste präsentieren würde bzw. wenn es eine Art Vervollständigung gäbe. Denn manuelle Eingabe ist eine Fehlerquelle. Im nächsten Schritt will der Nutzer vermutlich diverse Pakete einbinden. Dazu reicht es, auf einer leere Zeile den Paketnamen gefolgt von der Taste F5 einzugeben. LaTeX-Suite macht daraus automatisch die korrekte Zeile. Bei grafischen Vim könnt ihr auch das Menü verwenden. Ähnlich wie bei AUCTeX muss der Cursor zum Einfügen eines neuen Paketes an der richtigen Stelle stehen.

Wie der jed, kann auch die LaTeX-Suite gut mit Templates umgehen. Legt dazu einfach die entsprechende Datei in das templates-Verzeichnis. Mit dem Befehl :TTemplate name lässt sich das gewünschte Template einbinden.

Schließlich werdet ihr sicher bereits bestehende Dokumente öffnen. Hier liest die Software die Datei ein und versucht, diverse Informationen über eingebundene Pakete, selbst definierte Kommandos etc. zu extrahieren. Die Informationen stehen dann im Dokument in Form von Vervollständigung zur Verfügung.

Nachdem das Dokument geöffnet ist und der Dokumentkopf steht, kann der eigentliche Text bearbeitet werden. Die LaTeX-Suite bietet diverse dreibuchstabige Abkürzungen zum Einfügen von Befehlen oder Umgebungen. Oben sahen wir bereits EDO für die Dokumentklasse. Der erste Buchstabe zeigt an, ob ein Environment oder eine Section verwendet wird. Die weiteren beiden Buchstaben sind dann eine typische Abkürzung. So steht SSE für section, SPA für part, EIT für itemize. Standardmäßig setzen die Entwickler beim Mathesatz auf displaymath, eqnarray und auch equation. Laut l2tabu ergibt das falsche Abstände und sollte daher vermieden werden. Will man daher eher gather oder align verwenden, ist noch ein wenig Konfigurationsarbeit vonnöten. Die einfachste Möglichkeit, eine der obigen Umgebungen zu nutzen, wäre gather*+F5 einzugeben. Die Software setzt automatisch die begin- und end-Tags. Das artet schnell in vie Tippaufwand aus. Daher sollte es ebenso einen dreibuchstabigen Code geben. Dazu könnt ihr beispielsweise :call IMAP (’EGA’,“\\begin{gather*}\<CR><++>\<CR>\\end{gather*}<++>”,’tex’) eingeben. Dann ergibt die Eingabe von EGA folgende Ausgabe (Der Cursor wird an die korrekte Stelle platziert.):

\begin{gather*}

\end{gather*}<++>

Bei jedem Neustart des Vim müsste die Anweisung jedoch erneut eingegeben werden. Daher empfiehlt es sich die Einstellung permanent zu setzen:

augroup MyIMAPs
  au!
  au VimEnter * call IMAP (’EGA’,“\\begin{gather*}\<CR><++>\<CR>\\end{gather*}<++>”,’tex’)
augroup END

Nachdem diese Schwierigkeiten überwunden sind, bleibt der Mathesatz eine große Stolperfalle. So existieren zwar für griechische Buchstaben Abkürzungen (Beispiel: `s für σ). Aber standardmäßig gibt es nichts für Integrale, Summen, Sinus/Kosinus etc. Das heißt hier muss der Nutzer anfangs viel Aufwand in eine vernünftige Konfiguration stecken. Ich fände es wesentlich besser, wenn es für oft benutzte Mathbefehle vorkonfigurierte Einstellungen gäbe (oder mich jemand auf diese Einstellungen hinweist).

Der oben beschriebene Aufwand war für mich eines der Hauptgründe, auf LaTeX-Suite als permanenten Editor zu verzichten. Weiterhin fühlt sich die Bearbeitung von Texten irgendwie umständlicher an. Zudem gibt es einiges, was laut Dokumentation problemlos geht und bei einem Test mit Standardeinstellungen eben nicht funktioniert. Dazu gehört:

  • Einfügen von Paketen mit F5: Wenn in einer leeren Zeile im Dokumentkopf die Taste F5 gedrückt wird, soll man einfach ein Paket einbauen können. Bei mir resultiert das jedes Mal in <++>]{PAKETNAME}``usepackage[X anstatt \usepackage{PAKETNAME}.
  • LaTeX-Suite rät laut Dokumentation passende Standardwerte für Anführungszeichen. Bei mir wird jedoch immer die Kombination ``’’ eingefügt.
  • Je nach Umgebung sollen verschiedene Auslassungszeichen bei der Eingabe von ... verwendet werden. Bei mir kommt immer \dots.

Wahrscheinlich existiert da draußen für jedes Problem eine Lösung. Aber im Allgemeinen habe ich keine Lust, beim Mitschreiben einer Vorlesung von solche einem Bug überrascht zu werden und mich minutenlang mit der Behebung aufzuhalten. Daher habe ich damals gegen die Software entschieden und auch beim Testen für den Blogbeitrag blieb mein Eindruck von damals weitgehend bestätigt.

cronjob