在LaTeX中,如何定义使用其内容而不是编译PDF中的变量的字符串变量?
假设我正在编写一个关于软件的技术文档,我想在序言或某个地方定义软件包名称,这样如果它的名称发生变化,我不必在很多地方替换它,而只是在在一个地方。
答案 0 :(得分:315)
在序言中添加以下内容:
\newcommand{\newCommandName}{text to insert}
然后您可以在文本中使用\newCommandName{}
有关\newcommand
的详细信息,请参阅例如: wikibooks
答案 1 :(得分:152)
使用\def
命令:
\def \variable {Something that's better to use as a variable}
请注意\def
会覆盖先前存在的宏而不会发出任何警告,因此可能会导致各种细微错误。要解决此问题,请使用my_var
等命名空间变量,或者使用\newcommand
,\renewcommand
命令。
答案 2 :(得分:30)
对于描述距离的变量,您可以使用\newlength
(并使用\setlength
,\addlength
,\settoheight
,\settolength
和{{1}来操纵值})。
同样地,您可以访问\settodepth
来查看应该在整个文档中递增的部分和图形编号。我过去曾使用过这个来提供与其他数字分开编号的代码示例......
另外值得注意的是\newcounter
,它允许您存储一些布局文档供以后重复使用(以及与\makebox
一起使用...)。
答案 3 :(得分:16)
如果您想使用\newcommand
,还可以添加\usepackage{xspace}
并按\newcommand{\newCommandName}{text to insert\xspace}
定义命令。
这样您就可以使用\newCommandName
而不是\newCommandName{}
。
有关详细信息,请http://www.math.tamu.edu/~harold.boas/courses/math696/why-macros.html
答案 4 :(得分:1)
我认为您可能希望为此目的使用令牌列表:
设置令牌列表
\newtoks\packagename
分配名称:
\packagename={New Name for the package}
将名称放入输出中:
\the\packagename
。
答案 5 :(得分:0)
这对我有用: \ newcommand {\ variablename} {文本}
例如:\ newcommand \ m {100}
因此,当您在源代码中键入“ \ m \是我的标记”时,
pdf输出显示为:
100是我的分数