我想从一个节点画一个箭头,+(0,1.5)
使得箭头的长度始终相同。
但它会根据节点有多少行而变化。
我不喜欢使用它minimum height
,因为如果我使用它,一行节点中的文本将垂直居中(我知道我可以这样做,{one line\\}
但这很无聊,因为我有很多节点)。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node (bar) {A node with some long text};
\node[below left = 50pt and 10pt of bar, align=center] (two) {two\\ rows};
\draw[->] (two) -- +(0,1.5);
\node[below left = 50pt and -80pt of bar, align=center] (twon) {two rows\\line from north};
\draw[->] (twon.north) -- +(0,1.5);
\node[below right = 50pt and -20pt of bar] (one) {one row};
\draw[->] (one) -- +(0,1.5);
\end{tikzpicture}
\end{document}
答案1
节点,当用其名称来指代时,使用其中心作为锚点。现在你实际上并不需要那样。你想要箭头的高度相同,所以你需要选择一个与节点高度无关的锚点。在这种情况下,这可能是外部锚点之一,如北、南等。
此实现的重要细节是将节点放置在相同的高度(就像您对below …
语句所做的那样)。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node (bar) {A node with some long text};
\node[below left = 50pt and 10pt of bar, align=center] (two) {two\\ rows};
\draw[->] (two.north) -- +(0,1.5);
\node[below left = 50pt and -80pt of bar, align=center] (twon) {two rows\\line from north};
\draw[->] (twon.north) -- +(0,1.5);
\node[below right = 50pt and -20pt of bar] (one) {one row};
\draw[->] (one.north) -- +(0,1.5);
\end{tikzpicture}
\end{document}