我想使用放大此地图中的印度。我该怎么做?有人可以用简单的语言(非技术性)解释中的函数framezoom
用法吗?\framezoom
beamer
答案1
的一般语法\framezoom
如下:
\framezoom<⟨button overlay specification⟩><⟨zoomed overlay specification⟩>[⟨options⟩](⟨upper left x⟩,⟨upper left y⟩)(⟨zoom area width⟩,⟨zoom area depth⟩)
其基本思想\framezoom
是在图像上生成一个可点击的矩形区域(如果你愿意的话可以称之为“按钮”),这样当你点击该区域时,就会出现放大的细节。
<⟨button overlay specification⟩>
控制在框架的哪一张幻灯片上创建按钮。
<⟨zoomed overlay specification⟩>
允许您指定应在哪张幻灯片上显示缩放细节。此处使用的值不应与 中给出的值重叠<⟨button overlay specification⟩>
。
在可选参数中,[⟨options⟩]
您可以使用border
或border=<number>
在要缩放的图像部分周围绘制一个框架。框架使用的规则的粗细由 中指定的值控制<number>
;默认情况下(即,如果未指定任何选项),不绘制框架;也可以使用 hyperref 更改框架的颜色linkbordercolor
(参见下面的第二个示例)。
可点击按钮呈矩形;该矩形区域左上角的坐标为(⟨upper left x⟩,⟨upper left y⟩)
。
宽度和深度由给出(⟨zoom area width⟩,⟨zoom area depth⟩)
。
一些例子:
(由于某种原因,从生成的 PDF 创建的动画不显示彩色框架;但是,处理示例代码时,实际上可以看到框架)。
首先,举一个简单的例子:在幻灯片 中制作了可点击区域1
,该区域有一条较粗的灰色边框,矩形区域的左上角为 ,(6.8cm,1.2cm)
可点击区域的宽度和深度分别为1.4cm
和1.5cm
。放大后的区域将出现在幻灯片 2 上。
\documentclass{beamer}
\begin{document}
\begin{frame}
\framezoom<1><2>[border=4](6.8cm,1.2cm)(1.4cm,1.5cm)
\includegraphics[height=\textheight,width=\textwidth,keepaspectratio]{map}
\end{frame}
\end{document}
这是一个更复杂的例子;可点击区域周围的框架现在具有使用 生成的自定义颜色\hypersetup{linkbordercolor={red!70!black}}
;框架将出现在幻灯片上2
,缩放图像将出现在幻灯片上3
;请注意,幻灯片3
现在是plain
一张幻灯片,因此它不包含标题也不包含大标题/脚注,并且缩放图像占据了整个框架:
\documentclass{beamer}
\usetheme{CambridgeUS}
\begin{document}
\begin{frame}<1,2>[label=india]
\frametitle<1,2>{A zoom over India}
\hypersetup{linkbordercolor={red!70!black}}
\framezoom<2><3>[border=2](7.6cm,1.4cm)(1.4cm,1.4cm)
\includegraphics[height=\textheight,width=\textwidth,keepaspectratio]{map.jpg}
\end{frame}
\againframe<3>[plain]{india}
\end{document}
另一种方法\framezoom
是使用spy
PGF/TikZ 中的库;这里有一个小例子,并排显示图像和放大的区域(有关spy
库的详细信息,请参阅第节49 间谍图书馆:放大图片的部分内容pgf 手册):
\documentclass{beamer}
\usetheme{CambridgeUS}
\usepackage{tikz}
\usetikzlibrary{spy}
\begin{document}
\begin{frame}
\frametitle{A zoom over India}
\begin{tikzpicture}[
spy using outlines={
circle,
magnification=10,
size=5cm,
connect spies}]
\node[inner sep=0pt] {\pgfimage[width=0.4\textwidth]{map}};
\only<2>{\spy[red!70!black] on (0.88,0.15) in node at (.5\textwidth,0);}
\end{tikzpicture}
\end{frame}
\end{document}
我在示例中使用的图像不是最好的;放大的区域像素化了。如果可能的话,请在实际代码中使用更好的图像。