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.
-
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}}}
-
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
-
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
) -
Die CWL-Datei habe ich dann in den Einstellungen von TeXstudio aktiviert:
-
Im Anschluss wird auch für eigene Befehle (hier:
\fig
,\figE
,\eq
und\tab
) eine Liste von verfügbaren labels angezeigt.