Est-il possible de définir une variable dans LaTeX?
Dans LaTeX, Comment puis-je définir une variable de chaîne dont le contenu est utilisé à la place de la variable dans le PDF compilé?
Disons que j'écris un doc technique sur un logiciel et que je veux définir le nom du paquet dans le préambule ou quelque part de sorte que si son nom change, je n'ai pas à le remplacer dans beaucoup d'endroits mais seulement dans un endroit.
5 réponses
Utilisez la commande \def
:
\def \variable {Something that's better to use as a variable}
Sachez que \def
remplace les macros préexistantes sans aucun avertissement et peut donc provoquer diverses erreurs subtiles. Pour surmonter cela, utilisez des variables d'espace de noms comme my_var
ou revenez à \newcommand
, \renewcommand
commandes à la place.
Pour les variables décrivant les distances, vous pouvez utiliser \newlength
(et de manipuler les valeurs avec \setlength
, \addlength
, \settoheight
, \settolength
et \settodepth
).
De même, vous avez accès à \newcounter
pour des choses comme les numéros de section et de figure qui devraient s'incrémenter dans tout le document. J'ai utilisé celui-ci dans le passé pour fournir des échantillons de code numérotés séparément des autres chiffres...
Il convient également de noter \makebox
qui vous permet de stocker un peu de document aménagé pour une réutilisation ultérieure (et pour une utilisation avec \settolength
...).
Si vous souhaitez utiliser \newcommand
, vous pouvez également inclure \usepackage{xspace}
et de définir la commande par \newcommand{\newCommandName}{text to insert\xspace}
.
Cela peut vous permettre d'utiliser simplement \newCommandName
plutôt que \newCommandName{}
.
Pour plus de détails, http://www.math.tamu.edu/~harold.boas/courses/math696/why-macros.html
Je pense que vous voulez probablement utiliser une liste de jetons à cette fin:
pour configurer la liste des jetons
\newtoks\packagename
pour attribuer le nom de:
\packagename={New Name for the package}
pour mettre le nom dans votre sortie:
\the\packagename
.