在LaTeX中,如何定义一个字符串变量,其内容被使用而不是编译后的PDF中的变量?有什么办法可以在LaTeX中定义一个变量?
假设我正在编写一个软件上的技术文档,我想在序言或某个地方定义软件包名称,以便如果名称更改,我不必在很多地方替换它,但是只在一个地方。
在LaTeX中,如何定义一个字符串变量,其内容被使用而不是编译后的PDF中的变量?有什么办法可以在LaTeX中定义一个变量?
假设我正在编写一个软件上的技术文档,我想在序言或某个地方定义软件包名称,以便如果名称更改,我不必在很多地方替换它,但是只在一个地方。
以下内容添加到您序言:
\newcommand{\newCommandName}{text to insert}
然后,你可以使用\newCommandName{}
文本
欲了解更多信息的\newcommand
,例如见wikibooks
为了描述的距离变量,你可以使用\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
。
对于巨大的内容,值得一提\ savebox(https://en.wikibooks.org/wiki/LaTeX/Boxes#savebox)。 – 2013-07-13 12:44:14