Me gustaría definir el comando A\!\!_B\!C
en modo matemático como macros y estoy usando lo siguiente:
\newcommand{\cmp}[3]{#1\!\!_#2\!#3}
Desafortunadamente me sale un error que faltan {}
. Se agradece cualquier pista.
¿Existe alguna posibilidad de obtener una sintaxis similar a Mathematica con un solo argumento, dividiéndolo por coma?
Respuesta1
Por ejemplo:
\def\cmp#1{\cmpA#1,}
\def\cmpA#1,#2,#3,{{#1}\!\!_{#2}\!{#3}}
$a = \cmp{A,B,C}$
Pero no entiendo por qué necesitas ese feo montón de letras.
Respuesta2
Con tu comando original debes recordar darle tres argumentos.
Con el paquete xparse
puede dividir un argumento en un símbolo determinado (aquí la coma) y, por lo tanto, seguir con la sintaxis que conoce de Mathematica.
Sin embargo, el resultado parece un poco extraño, pero este es un asunto 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}