使用“above”定位節點

使用“above”定位節點

不需要在給定座標上方的節點高度規範中使用 來聲明單位above。第 17 章第 5.3 節中以下範例中的註釋表明,數字 0.2(在未提及單位的情況下)被表示為TikZ0.2 公分(或 2 毫米)。

\begin{tikzpicture}
\draw[help lines] (0,0) grid (2,2);
\node at (1,1) [above=0.2, draw] {above};
% south border of the node is now 2mm above (1,1)
\end{tikzpicture}

以下程式碼與手冊中的程式碼類似,除了[x=2cm,y=2cm],它放大了圖形。使用定位第一個節點above=0.25,並將節點的下緣放置在座標上方 0.5 公分處;使用定位第二個節點above=0.25cm,並將節點的下緣放置在座標上方 0.25 公分處。手冊中哪裡討論了這種差異?

\documentclass[10pt]{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,shapes,positioning,intersections,quotes,decorations.markings}


\begin{document}

\begin{tikzpicture}[x=2cm,y=2cm]
\draw (0,0) grid [xstep=0.5, ystep=0.5] (2,2);
\node at (0.5,1) [above=0.25, draw] {over};
\node at (1.5,1) [above=0.25cm, draw] {over};
\end{tikzpicture}

\end{document}

答案1

差異是由於\begin{tikzpicture}[x=2cm,y=2cm],它告訴 TikZ 在沒有明確尺寸的情況下使用 2cm 的增量。在您的範例中,above=0.25含義與 相同yshift=0.25*2cm,anchor=south。請注意,只有在載入positioning庫時才會發生這種情況。以下範例可能有助於澄清。

    \documentclass[10pt]{amsart}
    \usepackage{tikz}
    \usetikzlibrary{positioning}

\documentclass[10pt]{amsart}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[x=1cm,y=1cm]
\draw (0,0) grid [xstep=1, ystep=1] (4,4);
\node at (0.5,1) [blue,above=1, circle, draw] {over};
\node at (1.5,1) [red,yshift=1cm,anchor=south, circle, draw] {over};
\node at (2.5,1) [above=1cm, draw] {over};
\node at (3.5,1) [above=10mm, draw] {over};
\end{tikzpicture}
\quad
\begin{tikzpicture}[x=2cm,y=2cm]
\draw (0,0) grid [xstep=1, ystep=1] (4,4);
\node at (0.5,1) [blue,above=1, circle, draw] {over};
\node at (1.5,1) [red,yshift=1cm,anchor=south, circle, draw] {over};
\node at (2.5,1) [above=1cm, draw] {over};
\node at (3.5,1) [above=10mm, draw] {over};
\end{tikzpicture}
\end{document}

在此輸入影像描述

相關內容