我试图将 添加tcolorbox
到我的 Xelatex 文档中,但似乎不起作用。我追踪到问题出在color
包上,如果禁用该包,则会生成框。但是我需要使用该color
包。
我该如何解决这个问题?
这是 MWE
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{lipsum}
% Uncomment the next line to get the error
%\usepackage[usenames,dvipsnames]{color}
\begin{document}
\begin{tcolorbox}[colback=green!5,colframe=green!40!black,title=A nice heading]
\lipsum[2]
\end{tcolorbox}
\end{document}
答案1
xcolor
是增强版,color
但真正的技巧是简单地加载它第一的:
\documentclass{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tcolorbox}
\usepackage{lipsum}
\begin{document}
\begin{tcolorbox}[colback=green!5,colframe=green!40!black,title=A nice heading]
\lipsum[2]
\end{tcolorbox}
\end{document}
答案2
tcolorbox
pgf
无需选项即可加载。xcolor
如果您想要传递一些选项xcolor
(完全集成color
功能),您可以\usepackage[]{xcolor}
在加载之前使用带有特定选项的cfr 解决方案tcolorbox
,但您还有另外两个选项。
第一个是使用\PassOptionsToPackage{usenames,dvipsnames}{xcolor}
传递选项usenames
以及dvipsnames
何时xcolor
加载。
\PassOptionsToPackage{usenames,dvipsnames}{xcolor}
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{lipsum}
\begin{document}
\begin{tcolorbox}[colback=JungleGreen!5, colframe=JungleGreen!40!black, title=A nice heading]
\lipsum[2]
\end{tcolorbox}
\end{document}
第二个方法是传递这些选项,\documentclass
因为根据 LaTeX Companion 第 2 版第 17 页的说法:
所有选项
\documentclass
(声明的和全局的)都会自动作为类选项传递给所有\usepackage
声明。因此,如果加载了\usepackage
声明的包文件识别(即声明)某些类选项,则可以采取适当的操作。如果没有,则在处理该包时将忽略类选项。
作为一个简单的测试,我在你的示例中将其更改green
为JungleGreen
(在dvipsnames
列表中),并尝试使用
\documentclass[dvipsnames]{article} %<--- usenames is an obsolete option. deleted.
\usepackage{tcolorbox}
\usepackage{lipsum}
\begin{document}
\begin{tcolorbox}[colback=JungleGreen!5, colframe=JungleGreen!40!black, title=A nice heading]
\lipsum[2]
\end{tcolorbox}
\end{document}
它可以正常工作: