Optionen funktionieren nach einigen anderen Optionen in tcolorbox nicht

Optionen funktionieren nach einigen anderen Optionen in tcolorbox nicht

Ich möchte etwas per setzen tcolorbox. Standardmäßig sollte das Feld keine Hintergrundfarbe haben (mit der Option blank). Dann wird in Exp 2 ein Feld mit der Hintergrundfarbe Rot benötigt, aber die Option colback=redfunktioniert nicht. Die letztere Option hat nicht Vorrang vor der ersteren?

Warum? Und wie funktioniert es?

\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}

Antwort1

Der colbackSchlüssel definiert nur eine Farbe, aber wenn blankSie die Anweisung geben, keinen Hintergrund zu zeichnen, wird die Farbe nicht verwendet. Stattdessen müssen Sie Folgendes ändern 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}

Bildbeschreibung hier eingeben

Antwort2

Im Dokument von tbcolorbox

Bildbeschreibung hier eingeben

Mit optionalem Rohling funktioniert es

\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}

Antwort3

Ich denke, es ist besser, zwei verschiedene Felder zu definieren, eins blankund eins nicht blank, aber wenn Sie auf testBefehl bestehen, können Sie zwei verschiedene Stile definieren und in jedem Fall den bequemeren verwenden.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen