我有一张大图像,想在演示文稿中展示。图表上有四个面板。我想在每张幻灯片中显示每个面板。我们如何每次只显示图像的特定部分?
例如我有一张这样的图表
我怎样才能将每个面板全屏显示?
答案1
评论
\includegraphics
当使用来自包(由 beamer 预加载)的图像时garphicx
,您可以指定选项clip
和trim
,其中trim
需要边框的附加参数。与clip
修剪边框一起被切断。省略时,clip
只有边框会移动(即边界框会发生变化)。
参数trim
为
\includegraphics[clip,trim = left bottom right top]{...}
单位为bp
(大点为1/72英寸)。
执行
Image111.png
是来自您的链接的文件,放在同一目录中。
\documentclass{beamer}
\begin{document}
\begin{frame}{Upper left}
\centering
\includegraphics[clip,trim=0 90 120 0]{Image111}
\end{frame}
\begin{frame}{Lower left}
\centering
\includegraphics[clip,trim=0 0 125 90]{Image111}
\end{frame}
\begin{frame}{Upper right}
\centering
\includegraphics[clip,trim=125 90 0 0]{Image111}
\end{frame}
\begin{frame}{Lower right}
\centering
\includegraphics[clip,trim=125 0 0 90]{Image111}
\end{frame}
\end{document}
输出(第一张幻灯片)
答案2
不需要手动指定trim
参数的 TikZ 解决方案。
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\newcommand\scale{2}
\newcommand\clippic[1]{
\begin{tikzpicture}[inner sep=0]
% extract dimensions of image
\node{\phantom{\includegraphics[scale=\scale]{image111}}};
\coordinate(nw)at(current bounding box.north west);
\coordinate(se)at(current bounding box.south east);
\coordinate(ne)at(current bounding box.north east);
\coordinate(sw)at(current bounding box.south west);
\coordinate(cent)at(current bounding box.center);
% insert specific panel of image
\pgfresetboundingbox
\clip[use as bounding box](#1)rectangle(cent);
\node{\includegraphics[scale=\scale]{image111}};
\end{tikzpicture}
}
\newcommand\makeframe[2]{
\begin{frame}{#1}
\centering
\clippic{#2}
\end{frame}
}
%%%%%%%%%%%
\makeframe{Top Left}{nw}
\makeframe{Top Right}{ne}
\makeframe{Bottom Left}{sw}
\makeframe{Bottom Right}{se}
\end{document}
您也可以调整的参数\scale{}
来实现缩放效果。