我注意到,例如,ClassicThesis 配置文件使用这种样式:
\PassOptionsToPackage{utf8}{inputenc}
\usepackage{inputenc}
代替
\usepackage[utf8]{inputenc}.
将选项传递给包的这两个选项有什么区别?换句话说,在 TeX(或 LaTeX?)中支持两种类型的参数语法的目的是什么?
答案1
\documentclass{beamer}
\usepackage[colorlinks]{hyperref}
\begin{document}
foo
\end{document}
给出一个option clash
,因为一个包只能加载一次!并且这是hyperref
由beamer
它自己内部完成的,但没有可选参数。LaTeXhyperref
在第一次usepackage
或之后标记为已加载RequirePackage
之后标记为已加载,然后如果包应该第二次加载,则通过错误不同的可选参数。在这种情况下\PassOptionsToPackage
,可以使用hyperref=colorlinks
:
\documentclass[xcolor=table,hyperref=colorlinks,...]{beamer}
\begin{document}
foo
\end{document}
用户通常不知道 documentclass 或其他包或 LyX 在其定义的前言中已经加载了哪些包。然后他/她只能通过选项冲突错误意识到应该多次加载某个包。