Sublime Text (LaTeXTools)

Zum Schreiben von LaTeX in Sublime Text ist die Standardauswahl das Paket LaTeXTools. Installieren Sie es über Package Control und Sie erhalten ein Build-System, \ref/\cite-Vervollständigung, Befehlsvervollständigung, Dateinamenvervollständigung und Zwei-Wege-Sprünge mit Ihrem PDF-Viewer – alles ohne den Editor zu verlassen. Auf dieser Seite werden die Installation und Konfiguration von LaTeXTools, die Funktionsweise des Builds, die Konfiguration für Japanisch, die Vervollständigung und die Vorwärts-/Rückwärtssuche über SyncTeX beschrieben.

Was LaTeXTools ist

Sublime Text setzt TeX nicht selbst; Das eigentliche Kompilieren erfolgt durch eine TeX-Installation auf Ihrem Computer – TeX Live, MacTeX oder MiKTeX. LaTeXTools ist das Paket, das die beiden verbindet. Während Sie eine .tex-Datei bearbeiten, aktiviert sie automatisch Build-Befehle, das Parsen des Protokolls bei aufgetretenen Fehlern, die kontextbezogene Vervollständigung, das Springen zur Definition für \labels und Zitierschlüssel sowie das Starten/Synchronisieren Ihres PDF-Viewers. Allein LaTeXTools erzeugt nichts: Es setzt eine lokale TeX-Distribution und einen PDF-Viewer voraus.

Es sind zwei Außenteile erforderlich. Zuerst eine TeX-Verteilung: MacTeX auf macOS (das leichtere BasicTeX funktioniert auch, aber Sie müssen latexmk separat hinzufügen – siehe unten); MiKTeX oder TeX Live auf Windows; TeX Live von TUG auf Linux. Zweitens ein PDF-Viewer: Um die Vorwärts- und Rückwärtssuche zu ermöglichen, geht LaTeXTools von einem Standard-Viewer pro Plattform aus.

OSStandard-Zxqph0xz-ViewerNotizen
macOSSkimUnterstützt Vorwärts-/Rückwärtssuche; Preview.app mit zusätzlicher Konfiguration verwendbar
WindowsSumatraPDFDer einzige unterstützte Viewer auf Windows; leicht, synchronisierbar
LinuxEvinceOkular, Zathura usw. wählbar über die Einstellung viewer

Die Installation erfolgt über die Paketkontrolle (die empfohlene Methode). Wenn Sie Package Control noch nicht haben, installieren Sie es zuerst; Öffnen Sie dann die Befehlspalette (Ctrl+Shift+P auf Windows/Linux, Cmd+Shift+P auf macOS), wählen Sie Paketsteuerung: Paket installieren und wählen Sie LaTeXTools aus der Liste aus. Es ist kein Neustart erforderlich: Öffnen Sie eine .tex-Datei, die Syntax wechselt zu LaTeX und die Funktionen werden aktiviert.

Zwei Dinge, die danach zu tun sind. Bereiten Sie zunächst eine Einstellungsdatei vor: Führen Sie in der Befehlspalette LaTeXTools: Benutzereinstellungen auf Standard zurücksetzen aus oder verwenden Sie Einstellungen | Paket Settings | LaTeXTools | Settings – Benutzer, um ein bearbeitbares LaTeXTools.sublime-settings in Ihrem User-Verzeichnis zu erstellen (bearbeiten Sie niemals die Standarddatei im Plugin-Ordner – sie wird beim Upgrade überschrieben). Zweitens überprüfen Sie das Setup: LaTeXTools: Check System prüft, ob die TeX-Befehle und Ihr Viewer von LaTeXTools aus erreichbar sind. Wenn etwas nicht funktioniert, ist dies der erste Befehl, der ausgeführt wird.

Gebäude

Builds laufen auf dem Standardschlüssel von Sublime Text, Ctrl+B (Cmd+B auf macOS). Mit einem Build führt der Standard-Builder (traditional) alle folgenden Schritte aus: Er speichert die aktuelle Datei, ruft den Build-Befehl TeX auf, analysiert das Protokoll und listet Fehler, Warnungen und (falls aktiviert) fehlerhafte Felder in einem Bedienfeld unten auf, öffnet dann den PDF-Viewer und führt eine Vorwärtssuche bis zum Cursor durch. Klicken Sie im Panel auf einen Fehler, um zur entsprechenden Zeile zu springen.

Die entscheidende Tatsache ist, dass der traditional-Builder latexmk unter der Haube ausführt. Genauer gesagt: er ruft latexmk auf TeX Live und MacTeX und texify auf MiKTeX auf. latexmk findet heraus, was sich geändert hat, führt die Toolchain so oft wie nötig erneut aus und verarbeitet die Wiederholungen, bis Querverweise und das Inhaltsverzeichnis festgelegt sind. Die Standardbefehlszeile lautet ungefähr:

