PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Positionierung in tikz



Cerebellum
21-04-2013, 08:26
Hallo,

ich möchte in Latex eine Biomembran mit eingelagertem Protein zeichnen (bitte weiterlesen, auch wenn ihr als nicht-Biologen gerade keinen Plan habt!!) Dafür verwende ich eine Vorlage von texample. Nun möchte ich aber, dass an der Stelle, wo das Protein sitzt (sprich: die dicken Balken), keine Membran gezeichnet wird. Also eine Art Überschreiben oder das darunter liegende wegradieren.

Hier mal das Mini:



\documentclass{article}

\usepackage[latin9]{inputenc}
\usepackage[showframe]{geometry}
\usepackage{tikz}
\usetikzlibrary{decorations,decorations.pathreplac ing}
\begin{document}


\pgfdeclaredecoration{lipidleaflet}{initial}
{
% Place as many segments as possible along the path to decorate
% the minimum distance between two segments is set to 7 pt.
\state{initial}[width=\pgfdecoratedpathlength/floor(\pgfdecoratedpathlength/7pt)]
{
% Draw the two acyl chains
\pgfpathmoveto{\pgfpoint{-1pt}{0pt}}
\pgfpathlineto{\pgfpoint{-1pt}{-10pt}}
\pgfpathmoveto{\pgfpoint{1pt}{0pt}}
\pgfpathlineto{\pgfpoint{1pt}{-10pt}}
% Draw the head group
\pgfpathmoveto{\pgfpoint{1pt}{0pt}}
\pgfpathcircle{\pgfpoint{0pt}{2pt}}{2.5pt}
}
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}
}

% Draw a vesicle composed of two lipid layers
\begin{tikzpicture}

\draw[decorate, decoration={lipidleaflet}] (5, 5) circle (2cm);
\draw[decorate, decoration={lipidleaflet, mirror}] (5, 5) circle (2.8cm);
\draw (5,5) node {ER lumen};
\draw[line width=4pt] (3.7,6.3)--(2.9,7.1);
\draw[line width=4pt, red] (2.9,7.1) arc (225:30:0.2);
\draw[line width=4pt, blue] (3.2,7.3) parabola bend (3.7,7) (3.7,7.6);
\draw[line width=4pt] (3.7,7.6) parabola bend (4,8.4) (5,8.5);


\end{tikzpicture}

\end{document}


der aktuelle pdf-Ausdruck befindet sich im Anhang. Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt? Wenn nicht, bitte nachfragen, ich bin wirklich für jede Hilfe dankbar!

strolch
22-04-2013, 00:19
eine frage die sich mir stellt ist wie viel der membran du löschen möchtest. also nur "exakt" dort wo die proteine sitzen, oder den ganzen bereich der membran?

im ersten fall könntest du einfach einen noch dicker weißen(!) strich zeichnen bevor du die proteine einzeichnest.
willst du hingegen den ganzen bereich (von schwarz ueber rot und blau bis hin zum erneuten schwarz) löschen konntest du ein vielleicht einen teil eines kreisbogens mit sehr großer strichbreite über die membran legen (\draw[line width=4p] (0:0) arc (120:110:10); werte grob geschaetzt) bevor du die proteine einzeichnest.

Cerebellum
23-04-2013, 07:02
Vielen Dank strolch!!

Da hatte ich wohl wirklich ein Brett vor dem Kopf, so einfach deine Lösung und trotzdem super hilfreich! :)