假设我有以下树...并且我只想使第二和第三个分支更接近。这可能吗?
\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}
前:
后: