As opções não funcionam após algumas outras opções no tcolorbox

As opções não funcionam após algumas outras opções no tcolorbox

Eu quero escrever algo por tcolorbox. Por padrão, a caixa não deve ter cor de fundo (pela opção blank). Então, no Exp 2, é necessária uma caixa com fundo vermelho, mas a opção colback=rednão funciona. A última opção não tem prioridade sobre a primeira?

Por que? E como fazer isso funcionar?

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

Responder1

A colbackchave apenas define uma cor, mas como blankvocê dá a instrução para não desenhar um fundo, a cor não é usada. Em vez disso, você deve alterar o 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}

insira a descrição da imagem aqui

Responder2

No documento do tbcolorbox

insira a descrição da imagem aqui

Com espaço em branco opcional funciona

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

Responder3

Acho melhor definir duas caixas diferentes, uma blanke não blank, mas se você insistir no testcomando, pode definir dois estilos diferentes e usar o conveniente em qualquer caso.

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

insira a descrição da imagem aqui

informação relacionada