如何让 tcolorbox 找到正确的样式路径

如何让 tcolorbox 找到正确的样式路径

tcolorbox我通过不同的路径定义我的选项\tcbset(请参阅下面的代码)。

我想知道如何让 tcolorbox 找到选项的正确路径?我知道我可以用选项的真实路径来调用它。但这很无聊,因为每次你都必须给出路径。有没有办法提前告诉 tcolorbox 所有相关路径,然后每个选项都可以直接使用其名称而无需路径?

代码

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{geometry}
\geometry{showframe}

    \begin{document}
    \tcbset{/tcb/toca/.cd,
      columns/.code=\def\toccolumns{#1},
    }
    \tcbset{/tcb/tocb/.cd,
      abstract/.code=\def\tocabstract{#1}
    }
    
    \begin{tcolorbox}[
      colback=black!30,
      /tcb/toca/columns=1,% This is right
      abstract={some text}, % This is a wrong way because path is not given.
      ]
      something
    \end{tcolorbox}
    \end{document}

答案1

一种可能的策略是使用.search also处理程序来指示如果默认路径中缺少某些(非完全限定的)键/tcb,则 pgf 应该在其他路径中搜索。

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{geometry}
\geometry{showframe}


\tcbset{
  /toca/columns/.code=\def\toccolumns{#1},
  /tocb/abstract/.code=\def\tocabstract{#1},
  /tcb/.search also={/toca, /tocb},
}

\begin{document}

  \begin{tcolorbox}[
    colback=red!21,
    /toca/columns=1,% This is a fully qualified key
    abstract={some text}, % This key is missing in /tcb/, so we search in /toca and /tocb
    ]
    something
  \end{tcolorbox}
\end{document}

笔记:如果使用/tcb/toca/tcb/tocb代替/toca和,/tocb则会发生无限查找(使用默认处理程序)。

相关内容