xymatrix を使用してツリー内のオブジェクトのコレクションを囲む

xymatrix を使用してツリー内のオブジェクトのコレクションを囲む

このコード

\documentclass{amsart}
\usepackage[all]{xy}

\begin{document}

\[ 
\[email protected]{
\overset{1}{\bullet}& & \overset{2}{\bullet}& & \overset{3}{\bullet}& &\overset{4}{\bullet} & &
\overset{5}{\bullet} & &\overset{6}{\bullet} & &\overset{7}{\bullet} & &\overset{8}{\bullet}  \\
&   \ar@{-}[ul] \overset{}{\bullet} \ar@{-}[ur]
& & & & \ar@{-}[ul] \overset{}{\bullet} \ar@{-}[ur]  & & & & \ar@{-}[ul] \overset{}{\bullet} 
\ar@{<..>}@/^1pc/[rrrr] \ar@{-}[ur] & & & & \ar@{-}[ul] \overset{}{\bullet} \ar@{-}[ur] &  \\
& & & \ar@{-}[ull] \overset{}{\bullet} \ar@{-}[urr]
& & & & & & & & 
\ar@{-}[ull]\overset{}{\bullet}\ar@{-}[urr] & & &  \\
& & & & & & & \ar@{-}[ullll] \overset{}{\bullet} 
\ar@{-}[urrrr]& & & & & & &  \\ 
}
\] 

\end{document}

木のための 木

しかし、私が図に追加したいのは、以下に示すような円です。 木ペア

これは、最上位の 2 つの隣接する頂点、それらに「接続」されている 2 つのエッジ、および 2 つのエッジを「接続」している下のレイヤーの頂点をカプセル化します。円は、点線や破線、任意の太さや色など、任意の方法で装飾できますが、 を使用してこれを行うことは可能ですかxymatrix?

答え1

私はそのために森林を使います。編集: 破線の矢印をより対称的にしました。@Sigur が私に ping してくれたことに感謝します。)

\documentclass{article}
\usepackage{forest}
\usetikzlibrary{fit}
\begin{document}
\begin{forest}
for tree={circle,fill,inner sep=2pt,outer sep=2pt,grow'=north,s sep=1cm
}
[
 [
  [,alias=A
   [,label=above:1,alias=1]
   [,label=above:2,alias=2]
  ]
  [,alias=B
   [,label=above:3,alias=3]
   [,label=above:4,alias=4]
  ]
 ]
 [
  [,alias=C
   [,label=above:5,alias=5]
   [,label=above:6,alias=6]
  ]
  [,alias=D
   [,label=above:7,alias=7]
   [,label=above:8,alias=8]
  ]
 ]
]
\node[circle,draw=cyan,inner sep=1pt,yshift=10pt,fit=(A) (1) (2)] (F1){};
\node[circle,draw=cyan,inner sep=1pt,yshift=10pt,fit=(B) (3) (4)] (F2) {};
\node[circle,draw=cyan,inner sep=1pt,yshift=10pt,fit=(C) (5) (6)] (F3) {};
\node[circle,draw=cyan,inner sep=1pt,yshift=10pt,fit=(D) (7) (8)] (F4) {};
\draw[dashed,latex-latex] (C.30) to[bend left] (D.150);
\end{forest}
\end{document}

ここに画像の説明を入力してください

注記: プログラムで全体を描画することもできます。つまり、1 から 8 までの数字を入力する必要はありません。ただし、ここではそれほど手間がかからないため、そのままにしておきます。

関連情報