Texmaker gibt es, weil sein Autor sich von einem anderen LaTeX-Editor abwandte. Pascal Brachet begründete Kile, die LaTeX-Umgebung für den KDE-Desktop, und übergab deren Pflege 2003 an einen anderen Entwickler; am 29. Mai desselben Jahres erschien die erste Fassung von Texmaker – diesmal eine plattformübergreifende Entwicklungsumgebung, allein in Qt geschrieben und an keinen bestimmten Desktop gebunden. Diese Seite behandelt der Reihe nach den Hauptdokument-Mechanismus, der ein aus mehreren Dateien bestehendes Manuskript zusammenhält, die Quick-Build-Kette hinter F1, die mitwachsende Strukturansicht sowie den Unterschied zu TeXstudio, das selbst ein Ableger von Texmaker ist.
Der Autor von Texmaker begründete auch Kile
Diese Verbindung ist auf der Kile-Seite dokumentiert. Der erste Name in Kiles Datei AUTHORS lautet Pascal Brachet, und die Handbuchseite kile(1) hält fest: „Kile was written by Pascal Brachet and Jeroen Wijnhout." In einem Interview vom Oktober 2003 schilderte Wijnhout, er habe Brachet angeschrieben, um Funktionen beizusteuern: „It turned out that he wanted to stop the development of Kile. So I got more than I bargained for, the project was in my hands now." Was Brachet abgab, war ein fest an KDE gebundener Editor; was er stattdessen schrieb, ist Texmaker, das ohne KDE-Bibliotheken auskommt und allein auf Qt läuft. Dieselbe Idee, losgelöst von einer Arbeitsumgebung.
Das Ergebnis ist ein Editor, der eine ganze Entwicklungsumgebung in ein Fenster packt: links die Strukturansicht, in der Mitte der Quelltext, darunter Protokoll und Meldungen, rechts die PDF-Vorschau. Die Lizenz ist GPL v2, die Grundlage Qt, und Pakete für Windows, macOS und Linux stammen vom selben Autor. Enthalten sind Unicode mit mehreren Kodierungen, Code-Faltung für \part, \chapter, \section und \begin{...}…\end{...}-Blöcke, eine Palette von rund 370 mathematischen Zeichen, ein eingebauter PDF-Betrachter mit fortlaufendem Bildlauf, Rechtschreibprüfung, Vervollständigung, rechteckige Blockauswahl, ordnerübergreifende Suche, reguläre Ausdrücke, Unterstützung für Asymptote sowie selbst definierte Textbausteine – also nahezu alles, worauf TeXworks bewusst verzichtet.
Texmaker und TeXstudio: TeXstudio ist ein Ableger von Texmaker
Die Ähnlichkeit rührt daher, dass das eine aus dem Quelltext des anderen hervorging. 2008 zweigte ein Projekt von der Texmaker-Codebasis ab und veröffentlichte im Februar 2009 seine erste Fassung unter dem Namen TexMakerX. Weil die Namen zu leicht zu verwechseln waren, erfolgte im Juni 2011 die Umbenennung in TeXstudio. Deshalb wirken Bildschirmaufteilung und Aufbau der Einstellungen bis heute geschwisterlich. Hinzugekommen ist seither vor allem Editierwerkzeug – Grammatikprüfung, Spiegelcursor, kräftigeres Falten und Vervollständigen –, während Texmaker bleibt, was das Original war: weniger Einstellungen, mehr Geradlinigkeit. Wer das eine kennt, findet sich sofort im anderen zurecht; in der Praxis empfiehlt es sich daher, mit dem leichteren Texmaker zu beginnen und zu TeXstudio zu wechseln, sobald es nicht mehr reicht.
Das Hauptdokument: ein Manuskript aus vielen Dateien zusammenhalten
Sobald das Manuskript in Kapiteldateien zerfällt, gehört als Erstes ein Hauptdokument über das Menü „Options" festgelegt. Das ist der Angelpunkt der Mehrdateiarbeit in Texmaker. Im Hauptdokumentmodus beginnt der Build stets beim Hauptdokument, gleich welche Datei im Vordergrund steht: Ein Druck auf F1 während der Arbeit an chapter3.tex übersetzt trotzdem main.tex. Verlassen wird der Modus über dasselbe Menü „Options"; weil Ein- und Ausstieg an einer Stelle liegen, bleibt der jeweilige Zustand gut überschaubar.
Der Hauptdokumentmodus verändert die Bedeutung der Platzhalter in den Argumenten eines Befehls. Der in Texmakers Einstellungen am häufigsten benutzte, %, steht für „Dateiname ohne Endung" – im Hauptdokumentmodus jedoch für den Namen des Hauptdokuments. Genau darum gibt es einen zweiten Platzhalter #, der auch in diesem Modus die gerade geöffnete Datei liefert. Wer den Unterschied nicht kennt, stolpert unweigerlich, sobald etwas kapitelweise laufen soll. Dieselben Felder nehmen außerdem @ für die aktuelle Zeilennummer und ! für das aktuelle Verzeichnis an.
| Platzhalter | Wird ersetzt durch |
|---|---|
% | der Dateiname ohne Endung – im Hauptdokumentmodus der Name des Hauptdokuments |
# | der Name der gerade geöffneten Datei ohne Endung – auch im Hauptdokumentmodus unverändert |
@ | die aktuelle Zeilennummer – nötig, wenn eine Vorwärtssuche an einen externen Betrachter geht |
! | das aktuelle Verzeichnis |
%% ## @@ !! | die Schreibweise für das Zeichen selbst – verdoppelt ergibt es ein einzelnes Literal |
Quick Build: festlegen, was F1 ausführt
Der Build in Texmaker wird von zwei Abschnitten unter Options → Configure Texmaker bestimmt (unter macOS Preferences genannt). Commands hält fest, was jeder Befehl tatsächlich ist – mit welchen Argumenten also pdflatex oder dvipdfmx startet –, und Quick Build hält die Reihenfolge fest, in der sie laufen. Weil die Aufteilung sauber ist, betrifft eine Umstellung auf japanische Engines, bei der die Reihenfolge bleibt und nur der Inhalt wechselt, nur eine Stelle. Ausgelöst wird die Kette über die Schaltfläche in der Werkzeugleiste oder mit F1.
Der Abschnitt Quick Build führt die gängigen Kombinationen als Optionsfelder auf, aus denen eine gewählt wird. Für eine eigene Zusammenstellung dient das Feld User ganz unten, in dem die Befehle mit | verkettet werden.
- PdfLaTeX + View Pdf – mit pdfLaTeX unmittelbar zum PDF und anzeigen. Die Voreinstellung; für überwiegend westlichen Text ausreichend.
- LaTeX + dvips + View Ps – über ein DVI, mit dvips zu PostScript und dann anzeigen.
- LaTeX + dvipdfm + View Pdf – über ein DVI und mit dvipdfm(x) zum PDF. Der übliche Weg für japanischen Satz.
- User – im Feld darüber beliebige Befehle mit
|verketten und einen eigenen Ablauf bauen.
Das Feld PdfLaTeX im Abschnitt Commands lautet voreingestellt ungefähr wie folgt. -interaction=nonstopmode verhindert, dass LaTeX bei einem Fehler an einer interaktiven Eingabeaufforderung stehen bleibt, und -synctex=1 sorgt für die später von SyncTeX benötigten Angaben. Beides lohnt sich unabhängig vom gewählten Weg.
pdflatex -synctex=1 -interaction=nonstopmode %.texWer Literaturverzeichnis, Index und die Zahl der Wiederholungsläufe lieber abgenommen bekommt, trägt im Feld User von Quick Build einen einzigen Aufruf von latexmk ein. latexmk löst die Abhängigkeiten auf und führt jeden Schritt so oft aus wie nötig, sodass hier nichts mehr aufzureihen bleibt. Die Konfiguration von latexmk selbst behandelt eine andere Seite.
latexmk -pdf -synctex=1 -interaction=nonstopmode %.texBuilds für japanischen Satz einrichten: upLaTeX und LuaLaTeX
Der langjährige Standard für japanischen Satz lautet upLaTeX + dvipdfmx, und in Texmaker genügen dafür Änderungen an genau zwei Stellen. Im Abschnitt Commands wird das Feld LaTeX auf uplatex und das Feld Dvipdfm auf dvipdfmx umgeschrieben; anschließend unter Quick Build „LaTeX + dvipdfm + View Pdf" wählen. Ein Druck auf F1 läuft dann upLaTeX → dvipdfmx und endet mit dem PDF auf dem Schirm. -kanji=utf8 legt die Eingabekodierung auf UTF-8 fest, -no-guess-input-enc schaltet das Erraten der Kodierung ab. Fehlt hier -synctex=1, entsteht das schwer deutbare Bild, dass alles funktioniert – nur die Rückwärtssuche nicht.
uplatex -no-guess-input-enc -kanji=utf8 -synctex=1 -interaction=nonstopmode %.texdvipdfmx %.dviDer andere Weg ist LuaLaTeX: weniger Schritte, wenn ein japanisches Dokument neu beginnt, und ohne Umweg über DVI direkt zum PDF. Sofern das Feld LuaLaTeX unter Commands stimmt, genügt im Feld User von Quick Build der Eintrag lualatex -synctex=1 -interaction=nonstopmode %.tex (den japanischen Satz selbst übernehmen das Paket luatexja oder die Klasse ltjsarticle). Wer die Konfiguration lieber an einer Stelle bündelt, beschreibt den upLaTeX- oder LuaLaTeX-Ablauf in einer .latexmkrc und lässt Texmaker nichts weiter tun, als latexmk aufzurufen.
Strukturansicht, Vervollständigung und Assistenten
Die Strukturansicht (Structure view) am linken Rand ist eine Landkarte des Dokuments, die sich beim Tippen auffrischt. Überschriften (\section und Verwandte), Marken (\label) und die über \input und \include eingebundenen Dateien stehen dort hierarchisch, und ein Klick springt an die Stelle. In einem Projekt mit Hauptdokument reihen sich auch die Inhalte der Kapiteldateien in denselben Baum ein, sodass sich selbst ein langes Manuskript ohne Verlust des Überblicks durchqueren lässt. Genau diese Fläche für den Gesamtblick fehlt TeXworks, und sie macht Texmaker mit zu einer Entwicklungsumgebung.
Die Vervollständigung spart Tastenanschläge. Nach \ und einem Buchstaben erscheint eine Liste möglicher Befehle, die sich mit jedem weiteren Zeichen verengt; Befehle mit Argumenten zeigen Platzhalter, sodass sich die geschweiften Klammern der Reihe nach füllen lassen. Es geht nicht nur um Befehlsnamen: Nach \ref{...} oder \pageref{...} werden die im Dokument vorhandenen Marken angeboten, nach \cite{...} die Schlüssel aus der Literaturdatenbank – das Stocken bei halb erinnerten Namen entfällt. Hinzu kommen die Assistenten: Quick Start klärt \documentclass, Papierformat und Kodierung in einem Dialog, während Tabular, Tabbing und Array (mit der Wahl zwischen array, matrix und pmatrix) jenes Gerüst schreiben, das niemand wörtlich im Kopf hat.
Was zu prüfen ist, wenn F1 nicht durchläuft
Bevor die Quick-Build-Kette umgeschrieben wird, gehört die Frage geteilt: Was sagt das Protokoll, und ließ sich der externe Befehl überhaupt starten? Beides hat ganz verschiedene Ursachen und Abhilfen, sieht auf dem Schirm aber gleich aus – „F1 gedrückt, kein PDF". Insbesondere ist Could not start the command kein LaTeX-Fehler, sondern die Meldung, dass Texmaker die ausführbare Datei nicht gefunden hat; noch so häufiges Lesen des Protokolls bringt hier nichts. Die Reihenfolge gilt für eine lange Arbeit ebenso wie für einen kurzen Bericht.
- Zuerst im Panel Messages / Log file den ersten Fehler suchen. Sind die Zeilennummern anklickbar, führt der Klick direkt an die schuldige Stelle im Quelltext.
- Bei
Could not start the commandim Terminalpdflatex --versionoderuplatex --versionaufrufen und den PATH richten; die Einstellungen von Texmaker spielen dabei keine Rolle. - Bleibt nur das PDF unverändert, prüfen, ob der eingebaute Betrachter eine alte Datei festhält und ob der gewählte Quick Build tatsächlich View Pdf enthält.
- Scheitert nur japanischer Satz, sicherstellen, dass die Felder LaTeX und Dvipdfm ein stimmiges Paar upLaTeX + dvipdfmx bilden.
Die zwei Bedingungen, damit SyncTeX greift
Nötig sind nur zwei Dinge: -synctex=1 im Übersetzungsbefehl und ein PDF, das im eingebauten Betrachter geöffnet ist. Das Erste veranlasst LaTeX, die Synchronisationsdatei (.synctex.gz) zu schreiben; die oben gezeigten Befehle genügen dafür. Das Zweite heißt, im Abschnitt Commands als Pdf Viewer den built-in viewer zu wählen und zusätzlich Embed zu aktivieren, wenn er im Hauptfenster andocken soll. Wird das PDF in einem externen Betrachter geöffnet, arbeiten die Sprünge in keiner der beiden Richtungen.
Die Bedienung ist schlicht. Wie das Handbuch es beschreibt, bewegt sich der eingebaute Betrachter bei gesetztem -synctex=1 von selbst an die Stelle im PDF, die zur aktuellen Zeile gehört – das ist die Vorwärtssuche, und es gibt keine Schaltfläche dafür. Umgekehrt funktioniert die Rückwärtssuche über einen Rechtsklick auf ein Wort im eingebauten Betrachter und die Auswahl im Kontextmenü; der Editor springt dann zur passenden Zeile. Der Synchronisationsmechanismus selbst hat eine eigene Seite.