Hi,

in der Doku für Chemfig ist auf Seite 13 beschrieben, wie man sogenannte „Distant Bonds“ malt. Als drittes Argument kann man da auch tikz-Befehle übergeben. Allerdings habe ich es bisher nur geschafft, einen einzigen Befehl zu übergeben, bspw:

Open in writeLaTeX
\documentclass[a4paper]{scrartcl}

\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\usepackage{lmodern} 
\usepackage[T1]{fontenc} 
\KOMAoptions{fontsize=11pt} 
\usepackage{amsmath,amssymb,amstext} 
\usepackage{chemmacros} 
\usepackage{chemfig} 
\renewcommand*\printatom[1]{\small\ensuremath{\mathsf{#1}}} 
\setatomsep{16.5pt} 
\setbondstyle{line width=0.6pt} 
\setcrambond{3pt}{0.6pt}{1.5pt} 
\setdoublesep{2.6pt} 
\setbondoffset{1.6pt} 
\setarrowdefault{,1.0,}

\begin{document} 
\chemfig{[,1.9]O?[ring]-[:-150](-[::60,1.0]N*5([:-108,1.0]-(<:)-(<:Ph)-O-(=O?[metall])-))=_[::-60](-[::-60]H)(-[::60]H)-[::30,,,,dash pattern=on 2pt off 2pt](-[::-90]H)(-[::30]R)=[::150,,,,preaction={draw=white, line width=3pt}]O-[::60,,,,dash pattern=on 2pt off 2pt, preaction={draw=white, line width=3pt}]Zn?[ring]?[metall,,{dash pattern=on 2pt off 2pt}]}
\end{document}

chemfig-Beispiel

Füge ich ganz hinten noch zum tikz-Teil „preaction={draw=white, line width=3pt}“ hinzu, kommt die Fehlermeldung:

Package PGF Math Error: Unknown function `preacti' (in ' 2pt, preacti') ... preaction={draw=white, line width=3pt}}]}

Undefined control sequence ... preaction={draw=white, line width=3pt}}]}

File ended while scanning use of pgfmath@@onquick

Open in writeLaTeX
\documentclass[a4paper]{scrartcl}

\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\usepackage{lmodern} 
\usepackage[T1]{fontenc} 
\KOMAoptions{fontsize=11pt} 
\usepackage{amsmath,amssymb,amstext} 
\usepackage{chemmacros} 
\usepackage{chemfig} 
\renewcommand*\printatom[1]{\small\ensuremath{\mathsf{#1}}} 
\setatomsep{16.5pt} 
\setbondstyle{line width=0.6pt} 
\setcrambond{3pt}{0.6pt}{1.5pt} 
\setdoublesep{2.6pt} 
\setbondoffset{1.6pt} 
\setarrowdefault{,1.0,}

\begin{document} 
\chemfig{[,1.9]O?[ring]-[:-150](-[::60,1.0]N*5([:-108,1.0]-(<:)-(<:Ph)-O-(=O?[metall])-))=_[::-60](-[::-60]H)(-[::60]H)-[::30,,,,dash pattern=on 2pt off 2pt](-[::-90]H)(-[::30]R)=[::150,,,,preaction={draw=white, line width=3pt}]O-[::60,,,,dash pattern=on 2pt off 2pt, preaction={draw=white, line width=3pt}]Zn?[ring]?[metall,,{dash pattern=on 2pt off 2pt, preaction={draw=white, line width=3pt}}]}
\end{document}

Ich bin einfach irgendwie zu blöd, da bspw. ein dash pattern und gleichzeitig die Farbe blau oder so einzubauen. Egal was, es geht irgendwie nicht. Die geschweiften Klammern um den tikz-Befehl ist an der Stelle eigentlich unüblich für Chemfig. Vielleicht habe ich da irgendwas nicht verstanden und ich darf vielleicht nicht einfach die Befehle innerhalb der Klammern aneinanderreihen?

Ich würde mich über eure Hilfe freuen.

Viele Grüße, dieg0

PS: Den Thread habe ich ursprünglich bei GoLaTeX gepostet. Bin einer Empfehlung hierher gefolgt. Hatte ich schon ganz vergessen, dass es ja TeXwelt auch gibt. :D

gefragt 22 Jun '14, 10:02

dieg0's gravatar image

dieg0
133
Akzeptiert: 100%

bearbeitet 22 Jun '14, 10:35

Willkommen auf der TeXwelt!

(22 Jun '14, 10:19) Clemens

Dein Beispiel ist reichlich kompliziert für den kleinen Aspekt, um den es geht...

(22 Jun '14, 10:20) Clemens

Ich würde vorschlagen, einen TikZ-Stil zu definieren

Open in writeLaTeX
\tikzset{
  metall/.style={
    dash pattern={on 2pt off 2pt},
    preaction={draw=white, line width=3pt}
  }
}

und den zu verwenden:

Open in writeLaTeX
?[metall,,metall]

Das funktioniert wie erwartet:

Open in writeLaTeX
\documentclass{scrartcl}
\usepackage{chemfig}

\tikzset{
  metall/.style={
    dash pattern={on 2pt off 2pt},
    preaction={draw=white, line width=3pt}
  }
}

\begin{document} 
\chemfig{
  ?[metall]-[1]-(-[6])-[7]
  ?[metall,,metall]
}
\end{document}

alt text

Permanenter link

beantwortet 22 Jun '14, 10:19

Clemens's gravatar image

Clemens
19.0k113060

bearbeitet 22 Jun '14, 10:21

Ja, sorry für das komplizierte Beispiel. Ich hab einfach die Struktur, die ich gerade male, ins Minimalbeispiel gepackt. Das hier würde gehen. :) Ist sogar gar nicht mal so blöd, TikZ-Stile für kreuzende Bindungen im Vordergrund zu definieren. Dann kann ich mir das andauernde „preaction={}“ sparen.

Danke!

Eine Erklärung für das Problem mit den mehreren TikZ-Befehlen hast du nicht, oder?

(22 Jun '14, 10:27) dieg0

Dafür müsste ich erst noch den chemfig-Quellcode begutachten... Ich nehme an, dass das eigentlich funktionieren sollte und daher ein Bug ist.

(22 Jun '14, 10:30) Clemens

Alles klar. Egal, lassen wir das so. Vielleicht schreibe ich mal den Entwickler an. Der freut sich immer über Hinweise. ;)

(22 Jun '14, 10:34) dieg0
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×27

Frage gestellt: 22 Jun '14, 10:02

Frage wurde angeschaut: 1,688 Mal

Zuletzt aktualisiert: 22 Jun '14, 10:35