terminal
latexmk -cd -f -%E -interaction=nonstopmode -synctex=1

Beim Lesen: -cd wechselt vor der Verarbeitung in das Verzeichnis der Quelle; -f geht auch nach einem Fehler so weit wie möglich weiter; -interaction=nonstopmode vermeidet interaktive Stopps; und -synctex=1 gibt die Synchronisierungsdaten aus, die für die Vorwärts-/Rückwärtssuche unten erforderlich sind. %E ist ein Platzhalter, den LaTeXTools je nach gewählter Engine durch -pdf (pdfLaTeX), -lualatex, -xelatex usw. ersetzt – die Engine-Auswahl läuft also darauf hinaus, das auszutauschen, worauf %E erweitert wird.

Der einfachste Weg, eine Engine auszuwählen, ist ein magischer Kommentar oben in der Datei. Fügen Sie dies in die erste Zeile Ihres .tex ein und die passende Engine wird verwendet (ohne pdfLaTeX). In einem Projekt mit mehreren Dateien befindet sich diese Zeile in der Stammdatei (Masterdatei). Aus Kompatibilitätsgründen mit TeXShop funktioniert TS-program anstelle von program:

latex
%!TEX program = lualatex

Es werden nur drei Werte akzeptiert: pdflatex, lualatex und xelatex. Ebenso übergibt %!TEX options = ... Optionen an die Engine (z. B. --shell-escape) und %!TEX root = <master> benennt die Root-Datei. Anstelle von magischen Kommentaren können Sie diese auch in Ihrer Einstellungsdatei oder Ihrem Sublime-Projekt konfigurieren. Im builder_settings-Block von LaTeXTools.sublime-settings können Sie program (die Engine), options, command und env (Umgebungsvariablen) anpassen:

terminal
{
  "builder_settings": {
    "program": "lualatex",
    "options": ["--shell-escape"]
  }
}

Ein weiteres wesentliches Element ist die Einstellung texpath – PATH, mit dem die LaTeX-Befehle beim Aufruf von latexmk und Freunden gefunden werden. Insbesondere bei macOS hat ein von GUI gestartetes Sublime Text ein anderes PATH als Ihre Shell, sodass ein falscher Wert mit „Befehl nicht gefunden“ fehlschlägt. Die Regel: texpath muss $PATH enthalten (zuerst Ihre eigenen Pfade, dann $PATH). Ein typischer macOS-Wert ist "/Library/TeX/texbin:$PATH"; auf Windows, so etwas wie "C:\\texlive\\2026\\bin\\windows;$PATH", angepasst an Ihre Installation. Legen Sie unter Windows auch distro auf "texlive" oder "miktex" fest, um Ihrer Distribution zu entsprechen.

