Tikz - 来自两个不同节点的 X 和 Y 坐标的对齐只能以一种方式进行 - 而不是另一种方式

Tikz - 来自两个不同节点的 X 和 Y 坐标的对齐只能以一种方式进行 - 而不是另一种方式

我的意思是,这是有效的:

\draw ([yshift=0.125cm]x\i.south |- ppre.west) -- ([shift={(0.125,0)}]x\i.south |- ppre.west) -- (ppre.west);

这不:

\draw (y\i.west) -- (ppre2.east |- [yshift=-0.125cm]y\i.west) -- (ppre2.east);

失败Package pgf: No shape named '[yshift=-0 is' known

我无法理解这一点:为什么移动一个节点(取 X 坐标)会起作用,而移动 Y 坐标却不起作用?

答案1

以下是我解释此问题的方式。

当您使用类似 的语法时([yshift=0.125cm]x\i.south |- ppre.west),它[yshift=0.125cm]不适用于(x\i.south),而是适用于(x\i.south |- ppre.west)。以下示例说明了这一事实:

\documentclass[tikz, border=0.3mm]{standalone}
\begin{document}

\begin{tikzpicture}[font=\tiny, every circle/.style={radius=0.5pt}]
  \coordinate (a) at (0,0);
  \coordinate (b) at (1,1);
  \draw[red] (a) -- ([xshift=1cm] a -| b);
  \fill (0,0) circle node[below] {$(0,0)$};
  \fill (1,0) circle node[below] {$(1,0)$};
  \fill (2,0) circle node[below] {$(2,0)$};
\end{tikzpicture}

\end{document}

在此处输入图片描述

如果[xshift=1cm]将 应用于(a),则将首先给出(使用默认单位) 的 (1,0) ([xshift=1cm] a),然后再次给出 的 (1,0) ([xshift=1cm] a -| b)。但是,红色部分从 (0,0) 到 (2,0),而不是从 (0,0) 到 (1,0)。获得 (2,0) 是因为是 (1,0),应用(a -| b)后变为 (2,0) (使用默认单位)。[xshift=1cm]

([foobar] a -| b)因此,将选项应用于foobar(a -| b)不是 的事实(a)表明,此类选项涉及所有的坐标表达式。在这些条件下,只允许它们出现在这些表达式的开头,即:紧接在左括号之后,似乎是合理的。

相关内容