我正在编写一个大型文档,其中有多个词汇表条目,有一件事让我担心,那就是我可能会漏掉词汇表条目。例如:
词汇表条目:
\usepackage[acronym]{glossaries}
\newacronym{UI}{UI}{user interface}
\newglossaryentry{HTML}
{
name={HTML},
description={Hyper Text Markup Language is the standard tagging library to help generate web pages from text files}
}
\makeglossaries
然后我可能会在我的文本中写上:
Blah blah blah blah blah UI blah blah blah \gls{UI} blah blah blah.
Blah blah blah blah blah HTML blah blah blah \gls{HTML} blah blah blah.
我第二次正确地引用了词汇表条目,但第一次却忘记了,真是个傻瓜。目前,我永远不会被警告这个“错误”,并且必须手动检查我的文档是否存在其他此类错误。是否有任何软件包可以帮我进行这种检查?
完整 MWE
我在包中添加了以下内容hyperref
,以显示第一次使用的文本未被视为词汇表条目。它也没有出现在所述词汇表中的页码中:
\documentclass[a4paper]{report}
\usepackage[bookmarks=true]{hyperref}
\usepackage[acronym]{glossaries}
\newacronym{UI}{UI}{user interface}
\newglossaryentry{HTML}
{
name={HTML},
description={Hyper Text Markup Language is the standard tagging library to help generate web pages from text files}
}
\makeglossaries
\begin{document}
Blah UI blah
\pagebreak
blah \gls{UI} blah HTML blah
\pagebreak
blah \gls{HTML} blah
\printglossaries
\end{document}
答案1
这个答案使用了 XeLaTeX 和xesearch
,但基本上可以满足您的要求。如果您真的使用它,主要需要做两件事:
显示的缩写会手动用版本号替换,并添加一个额外的缩写,
\hspace{0pt}
以避免它们也引发警告。您可能会找到一种基于词汇表包提供的内容来自动执行此操作的方法。它要求您手动添加要匹配的首字母缩略词列表(
{UI,HTML}
),如果更新的话也会更好。
最后,请注意,xesearch
目前不支持。但它仍可运行。
代码:
\documentclass[a4paper]{report}
\usepackage[bookmarks=true]{hyperref}
\usepackage[acronym]{glossaries}
\newacronym{UI}{U\hspace{0pt}I}{user interface}
\newglossaryentry{HTML}
{
name={H\hspace{0pt}TML},
description={Hyper Text Markup Language is the standard tagging library to help generate web pages from text files}
}
\usepackage{xesearch}
\makeatletter
\SearchList*{warnme}{#1\@latex@warning{#1 not marked as glossary entry}}{UI,HTML}
\makeatother
\makeglossaries
\begin{document}
Blah blah blah blah blah UI blah
blah blah \gls{UI} blah blah blah
Blah blah blah blah blah HTML blah
blah blah \gls{HTML} blah blah blah
\printglossaries
\end{document}
警告输出: