2010-05-21 120 views
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。

這適用於所有find和dandy ...當我在同一章節(符號列表章節)中調用\ dispsymbol作爲\ addsymbol def。當我嘗試在另一章中獲得該符號的標籤時,似乎沒有任何工作。

任何人都可以幫助我,或者建議一個可以做我想找的包嗎?

回答

5

的事情是,

\begin{listofsymbols} 
\end{listofsymbols} 

是範圍和任何宏該組後丟失。您應該定義全局宏。 與

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

阿列克謝, 這工作,非常感謝。 – Brian 2010-05-21 16:37:16

5

要自動生成符號列表,您可以使用nomencl程序包,或者需要術語表或縮略語列表的更復雜文檔glossaries包。

檢查文檔中的示例;)

+0

我已經看過nomencl更換以下

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

,它看起來不錯,但其他代碼劑量我想要的東西。另外我得說我寫的主要是我自己:) 謝謝 – Brian 2010-05-21 16:37:54