我正在尝试制作一个表格,显示元素如何从表格中的一个位置移动到另一个位置。我想添加一个从第一个元素开始到第二个元素的向量。
我该怎么做呢?
我尝试将表格放在图片中,但出现错误:不在外部模式。
\begin{figure}
\setlength{\unitlength}{1mm}
\begin{picture}(500,400)
\put(20,-10){\vector(1,-1){5}}
\begin{table}
\begin{tabular}[t]{ll}
\textbf{Something here} & \\ \hline
A & F \\
B & A \\
C & G \\
D & H \\
E & I%
\end{tabular}
\end{table}
\end{picture}
\end{figure}
我想要一个从左列的 A 指向右列的 A 的向量。
我尝试将图片放入单元格中,但\vector
命令没有显示在 PDF 中。
我也在 Google 上搜索过,但找不到如何操作。
有人可以帮忙吗?
答案1
你可以使用 Andrew Stacey 经过验证的tikzmark
想法,最早发布在这里
此后,又在许多例子中重复出现。
这个想法是在表中的每个位置设置一个node
,然后连接两个节点(使用overlay
和remember picture
)。您可以使用 tikz 库调整连接的位置calc
。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1){};}
\begin{document}
\begin{table}
\begin{tabular}[t]{ll}
\textbf{Something here} & \\ \hline
A\tikzmark{firstmarker} & F \\
B & A\tikzmark{secondmarker} \\
C & G \\
D & H \\
E & I%
\end{tabular}
\end{table}
\tikz[overlay,remember picture]\draw[red,->] ($(firstmarker)+(.2em,0.5em)$)--($(secondmarker)+(-.6em,0.5em)$);
\end{document}