是否有可能以更简单的方式编写代码?:
\documentclass[landscape]{article}
\usepackage[paperwidth=42in,paperheight=40in,margin=0.5in]{geometry}
\usepackage{skak} %package to display chessboards with notation
\usepackage{tikz}
\pagenumbering{gobble} % avoid page numbering
\begin{document}
\begin{tikzpicture}[
level 1/.style={sibling distance=32cm,}, %x-spacing
level 2/.style={sibling distance=0cm,},
level 3/.style={sibling distance=17cm,},
level 4/.style={sibling distance=0cm,},
level 5/.style={sibling distance=7cm,},
level distance=7cm, %y-spacing
line width=2,]
%
\node {\newgame \mainline{1.f4} \storegame{move1000} \showboard}
child { node {\restoregame{move1000} \mainline{1...Nf6} \showboard}
child { node { \mainline{2.g3} \storegame{move1100} \showboard}
child { node {\restoregame{move1100} \mainline{2...d5} \showboard}
child { node { \mainline{3. Bg2} \storegame{move1110} \showboard}
child { node {\restoregame{move1110} \mainline{3...e6} \showboard}
child { node { \mainline{4. a4} \showboard}
child { node { \mainline{4...c6} \showboard}
child { node [rectangle, minimum size=7.5cm] {eval: -0.1}}
}
}
}
child { node {\restoregame{move1110} \mainline{3...e6} \showboard}
child { node {\mainline{4. a4} \showboard}
child { node {\mainline{4...c6} \showboard}
child { node [rectangle, minimum size=7.5cm] {eval: -0.2}}
}
}
}
child { node {\restoregame{move1110} \mainline{3...c5} \showboard}
child { node [rectangle, minimum size=7.5cm] {-0.3}}
}
}
}
child { node {\restoregame{move1100} \mainline{2...g6} \showboard}
child { node [rectangle, minimum size=7.5cm] {eval: -0.2}}
}
child { node {\restoregame{move1100} \mainline{2...c5} \showboard}
child { node { \mainline{3. Nf3} \showboard}
child { node [rectangle, minimum size=7.5cm] {eval: -0.2}}
}
}
}
}
%
child { node [operator, xshift=-0cm] {\restoregame{move1000} \mainline{1...e5} \showboard}
child { node {\mainline{2. fxe5} \showboard}
child { node {\mainline{2...d6} \showboard}
child { node {\mainline{3. exd6} \showboard}
child { node {\mainline{3...Bxd6} \showboard}
child { node {\mainline{4. Nf3} \showboard}
child { node {\mainline{4...Nf6} \showboard}
child { node [rectangle, minimum size=7.5cm] {eval: +0.7}}
}
}
}
}
}
}
}
%
child { node [operator, xshift=-20cm] {\restoregame{move1000} \mainline{1...f5} \showboard}
child { node {\mainline{2. Nf3} \showboard}
child { node {\mainline{2...Nf6} \showboard}
child { node {\mainline{3. c4} \showboard}
child { node {\mainline{3...c5} \showboard}
child { node {\mainline{4. b3} \showboard}
child { node {\mainline{4...g6} \showboard}
child { node {\mainline{5. g3} \showboard}
child { node {\mainline{5...Nc6} \showboard}
child { node {\mainline{6. Bg2} \showboard}
child { node {\mainline{6... Bg7} \showboard}
child { node {\mainline{7. Bb2} \showboard}
child { node [rectangle, minimum size=7.5cm] {eval: +0.3}}
}
}
}
}
}
}
}
}
}
}
}
}
%
child { node [operator, xshift=-40cm] {\restoregame{move1000} \mainline{1...g6} \showboard}
child { node {\mainline{2. Nf3} \showboard}
child { node {\mainline{2...d5} \showboard}
child { node {\mainline{3. e3} \showboard}
child { node {\mainline{3...Bg7} \showboard}
child { node {\mainline{4. d4} \showboard}
child { node {\mainline{4...c5} \showboard}
child { node {\mainline{5. Bd3} \showboard}
child { node [rectangle, minimum size=7.5cm] {eval: -0.4}}
}
}
}
}
}
}
}
}
%
child { node [operator, xshift=-60cm] {\restoregame{move1000} \mainline{1...b6} \showboard}
child { node {\mainline{2. e4} \showboard}
child { node {\mainline{2...Bb7} \showboard}
child { node {\mainline{3. d3} \showboard}
child { node {\mainline{3...e6} \showboard}
child { node {\mainline{4. Bd2} \showboard}
child { node {\mainline{4...Nc6} \showboard}
child { node {\mainline{5. Nf3} \showboard}
child { node [rectangle, minimum size=7.5cm] {eval: -0.1}}
}
}
}
}
}
}
}
}
%
;
\end{tikzpicture};
%
\end{document}
获得类似的结果:
我会喜欢像森林这样的东西: https://tex.stackexchange.com/questions/35526/tikz-tree-sibling-distance
(可选,我希望将移动描述放在棋盘之前的行上,例如“ ewline”在棋盘前)