基本 xparse 似乎不起作用

基本 xparse 似乎不起作用

我似乎无法让基本的 xparse 工作。这看起来像是一个错误,但这个例子感觉太基础了,我觉得一定是有什么地方我不理解如何使用它。这是我的测试示例:

\documentclass{article}
\usepackage{xparse}

\NewDocumentCommand\Row{O{} O{}}{
    Token1=#1 Token2=#2\par
}

\begin{document}
    \Row{A}{B} \par
    \Row{C}    \par
    \Row       \par
\end{document}

输出结果为

Token1= Token2=
AB
Token1= Token2=
C
Token1= Token2=
  1. 仅当未提供令牌时,我才想要空的 {} 值(这就是我认为的“O{}”的意思),所以不确定为什么我只看到前两种情况的默认值。

  2. 为什么输出中会出现第 2 行和第 3 行?这好像我实际上声明了

\NewDocumentCommand\Row{O{} O{}}{
  Token1=#1 Token2=#2\par
  **#1#2**
}

但事实并非如此。

答案1

使用

\documentclass{article}
\usepackage{xparse}

\NewDocumentCommand\Row{O{} O{}}{
    Token1=#1 Token2=#2\par
}

\begin{document}
    \Row[A][B] \par
    \Row[C]    \par
    \Row       \par
\end{document}

可选参数应该放在方括号中。

您使用的方式是,它\Row{A}{B}被视为\Row没有可选参数的命令,后跟文本 {A}{B},它将被排版为 AB。

相关内容