하나의 \newcommand에서 다른 \newcommand로 반환 값을 전달하시겠습니까?

하나의 \newcommand에서 다른 \newcommand로 반환 값을 전달하시겠습니까?

\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*

여기에 이미지 설명을 입력하세요

관련 정보