tikz 记住 latex 表格内的图片,用于后部 tikz 绘图

tikz 记住 latex 表格内的图片,用于后部 tikz 绘图

我正在使用包含 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}

相关内容