我正在做一个演示,想在左侧显示一些文本,在右侧显示一张图片,但是当文本或图片不相同(大小、长度等)时,文本会呈现在不同的位置,并且在演示模式下循环显示帧/幻灯片时,文本似乎会跳跃,感觉非常混乱。无论旁边的图像大小或文本长度如何,我如何使文本保持静态?
简化代码(保留包,不确定它们是否修改了此上下文中的默认行为):
%% DOCUMENT CLASS %%
\documentclass[compress]{beamer}
%% PACKAGES %%
%\usepackage[backend=biber, style=science]{biblatex} %authortitle
%\usepackage[backend=biber, babel=other, style=iso-numeric]{biblatex} %authortitle
\usepackage{csquotes}
\usepackage[backend=biber, style=iso-numeric, babel=other, urldate=short]{biblatex}
\addbibresource{ref.bib}
\AtBeginBibliography{\small}
\usepackage{url}
\usepackage{eso-pic}
\usepackage{float}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{pdfpages}
\usepackage{setspace}
\usepackage{lmodern}
\usepackage{caption}
\usepackage{gensymb}
%% FORMATING %%
\usepackage[ddmmyyyy]{datetime}
\renewcommand{\dateseparator}{//}
%% BEGIN DOCC %%
\begin{document}
\section{section title}
\frame{ \frametitle{frame title}
\begin{columns}
\column{0.3\textwidth}
\centering
\begin{enumerate}
\item Item one
\item Item two
\item Item three
\item Item four
\item Item five
\item Item six
\end{enumerate}
\column{0.7\textwidth}
\centering
\begin{figure}
\includegraphics<1>[width=1\textwidth]{src/img.png}%
\only<1>{\caption{caption one}}
\includegraphics<2>[width=0.45\textwidth]{src/img2.png}%
\only<2>{\caption{caption 2}}
\end{figure}
\end{columns}
}
%% END DOCC %%
\end{document}
下面的 gif 显示了我上面描述的不良行为:
答案1
消除跳跃的最简单方法是使框架和列顶部对齐:
%% DOCUMENT CLASS %%
\documentclass[compress]{beamer}
%% PACKAGES %%
%\usepackage[backend=biber, style=science]{biblatex} %authortitle
%\usepackage[backend=biber, babel=other, style=iso-numeric]{biblatex} %authortitle
\usepackage{csquotes}
\usepackage[backend=biber, style=iso-numeric, babel=other, urldate=short]{biblatex}
\addbibresource{ref.bib}
\AtBeginBibliography{\small}
%\usepackage{url}
\usepackage{eso-pic}
%\usepackage{float}
%\usepackage{hyperref}
%\usepackage{graphicx}
\usepackage{listings}
%\usepackage{xcolor}
\usepackage{pdfpages}
%\usepackage{setspace}
\usepackage{lmodern}
%\usepackage{caption}
\usepackage{gensymb}
%% FORMATING %%
\usepackage[ddmmyyyy]{datetime}
\renewcommand{\dateseparator}{//}
%% BEGIN DOCC %%
\begin{document}
\section{section title}
\frame{ \frametitle{frame title}
\begin{columns}
\begin{column}{0.3\textwidth}
\centering
\begin{enumerate}
\item Item one
\item Item two
\item Item three
\item Item four
\item Item five
\item Item six
\end{enumerate}
\end{column}
\begin{column}{0.7\textwidth}
\begin{figure}
\begin{overlayarea}{\textwidth}{.6\textheight}
\centering
\includegraphics<1>[width=1\textwidth]{example-image-duck}%
\only<1>{\caption{caption one}}
\includegraphics<2>[width=0.45\textwidth]{example-image-duck}%
\only<2>{\caption{caption 2}}
\end{overlayarea}
\end{figure}
\end{column}
\end{columns}
}
%% END DOCC %%
\end{document}
如果您不想要这个,您可以使用以下overlayarea
环境:
%% DOCUMENT CLASS %%
\documentclass[compress]{beamer}
%% PACKAGES %%
%\usepackage[backend=biber, style=science]{biblatex} %authortitle
%\usepackage[backend=biber, babel=other, style=iso-numeric]{biblatex} %authortitle
\usepackage{csquotes}
\usepackage[backend=biber, style=iso-numeric, babel=other, urldate=short]{biblatex}
\addbibresource{ref.bib}
\AtBeginBibliography{\small}
%\usepackage{url}
\usepackage{eso-pic}
%\usepackage{float}
%\usepackage{hyperref}
%\usepackage{graphicx}
\usepackage{listings}
%\usepackage{xcolor}
\usepackage{pdfpages}
%\usepackage{setspace}
\usepackage{lmodern}
%\usepackage{caption}
\usepackage{gensymb}
%% FORMATING %%
\usepackage[ddmmyyyy]{datetime}
\renewcommand{\dateseparator}{//}
%% BEGIN DOCC %%
\begin{document}
\section{section title}
\begin{frame}
\frametitle{frame title}
\begin{columns}
\begin{column}{0.3\textwidth}
\centering
\begin{enumerate}
\item Item one
\item Item two
\item Item three
\item Item four
\item Item five
\item Item six
\end{enumerate}
\end{column}
\begin{column}{0.7\textwidth}
\begin{figure}
\begin{overlayarea}{\textwidth}{.6\textheight}
\centering
\includegraphics<1>[width=1\textwidth]{example-image-duck}%
\only<1>{\caption{caption one}}
\includegraphics<2>[width=0.45\textwidth]{example-image-duck}%
\only<2>{\caption{caption 2}}
\end{overlayarea}
\end{figure}
\end{column}
\end{columns}
\end{frame}
%% END DOCC %%
\end{document}
一些不相关的注释:
无需加载
url
或hyperref
,beamer 将自动加载后者加载
float
没有多大意义,beamer 没有浮动机制不需要
graphicx
和xcolor
,beamer 会自动加载它们要小心
setspace
,改变间距可能会对 beamer 产生令人惊讶的效果,因为 beamer 假设知道某些东西的间距...使用
caption
并不总是必要的,大多数事情可以用 beamer 自己的字幕机制来完成。