Позиционирование узла с помощью «выше»

Позиционирование узла с помощью «выше»

Единицы измерения не обязательно должны быть объявлены в спецификации высоты узла над заданной координатой с помощью above. Комментарий в следующем примере в Главе 17, Разделе 5.3 указывает, что число 0,2 без упоминания единиц измерения отображается TikZкак 0,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 использовать приращения в 2 см при отсутствии явных размеров. В вашем примере 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}

введите описание изображения здесь

Связанный контент