Reaktionsgleichungen mit Chemmacros?

Formelsatz für Mathematik, Naturwissenschaften und Technik


scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

Reaktionsgleichungen mit Chemmacros?

Beitrag von scaer93 »

Hallo,

ich habe ein Problem mit Reaktionsgleichungen, die ich mit Hiefe des Chemmacros-Paket verwirkliche, da ich gerne für diese eine eigene Zählung haben wollte. Also unabhängig von mathematischen Formeln.

Ich würde gerne die Gleichung so aussehen lassen:
\el + A^{q+}  -> [ A^{(q-1)+} ]^{**} -> A^{q+1} + \el 
Leider wird das, was in den eckigen Klammern [] ist dann auf den Reaktionspfeil geschrieben. Das will ich aber nicht. Die ** beschreiben einen Angeregten Zustand, weswegen es klar ist, dass das nicht auf den Pfeil sollte. Außerdem wird das + nach \el hochgestellt, was ich auch nicht will.

Wie bekomme ich das hin? Ich hoffe auf eure kompetente Hilfe...
Runde Klammern sind nicht möglich, da ich die für etwas anderes benötige in diesen Gleichungen.

Minimalbeispiel:
\documentclass[
    a4paper,					% Papierformat
    abstract=on,		   		% Abstract mit Überschrift
    %index=totoc,				% unnummeriete Index-Überschrift
    numbers=noenddot,	    	% kein Punkt nach Kapitelnummer
    parskip=half	,			% keine Absatzeinzüge, Sprung zwischen Absätzen
    %oneside,          	    	% Einseitig
    twoside,           	    	% Zweiseitig
    12pt,              	        % Schriftgröße
    pagesize=auto,     	    	% schreibt die Papiergröße korrekt ins Ausgabedokument
    headsepline=on,       		% Linie unter der Kopfzeile
]{scrreprt}


% Legt die Zeichenkodierung fest, z.B UTF8
\usepackage[utf8x]{inputenc}  
% Verwendung der Zeichentabelle T1, für deutschsprachige Dokumente sinnvoll                                                
\usepackage[T1]{fontenc} 
% Silbentrennung nach neuer deutscher und englischer Rechtschreibung                                                     
\usepackage[ngerman,english,frenchb]{babel} 
% Mathepaket                                          
\usepackage{amsmath}       
% Ermöglicht die Nutzung von \SI[per-mode=fraction]{1,345}{\coulomb\per\mole}                                                
\usepackage[per=fraction,
	decimalsymbol=comma,
    loctolang={DE:ngerman,UK:english},
    ]{siunitx}
% Weitere Mathe-Pakete:
\usepackage{amssymb}
% Chemie-Pakete
\usepackage[version=3,arrows=pgf-filled]{mhchem} 
\usepackage{chemfig}
\usepackage{mathtools} 

% chemmacros und chemformula ohne ghsystem
%\chemsetup[option]{circled=formal}
%\chemsetup[option]{language=english} 
\usepackage[ghsystem=false]{chemmacros}
   

% #########################
% # Beginn des Dokumentes #
% #########################

\begin{document}

% Schreibsprache Deutsch
\selectlanguage{ngerman}                                   

% 1 1/2 facher Zeilenabstand
\onehalfspacing       

% Schriftsatz                                     
\addtokomafont{sectioning}{\rmfamily}                      

% Nummerierung der Formeln entsprechend der Chapter (z.B. 1.1)
\numberwithin{equation}{chapter}    

% Nummerierung der Reaktions-Formeln nach Chapter (R 1.1)
\renewtagform{reaction}[R ]{(}{)}                       

% ###################################
% # Den Inhalt der Arbeit einbinden #
% ###################################

Die folgende Formel ist eine einfache Reaktionsgleichung. Leider wird das „+“ nach dem Elektron beim Elektron als Exponent angezeigt, was ich nicht will.

\begin{reactions} 
   \el + A^{q+}  -> A^{q+} + \el 
\label{rgl:dir-elas-str}
\end{reactions} 

Diese R-Gleichung hat neben dem Problem mit dem + und dem Elektron zusätzlich das Problem, dass das in […] Klammern auf den Reaktionspfeil geschrieben wird.

\begin{reactions} 
   \el + A^{q+} -> [ A^{(q-1)+} ]^{**} -> A^{q+1} + \el 
\end{reactions}


% #######################
% # Ende des Dokumentes #
% #######################

\end{document}

Curryhunter
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 17. Mär 2015, 15:47

Beitrag von Curryhunter »

Moin,
ich erhalte leider immer einen Fehler bei Deinem Beispiel (unknown control sequence \chemformula, wo ich grad nicht weiss, wo die herkommt). Daher aus dem Kopf geraten:
Beide Effekte die du beschreibst, sind normales Verhalten des mhchem-Pakets. Das +, welches einem Buchstaben bzw. Molekül folgt wird als Ladung interpretiert. Hier sollte es reichen, wenn Du den \el Befehl als \el\ schreibst.
Weiterhin werden die eckigen Klammern als Beschriftung des Pfeils inerpretiert. Auch dies normales Verhalten des mhchem-Pakets. Probier mal, ob du die als \[ und \] schreiben kannst. Oder prüfe, ob du mhchem überhaupt benötigst.

