¿Cómo agregar figuras geométricas a un árbol usando Forest y Tikz?

¿Cómo agregar figuras geométricas a un árbol usando Forest y Tikz?

Primero que nada quiero agradecer a la comunidad por la ayuda que obtuve en mi primera pregunta, hace unos días. Dicho esto, quiero volver a pedirles ayuda, si me lo permiten. Básicamente, actualmente estoy usando el poderoso paquete Forestpara dibujar árboles de teoría de juegos y, hasta ahora, todo bien. Pero ahora me enfrento a algo que no sé hacer y que no está explicado en el (bastante complejo) manual del Forestpaquete. Básicamente, tengo un juego (árbol) con tres nodos, siendo cada nodo el comienzo de un subjuego. Básicamente necesito dejar claro que hay tres subjuegos en el árbol. La representación gráfica de lo que estoy buscando es algo como esto: ingrese la descripción de la imagen aquí

El árbol que he dibujado se parece a este (y me gustaría conservarlo): ingrese la descripción de la imagen aquí

En pocas palabras, me gustaría dibujar los cuadrados rojos del primer árbol (Imagen 1) en mi árbol (Imagen 2). Sin embargo, probablemente necesite un rombo, dada la forma de mi árbol. Finalmente, les proporciono el código que estoy usando actualmente para mi árbol:

\begin{center}
\begin{forest} for tree={l sep=4em, s sep=8em, anchor=center}
[$P_1$, circle, draw,
    [{2, 2}, edge label={node[midway,left]{$D$}}]
    [$P_2$, edge label={node[midway,right]{$A$}}, circle, draw, 
        [{1, 1}, edge label={node[midway,left]{$d$}}] 
        [$P_1$, edge label={node[midway,right]{$a$}}, circle, draw,
            [{0, 0}, edge label={node[midway,left]{$D$}}]
            [{3, 3}, edge label={node[midway,right]{$A$}}]]]]
\node[above=30pt,align=center,anchor=center] {\textbf{Figure IV.} Extensive Form of a Centipede Game Variant};
\end{forest}
\end{center}

¿Qué necesito agregar/cambiar para incluir estos cuadrados?

Gracias a todos de antemano.

Saludos cordiales, Héctor.

Respuesta1

No es exactamente un rombo, pero puedes modificar los ángulos y las distancias si eso es importante.

\documentclass[tikz, border=10pt, multi]{standalone}
\usepackage{forest}
\usetikzlibrary{shapes.geometric,fit}
\begin{document}
\begin{forest}
  /tikz/my edge label/.style={inner sep=5pt, midway},
  /tikz/rhombus/.style={trapezium, trapezium left angle=105, trapezium right angle=75, draw=red},
  my rhombus/.style n args=2{
    tikz={\node [fit=#1, rhombus, inner sep=#2] {};},
  },
  for tree={
    l sep=4em,
    s sep=11em,
    anchor=center,
    fit=rectangle,
    calign=fixed edge angles,
    before typesetting nodes={
      if n'=1{
        edge label/.wrap value={\noexpand node [my edge label,right] {$#1$} }
      }{
        edge label/.wrap value={\noexpand node [my edge label,left] {$#1$} }
      },
    },
    if n children=0{}{
      circle,
      draw,
    }
  }
  [$P_1$, my rhombus={() (current bounding box.west) (current bounding box.south east)}{12.5pt}
    [{2, 2}, edge label=D]
    [$P_2$, edge label=A, my rhombus={() (!1) (!2 2)}{7.5pt}
      [{1, 1}, edge label=d]
      [$P_1$, edge label=a, my rhombus={() (!1) (!2)}{2.5pt}
        [{0, 0}, edge label=D]
        [{3, 3}, edge label=A]
      ]
    ]
  ]
\end{forest}
\end{document}

no rombo

Respuesta2

Una solución para utilizar elistgamepaquete:

ingrese la descripción de la imagen aquí

\documentclass{standalone}

\usepackage{istgame}

\begin{document}    
\begin{istgame}[font=\footnotesize]
\xtdistance{15mm}{25mm}
\istrooto(0){$P_1$}
  \istb{D}[l]{2,2}
  \istb{A}[r]
  \endist
\istrooto(1)(0-2){$P_2$}
  \istb{d}[l]{1,1}
  \istb{a}[r]
  \endist
\istrooto(2)(1-2){$P_1$}
  \istb{D}[l]{0,0}
  \istb{A}[r]{3,3}
  \endist
\xtSubgameBox(0){(0-1)(2-2)}
\xtSubgameBox(1){(1-1)(2-2)}[inner sep=18pt]
\xtSubgameBox(2){(2-1)(2-2)}[inner sep=16pt]
%\xtSubgameBox(2){(2-1)(2-2)}[solid,rounded corners=0pt,inner sep=16pt]
\end{istgame}

\end{document}

Es su elección agregar opciones como [sólido, esquinas redondeadas = 0pt] o color.

información relacionada