Definiert man einen Befehl (mit \def oder \newcommand) und setzt in dann im mhchem-Befehl \ce{} ein, dann funktioniert er, wenn man ihm ein Argument gibt.
Hat er zwei Argumente, dann funktioniert er auf wundersame Weise nicht.
\documentclass{scrartcl} \usepackage[version=3]{mhchem} \begin{document} \def\testA#1{#1} \def\testB#1#2{#1} \newcommand*{\testC}[1]{#1} \newcommand*{\testD}[2]{#1} Geht: \ce{ \testA{Na} + \testC{Cl} } Geht nicht: \ce{ \testB{Na}{} + \testD{Cl}{} } \end{document}
\documentclass{scrartcl} \usepackage{tikz} \usepackage[version=3]{mhchem} \begin{document} \def\testA#1#2{#1 + #2} \def\testB#1#2{#2#1} \def\testC#1#2{\tikz\node(#1){#2};} % Geht: \ce{ \testA{Na}{Cl} } % Verdreifacht Argumente: \ce{ \testB{Na}{Cl} } % Liefert Fehlermeldung "extra }, or forgotten $": \ce{ \testC{Na}{Cl} } \end{document}