В LaTeX, как я могу определить строковую переменную, содержимое которой используется вместо переменной в скомпилированном PDF?
Допустим, я пишу технический документ по программному обеспечению и хочу определить имя пакета в преамбуле или где-то еще, чтобы в случае изменения его имени мне не приходилось заменять его во многих местах, а только в одном месте. ,
Ответы:
добавьте к преамбуле следующее:
Тогда вы можете просто использовать
\newCommandName{}
в текстеДля получения дополнительной информации
\newcommand
см., Например, викибукиПример:
Вывод:
источник
Используйте
\def
команду:Имейте в виду, что
\def
переопределяет существующие макросы без каких-либо предупреждений и, следовательно, может вызвать различные незначительные ошибки. Чтобы преодолеть это, используйте вместо этого переменные пространства имен, например,my_var
или\newcommand
используйте\renewcommand
команды.источник
\def
может быть проблематичным, так как оно не проверяет наличие существующих макросов. Посмотрите на второй круг LaTeX-ада - как таковой, его предпочтительно использовать\newcommand
variable
это, что оно может измениться? :)\def
. Вместо этого я думаю, что лучше всего сначала «инициализировать» все переменные, с которыми вы хотите использовать\newcommand
(даже если они только с\@empty
), а затем создать команду для изменения переменной с помощью\renewcommand
. Это даст вам знать, если ваша переменная уже завершена, потому что\newcommand
выдаст ошибку (или, по крайней мере, предупреждение).\def
работает для вещей в математическом режиме, но\newCommandName
не работает. (Например,\def\mathExpression{\pi^2 + \sin x}
)Для переменных описания расстояния, можно использовать
\newlength
(и манипулировать значения с\setlength
,\addlength
,\settoheight
,\settolength
и\settodepth
).Точно так же у вас есть доступ к таким
\newcounter
вещам, как номера разделов и рисунков, которые должны увеличиваться по всему документу. Я использовал этот в прошлом, чтобы предоставить примеры кода, которые были пронумерованы отдельно от других фигур ...Также следует отметить,
\makebox
что вы можете хранить немного выложенного документа для последующего повторного использования (и для использования с\settolength
...).источник
\newlength{\hcolw}
и\setlength{\hcolw}{0.47\textwidth}
было бы полезно.Если вы хотите использовать
\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
.источник