
で何かをタイプセットしたいです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
2 つの異なるボックス ( と ) を定義する方がよいと思いますが、コマンドでどうしても必要blank
な場合は、2 つの異なるスタイルを定義して、いずれの場合も便利な方を使用できます。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}