Ich möchte mit TikZ so etwas, wie auf dem folgenden Bild erzeugen: alt text (Bildquelle: http://dx.doi.org/10.1016/j.comptc.2014.04.026)

Die beiden Bilder, mit denen ich dies erzeugen will habe ich schon. Das im Kasten habe ich mit dem Chemfig-Paket erzeugt und brauche da quasi nur noch den Kasten mit den beiden Linien unten dran. Verschieben kann ich das dann passend zum unteren Bild, jedoch fehlt mir irgendwie der Ansatz, wie ich so etwas überhaupt schön machen kann.

gefragt 09 Jun '14, 12:59

quizzmaster's gravatar image

quizzmaster
4616
Akzeptiert: 33%

bearbeitet 09 Jun '14, 13:02

Hallo, ohne Code wahrscheinlich schwer zu bearbeiten. Hast Du Dir schonmal die spy-Bibliothek angeschaut?

(09 Jun '14, 13:08) cis

Die spy-Bibliothek lässt mich ja nur einen vorhandenen Ausschnitt vergrößern. Mein Problem ist, dass ich als Vergrößerung ein eigenständiges Bild haben möchte.

(09 Jun '14, 13:19) quizzmaster

Mmhh, also ich denk Dein Problem wird sicher klarer / lösbarer, wenn Du mal Deinen Code angibst, dabei etwa "Bild1 hätte ich gerne an dieser Stelle in Bild2" o.ä.

(09 Jun '14, 13:45) cis

Mit etwas Mühe ist das durchaus machbar. Wie @Qrrbrbirlbel in Wie kann ich mit TikZ auf Bildern zeichnen? gezeigt hat, ist es nicht wirklich schwer, auf Bildern zu malen. Im folgenden habe ich viel manuell und durch Ausprobieren gemacht, d.h., es gibt mit Sicherheit viel Raum für Verbesserungen.

Zuerst habe ich Dein Bild genommen, die Formel wegretuschiert und anschließend das Bild beschnitten:

alt text

Das habe ich dann genommen, um folgendes zu erhalten:

alt text

Hier ist der Code:

Open in writeLaTeX
\documentclass{article}
\usepackage{graphicx}% wird zwar von tikz geladen, aber...
\usepackage{tikz}    % wird zwar von chemfig geladen, aber...
\usepackage{chemfig}

% das folgende definiert eine Dekoration `complete sines', die später für die
% gewellten Linien verwendet wird (siehe
% http://tex.stackexchange.com/a/25689/5049 ):
\usetikzlibrary{decorations.pathmorphing}
\pgfdeclaredecoration{complete sines}{initial}{
  \state{initial}[
    width=+0pt,
    next state=sine,
    persistent precomputation={
      \pgfmathsetmacro\matchinglength{
        \pgfdecoratedinputsegmentlength /
        int(\pgfdecoratedinputsegmentlength/\pgfdecorationsegmentlength)
      }
      \setlength{\pgfdecorationsegmentlength}{\matchinglength pt}
    }
  ] {}
  \state{sine}[width=\pgfdecorationsegmentlength]{
    \pgfpathsine{
      \pgfpoint
        {0.25\pgfdecorationsegmentlength}
        {0.5\pgfdecorationsegmentamplitude}
    }
    \pgfpathcosine{
      \pgfpoint
        {0.25\pgfdecorationsegmentlength}
        {-0.5\pgfdecorationsegmentamplitude}
    }
    \pgfpathsine{
      \pgfpoint
        {0.25\pgfdecorationsegmentlength}
        {-0.5\pgfdecorationsegmentamplitude}
    }
    \pgfpathcosine{
      \pgfpoint
        {0.25\pgfdecorationsegmentlength}
        {0.5\pgfdecorationsegmentamplitude}
    }
  }
  \state{final}{}
}

% jetzt verwenden wir die eben definierte Deko für einen Stil `wavy bond':
\tikzset{
  wavy bond/.style =
    {
      decorate,
      decoration =
        {
          complete sines,
          amplitude   = 0.23em,
          post length = 0 pt,
          pre length  = 0 pt,
          segment length = 1em
        }
    }
}

% ein Submolekül, das eine nach oben und nach unten abstehende gewellte Linie
% zeichnet:
\definesubmol{grenze}{(-[2,,,,wavy bond])(-[6,,,,wavy bond])}

\begin{document}

\begin{tikzpicture}
  \node[anchor=south west,inner sep=0] (Bild) at (0,0)
    {\includegraphics[width=\linewidth]{thioph-ausschn.png}} ;
  \node[draw,above] (Formel) at (Bild.60)
    {%
      \setatomsep{2em}%
      \chemfig{
        -[:-18,.5]
        !{grenze}
        -[:-18,.5]
        *5(
          =-=@{mA}(
            -[@{mB}]*5(-S-(-[,.5]!{grenze}-[::0,.5])=-=)
          )
          -S-
        )
      }%
    } ;
  \begin{scope}[x=(Bild.south east),y=(Bild.north west)]
    \draw
      (0.385,.55) -- (Formel.south west)
      (0.665,.5) -- (Formel.south east) ;
  \end{scope}
\end{tikzpicture}
\chemmove{
  \draw (mB) ++(0,.5) node {$\theta$};
  \draw[<-] (mB) ++(.2,.15) arc[start angle=90,end angle=180,radius=1em] ;
  \draw[<->] (mA) ++(-72:1em) --  ++(18:2em) ;
  \draw (mA) ++(-90:1em) node[anchor=north west] {\chemfig{C-[,.5]C} stretch};
}

\end{document}
Permanenter link

beantwortet 03 Jul '14, 13:10

Clemens's gravatar image

Clemens
19.0k113060

bearbeitet 03 Jul '14, 14:02

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:

×492
×32
×27

Frage gestellt: 09 Jun '14, 12:59

Frage wurde angeschaut: 2,441 Mal

Zuletzt aktualisiert: 03 Jul '14, 14:02