在latex中创建符号列表

时间:2010-05-21 06:49:11

标签: latex macros lookup-tables

我正在尝试在我的乳胶项目中获得一个自动生成的符号列表。这是我到目前为止的宏......

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

然后我包括我的符号列表

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

其中symbols.tex文件是

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

然后我可以通过标签来获取我的符号:\ dispsymbol {num_points} - 在这种情况下显示n。

当我在同一章(符号列表章节)中调用\ dispsymbol作为\ addsymbol def时,所有找到并且花花公子......当我试图在另一章中获得符号的标签时似乎没有任何效果。

任何人都可以帮助我,或建议一个能满足我要求的套餐吗?

2 个答案:

答案 0 :(得分:5)

要自动生成符号列表,您可以使用nomencl包,或者对于需要词汇表或首字母缩略词列表的更复杂文档glossaries包。

检查文档中的示例;)

答案 1 :(得分:5)

事情是那个

\begin{listofsymbols} 
\end{listofsymbols} 

是范围,任何宏在此组后丢失。您应该定义全局宏。 替换以下

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

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