我正在尝试做一些与此非常相似的事情:
除非我想旋转多个节点,最终一个节点“浮动”在另一个节点之上:
理想情况下,我希望它们能够彼此对齐。
以下是示例代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.misc, positioning}
\begin{document}
\begin{tikzpicture}
\tikzstyle{every node}=[font=\scriptsize]
\node(node1) [draw, rounded rectangle, align=center, rotate=90, fill=gray ]{Small text};
\node(node2) [draw, rounded rectangle, right = of node1, align=center, rotate=90, fill=red, anchor=north] {longer text \\ on two lines};
\end{tikzpicture}
\end{document}
答案1
尝试这个:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.misc, positioning}
\begin{document}
\begin{tikzpicture}[every node/.append style={font=\scriptsize}]
\node(node1) [draw, rounded rectangle, align=center, rotate=90,fill=gray ]{Small text};
\node(node2) [draw, rounded rectangle, right = of node1.south, align=center, rotate=90, fill=red, anchor=north] {longer text \\ on two lines};
\end{tikzpicture}
\end{document}
解释:定位使用适当的锚点来测量距离。因此,如果您说right of
,它会将节点放置在锚点右侧一定距离处east
。但是,这些旋转没有被考虑在内,因此旋转后锚点east
位于节点的(现在)上端,这就是为什么红色节点被放置在east
灰色节点锚点右侧一定距离处,即上端。在这个答案中,Ti钾Z 被告知要使用南锚点,即旋转后节点的右端。处理中存在轻微的不对称,因为你可能会天真地认为 Ti钾Z 也会使用west
红色节点的锚点,但它没有。我猜测它使用\pgfpointshapeborder
它,但我没有检查这一点。
编辑:我做的唯一修改是将其替换\tikzstyle{every node}=[font=\scriptsize]
为[every node/.append style={font=\scriptsize}]
。请参阅这次讨论\tikzstyle
进行关于的讨论\tikzset
。
答案2
为了使nodes
与 对齐baseline
,只需围绕 锚点旋转到 即可west
。因此,移除北边的锚点% anchor=north
并移动到该锚点的右侧right = of node1.west
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.misc, positioning
}
\begin{document}
\begin{tikzpicture}
\tikzstyle{every node}=[font=\scriptsize]
\node(node1) [draw, rounded rectangle, align=center, rotate=90, fill=gray ]{Small text};
\node(node2) [draw, rounded rectangle, right = of node1.west, align=center, rotate=90, fill=red,% anchor=north
] {longer text \\ on two lines};
\end{tikzpicture}
\end{document}