2010-05-21 20 views
7

Sto cercando di ottenere un elenco di simboli generato automaticamente nel mio progetto di lattice. Ecco la macro che ho finora ...Creazione di un elenco di simboli in latex

\newcommand{\addsymbol}[3]{% 
    \symboldisplay{#1}{#2}\\% 
    \setelem{#3}{#1} 
} 
\newcommand{\symboldisplay}[2]{% 
    $#1$ \parbox{5in}{\dotfill #2}% 
} 

\def\setelem#1{\expandafter\def\csname myarray(#1)\endcsname} 
\def\dispsymbol#1{\csname myarray(#1)\endcsname} 

Ho quindi comprendono la mia lista dei simboli in questo modo

\begin{listofsymbols} 
\input{symbols} 
\end{listofsymbols} 

in cui il file è symbols.tex

\addsymbol{n}{Number of sample points}{num_points} 
\addsymbol{f_s}{Sampling frequency}{samp_frequency} 

I può quindi ottenere il mio simbolo per etichetta in questo modo: \ dispsymbol {num_points} - questo visualizza n in questo caso.

Questo funziona tutto trova e dandy ... quando chiamo \ dispsymbol nello stesso capitolo (il capitolo List of Symbols) come \ addsymbol def. Quando cerco di ottenere l'etichetta per il simbolo in un altro capitolo, nulla sembra funzionare.

Qualcuno potrebbe aiutarmi o suggerire un pacchetto che farà ciò che sto cercando?

risposta

5

Il fatto è che

\begin{listofsymbols} 
\end{listofsymbols} 

è il campo di applicazione e ogni macro è perso dopo questo gruppo. È necessario definire i macro globali. Sostituire il seguente

\def\setelem#1{\expandafter\def\csname myarray(#1)\endcsname} 

con

\def\setelem#1{\expandafter\gdef\csname myarray(#1)\endcsname} 
+0

Alexey, Questo ha funzionato, grazie mille. – Brian

5

Per generare automaticamente un elenco di simboli è possibile utilizzare il pacchetto nomencl o per documenti più complessi che richiedono anche glossari o elenchi di acronimi, il pacchetto glossaries.

Controllare gli esempi nella documentazione;)

+0

ho guardato nomencl e si guarda bene, ma l'altra dose di codice di quello che voglio. Inoltre posso dire che l'ho scritto principalmente da solo :) Grazie – Brian

Problemi correlati