如何在表格和其他节点内使用 TikZ 节点并在它们之间绘制路径?

如何在表格和其他节点内使用 TikZ 节点并在它们之间绘制路径?

我正在尝试使用 TikZ 重新实现我使用 PSTricks 制作的图表,但我认为我的思维模型一定是错误的。以下是我解决问题的方法:

  • 整体图表布局是由tabular环境决定的。

  • 布局内的典型单元tabular需要是 TikZ 节点,这样我就可以绘制指向它的曲线。

  • 有时单元格包含项目符号,这需要起源绘制到另一个单元格边缘的曲线。

  • 一些真正令人兴奋的单元格将文本堆叠在另一个小图表的顶部,该小图表本身包含两个项目符号,每个项目符号都源自绘制到另一个节点的箭头。

以下是我尝试解决该问题的方法:

  1. 表格中的每个单元格都有自己的\begin{tikzpicture}... \end{tikzpicture,并带有remember picture选项。

  2. 每个单元都是我可以指向的一个节点。

  3. 如果单元格的内容只是文本,那么它只是文本。

  4. 如果单元格的内容比较复杂,我会把其他 \begin{tikzpicture}...\end{tikzpicture}在节点的内容中。

  5. 每条曲线或多或少都有其自身的\begin{tikzpicture}……\end{tikzpicture}

我正在努力让它工作,主要是通过overlay或多或少随机地投入。但我没有一个心理模型。我从搜索 TeX.se 和其他地方学到的是“不要这样做”。什么应该我会做什么?

我应该读些什么才能建立合适的心理模型指定TeX 中的图表,TeX 中的图表?等等?

答案1

下面是一个使用的示例tikzmark。绘制连接的图片需要有键remember picture,overlay

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\tikzset{bullet/.style={circle,inner sep=0.2ex,fill}}
\begin{document}
\begin{table}[htb]
% note that the table borders are just for illustration
% this works with bookmarks, too
\centering
\begin{tabular}{|l|c|l|}
\hline
\tikzmarknode{bla}{bla} & \tikzmarknode{bla2}{bla} & \tikzmarknode{blub}{blub}\\
\hline
\tikzmarknode[bullet]{b1}{} &  
\begin{tikzpicture}[remember picture,baseline={(0,0)}]
 \draw[thick,blue] plot[variable=\x,domain=0:3] (\x,{sin(\x*120)});
 \path (0.5,1.2) node[bullet] (b3){} (1.5,1.2) node[bullet] (b4){}
 (0,1.4) (0,-1.2);
\end{tikzpicture}
& \tikzmarknode[bullet]{b2}{} \\
\hline
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
 \draw[red,-stealth] (bla) to[bend left] (bla2);
 \draw[red,-stealth] (bla2) to[bend left] (blub);
 \draw[red,-stealth] (bla) to[bend left] (b1);
 \draw[red,-stealth] (bla) to[bend left] (b3);
 \draw[red,-stealth] (blub) to[bend left] (b2);
 \draw[red,-stealth] (blub) to[bend left] (b4);
\end{tikzpicture}
\caption{A table with \texttt{\textbackslash tikzmarknode}s,
\texttt{tikzpicture}s and Ti\emph{k}Z annotations.}
\end{table}

\end{document}

在此处输入图片描述

相关内容