在这棵树中,我希望边缘标签水平对齐,可能更靠近边缘。这棵树可能不是二叉树。
我还想通过以下方式减少混乱并节省打字时间:
\edge node[auto=right] {1};
在宏中,但是\ee
在我的 mwe 中失败了。
我希望有一个tikz-qtree
解决方案,但这不是必需的。
平均能量损失
\documentclass{standalone}
\usepackage{tikz-qtree}
\newcommand{\ee}[1]{%
\edge node[auto=right] {#1}
}
\begin{document}
\begin{tikzpicture}[every tree node/.style={draw,rectangle,align=center},
level distance=1.5cm,sibling distance=1.0cm,
edge from parent path={(\tikzparentnode) -- (\tikzchildnode)}]
\Tree [.root
% \ee{1};
\edge node[auto=right] {1};
[.1
\edge node[auto=right] {1}; 2
\edge node[auto=right] {2}; 3
]
\edge node[auto=right] {2};
[.2
\edge node[auto=right] {1}; 3
\edge node[auto=right] {2}; 4
]
]
]
\end{tikzpicture}
\end{document}
答案1
@campa 关于宏和搜索的建议 node[midway,left]
很好地解决了我的问题。
\documentclass{standalone}
\usepackage{tikz-qtree}
\newcommand{\ee}[1]{%
node[midway,left] {#1}
}
\begin{document}
\begin{tikzpicture}[every tree node/.style={draw,rectangle,align=center},
level distance=1.5cm,sibling distance=0.7cm,
edge from parent path={(\tikzparentnode) -- (\tikzchildnode)}]
\Tree [.root
\edge \ee{1};
[.1
\edge \ee{1}; 2
\edge \ee{2}; 3
]
\edge \ee{2};
[.2
\edge \ee{1};
[.3
\edge \ee{1}; 4
\edge \ee{2}; 5
]
\edge \ee{2}; 4
]
]
]
\end{tikzpicture}
\end{document}