我想将一些选项存储tcolorbox
在宏中(因为它们可能会改变)以供以后使用。但以下方法失败了。
\usepackage{tcolorbox}
\begin{document}
\newcommand{\theoption}{colback=red,boxrule=3pt}
\tcbset{myoption/.style={code={\theoption}}}
\begin{tcbitemize}[myoption]
\tcbitem some text
\tcbitem some text
\tcbitem some text
\tcbitem some text
\end{tcbitemize}
\end{document}
但是选项 colback 和 boxrule 没有任何效果。那么,如何将宏设置为 tcolorbox 的选项
答案1
添加选项并从宏中评估它们的“正确”(但很可能不是唯一)方法是使用
code={\pgfkeysalsofrom{\someoption}}
请不要使用\the...
名称,这些名称基本上是为计数器输出名称等“保留”的\thesection
。
\documentclass{article}
\usepackage[most]{tcolorbox}
\begin{document}
\newcommand{\someoption}{colback=red,boxrule=3pt}
\tcbset{myoption/.style={code={\pgfkeysalsofrom{\someoption}}}}
\begin{tcbitemize}[myoption]
\tcbitem some text
\tcbitem some text
\tcbitem some text
\tcbitem some text
\end{tcbitemize}
\end{document}
答案2
这不是您问题的答案,但可能是一种解决方法:
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{raster}
\newenvironment{myitemize}[1][]{%
\begin{tcbitemize}[colback=red,boxrule=3pt,#1]}
{\end{tcbitemize}}
\begin{document}
\begin{myitemize}
\tcbitem some text
\tcbitem some text
\tcbitem some text
\tcbitem some text
\end{myitemize}
\end{document}