Есть ли способ определить переменную в LaTeX? - PullRequest
308 голосов
/ 31 июля 2009

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

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

Ответы [ 5 ]

317 голосов
/ 31 июля 2009

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

\newcommand{\newCommandName}{text to insert}

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

Подробнее о \newcommand см., Например, Викиучебники

154 голосов
/ 06 июля 2010

Команда \def:

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

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

30 голосов
/ 01 августа 2009

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

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

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

16 голосов
/ 30 марта 2012

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

Для более подробной информации, http://www.math.tamu.edu/~harold.boas/courses/math696/why-macros.html

1 голос
/ 29 ноября 2017

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...