我使用以下代码绘制一个表格,其中单元格周围有一个红色矩形;以及指向该单元格的文本。
但是这段代码既没有让我控制显示矩形的幻灯片,也没有让我控制箭头和文本相对于目标单元格的位置。
我想在幻灯片 2 上绘制一个矩形,并在其上附加一个包含箭头和文本的节点,而不是手动绘制和对齐它们。如果可能的话,使用 tikzset 来根据表格内目标单元格的位置控制节点和矩形之间的 x 和 y 关系。
\documentclass{beamer}
\beamertemplatenavigationsymbolsempty % suppress navigation bar
\usepackage{verbatim}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{arrows, arrows.meta, positioning, shapes, fit, shapes.misc}
\newcommand\marktopleft[1]{
\tikz[overlay,remember picture]
\node (marker-#1-a) at (0,1.5ex) {};
}
\newcommand\markbottomright[1]{
\tikz[overlay,remember picture]
\node (marker-#1-b) at (0,0) {};
\tikz[overlay, remember picture, thick, red, inner sep=3pt]
\node[draw, rounded rectangle, fit=(marker-#1-a.center) (marker-#1-b.center)] {};
}
\begin{document}
\begin{frame}[fragile,t]
\frametitle{}
\hspace {-1.cm}
\begin{tabular}{*6{c}}\hline
A & B & C & D & E & F \\
A1 & B1 & \marktopleft{c1}C1\markbottomright{c1} & D1 & E1 & F1 \\
A2 & B2 & C2 & D2 & E2 & F2 \\
A3 & B3 & C3 & D3 & E3 & F3 \\
A4 & B4 & C4 & D4 & E4 & F4 \\
\hline
\end{tabular}
\begin{tikzpicture}
\hspace {-3.cm}
\draw<2-> [ultra thick, red, -latex'] (0,0) -- +(180:3.36) node [text width=2.2cm, draw=red, very thick, fill=red!15!white, align=center, xshift=4.5cm, yshift=0cm, rounded corners=5pt] {\bf Appreciation};
\end{tikzpicture}
\end{frame}
\end{document}
答案1
像这样吗?
\documentclass{beamer}
\beamertemplatenavigationsymbolsempty % suppress navigation bar
\usepackage{verbatim}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,positioning,fit,shapes.misc}
\usetikzlibrary{tikzmark,overlay-beamer-styles,bending}
\begin{document}
\begin{frame}[fragile,t]
\frametitle{}
\hspace {-1.cm}
\begin{tabular}{*6{c}}\hline
A & B & C & D & E & F \\
A1 & B1 & \tikzmarknode[rounded rectangle,draw=red,inner sep=1pt,visible
on=<2>,text opacity=1]{C1}{C1} & D1 & E1 & F1 \\
A2 & B2 & C2 & D2 & E2 & F2 \\
A3 & B3 & C3 & D3 & E3 & F3 \\
A4 & B4 & C4 & D4 & E4 & F4 \\
\hline
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw<2-> [ultra thick, red, {Latex[length=2mm,bend]}-] (C1.-25) to[out=-45,in=180,looseness=0.2]
++(3.3,-0.1)
node [right,text width=2.2cm, draw=red, very thick, fill=red!15!white, align=center, rounded corners=5pt] {\bf Appreciation};
\end{tikzpicture}
\end{frame}
\end{document}