由 \NewTColorBox 定义的 theobox 盒子和由 \NewDocumentEnvironment 定义的 theorem 环境,二者的参数格式是完全一致的,都是 o m +o 。
要把三个参数改为两个参数,并去除参数 #2 ,那么只需要把 theobox 盒子的定义中的 #2 全部改为固定文本 考点 ,然后把 #3 全部改为 #2 ;同时将 theorem 环境的定义中的 [#2] 删除,并将 #3 改为 #2 。最后将两个定义中的参数格式对应定义分别改为 o +o 即可。
然而此时还有可优化空间。修改后的 theorem 环境中定义的 #2 实际上是环境的主体,应当使用 +b ,需要将 [#2] 改为 #2 ,参数仍然为 2 个,这样一来,修改后的 theobox 盒子的定义中的 #2 的空值判断也就没有意义了,应当删除这行空值判断代码,所以参数被优化为仅有 1 个。
主要修改代码如下:
\NewTColorBox{theobox}{o}{%
enhanced,
frame empty,
interior empty,
coltitle = white,
fonttitle = \bfseries,
colbacktitle = mygreen,
extras broken = {frame empty,interior empty},
borderline = {0.25mm}{0mm}{mygreen},
rounded corners,
breakable = true,
top = 4mm,
before skip = 3.5mm,
attach boxed title to top left = {yshift=-3mm,xshift=5mm},
boxed title style = {boxrule=0pt,sharp corners=all},varwidth boxed title,
IfNoValueTF = {#1}{title=考点~\thetheorem.}{title=考点~\thetheorem\kern1em~#1}}
\NewDocumentEnvironment{theorem}{o +b}{%
\refstepcounter{theorem}\begin{theobox}[#1]#2}{\end{theobox}}代码测试:
\begin{theorem}[素质教育的内涵]
\begin{enumerate}
\item 素质教育以提高国民素质为根本宗旨。
\item 素质教育是面向全体学生的教育。
\item 素质教育是促进学生全面地、生动活泼地、可持续地发展的教育。
\item 素质教育是促进学生个性发展的教育。
\item 素质教育要着力提高学生的社会责任感、创新精神和实践能力。
\end{enumerate}
\end{theorem}效果图如下:




















问 把3个参数的tcolorbox和newdocumentenvironment换成2个参数