首页 文章

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

提问于
浏览
292

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

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

5 回答

  • 148

    使用 \def 命令:

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

    请注意 \def 会覆盖先前存在的宏而不会发出任何警告,因此可能会导致各种细微错误 . 要克服这个问题,要么使用 my_var 之类的命名空间变量,要么使用 \newcommand\renewcommand 命令 .

  • 29

    对于描述距离的变量,您将使用 \newlength (并使用 \setlength\addlength\settoheight\settolength\settodepth 处理值) .

    类似地,您可以访问 \newcounter 来查找应该在整个文档中递增的部分和图形编号 . 我过去曾使用过这个来提供与其他数字分开编号的代码示例...

    另外值得注意的是 \makebox ,它允许您存储一些布局文档供以后重复使用(以及与 \settolength ...一起使用) .

  • 14

    如果要使用 \newcommand ,还可以包含 \usepackage{xspace} 并通过 \newcommand{\newCommandName}{text to insert\xspace} 定义命令 . 这可以让你只使用 \newCommandName 而不是 \newCommandName{} .

    有关详细信息,http://www.math.tamu.edu/~harold.boas/courses/math696/why-macros.html

  • 1

    我想您可能希望为此目的使用令牌列表:设置令牌列表 \newtoks\packagename 以指定名称: \packagename={New Name for the package} 将名称放入输出中: \the\packagename .

  • 295

    在序言中添加以下内容:

    \newcommand{\newCommandName}{text to insert}
    

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

    有关 \newcommand 的详细信息,请参阅例如wikibooks

相关问题