Zunächst möchte ich der Community für die Hilfe danken, die ich vor einigen Tagen bei meiner ersten Frage erhalten habe. Nachdem ich das gesagt habe, möchte ich Sie, wenn ich darf, noch einmal um Hilfe bitten. Im Wesentlichen verwende ich derzeit das leistungsstarke Paket, Forest
um Spieltheoriebäume zu zeichnen, und bisher läuft alles gut. Aber jetzt stehe ich vor etwas, von dem ich nicht weiß, wie es geht, und das im (ziemlich komplexen) Handbuch des Forest
Pakets nicht erklärt wird. Im Wesentlichen habe ich ein Spiel (einen Baum) mit drei Knoten, wobei jeder Knoten der Anfang eines Unterspiels ist. Ich muss im Wesentlichen klarstellen, dass es im Baum drei Unterspiele gibt. Die grafische Darstellung dessen, was ich suche, sieht ungefähr so aus:
Der Baum, den ich gezeichnet habe, sieht so aus (und den möchte ich gerne behalten):
Kurz gesagt möchte ich die roten Quadrate des ersten Baums (Bild 1) auf meinen Baum (Bild 2) zeichnen. Angesichts der Form meines Baums brauche ich jedoch wahrscheinlich Rauten. Abschließend gebe ich Ihnen den Code, den ich derzeit für meinen Baum verwende:
\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}
Was muss ich hinzufügen/ändern, um diese Quadrate einzuschließen?
Vielen Dank an alle im Voraus.
Freundliche Grüße, Héctor.
Antwort1
Nicht genau eine Raute, aber Sie können die Winkel und Abstände ändern, wenn das wichtig ist.
\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}
Antwort2
Eine Lösung zur Nutzung deristgame
Paket:
\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}
Sie können frei entscheiden, ob Sie Optionen wie [durchgezogen, abgerundete Ecken=0pt] oder Farbe hinzufügen möchten.