Создание списка символов в латексе - PullRequest
7 голосов
/ 21 мая 2010

Я пытаюсь получить автоматически сгенерированный список символов в моем проекте из латекса. Вот макрос, который у меня есть ...

\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 в той же главе (глава Список символов), что и определение \ addymbol. Когда я пытаюсь получить метку для символа в другой главе, кажется, ничего не получается.

Может ли кто-нибудь мне помочь или предложить пакет, который будет делать то, что я ищу?

Ответы [ 2 ]

5 голосов
/ 21 мая 2010

Дело в том, что

\begin{listofsymbols} 
\end{listofsymbols} 

- это область действия, и любой макрос теряется после этой группы. Вы должны определить глобальные макросы. Заменить следующее

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

с

\def\setelem#1{\expandafter\gdef\csname myarray(#1)\endcsname} 
5 голосов
/ 21 мая 2010

Для автоматического создания списка символов вы можете использовать пакет nomencl или для более сложных документов, требующих также глоссарии или списки сокращений, пакет глоссарии .

Проверьте примеры в документации;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...