PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nicht kursiv in Equation-Umgebung schreiben.



Welfe
29-01-2012, 14:30
Hallo liebes LaTeX-Forum,

Ich habe gerade mein Chemiestudium begonnen und muss Versuchsprotokolle schreiben. Ich habe mich dazu entschieden dieses in LaTeX zu machen.
Hat auch ganz gut geklappt, allerdings gibt es ein Problem, was ich bisher auch nach einer stunde googeln nicht lösen konnte.

Für meine chemischen Reaktionsgleichungen benutze ich die Equation-Umgebung.
Das Problem ist, dass in dieser Umgebung alles kursiv geschrieben wird, wir allerdings nur Variablen kursiv schreiben dürfen.

Gibt es eine Möglichkeit alles in der Equationumgebung standardmäßig "normal" zu schreiben und nicht kursiv? Wenn ich versuche das ganze "einzutexten" mit zB \text{} bekomme ich (verständlicher Weise) nur Errors.

Hier ein Beispiel:

\documentclass[12pt,halfparskip,a4paper,arial,fleqn]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{graphicx}
\begin{document}
\begin{flushleft}
\underline{Reaktionsgleichung des Versuches:}
\end{flushleft}
\begin{equation}
\label{Gl.1}
\tag {Gl.1}
\overset{+III}{Fe_2}O_3 + 2 \overset{0}{Al} \rightarrow \overset{+III}{Al_2}O_3 + 2 \overset{0}{Fe}
\end{equation}
\end{document}

Schonmal Danke für eure Hilfe!!! :)

Gruß, Welfe

cgnieder
29-01-2012, 14:44
Ich würde vorschlagen, mhchem (http://www.ctan.org/pkg/mhchem) für Reaktionsgleichungen zu verwenden. Vielleicht lohnt sich auch ein Blick in chemmacros (http://www.ctan.org/pkg/chemmacros)


\documentclass[12pt,halfparskip,fleqn]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[german]{chemmacros}
\begin{document}
\begin{flushleft}
\underline{Reaktionsgleichung des Versuches:}
\end{flushleft}

\begin{reaction}
\ox{3,Fe}_2 O3 + 2 \ox{0,Al} -> \ox{3,Al}_2 O3 + 2 \ox{0,Fe}
\end{reaction}

\end{document}

Curryhunter
29-01-2012, 14:45
Hallo,
versuch mal Deine Reaktionsgleichungen nicht so umständlich mit der equation-Umgebung zu schreiben, sondern mit einem Paket für chemische Formeln, wie z.B. mhchem


\usepackage[version=3]{mhchem}

\ce{Fe2O3 + Al -> Al2O3 + 2Fe}

die hochgestellten Zahlen und Beschriftungen des Pfeils gehen mit dem Paket auch problemlos, die Befehle hab ich nur grad nicht im Kopf.

Grüße
Stefan

Welfe
29-01-2012, 15:45
Danke für eure Hilfe!

Ich mache meine Reaktionsgleichungen nun mit Chemmacros.

Funktionieren tut dieses auch super, allerdings sieht das mein Editor (TeXstudio)
anders. Den Befehl für die Reaktionsumgebung und den Befehl für die Oxidationszahlen möchte er nicht erkennen (hinterlegt ihn orange) und es erscheint hinter jeder Reaktionsumgebung der Error: "Missing \endcsname inserted \end{reaction}"

Funktionieren tut es trotzdem. Es wäre dennoch für die Übersicht schöner, wenn er dies alles nicht als Fehler ausgeben würde :)

Hat jemand hierfür eine Lösung?
Danke nochmal =)

cgnieder
29-01-2012, 15:57
Dass der Editor die Befehle nicht erkennt, finde ich nicht so überraschend. Ein Editor kann schwerlich alle Befehle aller Pakete kennen. wahrscheinlich kann man die irgendwo hinzufügen.

Die Fehlermeldungen sollten allerdings nicht sein. Das deutet a) daraufhin, dass ein Fehler in Deinem Code ist, oder b) dass Du eine fehlerhafte Version von „chemmacros“ hast.

Kannst Du einen kleinen Beispiel-Code (lauffähiges Beispiel) posten, bei dem der Fehler auftaucht?

Gruß

Welfe
29-01-2012, 16:06
Hier ein Auszug aus meinem Dokument:

