¿Diferencia entre dibujar = ninguno y dibujar opacidad = 0 (también para llenar = ninguno y llenar opacidad = 0)?

¿Diferencia entre dibujar = ninguno y dibujar opacidad = 0 (también para llenar = ninguno y llenar opacidad = 0)?

¿Cuál es la diferencia entre los pares clave-valor de TikZ draw=noney draw opacity=0? ¿Son funcionalmente equivalentes o hay situaciones en las que uno debería preferirse a otro? De manera similar, ¿cuál es la diferencia entre fill=noney fill opacity=0?

Respuesta1

draw=none(que es igual al \pathcomando) en realidad hace que TikZ descarte la ruta construida y el cuadro delimitador no se altere (Tonterías, cambia el cuadro delimitador pero solo line widthse ignora. Gracias a @Fritz por detectar esta estupidez).

draw opacity=0sin embargo, hace que la ruta se dibuje sin tinta, por lo que el cuadro delimitador se actualiza con line widthla opción vigente, por lo que el estilo de línea es importante para el cálculo del cuadro delimitador.

\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}

ingrese la descripción de la imagen aquí

Respuesta2

filling opacityse aplica no sólo a las operaciones de llenado, sino también a texto e imágenes; el siguiente ejemplo muestra un caso en el que fill=noney fill opacity=0(en realidad lo usé fill opacity=0.2solo para hacer visible el texto) producen resultados diferentes; fill=noneno tiene ningún efecto en la etiqueta del nodo, pero fill opacity=<value>afectará el texto:

\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}

ingrese la descripción de la imagen aquí

información relacionada