有什么方法可以在LaTeX中定义变量吗?

在LaTeX中,我如何定义一个字符串变量,其内容被使用而不是编译PDF中的变量?

假设我正在写一个软件的技术文档,我想在序言或其他地方定义包的名称,这样如果它的名称发生了变化,我就不必在很多地方替换它,而只需在一个地方替换它。

411467 次浏览

在序言中增加以下内容:

\newcommand{\newCommandName}{text to insert}

然后你可以在文本中使用\newCommandName{}

有关\newcommand的更多信息,请参见e.g. 维基教科书

例子:

\documentclass{article}
\newcommand\x{30}
\begin{document}
\x
\end{document}

输出:

30

对于描述距离的变量,可以使用\newlength(并使用\setlength\addlength\settoheight\settolength\settodepth操作值)。

类似地,你可以访问\newcounter来获取章节号和图号,它们应该在整个文档中递增。我过去曾使用此代码提供代码示例,这些代码示例与其他数字分开编号……

同样值得注意的是\makebox,它允许你存储一些布局好的文档以供以后重用(以及与\settolength一起使用…)。

使用\def命令:

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

请注意,\def会在没有任何警告的情况下覆盖先前存在的宏,因此可能导致各种微妙的错误。为了克服这个问题,可以使用像my_var这样的命名空间变量,或者改用\newcommand\renewcommand命令。

如果你想使用\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 . < / p >
这对我来说很有用: \ newcommand {\ variablename}{文本}< / p >

例如:\newcommand\m{100}

所以当你输入"\m\是我的记号"在源代码中,

PDF输出显示如下:

100是我的分数