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, 16:02

dieg0's gravatar image

dieg0
1313
Akzeptiert-Rate: 0%

bearbeitet 22 Jun '14, 16:35

Willkommen auf der TeXwelt!

(22 Jun '14, 16:19) cgnieder

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

(22 Jun '14, 16:20) cgnieder

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, 16:19

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 22 Jun '14, 16: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, 16: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, 16:30) cgnieder

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

(22 Jun '14, 16:34) dieg0
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×41

gestellte Frage: 22 Jun '14, 16:02

Frage wurde gesehen: 7,551 Mal

zuletzt geändert: 22 Jun '14, 16:35