软件包与 hyperxmp 和 silent 不兼容?

软件包与 hyperxmp 和 silent 不兼容?

我想知道该如何进一步深入研究这个问题。我相信我在 silent 包的更新日志中看到它必须进行一些更改才能与 hyperref 兼容,所以我想知道我现在是否遇到了新的错误。

这是一个使我的机器挂起的最小示例,并且软件包的加载顺序没有任何区别:

\documentclass{article}
\usepackage{silence}
\usepackage{hyperref,hyperxmp}
\begin{document}
\end{document}

所以我想知道我能做些什么,或者我应该向谁报告这个错误:hyperxmp,或者silence。

我可能从序言前使用 \RequirePackage 中得到了一些线索。这给了我这个错误:

! LaTeX Error: Command \maketitle already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.235 }

如果我按回车键继续,它就会挂起

答案1

正确的解决方法是不是使用该silence软件包。真的,不要使用它。你以后会感谢我的 :-)

但是如果你坚持在此之上,那么您需要在代码中添加一个\title和一个,在之前,它就不会再挂起了:\author\begin{document}

\documentclass{article}
\usepackage{silence}
\usepackage{hyperref,hyperxmp}
\title{anything} % added
\author{anyone} % added
\begin{document}
\end{document}

发生这种情况是因为hyperxmp尝试设置 pdf 元数据,例如标题和作者。为此,它使用 LaTeX\@title\@author宏,它们保存了文档的标题和作者(您猜对了)。但是,当未指定\title(或)时,LaTeX 的默认设置是错误消息(!),显示“未指定”(或“未指定”警告)。您知道是谁弄乱了 LaTeX 的所有消息吗?是的! 试图巧妙地隐藏错误消息,但它被不可扩展的标记所阻塞,然后大乱。\author\title\authorsilence\title\author

这里有一个更详细的解释:https://tex.stackexchange.com/a/451568/134574。代码不同,但归根结底是相同的问题和解决方案。对于你的情况,简单的解决方法是给出一个\title和一个\author


但请不要使用silence。每次你想使用时,silence请记住每一个错误/警告消息必须由某人编写,以便您能够更轻松地找出问题所在。加载silence只会使查找过程更加困难(正如您刚刚看到的那样 :-)。

答案2

我有一个使用现已弃用的软件包的旧文档。我只是想更新此文档中的一些链接。由于有关弃用的新警告,我包含了silence一些\WarningFilter压制这些警告的命令(我计划稍后处理替换),并且也陷入了无休止的加载。对我来说,\hypersetup在“\begin{document}”之前移动是解决方案。这里没有包含\author\title,但是超级设置包含pdftitlepdfauthor如果没有后者,无休止的加载将会再次出现!

\documentclass{article}
\usepackage{silence}
\usepackage{duckuments}
\usepackage{hyperref,hyperxmp}

%\begin{document}

\hypersetup{
  pdftitle={Test of package "silence"},
  pdfauthor={Anne O. Nymus},
  pdfcreator={pdfTeX},
  pdfcopyright={Public domain (below threshold)}
}

\begin{document}
\duckument
\end{document}

使另一个begin{document}处于活动状态或注释掉pdftitlepdfauthor

如果我没记错的话,我在文档开始后出现的原因\hypersetup是编码(非 ASCII 字符pdftitle),但如果所有内容都转换为 UTF-8,这现在不再重要了。

相关内容