![具有多个可选参数的环境](https://linux22.com/image/469695/%E5%85%B7%E6%9C%89%E5%A4%9A%E4%B8%AA%E5%8F%AF%E9%80%89%E5%8F%82%E6%95%B0%E7%9A%84%E7%8E%AF%E5%A2%83.png)
#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]
通过这种结构,可以独立设置这两个选项。