2010-06-29 139 views
5

我有几个引理,我在其中指定常量$ C_1 $,$ C_2 $等等以供以后参考。当然,当我稍后在中间插入一个新的常量定义时,这很烦人。我想要的是一个宏,可以让我为常量分配标签并处理编号。我正在考虑沿线的东西LaTeX中标记的常量

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

这可能吗?

+0

什么是'重要的,bound'指的是?例如,它是这个引理的数字吗? – 2010-06-29 20:10:44

+0

我相信他希望用命令'\ newconstant'定义*'important-bound'作为'next'C_i,并且能够在之后'\ ref'。 – finrod 2010-06-29 20:24:29

+0

是的,谢谢你finrod。也许'\ newconstant'应该带一个参数让你指定基本符号(这样你可以拥有C_i或c_i或whathaveyou)。 – Joshua 2010-06-29 23:25:32

回答

3

扩展上使用计数器的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. 
+0

非常好。我想到了这样的事情,但不确定标签是否按预期工作。肯定+1。 – finrod 2010-06-29 23:04:29

+0

谢谢Aniko,这就是我一直在寻找的。 – Joshua 2010-06-29 23:35:07

0

在Aniko的回答中进一步展开,我使用了 this layered macro,这样它为标签创建了一个简写,

\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 2012-09-30 20:27:30