Grüße
Stefan

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Re: Reaktionsgleichungen mit Chemmacros?

Beitrag von cgnieder »

scaer93 hat geschrieben:Leider wird das, was in den eckigen Klammern [] ist dann auf den Reaktionspfeil geschrieben. Das will ich aber nicht.
Um das Scannen des Pfeils nach optionalen Argumenten zu unterdrücken, kannst Du ein \relax einfügen oder direkt vor den eckigen Klammern eine leere Gruppe {}:
\begin{reaction}
   \el{} + A^{$q$+} -> \relax [A^{$(q-1)$+}]^{**} -> A^{$q$+} + \el
\end{reaction}

\begin{reaction}
   \el{} + A^{$q$+} -> {}[A^{$(q-1)$+}]^{**} -> A^{$q$+} + \el
\end{reaction}
scaer93 hat geschrieben:Diese R-Gleichung hat neben dem Problem mit dem + und dem Elektron zusätzlich das Problem, dass das in […] Klammern auf den Reaktionspfeil geschrieben wird.
Nach Befehlen isst TeX Leerraum auf(siehe Warum verschwindet der Leerraum nach selbst definierten Befehlen?). Daher sieht chemmacros \el + als \el+ und ein Plus am Ende einer Formel wird als Ladung interpretiert. Daher muss man LaTeXs normales Rezept befolgen, wenn man den Leerraum möchte: eine leere Gruppe nach dem Befehl: \el{} +

Außerdem muss das \label vor dem Parsen geschützt werden, um das interpretieren der Bindestriche als Bindung zu unterdrücken. Dann verschwindet auch der Fehler, den Stefan beobachtet. (Ich habe übrigens das q in Mathemodus gepackt, da es eine Variable ist.)
\documentclass{article}

\usepackage[utf8]{inputenc}% x weglassen! (fast immer unnötig, u.U. aber problematisch!)
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{chemmacros}

\renewtagform{reaction}[R ]{(}{)}

\begin{document}

\begin{reaction}
   \el{} + A^{$q$+}  -> A^{$q$+} + \el{}
   "\label{rgl:dir-elas-str}"
\end{reaction}

\begin{reaction}
   \el{} + A^{$q$+} -> \relax [A^{$(q-1)$+}]^{**} -> A^{$q$+} + \el
\end{reaction}

\begin{reaction}
   \el{} + A^{$q$+} -> {}[A^{$(q-1)$+}]^{**} -> A^{$q$+} + \el
\end{reaction}

\end{document}
Bild

Grüße
Dateianhänge
reactions.png
reactions.png (10.33 KiB) 2895 mal betrachtet
Clemens
Paketauthor

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Curryhunter hat geschrieben:Moin,
ich erhalte leider immer einen Fehler bei Deinem Beispiel (unknown control sequence \chemformula, wo ich grad nicht weiss, wo die herkommt).
Die vollständige Meldung lautet
! Undefined control sequence.
<argument> rgl:dir\chemformula 
                               _bond:n {single}elas\chemformula _bond:n {sin...
l.8 ...las\chemformula_bond:n {single}str}{{1}{1}}
Aus dem dir vor dem Befehl und dem elas etwas später wird klar, dass es vom label rgl:dir-elas-str kommt, siehe meine Antwort für die Ursache und Lösung dieses Problems.
Curryhunter hat geschrieben:Beide Effekte die du beschreibst, sind normales Verhalten des mhchem-Pakets.
Hast Du Dir das Beispiel angesehen? Obwohl scaer93 mhchem lädt, verwendet er/sie es gar nicht (es ist auch unnötig, es zusammen mit chemmacros zu verwenden, das intern selbst chemformula anwendet – schlimmstenfalls sorgt das sogar für inkonsistente Darstellung der chemischen Formeln und Reaktionsgleichungen…)

Grüße
Clemens
Paketauthor

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Übrigens: die einfachste Lösung, das »Problem« mit \el zu umgehen, ist es, diesen Befehl in der reaction-Umgebung gar nicht zu verwenden, sondern einfach e- zu schreiben:
\begin{reaction}
   e- + A^{$q$+} -> {}[A^{$(q-1)$+}]^{**} -> A^{$q$+} + e-
\end{reaction}
Das ist weniger zu tippen und das Problem stellt sich erst gar nicht. Das Makro \el ist eigentlich eher für den Gebrauch im Fließtext gemeint, wo man es anstelle von \ch{e-} verwenden kann (nicht muss).

Grüße
Clemens
Paketauthor

scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

Beitrag von scaer93 »

Super! Vielen Dank für die Antworten. Das hat super geholfen. Warum ich mchem noch drinnen habe, kann ich auch nicht sagen. Habe es jetzt herausgenommen. Danke für die Hilfe.

Antworten