Befehl mit Sternchen definieren

Befehl mit Sternchen definieren

Ich habe einen Befehl, der mehrere Argumente annimmt, von denen eines ein Stern ist:

\NewDocumentCommand{\foo}{ s m m }{
    \IfBooleanTF{#1}{Asterisk is here.}{Asterisk is not here.} #2 #3.
}

Ich möchte einen weiteren Befehl definieren, der wie der erste funktioniert, aber mit einigen vordefinierten Argumenten, wie

\NewDocumentCommand{\baz}{ s m }{
    \IfBooleanTF{#1}{
        \foo*{#2}{a}
    }{
        \foo{#2}{a}
    }
}

\bazund \baz*arbeiten auf die gleiche Weise, also möchte ich irgendwie definieren, \bazohne den {#2}{a}Teil zweimal zu wiederholen. Ich habe versucht

\NewDocumentCommand{\baz}{ s m }{
    \expandafter\foo\IfBooleanT{#1}{*}{#2}{a}
}

aber es funktioniert nicht. Komplette MWE

\documentclass{article}

\usepackage{xparse}

\NewDocumentCommand{\foo}{ s m m }{
    \IfBooleanTF{#1}{Asterisk is here.}{Asterisk is not here.} #2 #3.
}

\NewDocumentCommand{\baz}{ s m }{
    \IfBooleanTF{#1}{
        \foo*{#2}{a}
    }{
        \foo{#2}{a}
    }
}

\begin{document}

    \baz{b}

    \baz*{c}

\end{document}

Antwort1

Da TeX mit Makroerweiterung arbeitet, ist es nicht notwendig,alleder Argumente für \fooim Konditional, sodass wir nur den eindeutigen Teil haben können:

\documentclass{article}

\usepackage{xparse}

\NewDocumentCommand{\foo}{ s m m }{%
    \IfBooleanTF{#1}{Asterisk is here.}{Asterisk is not here.} #2 #3.%
}

\NewDocumentCommand{\baz}{ s m }{%
    \IfBooleanTF{#1}%
      {\foo*}%
      {\foo}%
        {#2}{a}%
}

\begin{document}

    \baz{b}

    \baz*{c}

\end{document}

verwandte Informationen