Makro mit mehr als einem Argument und `mhchem'

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Makro mit mehr als einem Argument und `mhchem'

von cgnieder » Sa 14. Mai 2011, 22:12

Hi,

ich verstehe die Antwort nicht... dass es mit einem Argument geht, aber mit zweien nicht, schrieb ich ja schon.

Außerdem sind bei Dir \testC und \testD identisch. Ist das Absicht?

Grüße,
Clemens

von Mechanicus » Sa 14. Mai 2011, 22:07

HI,
\documentclass{scrartcl}
\usepackage[version=3]{mhchem}
\begin{document}

\def\testA#1{#1}
\def\testB#1#2{#1#2}

\newcommand*{\testC}[1]{#1}
\newcommand*{\testD}[1]{#1}

Geht:
\ce{ \testA{Na} + \testC{Cl} }

Geht nicht:
\ce{ \testB{Na}{} + \testD{Cl}{} }
\end{document}

Makro mit mehr als einem Argument und `mhchem'

von cgnieder » 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.
\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}
Verwendet man das zweite Argument tatsächlich, dann gibt es verschiedene Varianten:
\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}
Weiß jemand Rat?

Nach oben