La ruta de la serpiente Tikz tiene espacios en blanco antes/después del nodo (MWE)

La ruta de la serpiente Tikz tiene espacios en blanco antes/después del nodo (MWE)

Estoy usando tikz para dibujar un borde/camino en espiral entre nodos, pero algunos bordes tienen espacios en blanco antes/después de su nodo inicial o final. Aquí hay un pequeño ejemplo:

    \documentclass{standalone}
    \usepackage{tikz}
    \usetikzlibrary[positioning,decorations.pathmorphing]
    \begin{document}
    \begin{tikzpicture}

      \tikzstyle{enclosed} = [draw, circle, inner sep=0pt, minimum size=.15cm, fill=black]
      \tikzstyle{enclosedM} = [draw, circle, inner sep=0pt, minimum size=.15cm, fill=red]

      \node[enclosed, label={left: $x$}] (x) at (0,2) {};
      \node[enclosed, label={right: $y$}] (y) at (4,2) {};
      \node[enclosed] (w) at (2,0) {};
      \node[enclosed] (v) at (2,4) {};
      \node[enclosedM, label={above: $z$}] (z) at (2,1) {};
      \node[enclosedM, label={below: $t$}] (t) at (2,3) {};

      \draw[decorate,decoration={snake,amplitude=.2mm}]
        (x) -- (v)
        (v) -- (y)
        (x) -- (w)
        (w) -- (y)
        (x) -- (t)
        (v) -- (t)
        (y) -- (t)
        (x) -- (z)
        (w) -- (z)
        (z) -- (y);
    \end{tikzpicture}
    \end{document}

El resultado es:PDF de lo que se produce desde arriba

Observe que hay un espacio en blanco entre el nodo inferior central y el nodoz. Además, hay espacios en blanco entre el nodo superior y el nodoy.

Esto todavía ocurre incluso cuando la "amplitud" se establece en 0 mm, lo que pensé que sería equivalente a si el borde no estuviera decorado en absoluto. Configurar las opciones "longitud de publicación" y "longitud previa" con varias combinaciones soluciona algunos bordes, pero luego crea el mismo problema con otros bordes que estaban bien antes.

Si lo quito decorate, decorations={...}y lo uso \drawnormalmente sin configuraciones, funciona bien pero los bordes no están ondulados. ¿Cómo puedo deshacerme del espacio en blanco para que se comporte como un borde normal pero semiondulado?

Respuesta1

Hay que manejar la decoración con cuidado. No sé exactamente por qué sucede esto, pero obviamente es porque colocas varios segmentos en un solo \drawcomando.

Debes escribir uno por separado \drawpara cada segmento de línea. O, para que sea similar a su versión original, puede usar el siguiente código:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,decorations.pathmorphing}
\begin{document}

\begin{tikzpicture}

  \tikzset{
   enclosed/.style={draw, circle, inner sep=0pt, minimum size=.15cm, fill=black},
   enclosedM/.style={enclosed, fill=red}
  }

  \node[enclosed, label={left: $x$}] (x) at (0,2) {};
  \node[enclosed, label={right: $y$}] (y) at (4,2) {};
  \node[enclosed] (w) at (2,0) {};
  \node[enclosed] (v) at (2,4) {};
  \node[enclosedM, label={above: $z$}] (z) at (2,1) {};
  \node[enclosedM, label={below: $t$}] (t) at (2,3) {};

  \foreach\x in {
    (x) -- (v),
    (v) -- (y),
    (x) -- (w),
    (w) -- (y),
    (x) -- (t),
    (v) -- (t),
    (y) -- (t),
    (x) -- (z),
    (w) -- (z),
    (z) -- (y)
  }
   \draw[decorate,decoration={snake,amplitude=.2mm}] \x;

\end{tikzpicture}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Dos comentarios (no es una respuesta real): tikzstyleestá en desuso y si dibuja las líneas una por una no hay problema. (No he comprobado si el problema se debe atikzstyle ).ACTUALIZAR: compacté el código y muchas gracias a @Zarko por captar los corchetes.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}
  \tikzset{Snake/.style={decorate,decoration={snake,amplitude=.2mm}},
    enclosed/.style={draw, circle, inner sep=0pt, minimum size=.15cm,
    fill=black},
    enclosedM/.style={draw, circle, inner sep=0pt, minimum size=.15cm,
    fill=red}}

  \node[enclosed, label={left:$x$}] (x) at (0,2) {};
  \node[enclosed, label={right:$y$}] (y) at (4,2) {};
  \node[enclosed] (w) at (2,0) {};
  \node[enclosed] (v) at (2,4) {};
  \node[enclosedM, label={above:$z$}] (z) at (2,1) {};
  \node[enclosedM, label={below:$t$}] (t) at (2,3) {};
  \foreach \X in {x,y,v} \draw[Snake] (t) -- (\X);
  \foreach \X in {x,y,w} \draw[Snake] (z) -- (\X);
  \foreach \X in {x,y}{\foreach \V in {v,w}  \draw[Snake] (\V) -- (\X);}    
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada