我正在使用lipics
documentclass,它加载hyperref
。因为我想把我的数字框起来,所以我添加了以下内容
\usepackage{float}
\floatstyle{boxed}
\restylefloat{figure}
问题:我收到了类似这样的警告
name{figure.1} has been referenced but does not exist,replaced by a fixed one
float
当我在之后加载包时会发生这种情况hyperref
。
问题是:有没有正确的方法可以在不重新定义类的情况下做到这一点?
答案1
就我而言,我补充道:
\RequirePackage{fooPackage}
\PassOptionsToPackage{bookmarks=false}{hyperref}
之前\documentclass
,它无需修改课程就解决了我遇到的问题。
答案2
简短版本:是的,您必须重新定义该类,或至少修补它们的hyperref
包含。
hyperref
我在使用论文类(最初是一个包)时遇到了类似的问题。当它是一个包时,我可以让学生在我的论文包之前或之后加载包,并且hyperref
。当它是一个包时,我可以让学生在我的论文包之前或之后加载包,然后按照正确的顺序进行加载。但是,一旦我创建了一个类,全部我的包会首先被加载\documentclass
,这样任何人都无法绕过它hyperref
。我没有完全放弃,而是hyperref
将以下内容添加到类中:
\IfFileExists{\jobname-packages-loaded-before-hyperref.sty}{%
\RequirePackage{\jobname-packages-loaded-before-hyperref}
}{}
% For all sorts of hyperlinks in the PDF output.
\RequirePackage[pdfcreator={pdfLaTeX with hyperref},
plainpages=false,
pdfpagelabels,
hypertexnames=true,
colorlinks=false]{hyperref}
\IfFileExists{\jobname-packages-loaded-after-hyperref.sty}{%
\RequirePackage{\jobname-packages-loaded-after-hyperref}%
}{}
现在我的学生只需要把他们所有的额外\usepackage
或\RequirePackage
条目放入两个 .sty 文件之一中。示例:包装前,包装后, 和班级。
答案3
众所周知(类作者也应该知道),hyperref
需要尽可能晚地加载。因此,类应该改为不加载hyperref
。