Draw TreeNode in LaTex

这次尝试使用代码在LaTex中绘制树状图,然而过程竟然颇为曲折。于是作此小记。

tikz

最初找到了这个包,于是使用其下的tikzpicture进行树状图绘制。

\node(root) [circle, draw]{$1.00$}
    child{node(nJOM_JMP)[circle, draw, below left = of root]{0.13}
        child {node [below left  = of nJOM_JMP]{JOM}}
        child {node [below right = of nJOM_JMP]{JMP}}
    }
    child {node(nSHR_STP__CIL__STO) [circle, draw, below right = of root]{0.09}
        child {node (nSHR_STP__CIL)[circle, draw, below left = of nSHR_STP__CIL__STO]{0.04}
            child { node(nSHR_STP) [circle, draw,below left  = of nSHR_STP_CIL]{0.02}
                child {node [below left  = of nSHR_STP]{SHR}}
                child {node [below right = of nSHR_STP]{STP}}
            }
            child {node[below right  = of nSHR_STP__CIL]{CIL}}
        }
        child {node[below right = of nSHR_STP__CIL__STO] {STO}}
    }
;

感觉代码结构结合缩进可以很清晰,然而编译之后发现不同的Sibling节点竟然会重叠。(不知道作者为什么不写个BFS遍历一下......这种问题很好解决吧?)

一番搜索之后,发现解决方案是手动调整距离......这于我的初衷大相径庭(本来使用LaTex就是要自动化布局,否则还不如用Word。而且这样写真的很丑,且难以推广(因为我习惯写脚本生成表格和树的代码)。)

于是更换解决方案。

Forset

你可能感兴趣的:(Draw TreeNode in LaTex)