A\!\!_B\!C
수학 모드의 명령을 매크로로 정의하고 싶습니다 . 다음을 사용하고 있습니다.
\newcommand{\cmp}[3]{#1\!\!_#2\!#3}
불행히도 누락이 있다는 오류가 발생합니다 {}
. 어떤 힌트라도 감사하겠습니다.
하나의 인수만으로 Mathematica와 같은 구문을 쉼표로 나누어 얻을 수 있는 가능성이 있습니까?
답변1
예를 들어:
\def\cmp#1{\cmpA#1,}
\def\cmpA#1,#2,#3,{{#1}\!\!_{#2}\!{#3}}
$a = \cmp{A,B,C}$
그런데 이해가 안 돼요. 왜 그 추악한 글자 덩어리가 필요한가요?
답변2
원래 명령에는 세 가지 인수를 제공해야 한다는 것을 기억해야 합니다.
패키지를 사용하면 xparse
주어진 기호(여기서는 쉼표)에서 하나의 인수를 분할할 수 있으므로 Mathematica에서 알고 있는 구문을 사용할 수 있습니다.
출력이 약간 이상해 보이지만 이는 다른 문제입니다.
\documentclass{article}
\usepackage{xparse}
\newcommand{\cmp}[3]{#1\!\!_{#2}\!#3}
\NewDocumentCommand{\cmpA}{ >{\SplitArgument{2}{,}} m}
{\cmp#1}%<- feeding the three arguments to the original command
\begin{document}
\[ \cmp{A}{B}{C} \]
\[ \cmpA{A,B,C} \]
\end{document}