我想抑制全部来自 bibtex、natbib 和相关软件包的警告。我想这样做是因为我打算在最后阶段修复这些问题,同时,我不希望引用警告扰乱我的编译输出;我只想看到“真正的”错误和警告(即我现在需要修复的错误和警告)。我该怎么做?
目前我正在使用:
\usepackage{silence}\WarningFilter*{natbib}{}
。但是,这并不能消除所有警告。例如,我仍然收到以下形式的警告:
<no file>: warning: no database entry for "foo"
<no file>: warning: no database entry for "bar"
somefile.bib:89: warning: empty address in baz
somefile.bib:73: warning: page numbers missing in both pages and numpages fields in quux
(还有更多;这些只是为了说明,并稍加修改以删除文件名。)
我该如何抑制这些警告?理想情况下,我想在不删除我的引文(我仍然打算引用一些东西!)或手动更改我的 .bib 文件(如果可以通过简单的脚本或搜索和替换完成/撤消更改,那就没问题)的情况下执行此操作。我也无法更改为 biblatex 或其他系统;引文样式和工具由我所撰写的场所固定。
答案1
您提到的警告是由 BibTeX 生成的,并且silence
无法应对这些警告,因为它仅在运行 LaTeX 时才会起作用。
如果您不想看到它们,就不要运行 BibTeX。如果您使用诸如 之类的包装器latexrun
,那么请找到一种方法来告诉它您不需要 BibTeX,直到您决定是时候修复 bib 条目为止。但是,由于latexrun
存在的主要原因似乎是在必要时运行 BibTeX,因此请将其保留,直到您需要它为止。
答案2
我认为这里最大的误解是你的句子
我想这样做是因为我打算在最后阶段解决这些问题
我认为你想要走的路是你能选择的最糟糕的路:
您抑制的每个警告都可能导致创建的 pdf 出现错误,或者导致大量后续警告或(有时)错误。
更好的办法是不使用包silence
并尽快纠正所有出现的警告和错误!