我正在使用包含 tikz 图形的乳胶表。这很好,但是我想使用这些独立图形内的元素在表顶部叠加一个额外的 tikz 图形。该选项[remember picutre]
似乎很有用,但我不知道如何在以下示例中使用它:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{lipsum}
\newcommand{\myCoord}[1]{
\tikz[remember picture]{
\coordinate (#1) at (0,0);
\draw (#1) circle[radius=2pt];
}
}
\begin{document}
\begin{tabular}{lccccc}
& A & B & C & D &\\
a & \myCoord{aA} & \myCoord{aB} & \myCoord{aC} & \myCoord{aD}\\
b & \myCoord{bA} & \myCoord{bB} & \myCoord{bC} & \myCoord{bD}\\
c & \myCoord{cA} & \myCoord{cB} & \myCoord{cC} & \myCoord{cD}\\
d & \myCoord{dA} & \myCoord{dB} & \myCoord{dC} & \myCoord{dD}\\
\end{tabular}
\begin{tikzpicture}[remember picture]
\draw (aA) -- (bC);
\end{tikzpicture}%
\end{document}
是否应将选项应用于
\tikz[remember picture]
\coordinate[remember picture]
- 到上面的 tikz 图
答案1
您需要overlay
第二个选项tikzpicture
;这可以通过将选项传递给环境来“全局”地完成(即,对于所有环境),tikzpicture
也可以通过将选项传递给所需的命令(在您的情况下为)来本地完成(即,对于环境内的选定构造)\draw
。
因此,在这种情况下,以下两个选项都会给您所需的结果(在代码运行两三次后稳定下来):
\begin{tikzpicture}[remember picture,overlay]]
\draw (aA) -- (bC);
\end{tikzpicture}
或者
\begin{tikzpicture}[remember picture]
\draw[overlay] (aA) -- (bC);
\end{tikzpicture}
使用该tikzmark
库,正如一条评论中所建议的那样,您的代码可能看起来像这样(需要进行一些额外的移动):
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\newcommand{\myCoord}[1]{
\tikzmark{#1}
\tikz\draw (pic cs:#1) circle[radius=2pt];
}
\begin{document}
\begin{tabular}{lccccc}
& A & B & C & D &\\
a & \myCoord{aA} & \myCoord{aB} & \myCoord{aC} & \myCoord{aD}\\
b & \myCoord{bA} & \myCoord{bB} & \myCoord{bC} & \myCoord{bD}\\
c & \myCoord{cA} & \myCoord{cB} & \myCoord{cC} & \myCoord{cD}\\
d & \myCoord{dA} & \myCoord{dB} & \myCoord{dC} & \myCoord{dD}\\
\end{tabular}
\begin{tikzpicture}[remember picture]
\draw[overlay] (pic cs:aA) -- (pic cs:bC);
\end{tikzpicture}
\end{document}