Árboles forestales: reducir el tamaño del nodo del árbol.

Árboles forestales: reducir el tamaño del nodo del árbol.

Quiero reducir algunos nodos de mi árbol. Pero no los hago más pequeños. inner sep=0.01mmda como resultado el mismo tamaño de nodo que inner sep=1mm. ¿Cómo es eso posible? ¿Qué extraño?

ingrese la descripción de la imagen aquí

Mi código:

\documentclass[border=10pt]{standalone} 

\usepackage{verbatim}
\usepackage{tikz}
\usepackage{forest}
\usepackage{graphicx}

\begin{document}
\begin{forest}
for tree={delay={where content={}{content={\phantom{00}}}{}},s sep+=5mm,l+=5mm}
[,circle,fill=black,inner sep=1mm
  [,circle,fill=red,inner sep=0.5mm
    [,circle,draw,black,inner sep=0.1mm]
    []
    [,circle,draw,black,inner sep=0.1mm]
    []
  ]
  []
  [,circle,fill=red,inner sep=0.5mm
    [,circle,fill=red,inner sep=0.25mm
        [,circle,draw,black,inner sep=0.1mm]
        [,circle,draw,black,inner sep=0.1mm]
        [,circle,draw,black,inner sep=0.1mm]
        [,circle,draw,black,inner sep=0.001mm]%%% <------------- ??
    ]
        []
        []
    [,circle,draw,black,inner sep=0.1mm] 
  ]
  [,circle,fill=red,inner sep=0.5mm]
]
\end{forest}
\end{document}

Respuesta1

ComoSalim Bou señaló en un comentario, la razón por la que inner sepparece ineficaz es que el contenido del nodo en sí es bastante grande, relativamente hablando. Entonces, la diferencia entre 0.1mmy 0.001mmhace poca diferencia ya que eso solo cambia el margen alrededor del contenido de pequeño a más pequeño.

Como sugirió Salim Bou, un enfoque es eliminar el código agregando el contenido a los nodos del árbol. En este caso, la inner sepconfiguración determinará el tamaño de todos los nodos del árbol.

Sin embargo, si solo desea ajustar el tamaño de ese nodo, es posible que prefiera anular el contenido más adelante. Esto cambiará sólo el contenido de ese nodo, si se establece como argumento para ese nodo. Tenga en cuenta que la mayoría de las inner sepconfiguraciones podrían simplemente eliminarse en este caso, sin casi ningún efecto visual en la apariencia.

También sugeriría hacer uso de estilos para evitar duplicar configuraciones. La mejor manera de hacerlo depende de lo que necesite. A continuación se muestra un posible ejemplo que también ilustra los dos métodos para modificar el tamaño explicados anteriormente.

\documentclass[border=10pt]{standalone}
\usepackage{forest}

\begin{document}
\begin{forest}
  for tree={
    s sep'+=5mm,
    l'+=5mm,
  },
  my circle/.style={
    circle, fill=#1,
  },
  red circle/.style={
    my circle=red, inner sep=#1mm,
  },
  black circle/.style={
    my circle=black, inner sep=#1mm,
  },
  black hole/.style={
    circle, draw=black, inner sep=#1mm,
  }
  [, black circle=1
    [, red circle=0.5
      [, black hole=0.1]
      []
      [, black hole=0.1]
      []
    ]
    []
    [, red circle=0.5
      [, red circle=0.25
          [, black hole=0.1]
          [, black hole=0.1]
          [, black hole=0.1]
          [, black hole=0.001]
      ]
          []
          []
      [, black hole=0.1]
    ]
    [, red circle=0.5]
  ]
\end{forest}
\begin{forest}
  for tree={
    delay={where content={}{content={\phantom{00}}}{}},
    s sep'+=5mm,
    l'+=5mm,
  },
  my circle/.style={
    circle, fill=#1,
  },
  red circle/.style={
    my circle=red, inner sep=#1mm,
  },
  black circle/.style={
    my circle=black, inner sep=#1mm,
  },
  black hole/.style={
    circle, draw=black, inner sep=#1mm,
  }
  [, black circle=1
    [, red circle=0.5
      [, black hole=0.1]
      []
      [, black hole=0.1]
      []
    ]
    []
    [, red circle=0.5
      [, red circle=0.25
          [, black hole=0.1]
          [, black hole=0.1]
          [, black hole=0.1]
          [, black hole=0.001, before typesetting nodes={content=}]%%% <------------- ??
      ]
          []
          []
      [, black hole=0.1]
    ]
    [, red circle=0.5]
  ]
\end{forest}
\end{document}

dos árboles

El árbol de la izquierda muestra los nodos con tamaños determinados por sus inner seps. El árbol de la derecha los muestra con el fantasma 00como contenido, excepto el pequeño nodo donde esto se anula.

información relacionada