2010-05-21 5 views
7

Próbuję uzyskać automatycznie wygenerowaną listę symboli w moim projekcie lateksu. Oto makro że mam tak daleko ...Tworzenie listy symboli w lateksie

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

I wtedy to moją listę symboli jak tak

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

gdzie plik symbols.tex jest

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

I może następnie uzyskać mój symbol według etykiety w następujący sposób: \ dispsymbol {num_points} - wyświetla w tym przypadku n.

To działa, wszystkie znalezienia i dandy ... kiedy wywołuję \ dispsymbol w tym samym rozdziale (rozdział Lista symboli) jako \ addsymbol def. Kiedy próbuję uzyskać etykietę symbolu w innym rozdziale, nic nie działa.

Czy ktoś może mi pomóc, lub zaproponować pakiet, który zrobi to, czego szukam?

Odpowiedz

5

Chodzi o to, że

\begin{listofsymbols} 
\end{listofsymbols} 

zakres i każdy makro utracone po tej grupy. Powinieneś zdefiniować globalne makra. wymienić następujące

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

z

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

Alexey, To zadziałało, dziękuję. – Brian

5

Aby automatycznie wygenerować listę symboli, można użyć pakietu nomencl lub bardziej złożonych dokumentów, które wymagają również glosariuszy lub list akronimów, pakietu glossaries.

zobacz przykłady w dokumentacji;)

+0

Mam spojrzał na nomencl i wygląda dobrze, ale druga dawka kod, co chcę. Plus mówię, że napisałem to głównie sam :) Dzięki – Brian