在连通树的顶点顶部添加符号

在连通树的顶点顶部添加符号

我有一棵树的代码

\[
\[email protected]{
   *={\bullet}  &  &*={\bullet} &  
   \frm{}\\
   &*={\bullet}\ar@{-}[lu] \ar@{-}[ru]& & 
 }
\]

这将产生这个

完整树

作为其输出。但是,我想按如下方式对顶部节点进行编号:

完整树-2

但我希望线段连接到顶点的中心。我尝试\bullet\stackrel{i}{\bullet} 以下方法替换:

\[
\[email protected]{
*={\stackrel{1}{\bullet}}  &  &*={\stackrel{2}{\bullet}} &  
\frm{}\\
&*={\bullet}\ar@{-}[lu] \ar@{-}[ru]& & 
 }
\]

但节点不再与边相连:

完整树-3

这不是我想要的。

答案1

含 Ti 的解决方案z。(我从来没有使用过这个xy包)。

\documentclass[margin=3mm]{standalone}
\usepackage{tikz}
\tikzset{%
pics/bullet/.style args={#1,#2}{
    code={
    \node at (0,1) [draw,circle,fill,minimum size=2mm,inner sep=0pt,label={$#1$}](#1){};
    \node at (2,1) [draw,circle,fill,minimum size=2mm,inner sep=0pt,,label={$#2$}](#2){};
    \node at (1,0) [draw,circle,fill,minimum size=2mm,inner sep=0pt](bb){};
    \draw (bb)--(#1) (bb)--(#2);
    }}}
\begin{document}

\begin{tikzpicture}
\pic at (0,0) {bullet={1,2}};
\pic at (3,0) {bullet={3,4}};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

XY 语法非常简洁和强大,但需要一些时间来适应。但使用XY 的\saveand\restore函数可以轻松添加相对于项目符号位置的标签。请参阅我的回答推出交换图详细解释其工作原理。

\documentclass{article}
\usepackage[all]{xy}
\begin{document}

\[
\[email protected]{
   *={\bullet}\save+<0ex,2ex>*={1}\restore  &  &*={\bullet}\save+<0ex,2ex>*={2}\restore&  
   \frm{}\\
   &*={\bullet}\ar@{-}[lu] \ar@{-}[ru]& & 
 }
\]
\end{document}

代码输出

相关内容