Ausrichten von Reaktionsgleichungen mit chemfig

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: Ausrichten von Reaktionsgleichungen mit chemfig

von M0M0 » Mi 27. Nov 2019, 23:41

Diesmal habe ich eine befriedigende Lösung gefunden. Wie man dem Code entnehmen kann, ist sie alles andere als elegant, da praktisch zwei Reaktionsschemata übereinander gezeichnet werden und ich bin davon überzeugt, dass es auch einfacher gehen muss (da diese Art der Ausrichtung in vielen Büchern so verwendet wird), aber es funktioniert so.
\documentclass{article}
\usepackage{chemfig}

\begin{document}
   \setchemfig{scheme debug=true}%Zur einfachen Überprüfung der korrekten Ausrichtung 
   
   \schemestart%Hier geht es los
   \color{white}%Sorgt für "leere" Box,...
   \chemfig{A * 5(-----)}%die die Größe des Moleküls hat, an dem ausgerichtet werden soll
   \arrow%Zeichnet den später sichtbaren, am gewünschten Molekül zentriertem Pfeil
   \color{white}				
   \chemfig{A * 5(-----)}%Die nächste "leere" Box im Schema...
   \arrow
   \color{white}				
   \chemfig{A * 5(-----)}%und noch eine 
   \arrow(@c2.base west--.base east)%Pfeil von nicht sichtbarer Komponente 2...
   {0}%,den man selbst auch nicht sieht,...
   [180]%zum Beginn des Schemas 
   \chemfig{A * 5(-----)}%Erstes Molekül
   \arrow(.base east--.base west){0}%Nicht sichtbarer Pfeil, der...
   \chemfig{A * 5(---(-)--)}%das nächste Molekül korrekt ausrichtet
   \arrow(.base east--.base west){0}%Und noch ein nicht sichtbarer Pfeil,...
   \chemfig{A * 5(-----)}%der das letzte Molekül korrekt ausrichtet
   \schemestop%und Ende
\end{document}

von M0M0 » Mi 27. Nov 2019, 16:47

Habe etwas herumprobiert und je eine Kombination aus Pfeil und Molekül als eigenes Scheme zu verwenden, die man dann aneinander "klebt" klappt so halb. Hierbei ist durch den automatischen Abstand zwischen den Schemes zwar der Abstand zwischen den Molekülen verzerrt, dies fällt allerdings kaum auf. Das größere Problem ist, dass sich damit immer noch nicht eine Kombination aus aus einem kleinen zum mehr als einem aufeinanderfolgenden großen Molekülen darstellen lässt.

Oberes Beispiel zeigt, dass das konkrete Problem einigermaßen gut gelöst wird. Unteres zeigt wo es dann immer noch hakt.
\documentclass{article}
\usepackage{chemfig}

\begin{document}
   \setchemfig{scheme debug=true}
   \schemestart[][south]
   \chemfig{A * 5(-----)}\arrow
   \schemestop
   \schemestart[][south]
   \chemfig{A * 5(---(-)--)}
   \schemestop
   \schemestart[][south]
   \subscheme{
   \arrow \chemfig{A * 5(-----)}
	}
   \schemestop
   
   
   \setchemfig{scheme debug=true}
   \schemestart[][south]
   \chemfig{A * 5(-----)}\arrow
   \schemestop
   \schemestart[][south]
   \chemfig{A * 5(---(-)--)}
   \schemestop
   \schemestart[][south]
   \subscheme{
   	\arrow \chemfig{A * 5(---(-)--)}
   }
   \schemestop
\end{document}

von M0M0 » Mi 27. Nov 2019, 15:17

Ok, wohl doch zu früh gefreut. Die Lösung kann nur funktionieren, wenn die weniger hohe Box links steht. Anderfalls beginnt der Pfeil logischerweise wieder bei "east" der linken Box, ist damit also zu hoch.
\documentclass{article}
\usepackage{chemfig}

\begin{document}
   \setchemfig{scheme debug=true}
   \schemestart
   \subscheme{
   \chemfig{A * 5(---(-)--)}
   \arrow
	}
   \chemfig{A * 5(-----)}
   \schemestop
