Kombinieren zweier benutzerdefinierter Befehle

Kombinieren zweier benutzerdefinierter Befehle

Beim Eintippen meines Berichts ist mir ein Problem aufgefallen. Ich weiß nicht, wie ich es beheben kann. Das Problem ist folgendes:

Ich habe zwei benutzerdefinierte Befehle wie folgt definiert:

\newcommand{\slr}[1][n]{\ensuremath{{\bf SL}(#1,\mathbb{R})}}

\newcommand{\lie}[1][G]{\ensuremath{{\bf L}(#1)}}

Der erste Befehl gibt also eine Ausgabe wie aus ${\bf SL}(n,\mathbb{R})$und der zweite Befehl eine Ausgabe wie ${\bf L}(G)$. Hier $n$und $G$sind jeweils die Standardargumente.

Wenn ich diese beiden Befehle nun zusammen verwende, hoffe ich,

$${\bf L}({\bf SL}(2,\mathbb{R}))$$

Aus irgendeinem Grund bekomme ich jedoch

$$ {\bf L}({\bf SL}(2),\mathbb{R})$$

Irgendwelche Ideen, was hier los ist?

Antwort1

Das Problem in \lie[\slr[2]]besteht darin, dass das optionale Argument als \lieangenommen wird \slr[2. Sie können das Problem mit lösen xparse:

\documentclass{article}
\usepackage{amsmath,amssymb,xparse}

\DeclareMathOperator{\slrop}{\mathbf{SL}}
\DeclareMathOperator{\lieop}{\mathbf{L}}

\NewDocumentCommand{\slr}{O{n}}{\slrop(#1,\mathbb{R})}
\NewDocumentCommand{\lie}{O{G}}{\lieop(#1)}

\begin{document}
Here it is: $\lie[\slr]$

With optional argument: $\lie[\slr[2]]$
\end{document}

Bildbeschreibung hier eingeben

Ich habe es entfernt \ensuremath, da ich glaube, dass es Ihnen nichts bringt, \lieim Text anstelle von zu verwenden $\lie$. Im Gegenteil, ich bin der festen Überzeugung, dass die letztere Form viel besser ist, da Mathematik immer als Mathematik behandelt wird.

Antwort2

Ich kann es nicht sehen:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\newcommand\slr[1][n]{\ensuremath{\mathbf{SL}(#1,\mathbb{R})}}
\newcommand\lie[1][G]{\ensuremath{\mathbf{L}}(#1)}

\begin{document}

\[ {\bf L}({\bf SL}(2,\mathbb{R})) \]

\[ \lie[{\slr[2]}] \]

\[ \slr[\lie] \]

\end{document}

Bildbeschreibung hier eingeben

Das optionale Argument müssen Sie in Klammern setzen:[{\slr[2]}]

verwandte Informationen