我想构造一个带有三个参数myset/.code
的样式(名为)tcolorbox
。在这种样式中,将重新定义一个宏。请查看以下 MWE。但它无法编译。我认为样式的定义有些问题。有人可以告诉我如何修改我的定义吗?
\documentclass{article}
\usepackage[most]{tcolorbox}
\begin{document}
\newcounter{mycounter}
\stepcounter{mycounter}
\newcommand{\mycontent}{\alph{mycounter}}
\tcbset{myset/.code n args={%
\renewcommand{\mycontent}{%
#1\#2{mycounter}#3%
}}}
\begin{tcbitemize}
\tcbitem \mycontent
\tcbitem [myset={(}{alph}{)}] \mycontent % I want get a typeout of "(a)"
\end{tcbitemize}
\end{document}
答案1
如果您说code n args
,后面的第一个=
必须是参数的数量,在本例中是 3。然后,为了“添加反斜杠”,您需要使用\csname
。
\documentclass{article}
\usepackage[most]{tcolorbox}
\begin{document}
\newcounter{mycounter}
\stepcounter{mycounter}
\newcommand{\mycontent}{\alph{mycounter}}
\tcbset{myset/.code n args={3}{%
\renewcommand{\mycontent}{%
#1\csname #2\endcsname{mycounter}#3%
}}}
\begin{tcbitemize}
\tcbitem \mycontent
\tcbitem [myset={(}{alph}{)}] \mycontent % I want get a typeout of "(a)"
\end{tcbitemize}
\end{document}