使用线条和圆圈将表格内的文本与表格外的文本连接起来

使用线条和圆圈将表格内的文本与表格外的文本连接起来

我有一张类似这张的桌子

\begin{center}
\begin{tabular}{llcc|}
  &   & \multicolumn{2}{c}{Blah}\\ \cline{3-4}
  & \multicolumn{1}{l|}{} & A & B\\ \cline{2-4}
Bleh1 & \multicolumn{1}{|l|}{C} & \begin{tabular}{l}E\\F\end{tabular}& \begin{tabular}{l}I\\J\end{tabular} \\ \cline{2-4}
Bleh2 & \multicolumn{1}{|l|}{D} & × & \begin{tabular}{l}G\\H\end{tabular}\\ \cline{2-4}
\end{tabular}
\end{center}

我想添加一些圆圈或省略号来突出显示特定条目,并在表格外添加一些文本。例如,我想在 E 和 F 周围添加一个红色圆圈或省略号(将它们放在同一个圆圈内),并从省略号到表格外的某些文本(例如“Hello”)画一条线(可能也是红色),将此文本链接到表格中的条目。有什么想法吗?

谢谢,

答案1

这里我使用 tikzpicture 和 [记住图片和覆盖] 方法来实现目标。

  1. 第一次可能需要编译两次。

  2. 连接线可以有不同的入/出角度供您选择 - 边缘[出=0,入=180]

  3. \tikz在表格中使用简写符号

  4. 添加了一些评论以供解释。

在此处输入图片描述

\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes}

\begin{document}

\tikzstyle{every picture}=[remember picture, overlay]      % overlay

\begin{center}
\begin{tabular}{llcc|}
  &   & \multicolumn{2}{c}{Blah}\\ \cline{3-4}
  & \multicolumn{1}{l|}{} & A & B\\ \cline{2-4}
Bleh1 & \multicolumn{1}{|l|}{C} & 
\begin{tabular}{l}
\tikz[baseline]
{
\node[fill=blue,rectangle,anchor=base] (t1) % internal name in table
{E};  % assign an internal name to E 
}\\ 
\tikz[baseline]
{
\node[fill=red,rectangle,anchor=base] (t2)  % internal name in table
{F};  % Assign an internal name to F 
}
\end{tabular}& 
\begin{tabular}{l}
I\\J
\end{tabular} \\ \cline{2-4}
Bleh2 & \multicolumn{1}{|l|}{D} & × & \begin{tabular}{l}G\\H\end{tabular}\\ \cline{2-4}
\end{tabular}
\end{center}

\begin{itemize}                   
\item Hello to E
\tikz \node [coordinate] (n1) {};  % define an internal name outside the table 
\item Hello to F
\tikz \node [coordinate] (n2) {};  % define an internal name outside the table
\end{itemize}

\begin{tikzpicture}
 \path[->,blue] (n1) edge [out=0, in=180] (t1);       % points form a line
 \path[->,red] (n2) edge [out=0, in=0] (t2);          % points form a line
\end{tikzpicture}

\end{document}

相关内容