我想用 排版tcolorbox
。默认情况下,框应该没有背景颜色(通过 选项blank
)。然后在 Exp 2 中,需要一个背景颜色为红色的框,但该选项colback=red
不起作用。后一个选项不优先于前一个选项吗?
为什么?如何让它发挥作用?
\documentclass{article}
\usepackage{geometry}
\geometry{showframe}
\usepackage[most]{tcolorbox}
\newcommand\test[2][]{
\begin{tcolorbox}[blank,#1]
#2
\end{tcolorbox}
}
\begin{document}
% Exp 1.
\test{no backgroud color as expected}
% Exp 2.
\test[colback=red]{backgroud color of red is wanted, but not work}
\end{document}
答案1
该colback
键仅定义颜色,但正如blank
您给出不绘制背景的指令一样,该颜色未被使用。相反,您必须更改interior style
:
\documentclass{article}
\usepackage{geometry}
\geometry{showframe}
\usepackage[most]{tcolorbox}
\newcommand\test[2][]{
\begin{tcolorbox}[blank,#1]
#2
\end{tcolorbox}
}
\begin{document}
% Exp 1.
\test{no background color as expected}
% Exp 2.
\test[interior style={fill=red}]{background color of red is wanted}
\end{document}
答案2
在 tbcolorbox 的文档中
使用可选的空白即可工作
\documentclass{article}
\usepackage{geometry}
\geometry{showframe}
\usepackage[most]{tcolorbox}
\ExplSyntaxOn
\NewDocumentCommand \test { O{blank} +m}
{
\begin{tcolorbox}[#1]
#2
\end{tcolorbox}
}
\ExplSyntaxOff
\begin{document}
% Exp 1.
\test{no backgroud color as expected}
% Exp 2.
\test[colback=red]{backgroud color of red is wanted, but not work}
\end{document}
答案3
我认为最好定义两个不同的盒子,一个是,一个blank
不是blank
,但如果你坚持test
命令,你可以定义两种不同的风格,并在任何情况下使用方便的。
\documentclass{article}
\usepackage{geometry}
\geometry{showframe}
\usepackage[most]{tcolorbox}
\tcbset{
blankbox/.style={
blank, #1},
redbox/.style={
colback=red!80, #1}
}
\newcommand\test[2][]{
\begin{tcolorbox}[#1]
#2
\end{tcolorbox}
}
\begin{document}
% Exp 1.
\test[blankbox]{no backgroud color as expected}
% Exp 2.
\test[redbox={colframe=blue}]{backgroud color of red is wanted, but not work}
\end{document}