Meine TeXstudio-Makros

TeXstudio wurde erstellt, um die Arbeit mit LaTeX zu vereinfachen. Eine Möglichkeit ist die Verwendung sogenannter Makros (oder Macros). Mit der Hilfe von Markos kann man umfangreiche Anweisungen ausführen lassen oder LaTeX-Anweisungen in den Quelltext einfügen. In diesem Artikel liste ich solche Markos auf, die ich derzeit verwende. Weitere Möglichkeiten von Makros werden im Handbuch von TeXstudio beschrieben.

Makros können in TeXstudio unter Makros / Makros bearbeiten verwaltet werden. Ich benutze Makros vor allem um LaTeX-Anweisungen direkt beim Tippen in meinen Quelltext einfügen zu lassen. Dazu dienen Auslöseimpulse (Trigger) und deren Abkürzungen (Abbreviations). Legt man z.B. ein Makro mit dem Trigger BILD an, so wird nach der Eingabe von BILD dieser Text durch den definierten LaTeX-Text ersetzt.

Beispiel für die ein benutzerdefiniertes Makro in TeXstudio. Nach dem speichern des Markos werden die Zeichenketten \bild und BILD beim Tippen automatisch durch den angegebenen LaTeX-Text ersetzt.
Beispiel für die ein benutzerdefiniertes Makro in TeXstudio. Nach dem speichern des Markos werden die Zeichenketten \bild und BILD beim Tippen automatisch durch den angegebenen LaTeX-Text ersetzt.

Makro: Bild einfügen

Nach der Eingabe von \bild oder BILD, werden diese Zeichenketten durch LaTeX-Befehle zum Einbinden eines Bildes ersetzt. Damit die unten stehenden Befehle funktionieren, muss in der Präambel das Paket graphicx eingebunden werden (z.B. \usepackage[pdftex]{graphicx}).

Name: Bild einfügen
Trigger: BILD
Abbreviation: \bild
LaTeX-Text:
\begin{figure}
\includegraphics[width=\textwidth]{Bilder/todo.jpg}
\caption{\textbf{XXX.}
XXX.
}
\label{Fig:XXX}
\end{figure}

Makro: Tabelle einfügen

Nach der Eingabe von \tabelle oder TABELLE, werden diese Zeichenketten durch LaTeX-Befehle für eine Tabelle ersetzt. Damit die unten stehenden Befehle funktionieren, müssen in der Präambel zwei Pakete eingebunden werden:

  • \usepackage{tabularx} – Tabelle, die automatisch an die Breite der Seite angepasst werden kann (über ein X bei der Angabe der Ausrichtung innerhalb der Tabelle).
  • \usepackage{booktabs} – Für die Befehle \toprule, \midrule und \bottomrule.
Name: Tabelle einfügen
Trigger: TABELLE
Abbreviation: \tabelle
LaTeX-Text:
\begin{table}
\caption{TabellenTitel}
\label{Tab:Parameter}
\begin{tabularx}{\textwidth}{ llX }
	\toprule
	Parameter & Typical value & Meaning\\
	\midrule
	$XXX$ & $XXX$ & XXX.\\
	$XXX$ & $XXX$ & XXX.\\
	\bottomrule
\end{tabularx}
\end{table}

Weitere Informationen zu Triggern

Trigger werden als Reguläre Ausdrücke interpretiert. Daher können sie deutlich mehr, als nur eine zu ersetzende Zeichenkette definieren:

Wenn dieser Triggertext in einem tex-Dokument geschrieben wird, so wird durch das aktuelle Makro ersetzt.

Wenn der Trigger mit (?<=etwas) anfängt, so passiert dies nur wenn "etwas" vor den restlichen Teil des Triggers geschriben wurde. Da der Triggertext kein einfacher Suchtext, sondern eine regulärer Suchausdruck ist, kann (?<=\S) verwendet werden, um Ersetzungen nach einem Wort und (?<=\s|^) um Ersetzungen vor einem Wort auszulösen. Man kann den speziellen Wert ?txs-start verwenden, um das Skript bei txs start zu starten.

