LaTeX中的标记常量

5

我有几个引理,在其中我规定常数$C_1$、$C_2$等供以后参考。当我稍后在中间插入新的常数定义时,这自然是令人烦恼的。我想要的是一个宏,它能让我为常数分配标签,并为我处理编号。我想到的是以下内容:

%% Pseudocode
\begin{lemma}
    \newconstant{important-bound}
    We will show that $f(x) \le \ref{important-bound} g(x)$ for all $x$.
\end{lemma}

这是可能的吗?

“important-bound” 是指什么?它是指词元的数量吗? - Norman Gray
我相信他想要使用命令\newconstant定义 important-bound 为下一个C_i,并且之后能够通过\ref引用它。 - finrod
是的,谢谢你Finrod。也许\newconstant应该带一个参数,让你可以指定基本符号(这样你就可以有C_i或c_i或其他)。 - Joshua
3个回答

4

在rcollyer的建议基础上扩展一下,使用计数器:

%counter of current constant number:    
  \newcounter{constant} 
%defines a new constant, but does not typeset anything:
  \newcommand{\newconstant}[1]{\refstepcounter{constant}\label{#1}} 
%typesets named constant:
  \newcommand{\useconstant}[1]{C_{\ref{#1}}}

这段代码已经被修改以支持超过一个字符的标签:

以下是看起来可行的代码片段:

I want to define two constants:\newconstant{A}\newconstant{B}$\useconstant{A}$ and
$\useconstant{B}$. Then I want to use $\useconstant{A}$ again.

非常好。我也考虑过类似的东西,但不确定标签是否能按预期工作。绝对加一。 - finrod

0
进一步扩展Aniko的答案,我使用了这个分层宏,以便为标签创建一个简写。
\newcounter{constant}
\newcommand{\newconstant}[1]{\refstepcounter{constant}\label{#1}}
\newcommand{\useconstant}[1]{C_{\ref{#1}}}
\newcommand{\defconstant}[1]{ \newconstant{c_#1}\expandafter\newcommand\csname c#1\endcsname{\useconstant{c_#1}} }  %

因此,要使用它,您需要执行以下操作

\defconstant{a}
\defconstant{b}
There exist constant $\ca$ and $\cb$ such that ....

小心不要覆盖现有的命令(我相信它无论如何都会警告你)


2
http://www.ctan.org/pkg/constants 似乎也有类似的东西。Ubuntu 软件包 texlive-latex-extra 也包含了这个。 - Evan

0
您所需要做的是创建自己的计数器

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接