使用 tkz-graph 包时,我经常觉得需要稍微移动边缘上的标签,这些标签始终位于边缘的中间。在此示例中,我将标签0.5
从一个节点移动到另一个更靠近节点的a
节点,以避免与红色框相交。这里是 MWE:d
d
\documentclass[border=10pt]{standalone}
\usepackage{tkz-graph}
\usetikzlibrary{fit}
\thispagestyle{empty}
\begin{document}
\begin{tikzpicture}
\GraphInit[vstyle=Normal]
\SetGraphUnit{1.5}
\Vertices{circle}{a,b,c,d,e}
\Edge[label=1](a)(b)
\Edge[label=2](a)(c)
\Edge[label=0.5](a)(d)
\Edge[label=3](a)(e)
\node[draw=red!50,rounded corners=5mm,fit=(b.north) (a.south) (c.west) (a.east)](BORD) {};
\node[right of=BORD,anchor=west,inner sep=1cm]{$\mathcal{G}$};
\end{tikzpicture}
\end{document}
如何使0.5
标签沿着边缘移动而不是总是位于中心?
答案1
该\Edge
宏只是基本 TikZ 的语法糖,它绘制一条路径并在其上放置一个节点。路径上的节点可以接收密钥pos
以指示节点要放置在哪个部分。要设置节点选项,\Edge
您必须将它们包装在style
选项中,即
\Edge[label=0.5,style={pos=.3}](a)(d)
将节点放置在从 开始的路径的三分之一处(a)
。对于您的示例,我选择了pos=.25
。
\documentclass[border=10pt]{standalone}
\usepackage{tkz-graph}
\usetikzlibrary{fit}
\begin{document}
\begin{tikzpicture}
\GraphInit[vstyle=Normal]
\SetGraphUnit{1.5}
\Vertices{circle}{a,b,c,d,e}
\Edge[label=1](a)(b)
\Edge[label=2](a)(c)
\Edge[label=0.5,style={pos=.25}](a)(d)
\Edge[label=3](a)(e)
\node[draw=red!50,rounded corners=5mm,fit=(b.north) (a.south) (c.west) (a.east)](BORD) {};
\node[right of=BORD,anchor=west,inner sep=1cm]{$\mathcal{G}$};
\end{tikzpicture}
\end{document}