是否可以使用 {} 作为可选 xparse 参数的分隔符?

是否可以使用 {} 作为可选 xparse 参数的分隔符?

我正在重新定义 beamer 块以使用 tcolorboxes。

我想让标题成为可选的,但想保留花括号。

我怎样才能实现这个目标?

我尝试过这个:

\documentclass{article}

\usepackage{fontspec}
\usepackage{xparse}

\NewDocumentCommand\test{d{}}{Hello\IfValueT{#1}{~#1}!}

\begin{document}
  \test
  \test{Bernd}
\end{document}

和这个

\documentclass{article}

\usepackage{fontspec}
\usepackage{xparse}

\NewDocumentCommand\test{d\{\}}{Hello\IfValueT{#1}{~#1}!}

\begin{document}
  \test
  \test{Bernd}
\end{document}

两者都不起作用,第一个会引发错误(使用单个标记作为分隔符),第二个只是忽略了参数。

答案1

xparse仔细阅读手册,提示:g说明符

\documentclass[a4paper]{memoir}
\usepackage{xparse}
\NewDocumentCommand\test{ g }{
  \IfNoValueTF{#1}{Test}{#1}
}
\begin{document}

\test

\test{Hmm}

\end{document}

相关内容