2010-05-21 1 views
7

Ich versuche, eine automatisch generierte Liste von Symbolen in meinem Latex-Projekt zu bekommen. Hier ist das Makro, das ich bisher haben ...Erstellen einer Liste von Symbolen 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} 

ich dann sind meine Liste von Symbolen wie so

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

wo die symbols.tex Datei ist

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

I kann dann mein Symbol nach Label wie folgt erhalten: \ disspsychol {num_points} - dies zeigt n in diesem Fall an.

Das funktioniert alles finden und dandy ... wenn ich \ dispympol in dem gleichen Kapitel (das Liste der Symbole Kapitel) als \ addsymbol def aufrufen. Wenn ich in einem anderen Kapitel versuche, das Etikett für das Symbol zu bekommen, scheint nichts zu funktionieren.

Kann mir jemand helfen oder ein Paket vorschlagen, das das macht, wonach ich suche?

Antwort

5

Die Sache ist die, dass

\begin{listofsymbols} 
\end{listofsymbols} 

der Umfang ist und jede Makro nach dieser Gruppe verloren. Sie sollten die globalen Makros definieren. Ersetzen Sie die folgenden

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

mit

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

Alexey, Dies funktionierte, vielen Dank. – Brian

5

Um automatisch eine Liste von Symbolen zu erstellen, können Sie das nomencl Paket verwenden, oder für komplexere Dokumente, die auch Glossare oder Akronymlisten benötigen, das glossaries Paket.

Überprüfen Sie die Beispiele in der Dokumentation;)

+0

Ich habe bei nomencl sehe und es sieht gut aus, aber die andere Code-Dosis, was ich will. Plus ich kann sagen, dass ich es meistens selbst geschrieben habe :) Danke – Brian