我想將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}