PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler bei Pfeilen in tikz



fps
01-11-2012, 17:58
Bei folgendem Beispiel besteht das Problem, dass ein Teil vom Pfeil links und rechts mit der falschen Farbe versehen wird (ähnliches gilt für die Knoten). Wenn ich die Pfeile einzeln, ohne der circuit library von tikz, zeichne besteht das Problem nicht, jedoch möchte ich diese Variante vermeiden, da ich nur ungern 64 Pfeile und Beschriftungen händisch positioniere ;).


\documentclass[a4paper,12pt,DIV12]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tikz}
\usetikzlibrary{circuits.ee}
\usetikzlibrary{circuits.ee.IEC}
\begin{document}
%
\begin{tikzpicture}[thick,circuit ee IEC,x=3cm,y=2cm,every info/.style={font=\normalsize}, %
medium circuit symbols,every contact/.style={circuit symbol unit=6pt},every info/.style=black]
\colorlet{Baum}{red!20!orange}
\foreach \contact/\y in {1/1}
{
\node [contact] (left contact \contact) at (0,\y) {};
\node [contact] (right contact \contact) at (1,\y) {};
}
\draw [Baum](left contact 1) to [current direction'={pos=0.15,info'=$\phi_r$},resistor={inf o={$G_r$}}] (right contact 1);
\end{tikzpicture}
\end{document}

Hat jemand Vorschläge zur Behebung des Problems?

esdd
02-11-2012, 10:17
Hallo,

vermutlich werden erst die Objekte gezeichnet und anschließend dann die Verbindungslinien gezogen. Diese werden bei abgerundeten Ojekten etwas verlängert, damit am Rand der Linie keine Lücke zum Ojekt entstehen kann. Wenn die Farbe gleich ist, passt das dann auch.

Ich würde den Pfeil deshalb einfach erst nach dem Zeichnen der Linie einfügen.


\draw[Baum](left contact 1) to [resistor={info={$G_r$}}] (right contact 1);
\path(left contact 1)node[contact]{} to
[current direction'={pos=0.15,info'=$\phi_r$}]
(right contact 1)node[contact]{};

Braucht man das häufiger, dann kann man sich auch einen neuen Befehl definieren:


\colorlet{Baum}{red!20!orange}
\newcommand\myCirc[2][Baum]{\foreach \c in {\draw[#1],\path}{\c #2}}
...
\myCirc{(left contact 1)node[contact]{} to
[current direction'={pos=0.15,info'=$\phi_r$},resistor={inf o={$G_r$}}]
(right contact 1)node[contact]{};}


Gruß
Elke

fps
02-11-2012, 19:33
Vielen Dank, funktioniert wunderbar :)!