Makro mit mehr als einem Argument und `mhchem'
Verfasst: Sa 14. Mai 2011, 19:07
Folgendes Problem lässt mich etwas ratlos dastehen:
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.
Verwendet man das zweite Argument tatsächlich, dann gibt es verschiedene Varianten:
Weiß jemand Rat?
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}