比如\parbox[位置][高度][内容位置]{宽度}{盒子内容},有三个可选参数,其中[位置]与[内容位置]的格式是一样的,如果我写下\parbox[b]{3cm}{text},tex是怎么识别[b]是赋值给[位置]还是[内容位置]的呢?如果是按照从左到右的顺序来赋值,那么应该是赋值给[位置]了.那么问题来了,如果我只想给[内容位置]赋值同时另两个可选参数使用缺省值,应该怎么弄?
与此类似的问题也发生在使用xparse宏包的\NewDocumentCommand的时候,比如定义一个名为\mytestcom的命令:
\NewDocumentCommand{\mytestcom}{m O{a} O{b} m}{#1#2#3#4}
其中两个可选参数的格式是一样的,都是字母.如果我想得到字符串"xacz",用\mytestcom{x}[c]{z}是不行的,我能想到的办法是用D格式通过不同的定界符来区分可选参数,这样确实也行得通.想问一下这个解决思路是对的吗?算得上是好的解决方案吗?我不满意的地方在于这个方案需要记住每个参数对应的定界符,并不是那么的"智能化".
--
修改:Torri FROM 1.203.117.*
FROM 1.203.117.*