使用@marmot(谢谢!)演示的技术这个问题,我制作了以下游戏树:
梅威瑟:
\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{color}
\usepackage{tikz}
\usepackage[edges]{forest}
\usepackage[outline]{contour}
\begin{document}
\newcommand{\vdisp}[1]{\ensuremath{\begin{pmatrix}#1\end{pmatrix}}}
\newcommand{\red}[1]{\color{red}#1\color{black}}
\begin{center}
\scriptsize
\begin{forest}
for tree={s sep=0.15cm,l sep=1.25cm}
[,tikz={\fill[](.anchor)circle[radius=1.5pt];}
[\red{2}
[{\vdisp{2\\2}}]
[\red{1}, alias = L
[{\vdisp{1\\0}}]
[{\vdisp{0\\1}}]
]
]
[\red{2}
[\red{1}, alias = R
[{\vdisp{0\\3}}]
[{\vdisp{3\\0}}]
]
[{\vdisp{0\\0}}]
]
]
\node[draw,dashed,rounded rectangle,fit=(L) (R)]{};
\end{forest}
\end{center}
需要进行小幅调整:如何将边直接连接到根节点的圆?
额外的:
如果有人对如何改善我的收益的外观(必须以风格展示)有任何建议pmatrix
,我很乐意听到!
答案1
在这种情况下,将inner sep
根节点设置为即可0
达到目的。
\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{color}
\usepackage{tikz}
\usepackage[edges]{forest}
\usepackage[outline]{contour}
\begin{document}
\newcommand{\vdisp}[1]{\ensuremath{\begin{pmatrix}#1\end{pmatrix}}}
\newcommand{\red}[1]{\color{red}#1\color{black}}
\begin{center}
\scriptsize
\begin{forest}
for tree={s sep=0.15cm,l sep=1.25cm},
[,inner sep=0,tikz={\fill[](.anchor)circle[radius=1.5pt];}
[\red{2}
[{\vdisp{2\\2}}]
[\red{1}, alias = L
[{\vdisp{1\\0}}]
[{\vdisp{0\\1}}]
]
]
[\red{2}
[\red{1}, alias = R
[{\vdisp{0\\3}}]
[{\vdisp{3\\0}}]
]
[{\vdisp{0\\0}}]
]
]
\node[draw,dashed,rounded rectangle,fit=(L) (R)]{};
\end{forest}
\end{center}
\end{document}
但是,一般来说,最好告诉 Forest(实际上是 PGF)根节点是圆形的(并且fill
它也是圆形的)。inner sep
参数更改圆的大小(否则由内容决定,在本例中为空)。将设置outer sep
为空以将边缘紧密连接到节点;或者,将draw
节点fill
设置为空。
\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{color}
\usepackage{tikz}
\usepackage[edges]{forest}
\usepackage[outline]{contour}
\begin{document}
\newcommand{\vdisp}[1]{\ensuremath{\begin{pmatrix}#1\end{pmatrix}}}
\newcommand{\red}[1]{\color{red}#1\color{black}}
\begin{center}
\scriptsize
\begin{forest}
for tree={s sep=0.15cm,l sep=1.25cm},
[,circle,fill,outer sep=0,inner sep=1pt,
[\red{2}
[{\vdisp{2\\2}}]
[\red{1}, alias = L
[{\vdisp{1\\0}}]
[{\vdisp{0\\1}}]
]
]
[\red{2}
[\red{1}, alias = R
[{\vdisp{0\\3}}]
[{\vdisp{3\\0}}]
]
[{\vdisp{0\\0}}]
]
]
\node[draw,dashed,rounded rectangle,fit=(L) (R)]{};
\end{forest}
\end{center}
\end{document}
答案2
另一个使用示例istgame
包裹。
\documentclass{standalone}
\usepackage{amsmath}
\usepackage{istgame}
\begin{document}
\begin{istgame}
\tikzset{oval node/.style={ellipse node,draw=none,red}}
\xtdistance{20mm}{10mm}
\istroot(0)+20mm..30mm+
\istb \istb \endist
\istrooto(1)(0-1){2}
\istb{}{\binom{2}{2}} \istb \endist
\istrooto(2)(0-2){2}
\istb \istb{}{\binom{0}{0}} \endist
\istrooto(3)(1-2){1}
\istb{}{\binom{1}{0}} \istb{}{\binom{0}{1}} \endist
\istrooto(4)(2-1){1}
\istb{}{\binom{0}{3}} \istb{}{\binom{3}{0}} \endist
\setxtinfosetlayer{main}
\xtInfosetO[dashed](3)(4)(2em)
\end{istgame}
\end{document}