2010-06-29 16 views
5

Tengo varios lemas en los que especifico las constantes $ C_1 $, $ C_2 $, etc. para referencia futura. Naturalmente, esto es molesto cuando luego inserto una nueva definición constante en el medio. Lo que me gustaría es una macro que me permita asignar etiquetas a constantes y maneje la numeración para mí. Estoy pensando en algo parecido aConstantes etiquetadas en LaTeX

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

¿Esto es posible?

+0

'¿Cuál es importante-bound' ¿refiriéndose a? ¿Es el número del lema, por ejemplo? –

+0

Creo que le gustaría * definir * 'important-bound' con el comando' \ newconstant' como el 'próximo' C_i, y ser capaz de '\ ref' luego. – finrod

+0

Sí, gracias finrod. Y tal vez '\ newconstant' debería tomar un parámetro que le permita especificar el símbolo base (para que pueda tener C_i o c_i o lo que quiera). – Joshua

Respuesta

3

Ampliando las sugerencias de rcollyer de la utilización de un contador:

%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}}} 

(Este código fue editado para permitir que las etiquetas de más de un carácter)

Y aquí es un fragmento de código que parece funcionar:

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

Muy agradable. Pensé en algo como esto, pero no estaba seguro de si las etiquetas funcionarían como se esperaba. Definitivamente +1. – finrod

+0

Gracias Aniko, esto es lo que estaba buscando. – Joshua

0

Ampliando la respuesta de Aniko, solía this layered macro de manera que se creó una forma abreviada de la etiqueta,

\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}} } % 

Así que para usar esto, usted entonces hacer

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

cuidado de no sobrescribir los comandos existentes (estoy seguro de que le advierten de todos modos)

+2

http://www.ctan.org/pkg/constants también parece tener algo similar. El paquete ubuntu texlive-latex-extra incluye este también. – Evan