我想将tcolorbox
' (多个) 设置存储在一个 (单个) 宏 (实际上xkeyval
是 的\cmdKV@fam@key
宏) 中,然后通过此宏使用它们 (我知道我应该使用pgfkeys
,但我的整个班级都在使用xkeyval
)。可能是因为pgfkeys
扩展问题,我无法成功:例如,是的环境colback=red
的常规选项,但它不能存储在宏中,如以下 MWE 所指出的那样 (为简单起见,它只涉及一个设置):tcolorbox
tcolorbox
\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
通过选项加的组合\pgfkeysalsofrom
,pgfkeys
您可以使用存储在宏中的选项:
\documentclass{article}
\usepackage{tcolorbox}
%
\newcommand*\foo{colback=red,colframe=red!50!black}
%
\begin{document}
\begin{tcolorbox}[code={\pgfkeysalsofrom\foo}]
Test.
\end{tcolorbox}
\end{document}