2010-06-29 17 views
5

Ho diversi lemmi in cui specificano le costanti $ C_1 $, $ C_2 $ e così via per riferimenti futuri. Naturalmente, questo è fastidioso quando inserisco una nuova definizione costante nel mezzo. Quello che mi piacerebbe è una macro che mi permetta di assegnare etichette alle costanti e gestisce la numerazione per me. Sto pensando qualcosa sulla falsariga diCostanti etichettate in LaTeX

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

È possibile?

+0

cosa è 'importante-bound' riferito a? Per esempio, è il numero del lemma? –

+0

Credo che vorrebbe * definire * 'important-bound' con il comando' \ newconstant' come il 'prossimo' C_i, ed essere in grado di '\ ref' ad esso in seguito. – finrod

+0

Sì, grazie finrod. E forse '\ newconstant' dovrebbe prendere un parametro che ti permetta di specificare il simbolo di base (così puoi avere C_i o c_i o whathaveyou). – Joshua

risposta

3

espansione sui suggerimenti di rcollyer di utilizzo di un contatore:

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

(Questo codice è stato modificato per consentire etichette più lungo di un carattere)

Ed ecco un frammento di codice che sembra funzionare:

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

Molto bello. Ho pensato a qualcosa del genere, ma non ero sicuro che le etichette funzionassero come previsto. Sicuramente +1. – finrod

+0

Grazie Aniko, questo è quello che stavo cercando. – Joshua

0

Ampliando la risposta di Aniko, ho usato this layered macro in modo che esso ha creato una scorciatoia per l'etichetta,

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

Quindi, per utilizzare questo, si dovrebbe quindi fare

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

attenzione a non sovrascrivere i comandi esistenti (sono sicuro che sarebbe avviserà comunque)

+2

Anche http://www.ctan.org/pkg/constants sembra avere qualcosa di simile. Il pacchetto ubuntu texlive-latex-extra include anche questo. – Evan