我正在尝试在我的乳胶项目中获得一个自动生成的符号列表。这是我到目前为止的宏......
\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时,所有找到并且花花公子......当我试图在另一章中获得符号的标签时似乎没有任何效果。
任何人都可以帮助我,或建议一个能满足我要求的套餐吗?
答案 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}