我决定在我的书中使用 tikz forest,我准备让这些人物更具吸引力……但我意识到,如果没有使用过它,它就没那么有趣了。经过几个小时的谷歌搜索,我得到了这个:
\documentclass{article}
\usepackage[czech,english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb, latexsym, graphicx, makeidx, fancyhdr, sectsty, enumitem, ntheorem}
\usepackage[font=small,labelfont=bf,aboveskip=0.1cm,position=top,labelsep=quad]{caption}
\usepackage[IL2]{fontenc}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{pifont}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{forest}
\usepackage{tikz}
\begin{document}
\tikzstyle{ball}=[circle,shading=ball, ball color=red,minimum size=0.5cm]
\begin{forest}
for tree={s sep=20pt,l sep=3cm,style=ball,grow=east}
%
[ ,name=root, ball color=blue, label={$\pmb{x}_1$},edge label = {node [right] {matched place} }
[{},
]
]
\end{forest}
\end{document}
我想帮助解决两个问题:1)我需要在边缘添加一个标签(最好在它下面)。(更重要)2)如果可能的话,我需要用箭头替换边缘。(不太重要)
我知道有很多种符号可以写出树的代码,但是这一种是我唯一成功使用球形风格的符号。
提前感谢您的评论和帮助。
弗朗蒂谢克
答案1
您将边缘标签放在了错误的位置...您放置它的地方边缘不存在。您想要将边缘标签放在哪里并不清楚。正如您所写的,它出现在边缘的右侧(我怀疑这是不理想的)。
一个非常简单的工作示例(姆韦) 是:
\documentclass{article}
\usepackage{amsmath}
\usepackage{forest}
\begin{document}
\tikzset{
ball/.style = {circle,
shading=ball,
ball color=#1,
minimum size=0.5cm}
}
\begin{forest}
for tree = {
grow=east,
l sep+=33mm,
s sep=1mm,
}
[ ,name=root, ball=blue, label={$\pmb{x}_1$},
[ ,ball=red, edge label = {node [midway,above] {matched place} } ]
]
\end{forest}
\end{document}
答案2
正如 Zarko 所说,根节点没有边,因此edge label
忽略。边是从父节点绘制到节点的。因此,需要edge label
与子节点一起绘制。
要将节点置于边缘下方,请使用选项midway, below
中的常用方法。要将箭头添加到节点的边缘,请使用 选项。要将箭头添加到所有边缘,只需在 中添加即可。下面的示例假设您想要一个箭头,如果您希望它用于树的其余部分(如果还有更多箭头),只需移动选项即可。node
edge label
edge+={->}
for tree
\documentclass[border=10pt]{standalone}
\usepackage{forest,amsmath}
\begin{document}
\tikzset{ball/.style={circle,shading=ball, ball color=red,minimum size=0.5cm}}% \tikzstyle is deprecated
\begin{forest}
for tree={s sep=20pt,l sep=3cm,style=ball,grow=east}
[ ,name=root, ball color=blue, label={$\pmb{x}_1$}
[, edge label = {node [midway, below] {matched place}}, edge+={->}
]
]
\end{forest}
\end{document}