PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Chemmacros oder alternative für römische Oxidationszahlen



Saigo
10-03-2012, 10:52
Hallo Leute,
ich steh hier grad was auf dem Schlauch.
Ich hab bisher immer mit mhchem gearbeitet, hat auch alles geklappt. Nun muss ich in einigen Protokollen Oxidationszahlen über die Formeln bringen, leider bestehen die Assistenten bei uns auf Römische Ziffern, ich habe es mit chemexec über "\ox{}{}" versucht, leider schreibt er dann bei höheren Zahlen die Ziffern ineinander (z.B. wenn +VII gegeben ist)
nach einigem stöbern bin ich dann auf chemmacros gestoßen .. aber leider bekomme ich das scheinbar nicht ganz installiert ich bin der meinung alles was gebraucht wird installiert zu haben aber bekomme folgenden Fehler:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! LaTeX error: "kernel/command-not-defined"
!
! Control sequence \tl_replace_all_in:Nnn undefined.
!
! See the LaTeX3 documentation for further information.
!
! For immediate help type H <return>.
!...............................................

l.333 ...enerate_variant:Nn \tl_replace_all_in:Nnn


Die mini Test Datei die ich mir dafür gemacht hab sieht wie folgt aus:

\documentclass[11pt,version=first,twoside, headlines=6]{scrreprt}% twocolumn(zweispaltig)
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{chemmacros}
\begin{document}
\ch{H2O}
\end{document}

also wenn mir jemand da in eine Richtung mal helfen könnte wäre super
entweder nen Tipp wie man römische Ziffern als Oxidationszahlen ohne chemmacros sauber hinbekommt oder alternativ wie ich chemmacros zum laufen bekomme (ich meine alle notwendigen pakete nachinstalliert zu haben).

Viele Grüße und vielen Dank schonmal

