水平树箭头未正确对齐

水平树箭头未正确对齐

我从多个地方获取了一些代码并将它们粘贴在一起,以显示文件夹及其底层文件夹的结构。我让它工作了,但是当我换到另一个 latex 模板时,树的最后一个箭头(从月到日)变得有点弯曲。

谁能告诉我为什么会发生这种情况以及如何解决这个问题?

代码:

\usepackage{forest}
\usetikzlibrary{arrows.meta}

{\small
\begin{figure}[h]
\centering
\begin{forest}
  for tree={
        grow=0,reversed, % tree direction
        parent anchor=east,child anchor=west, % edge anchors
        edge={->},outer sep=+1pt, % edge/node connection
        rounded corners,minimum width=10mm,minimum height=8mm, % node shape
        l sep=5mm % level distance
}
  [Root folder
    [Customer id
        [Machine id
            [Year
                [Month
                    [Day]]]]]
  ]
\end{forest}
\caption{File hierarchy}
\label{fig:filehierarchy}
\end{figure}
}

结果:

结果

答案1

这可能是因为只有最后一个节点有降部,即低于基线的字母(y)。一种解决方法是添加font=\strut到树设置中:

在此处输入图片描述

\documentclass{article}
\usepackage{forest}
\usetikzlibrary{arrows.meta}
\begin{document}

\begin{figure}[h]
\centering\small
\begin{forest}
  for tree={
        grow=0,reversed, % tree direction
        parent anchor=east,child anchor=west, % edge anchors
        edge={->},outer sep=+1pt, % edge/node connection
        rounded corners,minimum width=10mm,minimum height=8mm,font=\strut, % node shape <-- added font=\strut
        l sep=5mm % level distance
}
  [Root folder
    [Customer id
        [Machine id
            [Year
                [Month
                    [Day]]]]]
  ]
\end{forest}
\caption{File hierarchy}
\label{fig:filehierarchy}
\end{figure}
\end{document}

答案2

最简单的解决方案可能是更改parentchild锚点以使用mid,TiZ 可用于对齐具有可变高度和深度的物体。

\documentclass{standalone}
\usepackage{forest}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{forest}
  for tree={
    grow'=0, % tree direction
    parent anchor=mid east,  % edge anchors
    child anchor=mid west,
    edge+={->}, % edge/node connection
    outer sep=+1pt,
    rounded corners, % node shape
    minimum width=10mm,
    minimum height=8mm,
    l sep'=5mm % level distance <= no it isn't - it is the minimum level separation, which is not necessarily the dimension actually used
  }
  [Root folder
    [Customer id
      [Machine id
        [Year
          [Month
            [Day]]]]]
  ]
\end{forest}
\end{document}

对齐箭头

这避免了不必要地扩大节点,这在某些情况下可能是不可取的。

相关内容