7

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

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

当我在与 \addsymbol def 相同的章节(符号列表章节)中调用 \dispsymbol 时,这一切都有效。当我尝试在另一章中获取符号的标签时,似乎没有任何效果。

谁能帮助我,或建议一个可以满足我要求的软件包?

4

2 回答 2

5

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

检查文档中的示例;)

于 2010-05-21T07:01:18.430 回答
5

事情是这样的

\begin{listofsymbols} 
\end{listofsymbols} 

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

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

\def\setelem#1{\expandafter\gdef\csname myarray(#1)\endcsname} 
于 2010-05-21T07:21:01.783 回答