cgnieder
10-03-2012, 18:57
chemexec (http://www.ctan.org/pkg/chemexec) bitte nicht (!) verwenden, es ist veraltet und extrem fehlerhaft (*).

Bekommst Du die Fehlermeldung von Deinem Minimalbeispiel? Wenn ja hast Du wohl nicht die aktuelle Version (3.1b) (http://www.ctan.org/pkg/chemmacros), denn die Quelle von chemmacros enthält gar kein
\tl_replace_all_in

Wenn es das nicht ist (es ist ja völlig unklar, die Zeile 333 welcher Quelle in der Fehlermeldung gemeint ist) solltest Du auf jeden Fall den l3kernel (http://www.ctan.org/pkg/l3kernel) und die l3packages (http://www.ctan.org/pkg/l3packages) updaten. Die Funktion

\tl_replace_all_in:Nnn
ist dort nicht nur enthalten sondern als schon wieder veraltet bezeichnet und durch

\tl_replace_all:Nnn
ersetzt.

Ich bekomme mit dem Minimalbeispiel einen anderen Fehler => chemmacros beschwert sich über die KOMA-Option
version=first

Das hier läuft aber fehlerfrei:

% Muss vor KOMA geladen werden, wenn die Option `version' global verwendet wird.
% (Leider eine Inkompatibilität)
\RequirePackage{chemmacros}
\documentclass[11pt,version=first,twoside, headlines=6]{scrreprt}% twocolumn(zweispaltig)
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\chemsetup[chemformula]{subscript-vshift=-.5ex}
\begin{document}
\ch{H2O} \ox{2,Ca}
\end{document}

http://www.mrunix.de/forums/attachment.php?attachmentid=5097&stc=1&d=1331405427

Gruß

(*) Ich muss es wissen, ich hab's nämlich geschrieben...

Saigo
10-03-2012, 22:32
Vielen Dank für den Hinweis wo es dran liegen konnte, hatte zwar alle Pakete bei ctan geladen und installiert aber wohl einmal die alte Version nicht überschrieben :o
Jetzt läufts wunderbar.

und chemexec hab ich dann gleich mal entfernt :) auch wenns für meine Zwecke ohne Fehler lief ;) (aber soviel muss ich ja nicht damit machen)

Also besten Dank:)

Saigo
11-03-2012, 09:18
Ok nachdem ich dann heute meine Datei umgeschrieben haben bekomme ich zwar keine Fehlermeldungen die ich dem neuen Problem zuordnen könnte, aber nutzbar ist es leider noch nicht.
Die Darstellung der Formeln sind "etwas" seltsam und die Pfeile .. naja ich hängemal Bild und Beispiel an.

Beispiel:
\RequirePackage{chemmacros}
\documentclass[11pt,twoside, headlines=6]{scrreprt}% twocolumn(zweispaltig)
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\chemsetup[chemformula]{subscript-vshift=-.5ex}
\begin{document}
\ox{2,Ca}\\
\ch{"\ox{-1,O}" 2^2- H2O}\\
\ch{ H2 + Cl2 -> 2 HCl } \\
\ch{ H2O + CO3^2- <=> OH- + HCO3-}\\
\end{document}


Ergebnis:
(Datei gelöscht)

(Die Beispielzeilen habe ich aus der Dokumentation zum chemmacros Paket entnommen)

cgnieder
11-03-2012, 10:34
Wie es aussieht, muss man chemmacros nach der Dokumentenklasse aufrufen, damit es geht. Das bedeutet, dass Du die KOMA-Option »version=first« (vorerst) nicht zusammen mit chemmacros verwenden kannst.

\documentclass[11pt,twoside, headlines=6]{scrreprt}% twocolumn(zweispaltig)
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{chemmacros}

\begin{document}
\ox{2,Ca}\\
\ch{"\ox{-1,O}" {}2^2-} \ch{H2O}\\
\ch{ H2 + Cl2 -> 2 HCl } \\
\ch{ H2O + CO3^2- <=> OH- + HCO3-}
\end{document}

http://www.mrunix.de/forums/attachment.php?attachmentid=5098&stc=1&d=1331462039

Saigo
11-03-2012, 10:45
man man so einfach kanns sein. Auf die Koma-Option kann ich auch verzichten
:D
VIELEN Dank!

Saigo
12-03-2012, 21:27
Oh man ... und nochmal ich :o
irgendwie stehe ich mit deinem package auf Kriegsfuß :(

ich habe versucht folgendermaßen Gleichungen einzugeben:


\begin{reactions*}
\ox{+4,Mn}\ox{-2,O}2 + 2 e- + 4 H+ &<=> \ox{+2,Mn}^2+_(aq.) + 2 H2O \\
2\ox{-1,Br}- &<=> \ox{0,Br}2 + 2e- \\
MnO2 + 2 Br- + 4 H+ &<=> Mn^2+ + Br2 + 2 H2o
\end{reactions*}


Darauf bekomme ich folgende Fehlermeldung:

! Use of \use@pgflibrary doesn't match its definition.
\pgfutil@ifnextchar ...1\def \pgfutil@reserved@a {
#2}\def \pgfutil@reserved@...
l.100 \end{reactions*}


Wenn ich diese Zeilen auskommentiere läufts ohne Probleme durch.

Liegt hier ein Denk-/Verständnis- und damit Bedienfehler meinerseits vor oder stimmt da mit nem Package noch etwas weiteres nicht?

Vielen Dank schonmal im voraus fürs wieder-mal-druchlesen :o

cgnieder
12-03-2012, 23:44
Du solltest Dir mal ansehen, wie man ein komplettes Minimalbeispiel (http://www.minimalbeispiel.de/mini.html) erstellt, sonst kann ich nur ins blaue raten.

Das hier geht:

\documentclass{article}
\usepackage[method=mhchem]{chemmacros}
\begin{document}

\begin{reactions*}
\ox{+4,Mn}\ox{-2,O}_2 + 2 e- + 4 H+ &<=> \ox{+2,Mn}^{2+}_{(aq.)} + 2 H2O \\
2 \ox{-1,Br}- &<=> \ox{0,Br}_2 + 2e- \\
MnO2 + 2 Br- + 4 H+ &<=> Mn^2+ + Br2 + 2 H2O
\end{reactions*}

\end{document}

Das hier auch:

\documentclass{article}
\usepackage{chemmacros}
% \chemsetup[phases]{pos=sub}
\begin{document}

\begin{reactions*}
"\ox{+4,Mn}\ox{-2,O}" {}_2 + 2 e- + 4 H+ &<=> "\ox{+2,Mn}" ^{2+}\aq{} + 2 H2O \\
2 "\ox{-1,Br}" ^- &<=> "\ox{0,Br}" {}_2 + 2 e- \\
MnO2 + 2 Br- + 4 H+ &<=> Mn^2+ + Br2 + 2 H2O
\end{reactions*}

\end{document}

Falls die nicht gehen sollten, dann musst Du vielleicht (?) tikz (http://www.ctan.org/pkg/pgf) updaten.

Gruß