使用词汇表将错误转化为警告

使用词汇表将错误转化为警告

是否可以转换errorswarnings并且在使用时不停止编译glossaries

如果未定义 P2P,则会发出一条消息并停止编译:

Package glossaries Error: Glossary entry '3GPP' has not been defined.

这可能是我在文档中没有找到的一个简单功能。例如,使用acro选项silent=trueacronym包就可以了。

这很有用,因为我正在将自己的文本从其他文档复制到其他单个文档,并且一开始只是测试布局;然后定义首字母缩略词。

\documentclass{article}

\usepackage[acronym,shortcuts]{glossaries}
\makeglossaries
\newacronym{P2P}{P2P}{Peer-to-Peer}


\begin{document}
\printglossary[type=\acronymtype]

\ac{P2P}
\ac{3GPP}

\end{document}

答案1

是的:

\documentclass{article}

\usepackage[acronym,shortcuts]{glossaries}
\let\glsdoifexists\glsdoifexistsorwarn

\makeglossaries
\newacronym{P2P}{P2P}{Peer-to-Peer}


\begin{document}
\printglossary[type=\acronymtype]

\ac{P2P}
\ac{3GPP}

\end{document}

我明白了

Package glossaries Warning: Glossary entry `3GPP' has not been defined on input line 14.

另一种解决方案是在感叹号之间以粗体打印有问题的条目。

\documentclass{article}

\usepackage[acronym,shortcuts]{glossaries}
\renewcommand{\glsdoifexists}[2]{%
  \ifglsentryexists{#1}{#2}{%
    \textbf{!#1!}\PackageWarning{glossaries}{Glossary entry `\glsdetoklabel{#1}'
    has not been defined}}%
}

\makeglossaries
\newacronym{P2P}{P2P}{Peer-to-Peer}


\begin{document}
\printglossary[type=\acronymtype]

\ac{P2P}
\ac{3GPP}

\end{document}

在此处输入图片描述

相关内容