Vervollständigung für eigene LaTeX-Befehle in TeXstudio realisieren

Für einige Aufgaben kann man sich in LaTeX eigene Befehle definieren. So habe ich mir z.B. Befehle für die Referenzierung von Bildern, Tabellen, etc. innerhalb meines Dokumentes definiert. Im Gegensatz zum TeX-eigenen Befehl \ref, wird einem in TeXstudio für den eigenen Befehl standardmäßig keine Liste der vorhandenen Labels angezeigt. In diesem Artikel beschreibe ich, wie man diese erweiterte Code-Vervollständigung für eigene Befehle in TeXstudio aktivieren kann.

Beim tippen des LaTeX-Befehls \ref stellt TeXstudio standardmäßig eine Liste  der vorhandenen labels zur Verfügung (hier: Fig:test). In wenigen Schritten kann man diese Liste auch beim tippen von eigenen Befehlen anzeigen lassen.
Beim tippen des LaTeX-Befehls \ref stellt TeXstudio standardmäßig eine Liste der vorhandenen labels zur Verfügung (hier: Fig:test). In wenigen Schritten kann man diese Liste auch beim tippen von eigenen Befehlen anzeigen lassen.
  1. Ich nutze z.B. für Referenzen auf Bilder einen eigenen Befehl (\fig). Dieser Befehl schreibt mir bei der Referenzierung nicht nur die Nummer, sondern auch gleich ein „Fig. “ vor diese Nummer (siehe auch LaTeX: Labels and Cross-referencing). Dazu verwende ich in der Präambel folgende Zeilen:

    \newcommand{\tab}[1]{{\sc Table~\ref{#1}}}
    \newcommand{\eq}[1]{{\sc Equation~\ref{#1}}}
    \newcommand{\fig}[1]{{\sc Figure~\ref{#1}}}	% z.B. für Fig. 2
    \newcommand{\figE}[2]{{\sc Figure~\ref{#1}#2}}	% z.B. für Fig. 2A
     
    \newcommand{\chap}[1]{{\sc Chapter~\ref{#1}}}
    \newcommand{\sect}[1]{{\sc Section~\ref{#1}}}
    \newcommand{\subsect}[1]{{\sc Subsection~\ref{#1}}}
    \newcommand{\lst}[1]{{\sc Listing~\ref{#1}}}
    \newcommand{\itm}[1]{{\sc Item~\ref{#1}}}
  2. Um nun beim tippen des Befehls \fig oder \tab ebenfalls eine Liste der labels angezeigt zu bekommen, kann man Befehle in sogenannten CWL-Dateien anlegen. Eine sehr gute Beschreibung des CWL-Formates findet man in der TeXstudio-Dokumentation (lokal).

    Ich habe mir eine Datei sven.cwl mit folgendem Inhalt angelegt:

    # Kommentarzeile
    \tab{key}#r
    \eq{key}#r
    \fig{key}#r
    \figE{key}{teil}#r
    
    \tab{key}#r
    \chap{key}#r
    \sect{key}#r
    \subsect{key}#r
    \lst{key}#r
    \itm{key}#r
    
  3. Im Anschluss habe ich die Datei in mein lokales Konfigurationsverzeichnis für TeXstudio kopiert. Unter Ubuntu Linux ist das standardmäßig: /home/username/.config/textstudio (bzw. ~/.config/textstudio)
  4. Die CWL-Datei habe ich dann in den Einstellungen von TeXstudio aktiviert:
    Die eigenen CWL-Dateien müssen noch in den Einstellungen von TeXstudio aktiviert werden.
    Die eigenen CWL-Dateien müssen noch in den Einstellungen von TeXstudio aktiviert werden.
  5. Im Anschluss wird auch für eigene Befehle (hier: \fig, \figE, \eq und \tab) eine Liste von verfügbaren labels angezeigt.

    Mit Hilfe von CWL-Dateien kann auch für eigene Befehle z.B. eine Liste bekannter labels in der Autovervollständigung angezeigt werden.
    Mit Hilfe von CWL-Dateien kann auch für eigene Befehle z.B. eine Liste bekannter labels in der Autovervollständigung angezeigt werden.