我正在尝试放置一个箭头,该箭头从一个矩阵指向另一个矩阵,上面有一些文字。我找到了以下代码:
\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}
和nicematrix
Tikz。
\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 节点,您需要进行多次编译。