#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]
通过这种结构,可以独立设置这两个选项。