如何抑制 pdflatex 生成的特定警告?

如何抑制 pdflatex 生成的特定警告?

很多时候,当我的文档的某个特定部分故意变得更宽时,我会收到诸如“hbox 过宽”之类的警告 --> 所以我故意违反了默认宽度阈值。或者换句话说,我有兴趣抑制作者“故意无视”的任何警告。

在上面的例子中,我故意违反了某些阈值……所以在我看来,生成的警告应该被抑制。每当我故意违反某些建议时,我都希望抑制警告。如何抑制 pdflatex 生成的特定警告?

那么例如,您如何抑制一个特定的“hbox 过满”或一个特定的“段落没有前面的小节”警告?

(对于“hbox overfull”警告的具体情况,我看到一个解决方案是更改整个文档的默认阈值但我不想更改默认阈值。我认为默认阈值很好……我只违反了一次规则……其他时候我都希望生成警告,以便我可以修复它。)


我之所以问这个问题,是因为我希望工作时没有任何警告。这样,当出现警告时,它就是唯一的警告,我可以尽快立即修复它……而不是出现 5 个警告……然后当我收到另一个警告时,我直到后来已经过了产生警告的部分时才注意到。

答案1

这是我的解决方案(以我的 hyperref 具体问题为例),灵感来自 cyberSingularity 的评论。它看起来可以适用于许多情况。(我知道 texorpdfstring,这不是重点。)

在序言中(显然在超链接之前必须包含静默),我有

\usepackage{silence}
\WarningFilter[pdftoc]{hyperref}{Token not allowed in a PDF string}
...
\usepackage{hyperref}

那么在文档中我的侵权标题看起来像

\ActivateWarningFilters[pdftoc]
\subsection{pdf toc cannot display $f_n$}
\DeactivateWarningFilters[pdftoc]

答案2

在这种情况下,有两种方法。

本地指定\hbadness=10000 将设置警告开始有效无限的阈值。

或者防止箱子太满,例如

 \noindent\parbox{\2\textwidth}{....}\hspace{-\textwidth}

尽管从视觉上看,周围的线条包含一个比文本尺寸宽两倍的框,但它并没有过满,因为负空间会让您回到限制范围内。

相关内容