我正在尝试将灰色框放大,但无法成功(大到足以包含季后赛)。非常希望得到一些帮助。
这是我的代码:
[![\documentclass\[11pt\]{article}
\usepackage\[utf8\]{inputenc}
\usepackage{multirow}
\usepackage\[margin=1in\]{geometry}
\usepackage{amsmath,amsthm,amssymb,amsfonts}
\usepackage{tikz} %for game theory stuff
\usepackage\[skip=1ex\]{caption}
\usetikzlibrary{calc}
\usepackage{istgame}
\def\vpay#1#2{\begin{matrix}#1\\#2\end{matrix}}
\begin{document}
\begin{center}
\begin{istgame}
\xtShowEndPoints
\xtdistance{25mm}{70mm}
\istrooto(0){$\text{Firm} \ 1$}
\istb{BIG}\[l\]
\istb{small}\[r\]
\endist
\xtdistance{25mm}{35mm}
\istrooto(1)(0-1){$\text{Firm} \ 2$}
\istb{Low}\[l\]
\istb{High}\[r\]
\endist
\istrooto(2)(0-2){$\text{Firm} \ 2$}
\istb{low}\[l\]
\istb{high}\[r\]
\endist
\xtdistance{20mm}{10mm}
\istrooto(a)(1-1){$\text{Firm} \ 1$}
\istb{L}\[l\]{\vpay{8}{8}}
\istb{H}\[r\]{\vpay{7}{7}}
\endist
\istrooto(b)(1-2){$\text{Firm} \ 1$}
\istb{L}\[l\]{\vpay{6}{10}}
\istb{H}\[r\]{\vpay{6}{7}}
\endist
\istrooto(c)(2-1){$\text{Firm} \ 1$}
\istb{l}\[l\]{\vpay{7}{8}}
\istb{h}\[r\]{\vpay{10}{6}}
\endist
\istrooto(d)(2-2){$\text{Firm} \ 1$}
\istb{l}\[l\]{\vpay{5}{11}}
\istb{h}\[r\]{\vpay{8}{7}}
\endist
\setxtinfosetstyle{dashed}
\xtInfoset(a)(b)
\xtInfoset(c)(d)
\xtSubgameBox(1){(a)(b)(a-1)(b-1)(a-1)(b-2)(a-2)}
\xtSubgameBox(2){(c)(d)(c-1)}
%\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{center}
\end{document}][1]][1]
答案1
我按照手册上的istgame
说明操作,其中提到了这些实验框。手册上建议移动和放大这些框。我就是这么做的,即添加了[yshift=-2ex]
和[inner ysep=6ex]
。我并不是说这很优雅,但至少我可以把这个选择归咎于手册。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath}
\usepackage{istgame}
\def\vpay#1#2{\begin{matrix}#1\\#2\end{matrix}}
\begin{document}
\begin{center}
\begin{istgame}
\xtShowEndPoints
\xtdistance{25mm}{70mm}
\istrooto(0){$\text{Firm} \ 1$}
\istb{BIG}[l]
\istb{small}[r]
\endist
\xtdistance{25mm}{35mm}
\istrooto(1)(0-1){$\text{Firm} \ 2$}
\istb{Low}[l]
\istb{High}[r]
\endist
\istrooto(2)(0-2){$\text{Firm} \ 2$}
\istb{low}[l]
\istb{high}[r]
\endist
\xtdistance{20mm}{10mm}
\istrooto(a)(1-1){$\text{Firm} \ 1$}
\istb{L}[l]{\vpay{8}{8}}
\istb{H}[r]{\vpay{7}{7}}
\endist
\istrooto(b)(1-2){$\text{Firm} \ 1$}
\istb{L}[l]{\vpay{6}{10}}
\istb{H}[r]{\vpay{6}{7}}
\endist
\istrooto(c)(2-1){$\text{Firm} \ 1$}
\istb{l}[l]{\vpay{7}{8}}
\istb{h}[r]{\vpay{10}{6}}
\endist
\istrooto(d)(2-2){$\text{Firm} \ 1$}
\istb{l}[l]{\vpay{5}{11}}
\istb{h}[r]{\vpay{8}{7}}
\endist
\setxtinfosetstyle{dashed}
\xtInfoset(a)(b)
\xtInfoset(c)(d)
\xtSubgameBox([yshift=-2ex]1){(a)(b)(a-1)(b-1)(a-1)(b-2)(a-2)}[inner ysep=6ex]
\xtSubgameBox([yshift=-2ex]2){(c)(d)(c-1)}[inner ysep=6ex]
\end{istgame}
\end{center}
\end{document}
答案2
要使用该包表示扩展博弈的子博弈istgame
,您需要指定子博弈的根和最外层的终端节点。由于似乎不存在控制表示子博弈的框大小的一般规则,因此我们需要手动调整大小。为此,您可以调整框的inner sep
(或inner xsep
或inner ysep
)并移动子根,如手册中所述。
请注意,在下面的例子中,玩家默认以文本模式打印,您不需要写下所有的终端节点。
\documentclass{standalone}
\usepackage{amsmath}
\def\vpay#1#2{\begin{matrix}#1\\#2\end{matrix}}
\usepackage{istgame}
\begin{document}
\begin{istgame}
\xtShowEndPoints
\xtdistance{25mm}{70mm}
\istrooto(0){Firm 1}
\istb{BIG}[al] \istb{small}[ar] \endist
\xtdistance{25mm}{35mm}
\istrooto(1)(0-1){Firm 2}
\istb{Low}[al] \istb{High}[ar] \endist
\istrooto(2)(0-2){Firm 2}
\istb{low}[al] \istb{high}[ar] \endist
\xtdistance{20mm}{10mm}
\istrooto(a)(1-1){Firm 1}
\istb{L}[l]{\vpay{8}{8}} \istb{H}[r]{\vpay{7}{7}} \endist
\istrooto(b)(1-2){Firm 1}
\istb{L}[l]{\vpay{6}{10}} \istb{H}[r]{\vpay{6}{7}} \endist
\istrooto(c)(2-1){Firm 1}
\istb{l}[l]{\vpay{7}{8}} \istb{h}[r]{\vpay{10}{6}} \endist
\istrooto(d)(2-2){Firm 1}
\istb{l}[l]{\vpay{5}{11}} \istb{h}[r]{\vpay{8}{7}} \endist
% \setxtinfosetstyle{dashed}
\xtInfoset(a)(b)
\xtInfoset(c)(d)
\xtSubgameBox([yshift=-2ex]1){(a-1)(b-2)}[inner ysep=7ex]
\xtSubgameBox([yshift=-2ex]2){(c-1)(d-2)}[inner ysep=7ex]
\end{istgame}
\end{document}
无需使用 也可以做同样的事情\xtSubgameBox
。
例如,\xtSubgameBox([yshift=-2ex]2){(c-1)(d-2)}[inner ysep=7ex]
只是以下代码的缩写:
\coordinate (xtsubroot) at ($([yshift=-2ex]2)+(0,-.3)$);
\node [rectangle,draw,dashed,inner sep=20pt,rounded corners=15pt,black!50,inner ysep=7ex]
[fit=(xtsubroot)(c-1)(d-2)]{};
使用哪一种取决于您的选择。
万一你想让你的游戏树向东生长,你需要相应地调整你的子游戏框。(无论树的生长方向如何,我都没有发现任何控制框大小的通用模式。)另请参阅另一个例子。
\documentclass[border=1pt]{standalone}
\usepackage{amsmath}
\def\vpay#1#2{\begin{matrix}#1\\#2\end{matrix}}
\usepackage{istgame}
\begin{document}
\begin{istgame}
\setistgrowdirection'{east}
\xtShowEndPoints
\xtdistance{25mm}{70mm}
\istrooto(0){Firm 1}
\istb{BIG}[al] \istb{small}[bl] \endist
\xtdistance{25mm}{35mm}
\istrooto(1)(0-1){Firm 2}
\istb{Low}[al] \istb{High}[bl] \endist
\istrooto(2)(0-2){Firm 2}
\istb{low}[al] \istb{high}[bl] \endist
\xtdistance{20mm}{10mm}
\istrooto(a)(1-1){Firm 1}
\istb{L}[a]{\vpay{8}{8}} \istb{H}[b]{\vpay{7}{7}} \endist
\istrooto(b)(1-2){Firm 1}
\istb{L}[a]{\vpay{6}{10}} \istb{H}[b]{\vpay{6}{7}} \endist
\istrooto(c)(2-1){Firm 1}
\istb{l}[a]{\vpay{7}{8}} \istb{h}[b]{\vpay{10}{6}} \endist
\istrooto(d)(2-2){Firm 1}
\istb{l}[a]{\vpay{5}{11}} \istb{h}[b]{\vpay{8}{7}} \endist
\xtInfoset(a)(b)
\xtInfoset(c)(d)
\xtSubgameBox([xshift=-2ex]1){(a-1)(b-2)}%[inner ysep=7ex]
\xtSubgameBox([xshift=-2ex]2){(c-1)(d-2)}%[inner ysep=7ex]
\end{istgame}
\end{document}