森林中边缘的标签 - 标签不可见

森林中边缘的标签 - 标签不可见

我决定在我的书中使用 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中的常用方法。要将箭头添加到节点的边缘,请使用 选项。要将箭头添加到所有边缘,只需在 中添加即可。下面的示例假设您想要一个箭头,如果您希望它用于树的其余部分(如果还有更多箭头),只需移动选项即可。nodeedge labeledge+={->}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}

下方有 <code>edge label</code>,而带有箭头的 <code>edge</code>

相关内容