在 Latex 中创建符号列表

发布于 2024-09-03 03:05:49 字数 806 浏览 13 评论 0原文

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

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

符号.tex 文件所在的位置一样,

\addsymbol{n}{Number of sample points}{num_points}
\addsymbol{f_s}{Sampling frequency}{samp_frequency}

然后我可以通过标签获取我的符号,如下所示: \dispsymbol{num_points} - 这在中显示 n这个案例。

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

有人可以帮助我,或者建议一个可以满足我需求的软件包吗?

I'm trying to get an auto generated list of symbols in my latex project. Here is the macro that I have so far...

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

I then include my list of symbols like so

\begin{listofsymbols}
\input{symbols}
\end{listofsymbols}

where the symbols.tex file is

\addsymbol{n}{Number of sample points}{num_points}
\addsymbol{f_s}{Sampling frequency}{samp_frequency}

I can then get my symbol by label like so: \dispsymbol{num_points} -- this displays n in this case.

This works all find and dandy... when I am calling \dispsymbol in the same chapter (the List of Symbols chapter) as the \addsymbol def. When I try to get the label for the symbol in another chapter nothing seems to work.

Could anyone help me, or suggest a package that will do what I am looking for?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

遥远的绿洲 2024-09-10 03:05:49

问题是,这

\begin{listofsymbols} 
\end{listofsymbols} 

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

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

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

The thing is that

\begin{listofsymbols} 
\end{listofsymbols} 

is the scope and any macro is lost after this group. You should define the global macros.
Replace the following

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

with

\def\setelem#1{\expandafter\gdef\csname myarray(#1)\endcsname} 
原来分手还会想你 2024-09-10 03:05:49

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

检查文档中的示例;)

To automatically generate a list of symbols you can use the nomencl package, or for more complex documents that requires also glossaries or lists of acronyms, the glossaries package.

Check the examples in the documentation ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文