A\!\!_B\!C
数式モードでコマンドをマクロとして定義したいのですが、以下を使用しています。
\newcommand{\cmp}[3]{#1\!\!_#2\!#3}
残念ながら、不足しているというエラーが表示されます{}
。ヒントがあればお願いします。
カンマで区切って、引数を 1 つだけ持つ Mathematica のような構文を取得する可能性はありますか?
答え1
例えば:
\def\cmp#1{\cmpA#1,}
\def\cmpA#1,#2,#3,{{#1}\!\!_{#2}\!{#3}}
$a = \cmp{A,B,C}$
しかし、なぜ醜い文字の塊が必要なのか理解できません。
答え2
元のコマンドでは、3 つの引数を指定することを覚えておく必要があります。
パッケージを使用すると、xparse
1 つの引数を特定のシンボル (ここではコンマ) で分割できるため、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}