![使树枝更紧密地连在一起](https://linux22.com/image/314015/%E4%BD%BF%E6%A0%91%E6%9E%9D%E6%9B%B4%E7%B4%A7%E5%AF%86%E5%9C%B0%E8%BF%9E%E5%9C%A8%E4%B8%80%E8%B5%B7.png)
假设我有以下树...并且我只想使第二和第三个分支更接近。这可能吗?
\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}
前:
后: