Rückgabewerte von einem \newcommand an einen anderen \newcommand übergeben?

Rückgabewerte von einem \newcommand an einen anderen \newcommand übergeben?

\newcommandIch würde gerne wissen, wie ich die Ausgabe eines an die Eingabe eines anderen weiterleiten kann \newcommand. Beispiel:

\newcommand{\bra}[1]{$\langle{#1}|$}
\newcommand{\comm}[2]{$ \left[{#1},{#2}\right]={#1}{#2}-{#2}{#1}$}

\comm{\bra{X},\bra{Y}}sollte zurückgeben:

$\langle X|\langle Y| - \langle Y|\langle X|$

Scheint einfach genug zu sein – ich komme nur nicht auf die richtige Syntax oder finde keine ähnliche Frage, die ich als Grundlage nehmen könnte.

Danke für deinen Beitrag.

Brian

Antwort1

Wenn Sie für Ihre Argumente eine durch Kommas getrennte Liste verwenden möchten, \commkönnen Sie Folgendes tun:

\documentclass{article}
\newcommand{\bra}[1]{\langle{#1}|}
\newcommand{\comm}[1]{\tempcomm(#1)}
\def\tempcomm(#1,#2){\left[{#1},{#2}\right]={#1}{#2}-{#2}{#1}}

\begin{document}
\[
\comm{\bra{X},\bra{Y}}
\]
\end{document} 

Bildbeschreibung hier eingeben

Antwort2

Eine mögliche Definition wäre

\newcommand{\bra}[1]{\langle#1\mathclose{|}}
\newcommand{\comm}[2]{[#1,#2]=#1#2-#2#1}

Beispiel

\documentclass{article}

\newcommand{\bra}[1]{\langle#1\mathclose{|}}
\newcommand{\comm}[2]{[#1,#2]=#1#2-#2#1}

\begin{document}

$\bra{X}$

$\comm{X}{Y}$

$\comm{\bra{X}}{\bra{Y}}$

\end{document}

Bildbeschreibung hier eingeben

Beachten Sie, dass Sie bei

\newcommand{\foo}[2]{...#1...#2...}

man muss es nennen als

\foo{first}{second}

und nicht als . Sie sollten in den Definitionen dieser Befehle \foo{first,second}nicht verwenden , die in einer Formel verwendet werden sollen.$

Es gibt hierfür jedoch bessere Möglichkeiten.

\documentclass{article}

\usepackage{mathtools}

\DeclarePairedDelimiter{\bra}{\langle}{|}
\DeclarePairedDelimiterX{\comm}[2]{[}{]}{#1,#2}
\newcommand{\commx}[2]{#1#2-#2#1}

\begin{document}

$\bra{X}$

$\comm{X}{Y}=\commx{X}{Y}$

$\comm[\big]{\bra{X}}{\bra{Y}}=\commx{\bra{X}}{\bra{Y}}$

\end{document}

Beachten Sie, dass „ \commund“ \braein optionales Argument zum Ändern der Größe der Trennzeichen akzeptiert. Sie können auch „ \comm*und“ \bra*zur automatischen Größenanpassung verwenden (mit Vorsicht verwenden).

Bildbeschreibung hier eingeben

verwandte Informationen