测试 \Foo 与 \Foo*

测试 \Foo 与 \Foo*

这是这个帖子其问题陈述(大致):创建一个宏,保存一个宏和选项(\includepdf[angle=90, scale=0.85]),以便能够稍后调用它(大概是重复调用)。现在我想做同样的事情,但可以选择使用星号。(\newwatermark*[page=\thepage,angle=45])。现在,我正在尝试创建一个函数,该函数以宏和星号(可选)作为参数,并且无论星号是否存在,都会分派到不同的实现。下面的代码永远编译……

PS:最好有包装expl3

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
    
\cs_new_protected:Npn \__erw_test:w #1 #2 \q_stop
{
  \token_if_eq_charcode:NNTF *#2{T}{F}
}

\cs_new_protected:Nn \__erw_test:n
{
  \__erw_test:w #1 \q_stop \q_stop
}

\NewDocumentCommand\Foo{s}
{
  foo\IfBooleanT{#1}{star}
}

\ExplSyntaxOff

\begin{document}

\ExplSyntaxOn


%\peek_charcode:NTF* { star } { no~star }
    

\__erw_test:n{\Foo}
%\__erw_test:n{\Foo*}


\ExplSyntaxOff


\end{document}

答案1

我不确定我是否明白你想要什么......

\documentclass{article}

\ExplSyntaxOn
    
\cs_new_protected:Npn \__erw_test:w #1 #2 \q_stop
  { \str_if_eq:nnTF { * } { #2 } { True } { False } }

\cs_new_protected:Nn \__erw_test:n { \__erw_test:w #1 \q_stop }

\ExplSyntaxOff


\begin{document}

texte

\ExplSyntaxOn    
\__erw_test:n{\sqrt} ~   
\__erw_test:n{\sqrt*}    
\ExplSyntaxOff

\end{document}

相关内容