Ich möchte mit TikZ so etwas, wie auf dem folgenden Bild erzeugen: (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, 18:59 quizzmaster |
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: Das habe ich dann genommen, um folgendes zu erhalten: 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} beantwortet 03 Jul '14, 19:10 cgnieder |
Hallo, ohne Code wahrscheinlich schwer zu bearbeiten. Hast Du Dir schonmal die
spy
-Bibliothek angeschaut?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.
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.ä.