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
则会发生无限查找(使用默认处理程序)。