在LaTeX中,如何定义一个字符串变量,而不是已编译的PDF中的变量使用其内容?
假设我正在用软件编写技术文档,并且想在序言中或某处定义软件包名称,这样,如果名称更改,则不必在很多地方替换它,而只需在一个地方替换。
在LaTeX中,如何定义一个字符串变量,而不是已编译的PDF中的变量使用其内容?
假设我正在用软件编写技术文档,并且想在序言中或某处定义软件包名称,这样,如果名称更改,则不必在很多地方替换它,而只需在一个地方替换。
Answers:
在您的序言中添加以下内容:
\newcommand{\newCommandName}{text to insert}
然后,您可以\newCommandName{}在文本中使用
有关更多信息\newcommand,请参见例如Wikibooks。
例:
\documentclass{article}
\newcommand\x{30}
\begin{document}
\x
\end{document}
输出:
30
使用\def命令:
\def \variable {Something that's better to use as a variable}
请注意,它\def会在没有任何警告的情况下覆盖现有宏,因此可能导致各种细微的错误。为了克服这个问题或者使用命名空间的变量,如my_var或退回到\newcommand,\renewcommand命令代替。
variable意味着有可能更改?:)
\def。相反,我认为最好的做法是先“初始化”要与之一起使用的所有变量\newcommand(即使只是与一起使用\@empty),然后创建使用修改变量的命令\renewcommand。这将让您知道变量是否已经退出,因为这\newcommand将引发错误(或至少是警告)。
\def适用于数学模式下的事物,而不适用于数学模式\newCommandName。(例如\def\mathExpression{\pi^2 + \sin x})
对于变量描述的距离,你可以使用\newlength(和操纵值有\setlength,\addlength,\settoheight, \settolength和\settodepth)。
同样,您可以访问\newcounter章节和图号之类的内容,这些内容应在整个文档中递增。我过去曾使用过此代码来提供与其他图形分开编号的代码示例...
还要注意的是\makebox,它允许您存储一些布局好的文档以供以后重用(并与\settolength... 一起使用)。
\newlength{\hcolw}和\setlength{\hcolw}{0.47\textwidth}这样的简单用法示例将非常有用。
如果要使用\newcommand,还可以通过包含\usepackage{xspace}和定义命令\newcommand{\newCommandName}{text to insert\xspace}。这可以让您只使用\newCommandName而不是\newCommandName{}。
有关更多详细信息,请访问http://www.math.tamu.edu/~harold.boas/courses/math696/why-macros.html