当我在颜色中超过 !100 时,它会出现错误,但它仍然有效。简单来说,我的问题是:我该如何摆脱这个烦人的错误?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\begin{document}
\centering
\fboxrule = 5pt
\setbox0=\hbox{\begin{minipage}[h][2in][t]{3in}
\color{white}
\centering
hello
\end{minipage}}
\fcolorbox{orange!120}{black}{\box0}
\end{document}
答案1
我认为这是不可能的,因为xcolor
文档,它在第 13 页明确指出百分比必须在区间 [0,100] 内,因此除非您以某种方式重写包,否则您总是会收到该错误。但是,该x11names
选项有颜色 DarkOrange1、2 和 3,因此也许可以尝试使用这些颜色。要使用它,请在您的序言中输入\usepackage[x11names]{xcolor}
,然后您可以输入\fcolorbox{DarkOrange2}{black}{\box0}
。如果您不喜欢这些选项,该x11names
选项还有颜色 Brown1、2 和 3,我认为\Brown1
它们看起来非常相似orange!120
。您也可以随时查看我上面链接的 xcolor 文档以浏览不同的颜色,这是第 39-41 页。希望这对您有所帮助。
答案2
避免错误的最佳方法是不要使用这种无效值。这些混合值应该是 0 到 100 之间的整数。
错误实际上不是来自包xcolor
,而是来自包的后端代码color
:
! Package color Error: ....
xcolor
它本身会尝试避免这种超出范围的错误,但是这种情况并没有被捕获。
正如您所发现的,有办法避免错误,我们也许会添加一些东西来xcolor
完全抑制它,但请记住,没有错误并不意味着您获得了“正确的”所需颜色。包如何处理超出范围的值是您无法真正控制的实现细节。
例如,目前您的解决方法给出的 rgb 值为1 0.4 0
。(因此比具有 值的原始橙色略微少一点绿色1 0.5 0
)。如果我更正错误并在开头截断120
为, 将与 相同。这意味着您的文档颜色将在 xcolor 更新后发生变化。100
orange!120
orange!100
答案3
我发现您可以通过自己定义 orange!130 并使用它来解决此问题。
\colorlet{orangething}{orange!130}
这不会造成错误
rowcolor{orangething}
问题解决了