來自 pgfmanual:

來自 pgfmanual:

我正在嘗試創建一個圖表,並希望使用該anchor=west選項將我的節點保持對齊。我更喜歡使用相對定位來使我的圖表更靈活地進行更改。這是我的例子:

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}


\begin{tikzpicture}[%
  every node/.style = {anchor=west}]

\node[fill=red!40, draw] (n0) at (0,0) {Base node} ;
\node[fill=red!40, draw] (n1) at (0,-2) {Node with longer text} ;
\node[fill=red!40, draw] (n2) [below=of n1] {Node with even longer text} ;

\end{tikzpicture}
\end{document}

請注意第二個節點如何使用anchor=west每個節點的樣式集,但具有最長文字的第三個節點似乎位於第二個節點下方的中心位置,而不是與其左對齊。有辦法實現我正在尋找的東西嗎?

本質上,我想要第二個節點的對齊方式,而不必指定絕對座標。

在此輸入影像描述

答案1

嘗試這個

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}


\begin{tikzpicture}[%
  every node/.style = {anchor=west}]

\node[fill=red!40, draw] (n0) at (0,0) {Base node} ;
\node[fill=red!40, draw] (n1) at (0,-2) {Node with longer text} ;
\node[fill=red!40, draw] (n2) [below=of n1.west, right] {Node with even longer text} ;

\end{tikzpicture}
\end{document}

在此輸入影像描述

來自 pgfmanual:

16.5.2 基本放置選項

不幸的是,雖然完全合乎邏輯,但為了將節點放置在給定點之上,您需要指定南錨點,這通常是相當違反直覺的。因此,有一些有用的選項可以讓您更直觀地選擇標準錨點:

/tikz/above (預設 0 點)

與anchor=south 的作用相同。如果指定了 ,則節點也會向上移動給定的 。

above \tikz \fill (0,0) circle (2pt) node[above] {above};

above \tikz \fill (0,0) circle (2pt) node[above=2pt] {above};

/tikz/below=<offset>(預設 0pt)與上方類似。

/tikz/left=<offset>(預設 0pt)與上方類似。

/tikz/right=<offset>(預設 0pt)與上方類似。

答案2

隱含地,below暗示anchor=north(並且對於below=of n1,引用是n1.south),left暗示anchor=east等。

一個範例(藍色節點顯示預設參考不是n1.center,石灰節點顯示所需的定位):

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[every node/.style={anchor=west}]

\node[fill=red!40, draw] (n0) at (0,0) {Base node} ;
\node[fill=red!40, draw] (n1) at (0,-2) {Node with longer text} ;

\node[fill=red!40, draw,below=of n1] (n2) {Node with even longer text} ;

\node[fill=blue!40, draw,below=of n1.center] (n2) {Node with even longer text} 

\node[fill=lime!40, draw,below=of n1.south west,anchor=north west]
 (n2) {Node with even longer text} ;

\end{tikzpicture}
\end{document}

在此輸入影像描述

相關內容