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.

277
demandé sur Smi 2009-07-31 14:46:15

5 réponses

Ajoutez ce qui suit à votre préambule:

\newcommand{\newCommandName}{text to insert}

, Alors vous pouvez simplement utiliser \newCommandName{} dans le texte

Pour plus d'informations sur \newcommand, Voir par exemple wikibooks

286
répondu second 2010-08-16 14:34:58

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.

146
répondu plaes 2012-03-15 07:04:08

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...).

28
répondu dmckee 2009-08-03 15:47:52

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

12
répondu user1125069 2013-11-06 04:32:39

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.

1
répondu John Burt 2017-12-25 15:56:03