Я пытаюсь получить автоматический сгенерированный список символов в моем латексном проекте. Вот макрос, который я имею до сих пор...
\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 определение, Когда я пытаюсь получить маркировку для символа в другой главе, ничто, кажется, не работает.
Кто-либо мог помочь мне или предложить пакет, который сделает то, что я ищу?
Дело в том, что
\begin{listofsymbols}
\end{listofsymbols}
- это область видимости, и любой макрос теряется после этой группы. Вы должны определить глобальные макросы. Замените следующий
\def\setelem#1{\expandafter\def\csname myarray(#1)\endcsname}
на
\def\setelem#1{\expandafter\gdef\csname myarray(#1)\endcsname}
Для автоматического создания списка символов можно использовать пакет nomencl , а для более сложных документов, требующих также глоссарии или списки сокращений, пакет глоссарии .
Посмотрите примеры в документации;)