
\newcommand
一方の出力を別の入力に渡す方法を知りたいです\newcommand
。例:
\newcommand{\bra}[1]{$\langle{#1}|$}
\newcommand{\comm}[2]{$ \left[{#1},{#2}\right]={#1}{#2}-{#2}{#1}$}
\comm{\bra{X},\bra{Y}}
返される値:
$\langle X|\langle Y| - \langle Y|\langle X|$
十分シンプルに思えますが、正しい構文がわからず、同様の質問を見つけることができません。
ご意見ありがとうございます。
ブライアン
答え1
カンマで区切られた引数リストを使用する場合は、\comm
次のようにします。
\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}
答え2
考えられる定義としては
\newcommand{\bra}[1]{\langle#1\mathclose{|}}
\newcommand{\comm}[2]{[#1,#2]=#1#2-#2#1}
例
\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}
注意:
\newcommand{\foo}[2]{...#1...#2...}
それを呼ぶ必要があります
\foo{first}{second}
および は使用しないでください。これらのコマンドの定義では を\foo{first,second}
使用しないでください。これらは数式内で使用されることが想定されています。$
しかし、これにはもっと良い方法があります。
\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}
\comm
およびは、\bra
区切り文字のサイズを変更するためのオプションの引数を受け入れることに注意してください。また、 および を使用して自動サイズ設定を行う\comm*
こともできます\bra*
(注意して使用してください)。