修复投影仪演示文稿中列中的文本位置

修复投影仪演示文稿中列中的文本位置

我正在做一个演示,想在左侧显示一些文本,在右侧显示一张图片,但是当文本或图片不相同(大小、长度等)时,文本会呈现在不同的位置,并且在演示模式下循环显示帧/幻灯片时,文本似乎会跳跃,感觉非常混乱。无论旁边的图像大小或文本长度如何,我如何使文本保持静态?

简化代码(保留包,不确定它们是否修改了此上下文中的默认行为):

%% 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}

在此处输入图片描述

一些不相​​关的注释:

  • 无需加载urlhyperref,beamer 将自动加载后者

  • 加载float没有多大意义,beamer 没有浮动机制

  • 不需要graphicxxcolor,beamer 会自动加载它们

  • 要小心setspace,改变间距可能会对 beamer 产生令人惊讶的效果,因为 beamer 假设知道某些东西的间距...

  • 使用caption并不总是必要的,大多数事情可以用 beamer 自己的字幕机制来完成。

相关内容