Chemfig: Neue Bindung definieren

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: Chemfig: Neue Bindung definieren

von cgnieder » Di 16. Okt 2012, 19:53

Ich habe in meinem vorigen Post einen Fehler. Es muss natürlich
\chemfig{!{rac}}
heißen. Wenn man die Klammern weglässt, würde man das submol „r“ gefolgt vom Atom „ac“ aufrufen.

Ansonsten war das mit dem vermeintlich fehlenden Ausrufezeichen ein Missverständnis meinerseits.

Die Definition ohne Beckslash funktioniert (bei mir) problemlos in der Präambel:
\documentclass{article}
\usepackage{chemfig}
\usetikzlibrary{decorations.pathmorphing}
\tikzset{
   rac/.style ={
      decorate,
      decoration ={
         snake,
         amplitude=.5mm,
         segment length=0.8mm
      }
   }
}
\definesubmol{rac}{-[,,,,rac]}
\begin{document}


\chemfig{C!{rac}C}

\end{document}
Grüße

von dieg0 » Di 16. Okt 2012, 16:47

cgnieder hat geschrieben:Wenn Du ein submol ohne Backslash definierst, muss Du es mit einem Ausrufezeichen aufrufen:
\chemfig{!rac}
Gruß
Genau. Mit Backslash genauso.

von cgnieder » Di 16. Okt 2012, 16:42

Wenn Du ein submol ohne Backslash definierst, muss Du es mit einem Ausrufezeichen aufrufen:
\chemfig{!rac}
Gruß

von dieg0 » Di 16. Okt 2012, 16:24

Ah, mit \definesubmol gehts also doch. Nur das "\" scheint wichtig zu sein. Ohne Backslash klappt es nur, wenn man \definesubmol unmittelbar vor \chemfig schreibt.
\tikzset{
	rac/.style ={
		decorate,
		decoration ={
			snake,
			amplitude=.5mm,
			segment length=0.8mm
		}
	}
}
\definesubmol{\rac}{-[,,,,rac]}
So klappts auch in der Präambel.

Danke!

von cgnieder » Di 16. Okt 2012, 11:46

Ich habe hier: www.mychemistry.eu/2012/03/wavy-bonds mal beschrieben, wie man solche Bindungen definiert und verwendet.

Grüße

Einschlägiger Blog

von localghost » Di 16. Okt 2012, 09:59

Da gibt es hilfreiche Informationen auf »Some TeX Developments« [1-3]. Teil 3 dürfte wohl von speziellem Interesse sein.

[1] Exploring ChemFig: Basics
[2] Exploring ChemFig: Customising appearance
[3] Exploring ChemFig: Going further


Thorsten

Chemfig: Neue Bindung definieren

von dieg0 » Di 16. Okt 2012, 02:53

Hi,

ich habe festgestellt, dass Chemfig noch keine "Schlangenlinien" als chemische Bindung bereitstellt.

So soll es ungefähr aussehen:
\documentclass[a4paper,parskip,toc=bib,automark]{scrartcl} 
\usepackage[ngerman]{babel} 
\usepackage[ngerman]{translator} 
\usepackage[utf8]{inputenc} 
\usepackage{lmodern} 
\usepackage[T1]{fontenc} 
\usepackage{amsmath,amssymb,amstext} 
\usepackage{chemmacros}
\usetikzlibrary{decorations.pathmorphing} 
\usepackage{chemfig} 
   \setatomsep{1.3em} 
   \setdoublesep{2.5pt} 
   \setbondstyle{semithick} 
   \setcrambond{3pt}{0.5pt}{1pt} 
   \setchemrel{2pt}{0.7em}{10em} 
   \setarrowdefault{,1.1,}
   \renewcommand*\printatom[1]{\small\ensuremath{\mathsf{#1}}}

\begin{document} 
\schemestart 
\chemfig{[:18]*5(--O-([::-66]*6(-(-[,,,,decorate,decoration={snake,amplitude=.5mm,segment length=0.8mm}]SPh)--@{carb2}(=[@{db1}]@{o1}O)-=-))-O-)}
\schemestop 
\end{document}
Bloß möchte ich nicht jedes Mal
-[,,,,decorate,decoration={snake,amplitude=.5mm,segment length=0.8mm}]
schreiben, sondern lieber einen Befehl namens \rac dafür definieren.
\documentclass[a4paper,parskip,toc=bib,automark]{scrartcl} 
\usepackage[ngerman]{babel} 
\usepackage[ngerman]{translator} 
\usepackage[utf8]{inputenc} 
\usepackage{lmodern} 
\usepackage[T1]{fontenc} 
\usepackage{amsmath,amssymb,amstext} 
\usepackage{chemmacros}
\usetikzlibrary{decorations.pathmorphing} 
\usepackage{chemfig} 
   \setatomsep{1.3em} 
   \setdoublesep{2.5pt} 
   \setbondstyle{semithick} 
   \setcrambond{3pt}{0.5pt}{1pt} 
   \setchemrel{2pt}{0.7em}{10em} 
   \setarrowdefault{,1.1,}
   \renewcommand*\printatom[1]{\small\ensuremath{\mathsf{#1}}}

\newcommand\rac{-[,,,,decorate,decoration={snake,amplitude=.5mm,segment length=0.8mm}]}

\begin{document} 
\schemestart 
\chemfig{[:18]*5(--O-([::-66]*6(-(\rac SPh)--@{carb2}(=[@{db1}]@{o1}O)-=-))-O-)}
\schemestop 
\end{document}
Leider wird \rac nicht von Chemfig interpretiert. Stattdessen landet der Text aus der Präambel eins zu eins in der Strukturformel.

Ich habe auf die Schnelle keine Lösung gefunden. Und mit dieser LaTeX-Ecke rund um Makros kenne ich mich nicht gut aus. Da werde ich mich vielleicht irgendwann später mal einarbeiten.
Vielleicht habt ihr eine Lösung?

Gibt es auch eine Möglichkeit, einen schlangenlinienförmigen Keil zu machen? So sieht der in Chemfig implementierte gestrichelte Keil aus:
\documentclass[a4paper,parskip,toc=bib,automark]{scrartcl} 
\usepackage[ngerman]{babel} 
\usepackage[ngerman]{translator} 
\usepackage[utf8]{inputenc} 
\usepackage{lmodern} 
\usepackage[T1]{fontenc} 
\usepackage{amsmath,amssymb,amstext} 
\usepackage{chemmacros}
\usetikzlibrary{decorations.pathmorphing} 
\usepackage{chemfig} 
   \setatomsep{1.3em} 
   \setdoublesep{2.5pt} 
   \setbondstyle{semithick} 
   \setcrambond{3pt}{0.5pt}{1pt} 
   \setchemrel{2pt}{0.7em}{10em} 
   \setarrowdefault{,1.1,}
   \renewcommand*\printatom[1]{\small\ensuremath{\mathsf{#1}}}

\begin{document} 
\schemestart 
\chemfig{[:18]*5(--O-([::-66]*6(-(<:SPh)--@{carb2}(=[@{db1}]@{o1}O)-=-))-O-)}
\schemestop 
\end{document}
Ich würde mich sehr über eine Antwort freuen.

Viele Grüße,
Diego

Nach oben