色彩、图形和自由之间的冲突

色彩、图形和自由之间的冲突

使用 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

相关内容