%!TEX program = arara
% arara: pdflatex: {shell: yes, synctex: yes}
% arara: xelatex: {shell: yes, synctex: yes}
% arara: makeindex: {style: istgame}
% arara: xelatex: {shell: yes, synctex: yes}
% arara: xelatex: {shell: yes, synctex: yes}
\def\tmpdate{2022/03/22}
\def\tmpdate{\today}
\def\tmpversion{2.1}
\def\printtikztreetest{}
\def\printtest{}
\def\printteststar{}
\def\printdoc{}
%\renewcommand\printtikztreetest{\input{istgame_test_tree}}
%\renewcommand\printtest{\clearpage\input{istgame_test}}
%\renewcommand\printteststar{\clearpage\input{istgame_test-star}}
\renewcommand\printdoc{\include{istgame-doc-v\tmpversion}}
%% ======================================================
\documentclass[a4paper,amsmath]{oblivoir}
%% ======================================================
%\documentclass[a4paper,article]{memoir}
%\renewcommand\thesection{\arabic{section}}
%\usepackage{istgame-v\tmpversion}
\usepackage{istgame}
\usepackage{fapapersize}
\usefapapersize{*,*,30mm,*,28mm,*}
\setsecnumdepth{subsubsection}
\settocdepth{subsubsection}
\setlength\cftsubsubsectionindent{4.5em}
%% us date
\usepackage{datetime}
\usdate \let\mytoday\today
\AtBeginDocument{\let\today\mytoday}
\AtBeginDocument{%
\renewcommand\contentsname{Table of Contents}
\renewcommand\figurename{Figure}
\renewcommand\tablename{Table}
\renewcommand\abstractname{Abstract}
\renewcommand\indexname{Index}
\renewcommand\pagerefname{\kern-4pt}%
}
%\usepackage[hidelinks]{hyperref} % (memoir)
\hypersetup{pdfborder={0 0 0}} % to suppress the hyperlink red box
%\usepackage{amsmath,mathtools}
%\usepackage{xparse} %% oblivoir loads xparse
%\usepackage{tikz} %% istgame loads tikz
\usepackage{makecell}
\usepackage{capt-of}
\usepackage{multido}
\usepackage[normalem]{ulem} % [normalem] to correct the pdf bookmark broken characters
\usepackage{idxlayout}
%\usepackage{url}
%\setistdefaultnodedrawcolor{red} % test
%\setistdefaultnodefillcolor{black!16} % (try for MacOS mohave dark mode, TeXShop background color)
\usepackage{tcolorbox}
\tcbuselibrary{minted,xparse,listings,breakable}
\tcbset{%
listing engine=minted,breakable,
% minted language=latex,
after={\par\vspace{.5\baselineskip}\noindent}
}
\tcbset{%
colback=yellow!5!white,
colframe=blue!30,
listing outside text,
righthand width=.3\linewidth,
center upper,
center lower,
sidebyside gap=5pt,
minted style=igor, %tango, **igor, xcode, ***manni, *autumn, colorful,
listing options={%
style=tcblatex,
% keywordstyle={\color{blue}},
commentstyle=\color{black!20!green},
% morekeywords={
% istgamefontsize,setistgamefontsize,setistgamearrowendshorten,
% istgame,istroot,istrooto,istb,endist,xtdistance,istbm,
% istbt,istB,istBt,istbA,cntmAInfoset,cntmAInfosetO,
% istrootcntm,istrootcntmA,istrootocntm,istrootocntmA,
% setistgrowdirection,istgrowdirection,
% setistmathTF,istownerlmathtrue,istownermathfalse,istactioinlabelmathtrue,
% istactionlabelmathfalse,istpayoffmathtrue,istpayoffmathfalse,
% cntmdistance,cntmlevdist,cntmsibdist,
% cntmApreset,cntmistb,cntmAistb,cntmAexpostShowEndPoints,
% xtInfoset,xtInfosetO,xtActionLabel,
% xtSubgame,xtSubgameBox,xtSubgameOval,
% xtgrow,setxtgrowkey,xtInfosetOwner,xtOwner,xtPayoff,xtNode,
% xtALPush,xtALShift,
% xtShowEndPoints,xtHideEndPoints,
% xtShowTerminalNodes,xtHideTerminalNodes,
% xtTimeLineH,xtTimeLineV,xtCommentTo,xtCommentFrom,xtShowArrows,xtHideArrows,
% xtlevdist,xtsibdist,
% xtShowArrows,xtHideArrows,xtShowMidArrows,xtHideMidArrows,
% setxtshowarrows,setxtmidarrows,setxtshowmidarrows,
% setxtinfosetlayer,setxtsubgamelayer,
% setistNewNodeStyle,
% setistDecisionNodeStyle,setistOvalNodeStyle,
% setistSolidNodeStyle,setistHollowNodeStyle,
% setistEllipseNodeStyle,setistNullNodeStyle,setistRectangleNodeStyle,
% xtALpush,xtALshift,
% xtdefaultsubrootshiftoval,
% tikzstyle,draw,coordinate,foreach,setlength,
% NewDocumentCommand,NewDocumentEnvironment,IfBooleanTF,tikzset,
% xtCInfoset,xtCInfosetO,xtCInfosetOTurnX,
% cntmpreset,cntmApreset,cntmAlayerpreset
% setxtinfosetstyle,setxtarrowtips,setxtinfosetstyle
% },
}, % end of listing options
}
\DeclareTCBListing{docstx}{ !O{} }
{colback=blue!5!white,listing only,#1}
\DeclareTCBListing{docsty}{ !O{} }
{colback=red!5!white,listing only,#1}
\DeclareTCBListing{docplain}{ !O{} }
{colback=white,colframe=gray!15,listing only,#1}
\DeclareTCBListing{doccode}{ !G{1} !O{} }
{righthand width=\expandafter#1\linewidth,#2}
%\usepackage{tikz-qtree} %%% DO NOT USE
% or, add the following in the option
% [ edge from parent path={(\tikzparentnode) -- (\tikzchildnode)} ]
\linespread{1}
\newcommand*\Tikz{Ti\textit{k}Z}
\let\TikZ\Tikz
\newenvironment{keywords}{%
\par\vskip2pt
\noindent\hangfrom{\textsc{Keywords: }}%
}
\NewExpandableDocumentCommand\xcol{mO{c|}m}
{\multicolumn{#1}{#2}{\ensuremath{#3}}}
%% more lazy macros
\newcommand\xbigskip[1]{\multido{}{#1}\bigskip}
\newcommand\xmedskip[1]{\multido{}{#1}\bigskip}
\newcommand\xsmallskip[1]{\multido{}{#1}\bigskip}
\def\hpara{\hangpara{1.52em}{1}}
\def\listdivider{\leavevmode\smallskip\hrule width 1.5em\smallskip}
\NewDocumentCommand\remark{ O{1} }
{\xmedskip{#1}\noindent \textbf{Remark: }}
\NewDocumentCommand\warning{ O{1} }
{\xmedskip{#1}\noindent \textbf{Warning: }}
%
\newcommand\sourcelink[1]{\ttfamily\color{blue}\uline{#1}}
%
%%% index
%\renewcommand\cmd[1]{\cmdprint{#1}}
\ExplSyntaxOn
\renewcommand \cmd [1]
{
\texorpdfstring
{ \cmdprint {#1} }
{ \textbackslash \cs_to_str:N #1 }
}
\let\CMD\cmd
\ExplSyntaxOff
\newcommand\xw[1]{\cmd{#1}}
\newcommand\xttw[1]{\texttt{#1}}
\newcommand\pkg[1]{\textsf{#1}}
\newcommand\env[1]{\textsf{#1}}
\newcommand\isw[1]{#1\index{#1}} % simple word in text/index
\newcommand\ixsw[1]{\cmd{#1}\index{#1}} % texttt in text, simple word in index
\newcommand\ixw[1]{\textsf{#1}\index{#1@\textsf{#1}}} % textsf in text/index
\newcommand\ixttw[1]{\texttt{#1}\index{#1@\texttt{#1}}} % texttt in text/index
\newcommand\ipkg[1]{\textsf{#1}\index{#1@\textsf{#1}}}
\newcommand\ienv[1]{\textsf{#1}\index{#1@\textsf{#1}}}
\makeatletter
\newcommand{\icmd}[1]{\cmdprint{#1}%
\index{\expandafter\@gobble\string#1(@\string\cmdprint{\string#1}}}
\makeatother
\makeindex
\title{\texttt{istgame.sty} \\
Draw Game Trees with \Tikz}
\author{In-Sung Cho \\ \texttt{ischo <at> ktug.org}}
\date{Economics, Kongju National University\\[3pt] \tmpdate\quad version \tmpversion}
\def\tmpclearpage{\clearpage}
\AtBeginDocument{\MakeShortVerb{\|}}
%%=======================================================================
\begin{document}
\frontmatter
\maketitle
\renewcommand{\abstracttextfont}{\normalfont\small\noindent\ignorespaces}
\begin{abstract}
This is a \LaTeX{} package that provides \Tikz-based macros to draw game trees. The main idea underlying the core macros here is the completion of a whole tree by using a sequence of simple `parent-child' tree structures, with no longer nested relations involved like the use of grandchildren or great-grandchildren.
With the \ipkg{istgame} package, you can draw game trees as easily as drawing game trees with pen and paper.
\begin{keywords}
game trees, nodes, branches, information sets, continuum of branches, subgames
\end{keywords}
\end{abstract}
\tableofcontents*
\mainmatter
\printtikztreetest
\printtest
\printteststar
\printdoc
%\clearpage
\setsecnumdepth{chapter}
\section{Version history}
\label{version-history}
\begin{itemize}
%\item v\tmpversion (\tmpdate) to be uploaded to CTAN
% \begin{itemize}
% \item
% \end{itemize}
\item v2.1 (2022/03/22) uploaded to CTAN
\begin{itemize}
\item document done!
\end{itemize}
\item v2.092 (2022/03/21)
\begin{itemize}
\item working on the documentation
\item added |arrows.meta| and |bending| to the list of preloaded |tikz| libraries
\begin{itemize}
\item applied |arrows.meta| arrow tips to the related examples
\end{itemize}
\end{itemize}
\item v2.091 (2022/03/16)
\begin{itemize}
\item modified |istgame| environment to add its starred version
\begin{itemize}
\item |\begin{istgame}*| is essentially the same as |\begin{tikzpicture}|
\item but loses some feature of the \pkg{istgame} package
\end{itemize}
\item fixed all macros related information sets to remove arrow tips
\item touched |\AtBeginDocument{\setxtarrowtips}|
\item rewrote |\setistmathTF(*)| and related macros to avoid a possible conflict
\end{itemize}
\item v2.09 (2021/04/05)
\begin{itemize}
\item removed |\pgfextra| from |\istrootcntm| and |\istrootcntmA| (debugging)
\item resolved the null font problem in |\cntmistb| and |\cntmAistb| using |\l_nullfont_tl| (debugging)
\item added |\setist<...>nodesize| for |solid|, |hollow|, |ellipse|, and |rectangle| (for global setting in the preamble)
\end{itemize}
\item v2.0 (2019/01/27) uploaded to CTAN
\begin{itemize}
\item changed the title of the package to ``Draw Game Trees with \Tikz"
\item package document done
\end{itemize}
\item v2.0rc (2019/01/27)
\begin{itemize}
\item introduced |\setxtinfosetstyle|
\begin{itemize}
\item introduced |infoset style|, a new style for information sets
\item modified all definitions of information sets, accordingly
\end{itemize}
\item redefined macros related to layer, to easily restore default values
\item modified the cross arrow tip options
\item modified defaults of |\setxtarrowtips| not to depend on branch styles initially
\item code refinement
\end{itemize}
\item v2.0beta1 (2019/01/26)
\begin{itemize}
% \item beta test
\item introduced |\xtshowXpoints| and |\xtshowXcircles| (for developer only, not documented)
\end{itemize}
%%%\item v1.99x (2019/01/24)
%%% \begin{itemize}
%%% \item changed |expl3| macros
%%% \begin{itemize}
%%% \item \verb+\str_case_x:nnTF+ to \verb+\str_case_e:nnTF+ and then to \verb+\str_case:nnTF+
%%% \item \verb+\str_if_eq_x:nnTF+ to \verb+\str_if_eq:eeTF+ and then to \verb+\str_if_eq:nnTF+
%%% \end{itemize}
%%% \item modified macros on arrows and middle arrows
%%% \item redefined |\xtTimeLineH| and |\xtTimeLineV| to deal with swap of branches
%%% \item modified |\xtCommentTo| and |\xtCommentFrom| for the last option delimiters
%%% \end{itemize}
%%%\item v1.99w (2019/01/21)
%%% \begin{itemize}
%%% \item fixed bug in |\xtInfosetO| regarding |\xtinfosetheihtvar| for |rounded corner|
%%% \item corrected |\cntmistb| and |\cntmAistb|
%%% \begin{itemize}
%%% \item separated options for |\cntmAistb| from those for |\cntmistb|
%%% \item those two are independent to each other (except the way to deal with endpoints)
%%% \end{itemize}
%%% \item redefined |\endist| to restore initial values after each execution of the \verb+cntm(A)istb+
%%% \begin{itemize}
%%% \item but not for the effect of printing endpoints
%%% \item (internally introduced) |\cntmistbVariablesRestore|
%%% \item (internally introduced) |\cntmAistbVariablesRestore|
%%% \end{itemize}
%%% \item introduced |\xtHideEndPoints*| for extra work for continuum endpoints
%%% \item introduced |\cntmAlayerpreset|, with |behind| as default
%%% \item redefined |\xtShowArrows| to add an option for a node style
%%% \item changed the order of options for |\setxtshowarrows|
%%% \item changed the order of options for |\setxtarrowtips|
%%% \item renamed |\setxtmidarrows| to |\setxtarrowtips|
%%% \end{itemize}
%%%\item v1.99v (2018/01/17)
%%% \begin{itemize}
%%% \item redefined the \env{istgame} environment and |\istgameScaleCallTestAndAdjust|
%%% to take care of simultaneous use of |xscale| and |yscale|.
%%% \item modified macros to make singleton information sets scaled accordingly when needed
%%% \begin{itemize}
%%% \item |\xtInfosetO|, |\xtCInfosetO|, |\cntmAInfosetO|, |\istgameScaleCallTestAndAdjust|
%%% \item (internally) added |\xtinfosetheightvar| and |\cntminfosetheightvar|
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99u (2019/01/15)
%%% \begin{itemize}
%%% \item redefined macros to deal with local change of sibling distances
%%% \begin{itemize}
%%% \item redefined |\istrootcntm|, |\istrootcntmA|, |\istrootocntm|, |\istrootocntmA|,
%%% \item redefined |\istbA|, |\istbAt|
%%% \item redefined |\cntmpreset|, |\cntmApreset| -- NEED TO GO BACK (no need call test)
%%% \end{itemize}
%%% \item redefined |\xtCInfoset| to add abbreviations for the position of owners
%%% \item redefined |\xtCInfoset| to print a singleton information set
%%% \item modified |\xtCInfoset| to change the way of input for its position (|add to \textbackslash cntmApos|)
%%% \end{itemize}\
%%%\item v1.99t (2019/01/13)
%%% \begin{itemize}
%%% \item redefined macros to deal with local change of level and sibling distances for |\istbA|
%%% \begin{itemize}
%%% \item code complication, inevitable to take care of too many cases
%%% \item redefined |\istroot| and |\istrooto|
%%% \item redefined |\istrootcntm| and its variants
%%% \item redefined |\istbA| and |\istbAt|
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99s (2019/01/10)
%%% \begin{itemize}
%%% \item modified |\xtCInfosetO| for better results when swapped with \xw{plotfactor} less than 1
%%% \item modified |\istrootcntm| and its variants for better results of shrunken continua
%%% \item redefined |\xtTimeLineH| (for a horizontal time-line)
%%% \item introduced |\xtTimeLineH(')| for a vertical time-line
%%% \item introduced |\xtCInfosetOTurnX| for turning X circles to use it just in case
%%% \end{itemize}
%%%\item v1.99r (2019/01/07)
%%% \begin{itemize}
%%% \item redefined |\istrootcntm| and |\istrootocntm| for smaller triangle continua of branches
%%% \item introduced |\cntmpreset| and |\cntmpreset*|
%%% \item put `call test' for cases of how to change level distance with |\istbA|
%%% \item modified |\xtCInfosetO| and |\cntmAInfosetO| for coloring
%%% \end{itemize}
%%%\item v1.99q (2019/01/05)
%%% \begin{itemize}
%%% \item modified |\xtInfosetO| to print a singleton information set by a circle.
%%% \item finished fine-tuning |\cntmAInfosetO| (for tuning base circles)
%%% \end{itemize}
%%%\item v1.99p (2019/01/02)
%%% \begin{itemize}
%%% \item redefined |\xtInfoset| and |\xtInfosetO| in accordance with new |\xtCInfosetO|
%%% \item redefined completely |\cntmAInfoset| and |\cntmAInfsetO| in the way of |\xtCInfosetO|
%%% \item redefined |\cntmAInfoset|, |\cntmAInfosetO|, |\istrootcntmA|, and |\istrootocntmA|
%%% \begin{itemize}
%%% \item to compensate the dependency of arcs on the ratio of |\cntmlevdist| to |\cntmsibdist|
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99o (2018/12/31)
%%% \begin{itemize}
%%% \item redefined completely |\xtCInfosetO| and |\xtCInfoset| for enhancement
%%% \begin{itemize}
%%% \item (internally) added |\setxtCIAngleAccordingtoGrowswapCallForCI|
%%% \item to make it possible for the control points to turn accordingly along the base circles
%%% for sides of curved information sets
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99n (2018/12/27)
%%% \begin{itemize}
%%% \item redefined |\setistmathTF*| to make it work with basic text font styles
%%% \begin{itemize}
%%% \item |\istownertextfont|, |\istactionlabeltextfont|, |\istpayofftextfont|
%%% \item all working only in text mode
%%% \end{itemize}
%%% \item introduced |\xtcureslopedlabelsNS| and |\xtcureslopedlabelsEW| to resolve a \Tikz\ conflict to sloped labels
%%% \begin{itemize}
%%% \item (internally) added |\xtlevdistadj| and |\xtsibdistadj|
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99m (2018/12/21)
%%% \begin{itemize}
%%% \item added starred versions that work with |\setistmathTF|
%%% \begin{itemize}
%%% \item |\xtInfoset*|, |\xtInfosetO*|, |\xtCInfoset|, |\xtCInfosetO|
%%% \item |\xtOwner*|, |\xtActionLabel*|, |\xtPayoff*|, |\xtInfosetOwner*|
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99l (2018/12/18)
%%% \begin{itemize}
%%% \item changed the order and the type of argument delimiters for input consistency
%%% \begin{itemize}
%%% \item |\xtCInfosetO|, |\cmtmAinfosetO|, and their related macros
%%% \item effective from \xw{v.1.99l}
%%% \begin{itemize}
%%% \item not consistent with the earlier versions of update
%%% \item but intact with the \xw{version 1}
%%% \end{itemize}
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99k (2018/12/15)
%%% \begin{itemize}
%%% \item introduced |\xtCInfosetO| for bubble type curved information sets
%%% \begin{itemize}
%%% \item (internally) added |\xtPrototypeForCInfosetO| -- only for |\xtCInfosetO|
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99j (2018/12/11)
%%% \begin{itemize}
%%% \item introduced |\xtCInfoset| for curved information sets
%%% \begin{itemize}
%%% \item (internally) added |\istgameScaleCallTestAndAdjust| (must be used in a group)
%%% \item (internally) added |\setxtCIAngleAccordingtoGrowswapCall|
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99i (2018/12/08)
%%% \begin{itemize}
%%% \item (macro name change, effective from \xw{v1.99i}) all `\xw{cntmarc}' changed to `\xw{cntmA}'
%%% \item introduced |\cntmAInfosetO|
%%% \item introduced |\cntmAexpostShowEndPoints|
%%% \item introduced |\istbA(*)| and |\istbAt(*)|
%%% \end{itemize}
%%%\item v1.99h (2018/11/07)
%%% \begin{itemize}
%%% \item changed the default position of a continuum arc from \xw{.5} to \xw{1}
%%% \item introduced |\cntmarcInfoset|
%%% \end{itemize}
%%%\item v1.99g (2018/09/30)
%%% \begin{itemize}
%%% \item put |\xtShowArrows| and |\xtShowMidArrows| into |\istB|
%%% \item found issues with |\xtShowArrows| and |\xtShowMidArrows| related to \xw{postaction}
%%% \item added the arrow end shorten option to |\xtCommentTo| and |\xtCommentFrom|.
%%% \item (internal) minor changes
%%% \begin{itemize}
%%% \item redefined |\setistSolidNodeStyle| to keep consistency with other node styles
%%% \item redefined |\setistNullNodeStyle| to keep consistency with other node styles
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99f (2018/09/19)
%%% \begin{itemize}
%%% \item (internally) redefined |\cntmistb| and |\cntmarcistb| to resolve endpoints problems
%%% \begin{itemize}
%%% \item (internally) added |\cntmOUTERistb| and |\cntmarcOUTERistb|
%%% \item (internally) removed |\cntmendpointsShow| and |\cntmendpointsPrint|
%%% \item (internally) redefined |\istrootcntm| and its variants accordingly
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99e (2018/09/15)
%%% \begin{itemize}
%%% \item introduced |\xtShowArrows| and |\xtHideArrows(*)|
%%% \item introduced |\setxtshowarrows|
%%% \item introduced |\xtShowMidArrows| and |\xtHideMidArrows|
%%% \end{itemize}
%%%\item v1.99d (2018/09/13)
%%% \begin{itemize}
%%% \item introduced |\setxtarrowtips| with a tikzstyle \xw{->-}
%%% \item introduced new arrow styles: \xw{->>-}, \xw{->>>-}, \xw{-o-}, and \xw{-x-}
%%% \end{itemize}
%%%\item v1.99c (2018/09/09)
%%% \begin{itemize}
%%% \item introduced |\cntmistb| and |\cntmarcistb|
%%% \item redefined |\cntmdistance| to check if |\cntmactsibdist| is called or not
%%% \item (internally) added |\cntmendpointsShow|
%%% \begin{itemize}
%%% \item redefined |\xtShowEndPoints| and |\xtHideEndPoints| accordingly
%%% \item introduced |\xtShowEndPoints*| (for outermost branches of a continuum)
%%% \end{itemize}
%%% \item (internally) added |\cntmendpointsPrint|
%%% \begin{itemize}
%%% \item redefined |\istrootcntm| and its variants accordingly
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.99b (2018/09/07)
%%% \begin{itemize}
%%% \item redesigned |\istrootcntm| and its variants
%%% \begin{itemize}
%%% \item removed |\ISTCntm(')| and |\ISTCntmArc(')|
%%% \end{itemize}
%%% \item introduced |\cntmdraw|, |\cntmdrawset| and related macros
%%% \item redfined |\cntmdistance| to check if |\cntmactsibdist| is called or not
%%% \end{itemize}
%%%\item v1.99a (2018/09/05)
%%% \begin{itemize}
%%% \item introduced |\setistgameshorten| (for \env{istgame} environment option)
%%% \end{itemize}
%%%\item v1.98 (2018/09/03)
%%% \begin{itemize}
%%% \item redefined |\istrootcntm(arc)| to make it work with |\setistmathTF(*)|
%%% \item redefined |\istrootocntm(arc)| to make it work with |\setistmathTF(*)|
%%% \end{itemize}
%%%\item v1.97 (2018/09/02)
%%% \begin{itemize}
%%% \item redefined |\istroot(o)| to resolve tex expansion problems
%%% \item redefined |\istrootcntm(arc)| to resolve tex expansion problems
%%% \item redefined |\istrootocntm(arc)| to resolve tex expansion problems
%%% \item redefined the \env{istgame} environment to add \xw{[shorten >=0pt]} if \xw{[->]} exists
%%% \end{itemize}
%%%\item 1.96 (2018/08/30)
%%% \begin{itemize}
%%% \item minor changes
%%% \begin{itemize}
%%% \item altered the default sibling distance of |\xtdistance| from \xw{15mm} to \xw{\levdist}
%%% \item altered initial options for \xw{null}, \xw{solid}, and \xw{hollow} nodes (added \xw{thin}, \xw{solid})
%%% \item added \xw{text depth=.25ex} for some definitions
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.95 (2018/08/27)
%%% \begin{itemize}
%%% \item resolved dimension issues for |\cntmdistance|
%%% \item added |\xtOwner*|, |\xtActionLabel*|, |\xtPayoff*| (working with |\setistmathTF(*)|)
%%% \end{itemize}
%%%\item v1.94 (2018/08/22)
%%% \begin{itemize}
%%% \item resolved tex expansion issues in the macros for a continuum of branches
%%% \end{itemize}
%%%\item v1.93 (2018/08/19)
%%% \begin{itemize}
%%% \item introduced |\setistmath| to set input mode for owners, action labels, and payoffs
%%% \item introduced |\setistmath*| to print action labels in italics, in case of text mode
%%% \item (internally) added |\istownerstyle|, |\istactionlabelstyle|, and |\istpayoffstyle|
%%% \end{itemize}
%%%\item v1.92 (2018/08/17)
%%% \begin{itemize}
%%% \item redesigned the \env{istgame} environment
%%% \begin{itemize}
%%% \item to extract the number input from \xw{scale}, \xw{xscale}, or \xw{yscale}
%%% \item added |\xtscale|, |\xtxscale|, and |\xtyscale| to save scale option values
%%% \end{itemize}
%%% \item tested to apply scale values to improve the result of |\xtInfosetO|
%%% \end{itemize}
%%%\item v1.91 (2018/08/16)
%%% \begin{itemize}
%%% \item many changes to resolve expansion problems
%%% \begin{itemize}
%%% \item redefined |\cntmset|, |\cntmarcset|, and related macors
%%% \item redifined |\cntmlevdist| and |\cntmsibdist| as lengths
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.9 (2018/08/11)
%%% \begin{itemize}
%%% \item introduced |\cntmarcplotfactorset|
%%% \end{itemize}
%%%\item v1.8 (2018/08/09)
%%% \begin{itemize}
%%% \item made possible to use the directional abbreviations with |\xtInfoset|
%%% \item introduced |\istrootocntm| and |\istrootocntmarc| (oval versions)
%%% \end{itemize}
%%%\item v1.7 (2018/08/04)
%%% \begin{itemize}
%%% \item introduced |\istbm|
%%% \item introduced |\setistNewNodeStyle|
%%% \end{itemize}
%%%\item v1.6 (2018/08/01)
%%% \begin{itemize}
%%% \item resigned |\cntmdistance| (now ready for users)
%%% \begin{itemize}
%%% \item added |\cntmactsibdist| to distinguish it from |\cntmsibdist|
%%% \end{itemize}
%%% \item added |\cntmdistance*| to incorporate with |\xtdistance|
%%% \item introduced |\istrootcntmA(')|
%%% \begin{itemize}
%%% \item added (internally) |\ISTCntmArc(')|
%%% \item added |\cntmarcset|
%%% \end{itemize}
%%% \item introduced |\istrootcntm(')|
%%% \begin{itemize}
%%% \item added (internally) |\ISTCntm(')|
%%% \end{itemize}
%%% \item (internally) renamed |\istCntmRoot(Arc)| to |\obsoleteISTCntm(Arc)|
%%% \end{itemize}
%%%\item v1.5 (2018/07/26)
%%% \begin{itemize}
%%% \item introduced |\setxtinfosetlayer|
%%% \item introduced |\setxtsubgamelayer|
%%% \end{itemize}
%%%\item v1.4 (2018/07/12)
%%% \begin{itemize}
%%% \item completely rewrote |\xtInfosetO| to deal with sloped information sets
%%% \begin{itemize}
%%% \item removed |\xtInfosetO'| and |\xtInfoset'| (critical change for users!)
%%% \end{itemize}
%%% \end{itemize}
%%%\item v1.3 (2018/07/06)
%%% \begin{itemize}
%%% \item (internally) renamed some macros (such as |\xt@...|)
%%% \item (internally) renamed |\xtaction| to |\istaction|
%%% \item (internally) renamed |\xtpayoff| to |\istpayoff|
%%% \item (internally) renamed |\istRoot(O)| to |\ISTRoot(O)|
%%% \end{itemize}
%%%\item v1.2 (2017/12/11)
%%% \begin{itemize}
%%% \item replaced |\istb.| by |\istbt| (critical change for users!)
%%% \begin{itemize}
%%% \item |\istb| redefined accordingly
%%% \item this is the cost of introducing |\istB(*)|
%%% \end{itemize}
%%% \item introduced |\istB(*)| to deal with dual action labels
%%% \item added |\istbt(*)| and |\istBt(*)|
%%% \item added \xw{text depth=.25ex} as an option to |\istroot| and |\istrooto|
%%% \end{itemize}
%%%\item v1.1 (2017/10/02)
%%% \begin{itemize}
%%% \item introduced |\xtCommentTo| and |\xtCommentFrom|
%%% \item introduced |\xtTimeLineH(')|
%%% \item redefined |\xtActionLabel| to deal with sloped labels
%%% \item replaced |\tikzstyle| by |\tikzset|
%%% \end{itemize}
\item v1.0 (2017/09/04)
\begin{itemize}
\item introduced |\cntmlevdist| and |\cntmsibdist|
\item introduced |\cntmdistance|
\item redefined related marcos
\item package document done
\end{itemize}
%%%\item v1.0 (2017/09/04) ready to submit to CTAN
%%% \begin{itemize}
%%% \item introduced |\cntmlevdist| and |\cntmsibdist|
%%% \item introduced |\cntmdistance| (for internal use)
%%% \item redefined related marcos.
%%% \item package document done
%%% \end{itemize}
%%%\item v0.99g (2017/08/21)
%%% \begin{itemize}
%%% \item redefined the \env{istgame} environment to add \xw{>=stealth} as default
%%% \item added \xw{text depth=.25ex} as an option to |\istb| to get better alignment of action labels
%%% \end{itemize}
%%%\item v0.99f (2017/08/02)
%%% \begin{itemize}
%%% \item redefined |\xtInfosetO(')|
%%% \begin{itemize}
%%% \item added \verb+\begin{scope}[on background layer]...\end{scope}+
%%% \end{itemize}
%%% \end{itemize}
%%%\item v0.99e (2017/08/01)
%%% \begin{itemize}
%%% \item introduced the prime(\xw{'}) versions to deal with \xw{grow'} (this is the swap version in \TikZ)
%%% \item redefined |\istroot(')|
%%% \item defined |\istrooto(')| to replace |\istroot*|
%%% \begin{itemize}
%%% \item |\istroot*| completely replaced by |\istrooto|
%%% \end{itemize}
%%% \item redefinde |\istcntm|
%%% \item defined |\istcntmarc|
%%% \begin{itemize}
%%% \item |\istcntm*| completely replaced by |\istcntmarc|
%%% \end{itemize}
%%% \item redefined |\xtInfoset(')| and |\xtInfosetOwner(')|
%%% \item introduced |\xtInfosetO(')|
%%% \begin{itemize}
%%% \item |\xtInfoset*| completely replaced by |\xtInfosetO|
%%% \end{itemize}
%%% \item introduced |\xt@growswap| introduced
%%% \item redefined |\xtNode| accordingly
%%% \end{itemize}
%%%\item v0.99d (2017/07/27)
%%% \begin{itemize}
%%% \item defined |\xtSubgameBox(*)| and |\xtSubgameOval(*)| to express a subgame
%%% \end{itemize}
%%%\item v0.99c (2017/07/20)
%%% \begin{itemize}
%%% \item defined |\xtgrow| to deal with going `clockwise' of branch arrangement
%%% \item defined |\setxtgrowkey| to change between \xw{grow} and \xw{grow'}
%%% \item introduced |\setistgrowdirection'| by redefining |\setistgrowdirection|
%%% \item updated `related macros' accordingly
%%% \end{itemize}
%%%\item v0.99b (2017/07/16)
%%% \begin{itemize}
%%% \item renamed \xw{zero node} as \xw{plain node}
%%% \item added |\setistPlainNodeStyle|
%%% \item defined |\xtNode*| (for a terminal node text with a plain node)
%%% \item redefined |\xt<...>NodeStyle| (now all arguments are optional)
%%% \item renamed |\isthorizontallabelshift| as |\istactionlabelxshift|, with default \xw{1pt}
%%% \item renamed |\istverticallabelshift| as |\istactionlabelyshift|, with default \xw{2pt}
%%% \end{itemize}
%%%\item v0.99a (2017/03/10)
%%% \begin{itemize}
%%% \item started rewriting package manual
%%% \item introduced |\istb.|\ (for terminal nodes)
%%% \item redefined |\xtShowTerminalNodes|
%%% \item introduced |\xtShowEndPoints| and |\xtHideEndPoints|
%%% \item redefined |\xtInfoset*|, with |\xtdefaultinfosep| added
%%% \end{itemize}
%%%\item v0.9 (2017/02/13)
%%% \begin{itemize}
%%% \item some internal macro names changed (|\xtnode|, |\xttnode|,|\xtshowtnode|)
%%%% \item conflict with \pkg{tikz-qtree} resolved. (\env{istgame} differs from \env{tikzpicture} with \pkg{tikz-qtree})
%%%% \item |\setistbranchanchors| added
%%% \item added \xw{zero node}
%%% \end{itemize}
%%%\item v0.8 (2017/01/17)
%%% \begin{itemize}
%%% \item macro names changed
%%% \begin{itemize}
%%% \item |\xtdistance|: prefix `\xw{x}' changed to `\xw{xt}' meaning `extensive tree'
%%% \item |\xtInfoset(*)|, |\xtInfosetOwner|, |\xtActionLabel|, |xtOwner|, |\xtPayoff|, |\xtNode|
%%% \item |\xtShowTerminalNodes|, |\xtHideTerminalNodes|
%%% \item |\xtlevdist|, |\xtsibdist|
%%% \end{itemize}
%%% \item |\xtNode| redefined
%%% \item some internal macro names changed (including |\xtpayff|, |\xtmove|)
%%% \item node styles redefined
%%% \item |\setist<Solid>NodeStyle| added for <Various> node styles
%%% \item |\setistdefaultnodecolor|, |setistdefaultnodebgcolor| added
%%% \end{itemize}
\end{itemize}
\section{Acknowledgement}
The basic idea of the \pkg{istgame} package came from Osborne's \pkg{egameps} package and Chen (2013).
The update of the package \pkg{istgame} to \xw{version 2.0} is partly motivated by the questions and discussions on the \xw{game tree} topic at \url{
https://tex.stackexchange.com/}.
Special thanks go to Kangsoo Kim of KTUG for his great help in using \pkg{expl3} to simplify the appearance and the usage of the macros, and to resolve the issues on \TeX's expansion.
\section{References}
\hpara{}Chen, H.~K.~(2013), ``Drawing Game Trees with \TikZ,'' \url{
http://www.sfu.ca/~haiyunc/notes/Game_Trees_with_TikZ.pdf}.
\hpara{}Cho, I-S.~(2017), ``\pkg{istgame}: Drawing Game Trees with \TikZ,'' in Korean TeX Society, \emph{\TeX, Beyond the World of Typesetting}, Seoul: Kyungmoonsa, 203--237.
\hpara{}Osborne, M.~J.~(2004a), ``Manual for \pkg{egameps.sty},'' Version 1.1, \url{
http://texdoc.net/texmf-dist/doc/latex/egameps/egameps.pdf}
\hpara{}\uline{\hphantom{Osborne, M.~J}}~(2004b), \emph{An Introduction to Game Theory}, New York: Oxford.
\hpara{}Tantau, T.~(2021), ``\TikZ\ and PGF: Manual for version 3.1.9a,'' \url{
http://sourceforge.net/projects/pgf}.
%\section*{Discussions (in Korean) on KTUG board}
%
%\begin{itemize}
%\item Drawing Game Trees 1: \url{
http://www.ktug.org/xe/index.php?document_srl=207287}
%
%\item Drawing Game Trees 1-1: \url{
http://www.ktug.org/xe/index.php?document_srl=207513}
%
%\item Drawing Game Trees 1-2:
%\url{
http://www.ktug.org/xe/index.php?document_srl=208286}
%
%\item Drawing Game Trees 2: \url{
http://www.ktug.org/xe/index.php?document_srl=212043}
%
%\item Drawing Game Trees 2-1:
%\url{
http://www.ktug.org/xe/index.php?document_srl=212225}
%
%\item Drawing Game Trees 2-2:
%\url{
http://www.ktug.org/xe/index.php?document_srl=212319}
%\end{itemize}
\clearpage
\printindex
\end{document}