在LaTeX中,如何定义使用其内容而不是编译PDF中的变量的字符串变量?
假设我正在编写一个关于软件的技术文档,我想在序言或某个地方定义包名,这样如果它的名称发生变化,我就不必在很多地方替换它,而只是在一个地方 .
使用 \def 命令:
\def
\def \variable {Something that's better to use as a variable}
请注意 \def 会覆盖先前存在的宏而不会发出任何警告,因此可能会导致各种细微错误 . 要克服这个问题,要么使用 my_var 之类的命名空间变量,要么使用 \newcommand , \renewcommand 命令 .
my_var
\newcommand
\renewcommand
对于描述距离的变量,您将使用 \newlength (并使用 \setlength , \addlength , \settoheight , \settolength 和 \settodepth 处理值) .
\newlength
\setlength
\addlength
\settoheight
\settolength
\settodepth
类似地,您可以访问 \newcounter 来查找应该在整个文档中递增的部分和图形编号 . 我过去曾使用过这个来提供与其他数字分开编号的代码示例...
\newcounter
另外值得注意的是 \makebox ,它允许您存储一些布局文档供以后重复使用(以及与 \settolength ...一起使用) .
\makebox
如果要使用 \newcommand ,还可以包含 \usepackage{xspace} 并通过 \newcommand{\newCommandName}{text to insert\xspace} 定义命令 . 这可以让你只使用 \newCommandName 而不是 \newCommandName{} .
\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 .
\newtoks\packagename
\packagename={New Name for the package}
\the\packagename
在序言中添加以下内容:
\newcommand{\newCommandName}{text to insert}
然后你可以在文本中使用 \newCommandName{}
有关 \newcommand 的详细信息,请参阅例如wikibooks
5 回答
使用
\def
命令:请注意
\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
.在序言中添加以下内容:
然后你可以在文本中使用
\newCommandName{}
有关
\newcommand
的详细信息,请参阅例如wikibooks