从一个矩阵到另一个矩阵的弯曲箭头

从一个矩阵到另一个矩阵的弯曲箭头

我正在尝试放置一个箭头,该箭头从一个矩阵指向另一个矩阵,上面有一些文字。我找到了以下代码:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes}


\begin{document}


\begin{equation}
\begin{bmatrix}
1 & \tikz[remember picture] \node (n3){1};  & 1 \\
1 & 1 & 1 \\
1 & 1 & 1 \\
\end{bmatrix}
=
\begin{bmatrix}
1 & \tikz[remember picture] \node (n4){1}; & 1 \\
1 & 1 & 1 \\
1 & 1 & 1 \\
\end{bmatrix}
\end{equation}

\begin{tikzpicture}[remember picture,overlay]
\draw[->,very thick]  (n3) to [out=45,in=135] node[above] {some text here} (n4);
\end{tikzpicture}

\end{document}

但命令突出显示的两个数字\node相对于其他数字是“浮动”的。我该如何解决?谢谢

编辑:按照建议,我将展示最终作品的屏幕截图。如您所见,零点和西塔相对于同一行上的其他项目是“浮动”的。

在此处输入图片描述

答案1

最重要的变化是消除inner sep并使用节点的基线作为整个 tikz 图片的基线。此外,outer sep设置为箭头将与两个节点保持“安全距离”:_)。

另请注意tikzmark类似的设置是否更加自动化,您可以在此站点上找到它的用例。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes}

\tikzset{
  my mark/.style={
    remember picture, inner sep=0pt, outer sep=2pt, baseline=(#1.base)
  }
}

\begin{document}


\begin{equation}
\begin{bmatrix}
1 & \tikz[my mark=n3] \node (n3){1};  & 1 \\
1 & 1 & 1 \\
1 & 1 & 1 \\
\end{bmatrix}
=
\begin{bmatrix}
1 & \tikz[my mark=n4] \node (n4){1}; & 1 \\
1 & 1 & 1 \\
1 & 1 & 1 \\
\end{bmatrix}
\end{equation}

\begin{tikzpicture}[remember picture,overlay]
\draw[->,very thick, ] (n3) to [out=45,in=135] node[above] {some text here} (n4);
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

如果你使用 来做这件事pstricks,你就不会遇到这样的问题:

    \documentclass{article}
    \usepackage{amsthm}
    \usepackage{amsmath}
    \usepackage{pst-node}

    \begin{document}

    \begin{equation}
    \begin{bmatrix}
    1 & \Rnode{n3}{1} & 1 \\
    1 & 1 & 1 \\
    1 & 1 & 1 \\
    \end{bmatrix}
    =
    \begin{bmatrix}
    1 & \Rnode{n4}{1} & 1 \\
    1 & 1 & 1 \\
    1 & 1 & 1 \\
    \end{bmatrix}
    \psset{linejoin=1, arrowinset=0.1}
    \nccurve[angleA=45, angleB=135,nodesep=1pt]{->}{n3}{n4}
    \naput[labelsep=2pt]{\text{some text here}}
    \end{equation}

    \end{document} 

在此处输入图片描述

答案3

使用{bNiceMatrix}nicematrixTikz。

\documentclass{article}
\usepackage{amsmath}
\usepackage{nicematrix}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes}


\begin{document}

\begin{equation}
\begin{bNiceMatrix}[name=A]
1 & 1 & 1 \\
1 & 1 & 1 \\
1 & 1 & 1 \\
\end{bNiceMatrix}
=
\begin{bNiceMatrix}[name=B]
1 & 1 & 1 \\
1 & 1 & 1 \\
1 & 1 & 1 \\
\end{bNiceMatrix}
\end{equation}

\begin{tikzpicture}[remember picture,overlay]
\draw[->,very thick] (A-1-2) to [out=45,in=135] node[above] {some text here} (B-1-2);
\end{tikzpicture}

\end{document}

由于 PGF/Tikz 节点,您需要进行多次编译。

上述代码的输出

相关内容