使树枝更紧密地连在一起

使树枝更紧密地连在一起

假设我有以下树...并且我只想使第二和第三个分支更接近。这可能吗?

\documentclass[12pt,oneside,a4paper,fleqn]{report}
\usepackage{forest}
\usepackage{tikz}
\tikzset{
       dot/.style={circle,draw,inner sep=1.5,fill=black},
}
\begin{document}
\begin{forest}
[ ,name=a,for tree={s sep=50pt,l sep=5cm,dot,grow=1}, 
  [ ,name=b,edge   ]
  [ ,name=e,   ]
  [ ,name=f,  ]
]
\end{forest}
\end{document}

谢谢!

答案1

一个选项是使用y密钥:

\documentclass[12pt,oneside,a4paper,fleqn]{report}
\usepackage{forest}

\tikzset{
  dot/.style={circle,draw,inner sep=1.5,fill=black},
}

\begin{document}
Without change:
\begin{forest}
baseline
[ ,name=a,for tree={s sep=50pt,l sep=5cm,dot,grow=1}, 
  [ ,name=b,edge   ]
  [ ,name=e,   ]
  [ ,name=f  ]
]
\end{forest}\par\bigskip

Applying the change:
\begin{forest}
baseline
[ ,name=a,for tree={s sep=50pt,l sep=5cm,dot,grow=1}, 
  [ ,name=b,edge   ]
  [ ,name=e,   ]
  [ ,before drawing tree={y-=15mm},name=f  ]
]
\end{forest}\par\bigskip

Applying the change:
\begin{forest}
baseline
[ ,name=a,for tree={s sep=50pt,l sep=5cm,dot,grow=1}, 
  [ ,name=b,edge   ]
  [ ,before drawing tree={y-=15mm},name=e,   ]
  [ ,name=f  ]
]
\end{forest}
\end{document}

在此处输入图片描述

作为萨索·日瓦诺维奇提及his comment,一个更通用的解决方案,因为它可以在任何方向的树中工作,将是使用键s

\documentclass[12pt,oneside,a4paper,fleqn]{report}
\usepackage{forest}

\tikzset{
  dot/.style={circle,draw,inner sep=1.5,fill=black},
}

\begin{document}
Without change:
\begin{forest}
baseline
[ ,name=a,for tree={s sep=50pt,l sep=5cm,dot,grow=1}, 
  [ ,name=b,edge   ]
  [ ,name=e,   ]
  [ ,name=f  ]
]
\end{forest}\par\bigskip

Applying the change:
\begin{forest}
baseline
[ ,name=a,for tree={s sep=50pt,l sep=5cm,dot,grow=1}, 
  [ ,name=b,edge   ]
  [ ,name=e,   ]
  [ ,before packing={s+=15mm},name=f  ]
]
\end{forest}\par\bigskip

Applying the change:
\begin{forest}
baseline
[ ,name=a,for tree={s sep=50pt,l sep=5cm,dot,grow=1}, 
  [ ,name=b,edge   ]
  [ ,before packing={s+=15mm},name=e,   ]
  [ ,name=f  ]
]
\end{forest}
\end{document}

在此处输入图片描述

答案2

另一种选择是将指定的兄弟分离减半,但使用节点phantom来增加其他分支的分离。

\documentclass[12pt,tikz,border=5pt]{standalone}
\usepackage{forest}
\tikzset{
       dot/.style={circle,draw,inner sep=1.5,fill=black},
}
\begin{document}
\begin{forest}
[ ,name=a,for tree={s sep=25pt,l sep=5cm,dot,grow=1},
  [ ,name=b,edge   ]
  [,phantom]
  [ ,name=e,   ]
  [ ,name=f,  ]
]
\end{forest}
\end{document}

前:

标准

后:

幻影分离

相关内容