具有多个可选参数的环境

具有多个可选参数的环境

#4我有以下环境,它有四个参数,后两个是可选的。一切看起来都符合预期。在我的案例中,我是否需要测试?

\NewDocumentEnvironment{Statement}{mmoO{orange}}
  {
    \IfNoValueTF {#3}
        { \noindent #1 \ #2 \, }
      { \noindent #1 \ #2 \ (#3)
        \vspace{0.1cm} \par \noindent \ignorespaces }
    \color{#4}
  }
  { \vspace{0.3cm} }

答案1

您不必测试,#4因为它永远不会为空,它总是会有一个值,但是您不能在不设置的情况下将该值从橙色更改,#3因为您已经将相邻选项设为#3可选#4

最好是做颜色#1

\NewDocumentEnvironment{Statement}{O{orange}mmo}

然后:

没有标题的蓝色声明

\begin{Statement}[blue]{aa}{bb}

带有(标题)的红色声明

\begin{Statement}[red]{aa}{bb}[title]

具有默认颜色和标题的语句

\begin{Statement}{aa}{bb}[title]


通过这种结构,可以独立设置这两个选项。

相关内容