命名重复

命名重复

有没有办法自动从生成的命名法中删除重复项?

例如多次添加:

\nomenclature{HTML}{HyperText Markup Language}

在你的 TeX 文件中应该产生只有一个术语表中的条目。

这个最小的例子展示了发生了什么:

% This is test.tex
\documentclass{book}
\usepackage{nomencl}
\makenomenclature
\begin{document}

Some text \nomenclature{HTML}{HyperText Markup Language}

\newpage
\chapter{Chapter}

Some text \nomenclature{HTML}{HyperText Markup Language}

\printnomenclature
\end{document}

命名法是用生成的makeindex test.nlo -s nomencl.ist -o test.nls,如下所示test.nls

\begin{thenomenclature}

\nomgroup{A}

  \item [{HTML}]\begingroup HyperText Markup Language\nomeqref {0}
        \nompageref{1}
  \item [{HTML}]\begingroup HyperText Markup Language\nomeqref {1.0}
        \nompageref{3}

\end{thenomenclature}

问题出在以下行test.nlo不一致:

\nomenclatureentry{aHTML@[{HTML}]\begingroup HyperText Markup Language\nomeqref {0}|nompageref}{1}
\nomenclatureentry{aHTML@[{HTML}]\begingroup HyperText Markup Language\nomeqref {1.0}|nompageref}{3}

在我的真实 tex 中,\nomeqref内容是\relax x.x重复的条目。

答案1

nomencl包的用途与您使用它的用途不同。

该包的目的是编写一个使用的符号或缩写列表,并引用它们定义或首次使用的位置(由用户选择)。因此,它并不意味着要对命名法进行多次引用。

对于首字母缩略词来说,最好的包是glossaries,但更简单的acronym经常被使用。

答案2

我可能错过了一些东西,但使用以下代码我只能得到进入命名法。

% This is test.tex
\documentclass{article}
\usepackage{nomencl}
\makenomenclature
\begin{document}
Some text \nomenclature{HTML}{HyperText Markup Language}

\newpage

Some text \nomenclature{HTML}{HyperText Markup Language}

\printnomenclature

\end{document}

命名法是用生成的makeindex test.nlo -s nomencl.ist -o test.nls,并且这里是test.nls

\begin{thenomenclature} 

 \nomgroup{A}

  \item [{HTML}]\begingroup HyperText Markup Language\nomeqref {0}
        \nompageref{1, 2}

\end{thenomenclature}

答案3

这是一个手动的、不太优雅的后期编辑解决方法test.nlo

在命令行中执行:

cat test.nlo | sort | uniq -w 49 > test.nlo

进而:

makeindex test.nlo -s nomencl.ist -o test.nls

uniq-w参数为 49,因为这是 nomeqref 中差异之前最短命名法的宽度\nomenclatureentry{a@[{}]\begingroup \nomeqref {,并且可以处理命名法中最多 30 个字符。

答案4

这是一个手动的、不太优雅的后期编辑解决方法test.nls

在 kile/kate 编辑器中用以下正则表达式替换整个文本:

Find:    (.*\[\{)(.*)\}\].*\n.*\n.*\[\{\2\}\]
Replace: \1\2\}\]

相关内容