假设我创建一个命令xparse
NewDocumentCommand{\myCommand}{ m O{} }{ #1 and #2 }
我可以稍后在文档中更改 arg two 的默认值吗?也许可以按照以下方法操作?
\def\@myCommand@args@II{New Default}
(II 表示第二个参数)
这样稍后\myCommand{Hello}
就会产生“Hello and New Default”
答案1
你可能会
\NewDocumentCommand{\myCommand}{ m O{\DefaultArgForMyCommand} }{ #1 and #2 }
\NewDocumentCommand{\DefaultArgForMyCommand}{}{}% initially empty
然后做
\RenewDocumentCommand{\DefaultArgForMyCommand}{}{whatever}
当您希望可选参数改变其默认值时。
但是,除非您毫无疑问地知道\DefaultArgForMyCommand
任何给定点的值是多少(我不确定您是否可以),否则我不建议这样做。