我正在做一个beamer
演示,我想首先展示一张真实形式的图像:
并在下一张幻灯片中将其一部分显示为阴影,如下所示:
有没有办法做到这一点?
答案1
这是一个非常强大的方法:
\documentclass{beamer}% http://ctan.org/pkg/beamer
\newsavebox{\myimage}
\savebox{\myimage}{\quad\fbox{\includegraphics[width=150pt]{tiger}}\quad}% Store image with padding
\begin{document}
\begin{frame}
\frametitle{A frame title}
\onslide<2>{%
\smash{% Remove vertical height
\rlap{% Right overLAP (zero-width, left-aligned)
\color{black!30}% Background colour
\rule[\dimexpr-\ht\myimage-\baselineskip]{\wd\myimage}{.5\ht\myimage}% Box
}}}%
\usebox{\myimage}
\end{frame}
\end{document}
这个想法是在图像(存储在一个框中)的背景中打印一个\rule[<depth>]{<width>}{<height>}
特定颜色(= 30% 黑色)的块() ,该块的宽度( )和高度( )为零,并将其正确定位以仅突出显示您要查找的区域。填充用于(一侧或两侧)。\color{black!30}
\myimage
\rlap
\smash
\myimage
\quad
\hspace*{1em}
覆盖规范\onslide<.>
仅在幻灯片 2 上打印块。您必须使用测量值,因为我没有您的图像/图表。
注意:这要求您的图像(或图表)是透明的,以便在没有绘制任何内容的地方可以看到块。
如果您想要反向操作,并在叠加层中使用一些透明度,那么以下方法可能就是您想要的。遵循类似的技术,只使用transparent
包裹指定\transparent{<num>}
所用颜色的透明度(0 = 完全透明;1 = 完全不透明):
\documentclass{beamer}% http://ctan.org/pkg/beamer
\usepackage{transparent}% http://ctan.org/pkg/transparent
\newsavebox{\myimage}
\savebox{\myimage}{\quad\fbox{\includegraphics[width=150pt]{tiger}}\quad}% Store image with padding
\begin{document}
\begin{frame}
\frametitle{A frame title}
\rlap{\usebox{\myimage}}%
\onslide<2>{%
\smash{% Remove vertical height
\color{black}\transparent{0.8}% Overlay colour = black + 80% opaque
\rule{\wd\myimage}{.5\ht\myimage}% Box
}}%
\end{frame}
\end{document}
答案2
始终存在 tikz 解决方案。
您可以将图像放入 tikz 节点,然后使用节点锚点作为矩形封面的参考点。我定义了一个宏来简化重复使用。第一个参数是封面将出现的幻灯片,第二个参数是要覆盖的图像量(1 覆盖整个图像,0.5 仅覆盖下半部分,依此类推)。示例:
\documentclass{beamer}
\usepackage{tikz,graphicx}
\usetikzlibrary{calc}
\def\coverfig#1#2{
\coordinate (zone) at ($(fig.south)!#2!(fig.north)$);
\fill<#1>[black, opacity=0.3] (fig.south west) rectangle(fig.east|-zone);
}
\begin{document}
\begin{frame}
\begin{center}
\begin{tikzpicture}
\node[inner sep=1em] (fig) {\includegraphics[width=0.6\linewidth]{tiger}};
\coverfig{1}{.8}
\coverfig{2}{.5}
\coverfig{3}{.2}
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}
结果是: