Gostaria de definir o comando A\!\!_B\!C
em modo matemático como macros e estou usando o seguinte:
\newcommand{\cmp}[3]{#1\!\!_#2\!#3}
Infelizmente recebo um erro informando que está {}
faltando. Qualquer dica é apreciada.
Existe alguma possibilidade de obter uma sintaxe semelhante ao Mathematica com apenas um argumento, dividindo-o por vírgula?
Responder1
Por exemplo:
\def\cmp#1{\cmpA#1,}
\def\cmpA#1,#2,#3,{{#1}\!\!_{#2}\!{#3}}
$a = \cmp{A,B,C}$
Mas não entendo por que você precisa daquele amontoado feio de letras.
Responder2
Com o seu comando original, você deve se lembrar de fornecer três argumentos.
Com package xparse
você pode dividir um argumento em um determinado símbolo (aqui a vírgula) e, portanto, manter a sintaxe que você conhece do Mathematica.
A saída parece um pouco estranha, mas isso é um assunto diferente.
\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}