Ich möchte den Befehl A\!\!_B\!C
im Mathematikmodus als Makro definieren und verwende Folgendes:
\newcommand{\cmp}[3]{#1\!\!_#2\!#3}
Leider erhalte ich die Fehlermeldung, dass etwas {}
fehlt. Für jeden Hinweis bin ich dankbar.
Gibt es eine Möglichkeit, eine Mathematica-ähnliche Syntax mit nur einem Argument zu erhalten, indem man es durch ein Komma trennt?
Antwort1
Zum Beispiel:
\def\cmp#1{\cmpA#1,}
\def\cmpA#1,#2,#3,{{#1}\!\!_{#2}\!{#3}}
$a = \cmp{A,B,C}$
Aber ich verstehe nicht, wozu du diesen hässlichen Buchstabenhaufen brauchst.
Antwort2
Denken Sie daran, Ihrem ursprünglichen Befehl drei Argumente anzugeben.
Mit package xparse
können Sie ein Argument an einem bestimmten Symbol (hier das Komma) teilen und so bei der Syntax bleiben, die Sie von Mathematica kennen.
Die Ausgabe sieht zwar etwas seltsam aus, aber das ist eine andere Sache.
\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}