![如何使词汇表和命名法协同工作?](https://linux22.com/image/245505/%E5%A6%82%E4%BD%95%E4%BD%BF%E8%AF%8D%E6%B1%87%E8%A1%A8%E5%92%8C%E5%91%BD%E5%90%8D%E6%B3%95%E5%8D%8F%E5%90%8C%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我正在使用nomencl
。glossaries
但我在输出中只得到其中之一。我想使用glossaries
表示首字母缩略词和nomencl
表示数学方程式。如果我们想在文档输出中同时使用它们,我们该怎么做?我还想一次将它们放在目录中。我正在使用
pdflatex document makglossaries document pdflatex document
编译文档。另一种使用 latexmk 的方法对我来说不起作用。我不知道为什么会发生这种情况。我在 Windows XP/Vista 上使用 MiKTeX 发行版和 ActivePerl。
答案1
我的建议是摆脱nomencl
包装,glossaries
充分利用它。我认为这个问题的意义在于既要有方程式列表和一个词汇表在文档中,无论使用什么工具。
事实上,有了词汇表,人们就可以定义任意数量的词汇表:一个简单的词汇表, A缩写词列表, A符号列表等等。
您可以不使用该包,而是nomencl
使用以下命令定义一个新的词汇表(我知道这个名称容易产生误导,但这就是包文档中术语列表的引用方式;您可以根据自己的喜好命名列表):
\newglossary{equations}{equ}{eqn}{List of Equations}
其中:equations
是词汇表条目的类型,以便将其与普通词汇表条目区分开来;equ
和eqn
是辅助文件的文件扩展名;List of Equations
是列表的标题,因为它将打印在目录和文本中。
要定义要添加到此列表的条目,请使用 glossaries 命令:
\newglossaryentry{sml}{type=equations,name={$\nabla B = 0$},description={Second Maxwell's Law}}
注意分配给键的值:type=equations
;如果您不指定它,它将被添加到主词汇表中。
要打印词汇表,您必须将\printglossaries
文档的后记/前记放入其中,然后makeglossaries
从根文件上的命令行运行.tex
。
答案2
makeglossaries
是一个 perl 脚本,与带有相关词汇表的包结合使用glossaries
。nomencl
需要特殊makeindex
运行。
makeindex filename.nlo -s nomencl.ist -o filename.nls