假设我在 Beamer 中有一个这样的框架(我从外部文件加载表格):
\begin{frame}
\frametitle{Table Name}
\begin{table}[htbp]
\begin{tabular}{c | cccc}
\input{\dir/table}
\pause \begin{tikzpicture}[overlay]
\draw[red,ultra thick,rounded corners] (2.5,1.3) rectangle (3.4,4.2);
\end{tikzpicture}
\pause \begin{tikzpicture}[overlay]
\draw[red,ultra thick,rounded corners] (1.5,1.3) rectangle (2.4,4.2);
\end{tikzpicture}
\end{tabular}
\end{table}
\end{frame}
我的目标是使用叠加的 tikzpicture 突出显示表格的两个不同区域。我不希望在推进幻灯片之前出现第一个突出显示(或第二个)。当我推进幻灯片时,我只希望出现第一个突出显示而不出现第二个突出显示。当我再次推进幻灯片时,我只希望出现第二个突出显示而不出现第一个突出显示。该\pause
命令为我带来了很多好处,我认为主要问题是当我在最后一张幻灯片上并且只想要第二个突出显示时,第一个突出显示会消失。
答案是否与?有关:\setbeamercovered{transparent}
和
根据要求,MWE:
\documentclass[compress]{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\frametitle{Table Name}
\begin{table}[htbp]
\begin{tabular}{c | cccc}
A & B& C& D\\
\hline
1 & 1& 6& 7\\
2 & 2& 5& 8\\
Total & 3& 4& 9 \\
\pause \begin{tikzpicture}[overlay]
\draw[red,ultra thick,rounded corners] (1,1) rectangle (2,2);
\end{tikzpicture}
\pause \begin{tikzpicture}[overlay]
\draw[red,ultra thick,rounded corners] (1,3) rectangle (2,4);
\end{tikzpicture}
\end{tabular}
\end{table}
\end{frame}
\end{document}
答案1
TikZ 绘图宏具有叠加感知功能,因此您可以执行类似以下示例的操作。\draw<2> ..
意味着\draw
仅在第二张幻灯片上显示。
请注意,在您的示例中,table
环境并不是真正必要的。在beamer
演示文稿中,只有当您想要拥有 时才需要它\caption
。就此而言,由于 atable
不是浮点数beamer
(这没有意义),因此浮点放置选项 ( [htpb]
) 不起作用。
\documentclass[compress]{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\frametitle{Table Name}
\begin{tabular}{c | cccc}
A & B& C& D\\
\hline
1 & 1& 6& 7\\
2 & 2& 5& 8\\
Total & 3& 4& 9
\begin{tikzpicture}[overlay]
\draw<2>[red,ultra thick,rounded corners] (1,1) rectangle (2,2);
\draw<3>[red,ultra thick,rounded corners] (1,3) rectangle (2,4);
\end{tikzpicture}
\end{tabular}
\end{frame}
\end{document}
不过,您可能对库感兴趣tikzmark
。\tikzmark{<name>}
宏允许您在表格(或任何其他文本)中制作标记。您可以将其用作坐标(pic cs:<name>)
。请注意,tikzpicture
需要选项[remember picture,overlay]
。
\documentclass[compress]{beamer}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{frame}
\frametitle{Table Name}
\begin{tabular}{c | cccc}
A & \tikzmark{a}B& C& D\\
\hline
1 & 1& 6\tikzmark{b}& 7\\
2 & 2& \tikzmark{c}5& 8\\
Total & 3& 4& 9\tikzmark{d}
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw<2>[red,ultra thick,rounded corners] ([shift={(-2pt,12pt)}]pic cs:a) rectangle ([shift={(2pt,-2pt)}]pic cs:b);
\draw<2>[red,ultra thick,rounded corners] ([shift={(-2pt,12pt)}]pic cs:c) rectangle ([shift={(2pt,-2pt)}]pic cs:d);
\end{tikzpicture}
\end{frame}
\end{document}