우선, 며칠 전 첫 번째 질문에서 도움을 주신 커뮤니티에 감사드리고 싶습니다. 그렇긴 하지만, 가능하다면 다시 한 번 도움을 요청하고 싶습니다. 본질적으로 저는 현재 게임 이론 트리를 그리는 데 강력한 패키지를 사용하고 Forest
있으며 지금까지는 매우 좋습니다. 그런데 지금, 어떻게 해야 할지 모르겠고, 패키지의 (다소 복잡한) 매뉴얼에도 설명되어 있지 않은 문제에 직면하게 되었습니다 Forest
. 기본적으로 세 개의 노드가 있는 게임(트리)이 있는데, 각 노드는 하위 게임의 시작입니다. 기본적으로 트리에는 세 개의 하위 게임이 있다는 점을 분명히 해야 합니다. 내가 찾고 있는 것을 그래픽으로 표현하면 다음과 같습니다.
내가 그린 나무는 다음과 같습니다. (그리고 나는 그것을 유지하고 싶습니다):
간단히 말해서, 내 나무(그림 2)에 첫 번째 나무(그림 1)의 빨간색 사각형을 그려주고 싶습니다. 그러나 내 나무의 형태를 고려하면 아마도 마름모가 필요할 것입니다. 마지막으로 현재 트리에 사용하고 있는 코드를 제공합니다.
\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}
이 사각형을 포함하려면 무엇을 추가/변경해야 합니까?
미리 감사드립니다.
감사합니다, 헥토르.
답변1
정확히 마름모는 아니지만 중요한 경우 각도와 거리를 수정할 수 있습니다.
\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}
답변2
사용하는 솔루션istgame
패키지:
\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}
[단색,둥근 모서리=0pt] 또는 색상과 같은 옵션을 추가할지 여부는 귀하의 선택입니다.