编辑

编辑

请考虑以下示例:

\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

相关内容