2010-05-21 29 views
7

Estoy tratando de obtener una lista de símbolos generados automáticamente en mi proyecto de látex. Esta es la macro que tengo hasta ahora ...Crear una lista de símbolos en látex

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

continuación incluyo mi lista de símbolos igual que

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

donde el archivo symbols.tex es

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

I puede obtener mi símbolo por etiqueta como sigue: \ dispsymbol {num_points} - esto muestra n en este caso.

Esto funciona todo hallazgo y dandy ... cuando estoy llamando \ dispsymbol en el mismo capítulo (el capítulo Lista de símbolos) como el \ addsymbol def. Cuando trato de obtener la etiqueta del símbolo en otro capítulo, nada parece funcionar.

¿Alguien podría ayudarme o sugerir un paquete que haga lo que estoy buscando?

Respuesta

5

El caso es que

\begin{listofsymbols} 
\end{listofsymbols} 

es el alcance y cualquier macro se pierde después de este grupo. Debe definir las macros globales. Reemplazar la siguiente

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

con

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

Alexey, Esto funcionó, muchas gracias. – Brian

5

Para generar automáticamente una lista de símbolos, puede usar el paquete nomencl, o para documentos más complejos que también requieren glosarios o listas de acrónimos, el paquete glossaries.

Comprobar los ejemplos en la documentación;)

+0

He mirado nomencl y se ve bien, pero la otra dosis código de lo que quiero. Además puedo decir que lo escribí principalmente por mí mismo :) Gracias – Brian