参考符号边界框的坐标

参考符号边界框的坐标

在 tikz 中,我多次绘制基本相同的图形,但节点上的文字不同。因此,我想参考节点上文字的边界框坐标来构建我的图片,以便所有这些图形看起来“相同”。

我想要的最小示例:

\begin{tikzpicture}
    
\node[left] (x) at (0, 0) {[text A]};
\node[right] (y) at (2, 0) {[text B]};
    
\draw[->] ($([right side of text A], 0) + (0.1, 0.1)$) -- ($([left side of text B], 0) + (-0.1, 0.1)$);
\end{tikzpicture}

该站点上已经有一些关于边界框坐标的问题,但我找不到能够应用于我的问题的内容。

任何帮助都将不胜感激!

答案1

你想这么做吗?

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node[left] (x) at (0, 0) {text A};
\node[right] (y) at (2, 0) {text B};
\draw[->] ($(x.east) + (0.1, 0.1)$) -- ($(y.west) + (-0.1, 0.1)$);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

正确的语法是

\node[right=2cm of x] (y)  {text B};

此外,您的箭头未正确对齐节点的中心xy 您需要使用如下所示的正确语法

\draw[->, >=stealth] (x) to (y);

>=stealth箭头的类型是什么

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc, positioning}
\begin{document}
\begin{tikzpicture}
\node[] (x) at (0, 0) {text A};
\node[right=2cm of x] (y)  {text B};
\draw[->, >=stealth] (x) to (y);
\end{tikzpicture}
\end{document}

答案3

以下是另外两种可能的方式:([shift={(-0.1,0.1)}] y.west)([xshift=-0.1cm, yshift=0.1cm] y.west)。请注意,在后一种样式中,默认单位是pt,因此([xshift=-0.1, yshift=0.1] y.west)不是相当于,([shift={(-0.1,0.1)}] y.west)除非您选择非常特殊的xy向量(当使用时([shift={(-0.1,0.1)}] y.west)-0.1乘以坐标系x的向量,和乘以所述坐标系的向量;这些向量可以用和选项进行修改,通常在环境的可选参数中传递)。xyz0.1yx=...y=...tikzpicture

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\node[left] (x) at (0, 0) {text A};
\node[right] (y) at (2, 0) {text B};
\draw[->] ([shift={(0.1,0.1)}] x.east) --
          ([xshift=-0.1cm, yshift=0.1cm] y.west);
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容