显示并突出显示尚未定义的词汇表条目?

显示并突出显示尚未定义的词汇表条目?

在我的文档中我使用了该glossaries包。

当引用词汇表中尚不存在的术语时,该术语不会显示。在我看来,这迫使工作流程变得相当复杂。

有没有可能显示未定义的术语,但颜色不同?

例如:

\gls{DefinedTerm}将显示在我的默认链接颜色和

\gls{UndedinfedTerm}将以另一种样式显示,如红色、下划线。

----更新-----

下面的操作正是我想要的:

\newcommand{\mygls}[1]{\ifglsentryexists{#1}{\gls{#1}}{\textcolor{red}{\underline{#1}}}}

将其放在你的序言中,然后简单地使用\mygls{Term}。未定义的术语将突出显示,而定义的术语将使用\gls{}

(看JM 的回答

答案1

- 更新 -

我已更新命令如下(您必须包含xcolor包才能使用该\textcolor命令:

\let\originalgls\gls
\renewcommand{\gls}[1]{\ifglsentryexists{#1}{\originalgls{#1}}{\textcolor{red}{\underline{#1}}}}

您现在可以\gls对所有条目使用该命令,并且当您定义它们时,它们将从红色/下划线切换为用作普通\gls条目。

--更新结束--

当我编写论文(我现在正在编写)时,我添加了一个\gls{UndefinedTerm}编译错误,指出:“词汇表条目UndefinedTerm尚未定义”。您的编译没有失败吗?我鼓励您简单地添加术语,这确实不是那么麻烦或耗时。

甚至看起来,查看 glossaries.sty,它应该抛出一个错误(从 glossaries.sty 的第 935-940 行)对于更有能力的人来说,这可能是修改代码和创建所需输出的地方。

\newcommand{\glsdoifexists}[2]{%
  \ifglsentryexists{#1}{#2}{%
    \PackageError{glossaries}{Glossary entry `#1' has not been
    defined}{You need to define a glossary entry before you
    can use it.}}%
}

否则,如果 \gls 针对未定义术语所做的一切只是将其打印为红色并加下划线,那么为什么不简单地为此创建一个命令呢?无论如何,您都必须通读论文并查找它们,然后添加条目。我仍然认为这最终会更加麻烦。

ugls 代表“未定义的 gls” \newcommand{\ugls}[1]{\textcolor{red}{\underline{#1}}}

相关内容