Есть ли способ определить переменную в LaTeX?

в LaTeX, как я могу определить строковую переменную, содержимое которой используется вместо переменной в скомпилированном PDF?

предположим, я пишу технический документ на программном обеспечении, и я хочу определить имя пакета в преамбуле или где-то так, что если его имя изменится, мне не придется заменять его во многих местах, но только в одном месте.

5 ответов


добавьте к преамбуле следующее:

\newcommand{\newCommandName}{text to insert}

затем вы можете просто использовать \newCommandName{} текст

подробнее о \newcommand, например wikibooks


использовать :

\def \variable {Something that's better to use as a variable}

имейте в виду, что \def переопределяет существующие макросы без каких-либо предупреждений и поэтому может вызвать различные тонкие ошибки. Чтобы преодолеть это, используйте переменные с пространством имен, такие как my_var или вернуться к \newcommand, \renewcommand вместо команды.


для переменных, описывающих расстояния, нужно использовать \newlength (и манипулировать значениями с \setlength, \addlength, \settoheight, \settolength и \settodepth).

аналогично у вас есть доступ к \newcounter для таких вещей, как номера разделов и рисунков, которые должны увеличиваться по всему документу. Я использовал это в прошлом, чтобы предоставить образцы кода, которые были пронумерованы отдельно от других фигур...

и \makebox что позволяет хранить немного выложенных документ для последующего повторного использования (и для использования с \settolength...).


если вы хотите использовать \newcommand, вы также можете включить \usepackage{xspace} и определить команду \newcommand{\newCommandName}{text to insert\xspace}. Это может позволить вам просто использовать \newCommandName, а не \newCommandName{}.

подробнее http://www.math.tamu.edu/~harold.boas/courses/math696/why-macros.html


Я думаю, вы, вероятно, хотите использовать список токенов для этой цели: настройка списка токенов \newtoks\packagename чтобы присвоить имя: \packagename={New Name for the package} чтобы поместить имя в вывод: \the\packagename.