| 
                         Innerhalb eines komplexeren Befehls benötige ich die  Open in Online-Editor 
\documentclass{article} \usepackage{xparse} \ExplSyntaxOn \NewDocumentCommand \Unterklammer {m m} { \underbrace{#1}_{#2} } \ExplSyntaxOff \begin{document} Direkt eingegebener mathematischer Ausdruck mit Unterklammer: \[\underbrace{x^2+4}_{f(x)}\] Mittels xparse-Befehl eingegebener mathematischer Ausdurck mit Unterklammer: \[\Unterklammer{x^2+4}{f(x)}\] \end{document} Das Minimalbeispiel funktioniert zwar, wenn   | 
                
| 
                                     Ich würde gar nicht versuchen, dem Unterstrich wieder seine „ursprüngliche“ Bedeutung (also Kategorie-Code 8) zu geben, sondern auf die verfügbaren Alternativen zugreifen. LaTeX definiert (in  Open in Online-Editor 
\let\sp=^ \let\sb=_ was bedeutet, dass man in Makros jederzeit auf  Open in Online-Editor 
\c_math_superscript_token \c_math_subscript_token Beide Alternativen dürften in Deinem Fall funktionieren: Open in Online-Editor 
\documentclass{article} \usepackage{expl3,xparse} \ExplSyntaxOn \cs_new:Npn \my_math_command:nn #1#2 { {#1} \sb {#2} } \cs_new:Npn \my_other_math_command:nn #1#2 { {#1} \c_math_subscript_token {#2} } \NewDocumentCommand \mathone {mm} { \my_math_command:nn {#1} {#2} } \NewDocumentCommand \mathtwo {mm} { \my_other_math_command:nn {#1} {#2} } \ExplSyntaxOff \begin{document} $\mathone{a}{b}$ $\mathtwo{a}{b}$ \end{document} PS: beachte, dass ich im Beispiel auf die in l3 erwünschte Trennung von Dokumentenebene und Codeebene Rücksicht genommen habe. Das heißt hier konkret: für jeden Befehl auf Dokumentenebene gibt es eine entsprechende Funktion der Codeebene, mit der der Dokumentenbefehl definiert wird.  |