\end{document}
Dem Bild ist zu entnehmen, wie ich es gerne stattdessen hätte.
Bild
Dateianhänge
So-soll-es-sein2.PNG
So-soll-es-sein2.PNG (5.79 KiB) 3416 mal betrachtet

von M0M0 » Mi 27. Nov 2019, 14:26

In der Tat führt:
\documentclass{article}
\usepackage{chemfig}

\begin{document}
   \setchemfig{scheme debug=true}
   \schemestart
   \subscheme{\chemfig{A * 5(-----)}
   \arrow}
   \chemfig{A * 5(---(-)--)}
   \schemestop
\end{document}
zum Erfolg, hat da zuvor gar nicht dran gedacht, Danke.
Das manuelle Ausrichten der Pfeile war ja eben das Problem, es lässt sich eben nicht einstellen, dass diese von "east" der linken Box bis "west" gehen soll, ohne dass das zweite Molekül zentriert wird. Man müsste also herausfinden wie sich bei "gesetzer" Baseline der "Ort" der rechten Box, welcher sich auf gleicher Höhe befindet wie das Center der Linken für Tikz ansprechen lässt. Hatte gehofft dafür eine Antwort zu finden, aber mit dem "Trick" über das Subscheme passt es ja dann soweit.

von Gast » Mi 27. Nov 2019, 08:53

Schau mal in Abschnitt 8 Subscheme in der Anleitung. Und bei den Pfeilen kann man AFAIK auch noch angeben, von wo nach wo sie gehen sollen, statt den Default zu verwenden.

von M0M0 » Mi 27. Nov 2019, 08:19

Ich habe diese Beispiel gewählt, da es in der Dokumentation zu dem Thema zu finden war und mir daher geeignet erschien, um zu verdeutlichen was ich meine. Das Problem ist natürlich allgeimein gültig, aber nur bei einigen Molekülen lässt sich durch geschicktes "drehen" erreichen, dass sie die gleiche Höhe haben. Von daher hilft mir das nicht weiter, trotzdem Danke für dein Bemühen.

von Bartman » Mi 27. Nov 2019, 01:35

Wie hänge ich ein Bild an meine Frage?

Bild

Darfst Du die Strukturformeln drehen?
\documentclass[border=5pt]{standalone}
\usepackage{chemfig}

\begin{document}
\schemestart
\chemfig{[:-54]A * 5(-----)}
\arrow
\chemfig{[:-54]A * 5(---(-)--)}
\schemestop
\end{document}

Ausrichten von Reaktionsgleichungen mit chemfig

von M0M0 » Di 26. Nov 2019, 13:33

Die erste Gleichung, die der unten stehende Code erzeugt, zeigt deutlich worin das Problem liegt, die Baseline der beiden Moleküle ist nicht auf einer Höhe. Als Lösung für dieses Problem rät die Dokumentation des Paketes zur Verwendung einer der beiden folgenden Gleichungen. Hierbei ist nun wie gewünscht das Molekül auf einer Höhe, allerdings befindet sich der Reaktionspfeil an einer sehr unüblichen Stelle.

Ich hätte es gerne so, dass der Pfeil in Höhe des Zentrums des ersten Moleküls beginnt und dennoch sich die beiden "A" auf der gleichen Höhe befinden.

Der Beispielcode ist der Dokumentation des Paktes Chemfig unter "IV.5 Anchoring" entnommen.
\documentclass{article}
\usepackage{chemfig}

\begin{document}
	\setchemfig{scheme debug=true}
	\schemestart
	\chemfig{A * 5(-----)}
	\arrow
	\chemfig{A * 5(---(-)--)}
	\schemestop
	
	
	\schemestart
	\chemfig{A * 5(-----)}
	\arrow(.base east--.base west)
	\chemfig{A * 5(---(-)--)}
	\schemestop
	
	
	\schemestart
	\chemfig{A * 5(-----)}
	\arrow(foo.mid east--bar.mid west)
	\chemfig{A * 5(---(-)--)}
	\schemestop
\end{document}
Dateianhänge
So-soll-es-sein.PNG
So-soll-es-sein.PNG (6.18 KiB) 3581 mal betrachtet

Nach oben