请考虑以下示例:
\documentclass[tikz,border=5pt]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={
draw,
}
[center,calign=center
[first, parent anchor=west, calign=child edge
[ABC, child anchor=west]
]
]
\end{forest}
\end{document}
我对文档的理解是,第三个节点(ABC)的西边应该与第二个节点(第一个)的西边对齐,因为这是calign=child edge
应该做的(手册,28):
calign=child edge 将父级的父锚点与主子级的子锚点对齐。
但我想象的情况并不是这样的:
正如所讨论的与 Gonzalo 聊天,添加兄弟姐妹使得对齐按预期工作:
\begin{forest}
for tree={
draw,
}
[center,calign=center
[first, parent anchor=west, calign=child edge
[ABC, child anchor=west]
[]
]
]
\end{forest}
这是预料之中的吗?这是一个错误吗?我遗漏了什么?
答案1
您刚刚定义了连接的锚点(例如离开哪里和到达哪里......),而不是节点本身的锚点。
给你:
% arara: pdflatex
\documentclass[border=5pt]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={draw}
[center%,calign=center
[first, parent anchor=west, anchor=west, calign=child edge
[ABC, child anchor=west, anchor=west]
]
]
\end{forest}
\end{document}
但手册有误导性。我会举报。
答案2
我给该软件包的作者 Sašo Živanović 发了一封电子邮件,询问这种行为是故意的还是一个错误。
Sašo 已确认这是一个错误。
... 这是一个错误,子对齐未在具有单个子节点的节点中运行。... 我已经修复了该错误,并且正在将修复后的版本发布到 ctan。
因此,新版本应该很快就会出现在 CTAN 上,并在几天内通过更新 TeX 安装提供。
编辑
下面是问题中给出的两棵树的代码,用 1.09 版编译forest
。
第二棵“控制”树及其附加子树:
第一个测试树之前显示了这个错误:
现在可以从 CTAN 和 TeX Live 的 获得带有修复程序的软件包版本tlmgr
。