TeXstudio: „Rekursive“ Autovervollständigung für benutzerdefinierte Befehle

TeXstudio: „Rekursive“ Autovervollständigung für benutzerdefinierte Befehle

Ich habe diesen Befehl hinzugefügt, um auf Abschnitte (Abbildungen, Kapitel usw.) zu verweisen:

\newcommand{\secref}[1]{Section~\ref{#1}}

Jetzt zeigt mir die Autovervollständigung von TeXstudio

Bildbeschreibung hier eingeben

aber mir fehlt die Autovervollständigung für die eigentlichen Abschnitte. Wie bei der Autovervollständigung für \ref{.... Ist das möglich?

Eine nicht so schöne Lösung wäre jedoch, den \refBefehl zu überspringen

\newcommand{\secref}[1]{Section~#1}

und dann gehen Sie zum Beispiel \secref{\ref{sec:setup}}.

Antwort1

Anstatt das Rad neu zu erfinden, würde ich lieber verwenden cleveref. Dadurch werden die entsprechenden Namen der referenzierten Labels automatisch eingefügt und die Autovervollständigung von Texstudios unterstützt.

Beispielsweise im folgenden Dokument

\documentclass{article}

\usepackage[capitalise, noabbrev]{cleveref}

\begin{document}

\section{test}
\label{sec:test}

\begin{figure}
\caption{bla}\label{fig:bla}
\end{figure}

\cref{fig:bla} \cref{sec:test}

\end{document}

Texstudio fordert

Bildbeschreibung hier eingeben

und die Ausgabe wird

Bildbeschreibung hier eingeben

Antwort2

EDIT: Dies beantwortet die Frage nicht, wie in den Kommentaren angegeben. In dieser Antwort erkläre ich, wie man Makros in Texstudio hinzufügt, sodass der Cursor an eine bestimmte Stelle in diesem Makro springt. Tatsächlich eine ganz andere Sache.


Ursprüngliche Antwort

Obwohl ich samcarter zustimme, gibt es der Vollständigkeit halber eine Möglichkeit, das, was Sie ursprünglich wollten, in Texstudio zu tun.

Gehen Sie zu [Makros > Makros bearbeiten ...] Erstellen Sie dann ein neues Makro, geben Sie ihm einen Namen, eine Abkürzung (nicht erforderlich und meiner Meinung nach ziemlich nutzlos) und einen Trigger (gutes Design ist für die Trigger wichtig). Im Codeabschnitt würden Sie hinzufügen

 \secref{%|section%|}

Speichern und schließen. Geben Sie in Ihrem Editorfenster den Trigger ein. Der Triggertext wird automatisch durch den Makrocode ersetzt. \secref{section}Wählen Sie mit dem Fokus des Cursors das Wort sectionin den Klammern aus, das zur Bearbeitung bereit ist.

Bildbeschreibung hier eingeben

Wie Sie sehen, missbrauche ich diese Funktion. (Auf dem Bild ist viel Mist, da ich getestet habe, was für mich nützlich ist, und das Chaos noch nicht aufgeräumt habe.)


Übrigens verwende ich am Anfang und am Ende der meisten meiner Trigger ein Leerzeichen, um zu verhindern, dass Texstudio „normalen Text“ in ein Makro umwandelt. Beispielsweise mlwäre das Makro ohne die Leerzeichen wirklich ärgerlich, da jedes Wort, das die Sequenz „ml“ enthält, mittendrin ein Makro erhalten würde! Wenn ich Umlaute ohne hinzusehen eintippe, würde ich Folgendes erhalten, U\SI{aut and the rest of the text in the braces,}{\ml}was überhaupt keinen Sinn ergibt. Sie können mit den Triggern und Makros noch viel mehr machen, klicken Sie einfach auf ?neben dem Wort „Trigger“ und probieren Sie es selbst aus.

verwandte Informationen