\documentclass[12pt,halfparskip,a4paper,arial,fleqn]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[german]{chemmacros}
\begin{document}
\begin{flushleft}
\underline{Allgemeine Reaktionsgleichung:}
\end{flushleft}
\begin{reaction}
\tag{Gl.2}
M_{\textit{x}} O_{\textit{y}} + $\frac{2y}{3}$ Al -> \textit{x} M + $\frac{y}{3}$ Al_2 O_3
\end{reaction}
\end{document}

Die Zeile mit \end{reaction} wird rot hinterlegt und mit dem oben genannten Fehler versehen.

Edit: Jetzt lauffähig

cgnieder
29-01-2012, 16:35
Edit: Jetzt lauffähig

Heißt das, es gibt keinen Fehler mehr?

Die Tags kann man übrigens mit \renewtagform nach Belieben anpassen (siehe die mathtools-Anleitung (http://www.ctan.org/pkg/mathtools) für näheres). Da „mathtools“ von „chemmacros“ geladen wird, heißt das übrigens, dass „amsmath“ schon geladen ist.

Ich würde Dein Beispiel so setzen:


\documentclass[12pt,halfparskip,a4paper,arial,fleqn]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[german]{chemmacros}

\renewtagform{reaction}[Gl. ]{(}{)}
\setcounter{reaction}{1}

\begin{document}

\begin{flushleft}
\underline{Allgemeine Reaktionsgleichung:}
\end{flushleft}
\begin{reaction}
M_{$x$}O_{$y$} + $\frac{2y}{3}$ Al -> $x$ M + $\frac{y}{3}$ Al2O3
\end{reaction}

\end{document}
Du solltest Dir die Anleitung zu mhchem (http://www.ctan.org/pkg/mhchem) (das von „chemmacros“ für die reaction-Umgebung verwendet wird) vermutlich mal durchlesen.

Grüße

Welfe
29-01-2012, 17:11
Hihi, ich merke schon, dass wird heute ein langer Abend :P

Habe gerade erst mit LaTeX angefangen und habe mir das alles nur schnell selbst angeeignet. Kam noch nicht zum ausführlichen Lesen von allen Anleitungen und so :D
Aber das schreiben mit LaTeX macht echt spaß und sobald ich endlich vorlesungsfreie Zeit habe, werde ich mich dran machen alles mal ausführlicher zu lernen ;) . Jetzt muss ich aber leider noch in kurzer Zeit dieses Protokoll korregieren und noch zwei weitere schreiben...

Nach der von dir vorgeschlagenen Veränderung gibt er kein Fehler mehr aus, aber so ganz verstehen warum tu ich immer noch nicht ^^
Liegt das vielleicht am \textit?

Das mit der automatischen Tag-Anpassung ist super, jetzt habe ich aber ein neues Problem:
Die zählt dann ja nur für die Reaction-Umgebung. Weiter hinten im Protokoll habe ich aber auch rein mathematische Gleichungen, für die ich die Equation-Umgebung nutze. Diese nummeriert er nun natürlich komplett getrennt von den Reaktionsgleichungen durch. Gibt es eine Möglichkeit, dass sich beide einen Counter dafür teilen?

Danke nochmal für deine Hilfe, ich weiß das zu schätzen =)

Gruß Welfe

cgnieder
29-01-2012, 17:38
Es ist Absicht, dass die verschiedene Zähler haben. Mit dem von dem intern von „chemmacros“ verwendeten Paket environ (http://www.ctan.org/pkg/environ) bereitgestellten Befehl \RenewEnviron kann man die Reaktions-Umgebungen aber umdefinieren:


\documentclass[12pt,halfparskip,a4paper,arial,fleqn]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[german]{chemmacros}
\newtagform{equation}[Gl. ]{(}{)}
\usetagform{equation}

\begin{document}
% Muss nach \begin{document} gemacht werden:
\RenewEnviron{reaction}{\begin{equation}\expandaft er\cee\expandafter{\BODY}\end{equation}}
\RenewEnviron{reaction*}{\begin{equation*}\expanda fter\cee\expandafter{\BODY}\end{equation*}}
\RenewEnviron{reactions}{\begin{align}\expandafter \cee\expandafter{\BODY}\end{align}}
\RenewEnviron{reactions*}{\begin{align*}\expandaft er\cee\expandafter{\BODY}\end{align*}}

\begin{equation}
x^2 + y^2 = z^2
\end{equation}

\begin{reaction}
M_{$x$}O_{$y$} + $\frac{2y}{3}$ Al -> $x$ M + $\frac{y}{3}$ Al2O3
\end{reaction}

\end{document}

Gruß