有什么方法可以在 LaTeX 中定义变量吗?
在LaTeX中,如何定义一个字符串变量,其内容代替编译后的PDF中的变量?
假设我正在编写一个关于软件的技术文档,我想在序言或其他地方定义包名称,这样如果它的名称发生更改,我不必在很多地方替换它,而只需在一个地方替换它。
In LaTeX, how can I define a string variable whose content is used instead of the variable in the compiled PDF?
Let's say I'm writing a tech doc on a software and I want to define the package name in the preamble or somewhere so that if its name changes, I don't have to replace it in a lot of places but only in one place.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
将以下内容添加到序言中:
然后您可以在文本中使用
\newCommandName{}
有关
\newcommand
的更多信息,请参阅 wikibooks示例:
输出:
add the following to you preamble:
Then you can just use
\newCommandName{}
in the textFor more info on
\newcommand
, see e.g. wikibooksExample:
Output:
使用
\def
命令:请注意,
\def
会在没有任何警告的情况下覆盖预先存在的宏,因此可能会导致各种微妙的错误。 要克服这个问题,可以使用命名空间变量,例如my_var
或回退到\newcommand
、\renewcommand
命令。Use
\def
command:Be aware that
\def
overrides preexisting macros without any warnings and therefore can cause various subtle errors. To overcome this either use namespaced variables likemy_var
or fall back to\newcommand
,\renewcommand
commands instead.对于描述距离的变量,您可以使用
\newlength
(并使用\setlength
、\addlength
、\settoheight
操作值代码>、<代码>\settolength和<代码>\setto深度)。同样,您可以访问
\newcounter
来获取诸如章节号和图号之类的信息,这些数字应该在整个文档中递增。 我过去曾使用过这个来提供与其他数字分开编号的代码示例...另外值得注意的是
\makebox
它允许您存储一些布局文档以供以后使用重用(并与\settolength
一起使用...)。For variables describing distances, you would use
\newlength
(and manipulate the values with\setlength
,\addlength
,\settoheight
,\settolength
and\settodepth
).Similarly you have access to
\newcounter
for things like section and figure numbers which should increment throughout the document. I've used this one in the past to provide code samples that were numbered separatly of other figures...Also of note is
\makebox
which allows you to store a bit of laid-out document for later re-use (and for use with\settolength
...).如果要使用
\newcommand
,还可以包含\usepackage{xspace}
并通过\newcommand{\newCommandName}{要插入的文本\xspace定义命令}
。这可以让您只使用
\newCommandName
而不是\newCommandName{}
。有关更多详细信息,http://www.math.tamu.edu/~ harold.boas/courses/math696/why-macros.html
If you want to use
\newcommand
, you can also include\usepackage{xspace}
and define command by\newcommand{\newCommandName}{text to insert\xspace}
.This can allow you to just use
\newCommandName
rather than\newCommandName{}
.For more detail, http://www.math.tamu.edu/~harold.boas/courses/math696/why-macros.html
我认为您可能想为此目的使用令牌列表:
设置令牌列表
\newtoks\包名
分配名称:
\packagename={包的新名称}
将名称放入输出中:
\the\packagename
。I think you probably want to use a token list for this purpose:
to set up the token list
\newtoks\packagename
to assign the name:
\packagename={New Name for the package}
to put the name into your output:
\the\packagename
.