如何在宏中存储 tcolorbox 的(多个)设置?

如何在宏中存储 tcolorbox 的(多个)设置?

我想将tcolorbox' (多个) 设置存储在一个 (单个) 宏 (实际上xkeyval是 的\cmdKV@fam@key宏) 中,然后通过此宏使用它们 (我知道我应该使用pgfkeys,但我的整个班级都在使用xkeyval)。可能是因为pgfkeys扩展问题,我无法成功:例如,是的环境colback=red的常规选项,但它不能存储在宏中,如以下 MWE 所指出的那样 (为简单起见,它只涉及一个设置):tcolorboxtcolorbox

\documentclass{article}
\usepackage{tcolorbox}
%
\newcommand*\foo{colback=red}
%
\begin{document}
\begin{tcolorbox}[\foo]
Test.
\end{tcolorbox}
\end{document}

这会导致以下错误:

! Package pgfkeys Error: I do not know the key '/tcb/colback=red'

我怎样才能解决这个问题?

答案1

code通过选项加的组合\pgfkeysalsofrompgfkeys您可以使用存储在宏中的选项:

\documentclass{article}
\usepackage{tcolorbox}
%
\newcommand*\foo{colback=red,colframe=red!50!black}
%
\begin{document}
\begin{tcolorbox}[code={\pgfkeysalsofrom\foo}]
Test.
\end{tcolorbox}
\end{document}

相关内容