我正在使用以下代码
\documentclass[oneside]{book}
\usepackage[utf8]{inputenc}
\usepackage{tcolorbox}
\usepackage{xcolor}
\newtcolorbox{tbox}[3][]
{
colframe = #2!25,
colback = #2!10,
coltitle = #2!20!black,
title = {#3},
#1,
}
\begin{document}
\begin{tbox}{yellow}{contain something}
The color is around ``contain sometihng" is not yellow
\end{tbox}
\end{document}
然而,我注意到了以下问题
标题的颜色似乎不够黄,是“沙色”。
红色类似。
再次强调,如果你输入类似“{\color{red} text}”这样的内容,这并不是通常的“红色”。这更像是粉红色或肉色。
有人能建议我如何更改代码以使颜色更真实吗?
答案1
您遇到的问题是,由键 控制的框架颜色colframe
设置为#2!25
。这#2
是第一个“主要”参数,即您在 中设置的颜色\begin{tbox}{<color>}{...
。与使用 的包中一样xcolor
,例如tcolorbox
,感叹号表示颜色混合。因此,如果您有,这是%和 剩余% 的<color A>!<percentage>!<color B>
混合。例如是 25% 红色,剩余 75% 蓝色。如果没有指定第二种颜色,则第二种颜色将被视为白色。也就是说,例如 与相同,即您看到的“沙红色”,黄色也是如此。因此,为了在框架中获得“完整”的黄色和红色,您需要删除。<percentage>
<color A>
100-<percentage>
<color B>
red!25!blue
red!25
red!25!white
!25
\documentclass[oneside]{book}
\usepackage[utf8]{inputenc}
\usepackage{tcolorbox}
\newtcolorbox{tbox}[3][]{%
colframe=#2,colback=#2!10,coltitle=#2!20!black,title={#3},#1}
\begin{document}
\begin{tbox}{yellow}{contain something}
The color of the frame is a yellow yellow.
\end{tbox}
\begin{tbox}{red}{contain something}
The color of the frame is a red red.
\end{tbox}
\end{document}
更多详细信息请参阅手册xcolor
(texdoc xcolor
)。顺便说一句,tcolorbox
加载xcolor
,因此您无需单独加载它。