TikZ 树 - 连接第一条边

TikZ 树 - 连接第一条边

在以下示例中,如何连接第一个边?

\documentclass{article}

\usepackage[latin1]{inputenc}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\pagestyle{empty}


% Set the overall layout of the tree
\tikzstyle{level 1}=[level distance=3.5cm, sibling distance=3.5cm]
\tikzstyle{level 2}=[level distance=3.5cm, sibling distance=2cm]


\begin{tikzpicture}[grow=right, sloped]
\node {}
    child {
        node{T}        
            child {
                node[label=right: T] {}
            }
            child {
                node[label=right: O] {}
            }
    }
    child {
        node{O}        
            child {
                node[label=right: T] {}
            }
            child {
                node[label=right: O] {}
            }
    };
\end{tikzpicture}

\end{document}

答案1

我不明白为什么您要使用标签而不是简单地使用节点内容本身。这会使树过于复杂。但您可以通过调整来连接根节点的边缘edge from parent path

此外,标准的 TikZ 树标记非常冗长和复杂。您会发现使用专用的树包(例如)来forest执行此操作会更快。我在下面的示例中展示了两种模式下的树。我还将弃用的\tikzstyle语法更改为当前语法。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\usepackage{forest}
\useforestlibrary{linguistics}
\begin{document}
\pagestyle{empty}


% Set the overall layout of the tree
\tikzset{
edge from parent path={(\tikzparentnode.east) -- (\tikzchildnode.west)},
every tree node/.style={anchor=base},
level 1/.style={level distance=3.5cm, sibling distance=3.5cm},
level 2/.style={level distance=3.5cm, sibling distance=2cm}
}


\begin{tikzpicture}[grow=right]
\node[] {}
    child {
        node{T}        
            child {
                node {T}
            }
            child {
                node {O}
            }
    }
    child {
        node{O}        
            child {
                node {T}
            }
            child {
                node {O}
            }
    };
\end{tikzpicture}

\begin{forest} for tree={sn edges,grow'=0,l=3.5cm,s sep=1cm,anchor=west,child anchor=west}
[ [O [O] [T ] ] [T [O ] [T ]]]
\end{forest}

\end{document}

代码输出

相关内容