Wie kann ich in LaTeX eine Zeichenfolgenvariable definieren, deren Inhalt anstelle der Variablen in der kompilierten PDF-Datei verwendet wird?
Angenommen, ich schreibe ein technisches Dokument über eine Software und möchte den Paketnamen in der Präambel oder irgendwo anders definieren, damit ich ihn nicht ändern muss, wenn sich sein Name ändert, sondern nur an einer Stelle .
Antworten:
Fügen Sie Ihrer Präambel Folgendes hinzu:
Dann können Sie einfach
\newCommandName{}
im Text verwendenWeitere Informationen
\newcommand
finden Sie beispielsweise unter WikibooksBeispiel:
Ausgabe:
quelle
Verwenden
\def
Befehl ein :Beachten Sie, dass
\def
bereits vorhandene Makros ohne Warnungen überschrieben werden und daher verschiedene subtile Fehler verursachen können. Um dies zu überwinden , verwenden Sie stattdessen namenbezogene Variablen wiemy_var
oder greifen Sie auf Befehle zurück.\newcommand
\renewcommand
quelle
\def
kann problematisch sein, da nicht nach bereits vorhandenen Makros gesucht wird. Sehen Sie den zweiten Kreis der LaTeX-Hölle - als solcher ist es vorzuziehen, ihn zu verwenden\newcommand
variable
, dass es sich ändern kann? :)\def
. Stattdessen ist es meiner Meinung nach empfehlenswert, zuerst alle Variablen zu "initialisieren", mit denen Sie arbeiten möchten\newcommand
(auch wenn es nur mit ist\@empty
), und dann Ihren Befehl zum Ändern der Variablen mit zu erstellen\renewcommand
. Dadurch erfahren Sie, ob Ihre Variable bereits beendet ist, da\newcommand
ein Fehler (oder zumindest eine Warnung) ausgegeben wird.\def
für Dinge im Mathematikmodus\newCommandName
funktioniert , während dies nicht der Fall ist. (ZB\def\mathExpression{\pi^2 + \sin x}
)Für Variablen Abstände beschreiben, würden Sie verwenden
\newlength
(und die Werte manipulieren mit\setlength
,\addlength
,\settoheight
,\settolength
und\settodepth
).Ebenso haben Sie Zugriff auf
\newcounter
Dinge wie Abschnitts- und Abbildungsnummern, die im gesamten Dokument erhöht werden sollten. Ich habe dieses in der Vergangenheit verwendet, um Codebeispiele bereitzustellen, die getrennt von anderen Zahlen nummeriert wurden ...Bemerkenswert ist auch
\makebox
, dass Sie ein wenig angelegtes Dokument zur späteren Wiederverwendung (und zur Verwendung mit\settolength
...) speichern können .quelle
\newlength{\hcolw}
und\setlength{\hcolw}{0.47\textwidth}
wäre nützlich.Wenn Sie verwenden möchten
\newcommand
, können Sie\usepackage{xspace}
den Befehl auch einschließen und definieren\newcommand{\newCommandName}{text to insert\xspace}
. Dies kann es Ihnen ermöglichen, nur\newCommandName
anstatt zu verwenden\newCommandName{}
.Weitere Informationen finden Sie unter http://www.math.tamu.edu/~harold.boas/courses/math696/why-macros.html
quelle
Ich denke, Sie möchten wahrscheinlich eine Token-Liste für diesen Zweck verwenden: um die Token-Liste einzurichten
\newtoks\packagename
, um den Namen zuzuweisen:\packagename={New Name for the package}
um den Namen in Ihre Ausgabe einzufügen :\the\packagename
.quelle