编辑:我必须澄清的是,下面的例子作品适用于 tufte-latex-3.5.0,但在旧版本中不起作用。可接受的解决方案是旧版本 (<3.0.0) 的一个好解决方法,因为nohyper
选项不起作用。
(编辑: 旧版本)tufte-handout
类似乎无法与 hyperref 很好地配合使用,可能是因为使用其自己的一组选项tufte-handout
进行加载hyperref
。我该如何设置文档以便可以正常加载 hyperref?
我以为这个选项nohyper
可以解决问题但事实并非如此。
这个想法是能够有一个简单的文档,无论我是否通过命令进行更改,它都可以tufte-handout
正确article
编译\documentclass
。
这是一个示例代码(不起作用)
\documentclass[nohyper]{tufte-handout}
% but works with \documentclass{article}
\usepackage[hyperfootnotes=false, pdftex, pdfauthor={}, pdftitle={ hyperref.pdf}, pdfsubject={subject}, pdfkeywords={}]{hyperref}
% but works with \usepackage[hyperfootnotes=false,]{hyperref}
\begin{document}
Body text.
\end{document}
答案1
您可以使用该\@ifpackageloaded
命令来运行其他命令,具体取决于包是否hyperref
已加载。
\documentclass{tufte-handout}% or article
\makeatletter
\@ifpackageloaded{hyperref}{%
% do this if hyperref is already loaded
% (e.g., if you're using the tufte-handout
% document class)
\hypersetup{
pdfauthor={},
pdftitle={Tufte-LaTeX document},
pdfsubject={subject},
pdfkeywords={}
}%
}{%
% do this if the hyperref package hasn't
% been loaded yet
\usepackage[
hyperfootnotes=false,
pdftex,
pdfauthor={},
pdftitle={article},
pdfsubject={subject},
pdfkeywords={}]{hyperref}
}
\makeatother
\begin{document}
Body text.
\end{document}