使用 pdflatex 编译以下内容(Ubuntu 10.04“Lucid Lynx”上的 TeXLive 2009/Debian)
\documentclass{文章} \usepackage{ifpdf} \如果pdf \usepackage[T1]{fontenc} \usepackage{libertine} % Linux Libertine。这将导致错误 %\usepackage{lmodern} % 这个很好用 \usepackage[pdftex,usenames,dvipsnames]{颜色} \usepackage[pdftex]{graphicx} \别的 \再见 \fi \开始{文档} 你好世界! \结束{文档}
我收到此错误:
!LaTeX 错误:包颜色选项冲突。 请参阅 LaTeX 手册或 LaTeX Companion 以获取解释。 输入 H 即可获得紧急帮助。 ... l.8 \使用包 [pdftex]{graphicx}
有人能解释一下吗?我实在无法理解为什么字体包会与颜色和 graphicx 混淆。
答案1
这些选项冲突发生在请求将包加载到两个不同的位置时,例如由您加载和在另一个包内加载,但使用不同的选项。包由第一个\usepackage
(或其孪生\RequirePackage
)加载;当再次请求时,它不会再次加载。它根本无法再次加载。因此,可以激活新选项,而以前的选项可能与第二次使用冲突。因此,LaTeX 会创建一个错误来向您报告此问题。
解决这个问题的方法是使用 预先声明选项\PassOptionsToPackage{<options>}{<package>}
。然后,无论包在哪里加载,都会使用它们。
\documentclass{article}
\usepackage{ifpdf}
\ifpdf
\PassOptionsToPackage{pdftex,usenames,dvipsnames}{color}
\usepackage[T1]{fontenc}
\usepackage{libertine} % most likely loads 'color' itself
%\usepackage{lmodern} % doesn't load 'color'
\usepackage{color}
\usepackage[pdftex]{graphicx}
\else
%\bye
\fi
\begin{document}
Hello, world!
\end{document}
我无法自己测试,因为我没有libertine
安装该包。
附言:
我认为您不需要pdftex
手动设置。通常软件包本身就能很好地识别驱动程序。此外,您可能还想使用扩展xcolor
软件包而不是color
。
答案2
您应该更新您的 libertine 包,这样您就不会收到错误。
*File List*
libertine.sty 2010/08/30 - 4.8.7: Font libertine - (License GPL) Michael Nie
dermair