在我的文档中我使用了该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}}}