2009-07-31 91 views
255

在LaTeX中,如何定义一个字符串变量,其内容被使用而不是编译后的PDF中的变量?有什么办法可以在LaTeX中定义一个变量?

假设我正在编写一个软件上的技术文档,我想在序言或某个地方定义软件包名称,以便如果名称更改,我不必在很多地方替换它,但是只在一个地方。

+2

对于巨大的内容,值得一提\ savebox(https://en.wikibooks.org/wiki/LaTeX/Boxes#savebox)。 – 2013-07-13 12:44:14

回答

263

以下内容添加到您序言:

\newcommand{\newCommandName}{text to insert} 

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

欲了解更多信息的\newcommand,例如见wikibooks

+10

您也可以只使用``\ newCommandName`` – dialex 2012-06-18 14:31:45

+16

@DiAlex在省略大括号时要小心,因为它会在插入文本之后影响空格。看[这个问题](http://tex.stackexchange.com/q/31091)。 – jtpereyda 2012-07-20 17:30:55

+0

我无法使用非ASCII字符正确工作。有任何想法吗? – lindhe 2016-01-15 20:29:59

24

为了描述的距离变量,你可以使用\newlength(与\setlength\addlength\settoheight\settolength\settodepth操纵值)。

同样,您可以访问\newcounter,以查看应在文档中增加的部分和图号等内容。我过去曾经使用过这个代码样本,这些代码样本被独立编号为其他数字...

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

136

使用\def命令:

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

注意\def覆盖已有的宏没有任何警告,并因此可能导致各种细微的错误。为了克服这个问题,可以使用名称空间变量,如my_var,或者使用\newcommand\renewcommand命令。

1

我想你可能想使用一个令牌列表用于此目的: 设置令牌列表 \newtoks\packagename 指定名称: \packagename={New Name for the package} 把名字变成你的输出: \the\packagename

相关问题