我想要 1)Robert
在参数不存在时打印,以及 2)Alice
在参数与某个字符串匹配时打印或者Robert
在参数与某个字符串不匹配时打印。
\documentclass[a4paper,10pt]{article}
\ExplSyntaxOn
\NewDocumentCommand {\myCommand} { O{} }
{
Alice (When #1 is Girl)
Robert (otherwise)
}
\ExplSyntaxOff
\begin{document}
\myCommand[Girl]
\end{document}
答案1
如果参数包含 d 中的任意数量的 p 和 c,则 Alice 为 Alice,否则 Robert
\documentclass[a4paper,10pt]{article}
\ExplSyntaxOn
\NewDocumentCommand {\myCommand} {O{}}
{
\regex_match:nnTF
{dp*c} {#1}
{ Alice }
{ Robert }
}
\ExplSyntaxOff
\begin{document}
1 \myCommand
2 \myCommand[wibble]
3 \myCommand[xxxdpc]
4 \myCommand[dppppppppppc]
\end{document}
或者在编辑后遇到完全不同的问题,使用字符串相等性测试Girl
\documentclass[a4paper,10pt]{article}
\ExplSyntaxOn
\NewDocumentCommand {\myCommand} {O{}}
{
\str_if_eq:nnTF
{#1} {Girl}
{ Alice }
{ Robert }
}
\ExplSyntaxOff
\begin{document}
1 \myCommand
2 \myCommand[wibble]
3 \myCommand[Girl]
4 \myCommand[xxxGirlxxx]
\end{document}