Wenn traditional nicht ausreicht, können Sie mit der Einstellung builder zu basic (ein minimaler Builder, der die Engine plus bibtex/biber ausführt) oder script (ein erweiterter Builder, in dem Sie Ihre eigene Befehlssequenz in script_commands schreiben) wechseln. Beachten Sie, dass --output-directory, --aux-directory und --jobname nur mit latexmk (dem traditional-Builder auf OS

Konfigurieren für Japanisch

Hier stolpern japanische Benutzer oft. %!TEX program akzeptiert nur pdflatex, lualatex und xelatex – Sie können uplatex oder platex nicht direkt benennen**. Wenn Sie Japanisch mit LuaLaTeX setzen, ist es einfach: Schreiben Sie %!TEX program = lualatex und verwenden Sie eine luatexja/ltjsclasses-Familienklasse.

Um andererseits upLaTeX + dvipdfmx zu verwenden – die klassische japanische Papierkombination in den Wissenschaften, die ein DVI erstellt und es dann in PDF umwandelt – besteht der sauberste Ansatz darin, .latexmkrc die Engine auswählen zu lassen. Da der traditional-Builder unter der Haube latexmk aufruft, wird ein .latexmkrc in das Projekt eingefügt Verzeichnis (oder Ihr Home-Verzeichnis) schaltet die Toolchain auf japanische Verarbeitung um, ohne dass sich die eigenen Einstellungen von LaTeXTools ändern. Hier ist ein upLaTeX + dvipdfmx-Beispiel:

latex
$latex = 'uplatex -synctex=1 -interaction=nonstopmode -file-line-error %O %S';
$bibtex = 'upbibtex %O %B';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';
$makeindex = 'upmendex %O -o %D %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;
$max_repeat = 5;

Die wichtigsten Punkte: Weisen Sie uplatex $latex und dvipdfmx $dvipdf zu und stellen Sie dann $pdf_mode = 3 so ein, dass der Pfad „Zxqph15xz erstellen, dann mit dvipdfmx in PDF konvertieren“ ausgewählt wird. Durch die Übergabe von -synctex=1 an $latex werden die SyncTeX-Daten auch über DVI an PDF weitergeleitet, sodass die folgende Suche funktioniert. Auf der Seite LaTeXTools ist es am sichersten, nicht eine Zeile %!TEX program zu schreiben (dies würde die Zeile pdfLaTeX %E auswählen).

Um es noch deutlicher auszudrücken: Sie können latexmk direkt über den Schlüssel command in builder_settings benennen. Durch das Schreiben von "command": "latexmk" (bei Beibehaltung von Optionen wie -pdfdvi in .latexmkrc) wird sichergestellt, dass die japanisch konfigurierte Funktion latexmk ausgeführt wird. Das Anpassen von command deaktiviert zwar die automatische Engine-Auswahl über %!TEX program, aber in einem Setup, das die Toolchain in .latexmkrc repariert – wie es bei japanischen Workflows der Fall ist – ist das kein Verlust.

Fertigstellung

Die Vervollständigung von LaTeXTools lässt sich in drei Familien einteilen: Befehlsvervollständigung, \ref/\cite-Vervollständigung und Datei-/Paketname-Vervollständigung (der Fill Helper). Erstens: Befehlsvervollständigung. LaTeXTools liefert die Vervollständigungswortlisten für TeXStudio-derived (CWL) und zeigt ein Popup mit Kandidaten an, sobald Sie einen Befehl mit \ starten. Geben Sie beispielsweise \te ein, und \textit und dergleichen werden angezeigt. Das Verhalten wird durch die command_completion-Einstellung gesteuert – prefixed (Standard; nur wenn das Wort mit \ beginnt), always oder never. Kandidaten für die in Ihrem Dokument geladenen Pakete werden automatisch über cwl_autoload hinzugefügt (standardmäßig aktiviert). Aktivieren Sie env_auto_trigger und die Umgebungsnamen werden vervollständigt, wenn Sie auch \begin{/\end{ eingeben.

Als nächstes erfolgt die Vervollständigung von Referenzen und Zitaten – eines der Highlights von LaTeXTools. Sobald Sie \ref{ oder \cite{ eingeben, wird standardmäßig oben auf dem Bildschirm ein Schnellfenster (eine Kandidatenliste) angezeigt: für \ref{ alle \labels im Dokument; für \cite{ alle Einträge in den Bibliographien, auf die Sie über \bibliography{} oder \addbibresource{} von biblatex verweisen. Geben Sie ein paar Zeichen für den Fuzzy-Filter ein, wählen Sie sie aus und drücken Sie die Eingabetaste. Der gesamte Befehl wird eingefügt, z. B. \ref{my-label}. Geben Sie ein Komma direkt vor der schließenden Klammer ein, wie in \cite{paper1,, und Sie wählen den zweiten und späteren Schlüssel eines Mehrfachzitats auf die gleiche Weise aus.

Zwei Vorbehalte. Zuerst sammelt LaTeXTools Kandidaten aus der gespeicherten Datei; Wenn eine gerade hinzugefügte Bezeichnung oder ein Schlüssel nicht angezeigt wird, speichern Sie sie zunächst. Zweitens werden nur externe .bib-Dateien unterstützt – inline geschriebene \bibitems nicht. Wenn sich dieser automatische Auslöser aufdringlich anfühlt, kann er durch Umschalten oder Einstellen deaktiviert werden. Um es manuell aufzurufen, drücken Sie Ctrl+l, x (Cmd+l, x auf macOS) oder Ctrl+l, Ctrl+f direkt nach \ref{ und dergleichen (die gleiche Taste wie der Fill Helper unten, der auch für \ref/\cite funktioniert). Referenz- und Zitierbefehle von cleveref, fancyref, varioref, natbib und biblatex werden ebenfalls erkannt.

Der dritte ist der Fill Helper. Geben Sie \usepackage{, \include{, \input{, \includegraphics{ usw. ein und es wird eine Liste der verfügbaren Pakete oder Dateien angezeigt: installierte Pakete für \usepackage{ und Dateien im aktuellen Verzeichnis für die Dateibefehle (gefiltert nach Bilddateien für \includegraphics). Auch dies wird standardmäßig automatisch angezeigt oder manuell mit Ctrl+l, Ctrl+f aufgerufen. Der einzige Teil der Vorbereitung ist die Paketvervollständigung: Führen Sie einmal LaTeXTools: Cache für LaTeX-Pakete erstellen aus der Befehlspalette aus, um den Paketcache zu erstellen.

SyncTeX (Vorwärts-/Rückwärtssuche)

SyncTeX zeichnet die Korrespondenz zwischen Quellzeilen und Positionen im PDF auf und ermöglicht die Vorwärtssuche – das Springen von Ihrer Bearbeitungsposition zum PDF – und die Umkehrsuche – das Gehen von einer Stelle im PDF zurück zur Quellzeile. Der Standard-Build-Befehl von LaTeXTools enthält -synctex=1, sodass ein gewöhnlicher Build von Ctrl+B die Synchronisierungsdaten (.synctex.gz) für Sie ausgibt. Für Japanisch über DVI geht es darum, -synctex=1 auch in .latexmkrc an $latex zu übergeben, wie oben erwähnt. Die Hintergründe dazu werden auf der Seite SyncTeX behandelt.

Vorwärtssuche wird über einen LaTeXTools-Schlüssel ausgeführt. Drücken Sie beim Bearbeiten eines .tex Ctrl+l, j (Cmd+l, j auf macOS) und die PDF-Seite, die Ihrem Cursor entspricht, wird angezeigt. Direkt nach einem Build wird auch automatisch eine Vorwärtssuche ausgeführt, sodass Ctrl+B allein die richtige Stelle öffnet. (Ctrl+l ist normalerweise „Auswahl auf Zeile erweitern“, aber für .tex-Dateien mit aktivem LaTeXTools wird es auf Ctrl+l, Ctrl+l umgebildet, wodurch Ctrl+l als Präfix für die Befehle des Plugins frei wird.) Um PDF lediglich ohne Synchronisierung zu öffnen, verwenden Sie Ctrl+l, v.

Inverse Suche (PDF → Quelle) erfordert, dass der Betrachter Sublime Text zurückruft. Die Klickgeste unterscheidet sich je nach Betrachter:

  • Skim (macOS)Cmd+Shift+click im PDF.
  • SumatraPDF (Windows)Doppelklick im PDF.
  • Evince (Linux)Ctrl+Linksklick im PDF (Okular: Shift+Linksklick; Zathura: Ctrl+Linksklick).

Aktivieren Sie unter macOS — Skim die inverse Suche in den Einstellungen von Skim: Öffnen Sie die Registerkarte Einstellungen → Synchronisieren, deaktivieren Sie „Auf Dateiänderungen prüfen“ und wählen Sie einfach die Voreinstellung „Sublime Text“. Wählen Sie bei älteren Skim-Builds ohne die Voreinstellung „Benutzerdefiniert“ und legen Sie „Befehl“ auf den absoluten Pfad von subl (/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl) und „Argumente“ auf "%file":%line fest.

Fügen Sie bei Windows — SumatraPDF zuerst SumatraPDF zu Ihrem PATH hinzu, damit LaTeXTools es leicht finden kann. Die Einstellungen für die inverse Suche UI werden nur angezeigt, wenn Sie ein PDF öffnen, das über Synchronisierungsdaten (.synctex.gz) verfügt. Erstellen Sie also einmal mit Ctrl+B, öffnen Sie PDF in Sumatra und registrieren Sie unter Settings → Optionen die Befehlszeile für die inverse Suche unten (passen Sie den ST-Pfad an Ihre Installation an):

terminal
"C:\\Program Files\\Sublime Text\\sublime_text.exe" "%f:%l"

Bei einem Viewer ohne Unterstützung verhält sich die Vorwärtssuchtaste (Ctrl+l, j) einfach wie „öffne PDF“. Wenn die inverse Suche fehlerhaft funktioniert, prüfen Sie in dieser Reihenfolge: ob der Build mit -synctex=1 ausgeführt wurde, ob die Voreinstellung/der Befehl des Viewers korrekt ist und – über LaTeXTools: Check System – ob sublime_executable (der Speicherort von subl) sichtbar ist.

LaTeXTools-Prüfung im ersten Durchgang

  • Erste Prüfung: Führen Sie LaTeXTools: Check System aus und bestätigen Sie, dass die Befehle TeX, der Viewer PDF und die ausführbare Datei subl sichtbar sind.
  • Entscheidung für japanische Dokumente: program = lualatex für LuaLaTeX verwenden; Lassen Sie für upLaTeX %!TEX program weg und fügen Sie die Route in .latexmkrc ein.
  • Wenn es fehlschlägt: Wenn Ctrl+B sagt, dass ein Befehl fehlt, prüfen Sie texpath; Wenn Referenzen nicht aktualisiert werden, speichern und neu erstellen; Wenn PDF-to-source fehlschlägt, überprüfen Sie die Einstellung für die umgekehrte Suche im Viewer.
  • Wann soll daraus ein Projekt gemacht werden: Sobald sich Abbildungen oder Kapiteldateien vervielfachen, fixieren Sie den Master mit einem Sublime-Projekt oder %!TEX root, sodass Ctrl+B von jeder Registerkarte auf dasselbe PDF abzielt.