%3F.png)
Was ist der Unterschied zwischen den Schlüssel-Wert-Paaren von TikZ draw=none
und draw opacity=0
? Sind sie funktional gleichwertig oder gibt es Situationen, in denen eines dem anderen vorzuziehen ist? Und was ist der Unterschied zwischen fill=none
und fill opacity=0
?
Antwort1
draw=none
(was gleichbedeutend mit \path
einem Befehl ist) bewirkt tatsächlich, dass TikZ den erstellten Pfad verwirft und der Begrenzungsrahmen nicht gestört wird (Unsinn, es ändert zwar den Begrenzungsrahmen, line width
wird aber nur ignoriert. Danke an @Fritz, dass er diesen Blödsinn entdeckt hat).
draw opacity=0
bewirkt jedoch, dass der Pfad ohne Tinte gezeichnet wird, sodass der Begrenzungsrahmen mit line width
aktivierter Option aktualisiert wird. Der Linienstil ist also für die Berechnung des Begrenzungsrahmens von Bedeutung.
\begin{tikzpicture}
\draw (0,0) rectangle (3,3);
\draw[opacity=0,line width=1cm] (0,0) rectangle (3,3); % Enlarge the bounding box
\pgfsetlinewidth{5cm} % this has no effect
\pgfpathmoveto{\pgfpointorigin}
\pgfpathlineto{\pgfpoint{4cm}{4cm}} % this updates the known max x,y coordinates!!
\pgfusepath{} % even though it's thrown away.
\begin{pgfinterruptboundingbox}
\pgfpathmoveto{\pgfpointorigin}
\pgfpathlineto{\pgfpoint{10cm}{10cm}} % Nothing happens
\pgfusepath{}
\end{pgfinterruptboundingbox}
\draw[dashed,thin] (current bounding box.north east) rectangle (current bounding box.south west);
\end{tikzpicture}
Antwort2
filling opacity
gilt nicht nur für Füllvorgänge, sondern auch für Text und Bilder; das folgende Beispiel zeigt einen Fall, in dem fill=none
und fill opacity=0
(ich habe es eigentlich fill opacity=0.2
nur verwendet, um den Text sichtbar zu machen) unterschiedliche Ergebnisse liefern; fill=none
hat keine Auswirkung auf die Knotenbeschriftung, fill opacity=<value>
wirkt sich aber auf den Text aus:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\fill[olive] (0,0) rectangle (3,2);
\node[fill opacity=0.2] at (3,2) {\huge B};
\node[fill=none] at (0,0) {\huge A};
\end{tikzpicture}
\end{document}