在 TikZ 中旋转文本

在 TikZ 中旋转文本

如何旋转图表内的文本,如下所示。以下是我从以下修改的 MWE这里

\documentclass[tikz,12pt]{standalone}
\usetikzlibrary{calc,positioning,backgrounds,arrows.meta}
\usepackage{forest}
\pagestyle{empty}

\begin{document}

\begin{forest}
  for tree={
  child anchor=west,
parent anchor=east,
grow'=east,
draw,
anchor=west,
edge path={
  \noexpand\path[\forestoption{edge}]
    (.child anchor) -| +(-5pt,0) -- +(-5pt,0) |-
    (!u.parent anchor)\forestoption{edge label};
},
 }
 [Root
 [Branch A
  [Branch A1
  ]
  [Branch A2
  ]
]
[Branch B
  [Branch B1
  ]
  [Branch B2
  ]
 ]
]
\end{forest}

\end{document}

在此处输入图片描述

目标:如下图所示旋转

在此处输入图片描述

答案1

最简单的解决方案是使用edges库。rotate节点选项会自动工作 - 无需更改或指定任何锚点。

\documentclass[border=10pt]{standalone}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
  for tree={
    draw,
    grow'=0,
  },
  forked edges,
  where n children=0{}{rotate=90},
  [Root
  [Branch A
    [Branch A1
    ]
    [Branch A2
    ]
  ]
  [Branch B
    [Branch B1
    ]
    [Branch B2
    ]
  ]
  ]
\end{forest}
\end{document}

旋转和非旋转节点

如果您确实需要指定锚点(节点、父节点或子节点),请尽量避免使用绝对锚点(例如westnorth),而应使用相对锚点(例如parentchild),因为如果特定节点发生旋转,这些锚点会得到正确调整。也就是说,如果您将这些锚点用于树,则可以旋转节点而不必担心它们。同样,如果生长方向发生变化,相对锚点也会自动调整。因此,以这种方式编写的代码比依赖绝对锚点的代码灵活得多。

答案2

您可以通过在逗号后附加选项来为每个节点指定选项。为了旋转节点,您可以使用选项rotate。但是,您还需要更改child anchorparent anchor(边缘连接的位置),因为它们也会旋转,并且您可能需要anchor=center垂直对齐。为了简化操作,我将它们组合成一种新样式ver

另外,我已将您的简化-| +(-5pt,0) -- +(-5pt,0)-- +(-10pt,0)

\documentclass[12pt]{standalone}
\usepackage{forest}

\begin{document}

\begin{forest}
    for tree={
        child anchor=west,
        parent anchor=east,
        grow'=east,
        draw,
        anchor=west,
        edge path={
            \noexpand \path[\forestoption{edge}]
            (.child anchor) 
            -- +(-10pt,0) 
            |- (!u.parent anchor)
            \forestoption{edge label};
        },
        ver/.style={rotate=90, child anchor=north, parent anchor=south, anchor=center},
    }
    [Root
        [Branch A, ver
            [Branch A1
            ]
            [Branch A2
            ]
        ]
        [Branch B, ver
            [Branch B1
            ]
            [Branch B2
            ]
        ]
    ]
\end{forest}

\end{document}

在此处输入图片描述

相关内容