Beamer 的 \only 动画使用多列布局打破了动画内部布局

Beamer 的 \only 动画使用多列布局打破了动画内部布局

我在multicolsBeamer\only动画环境中使用 minted 排版代码。这导致动画帧之间的布局间距不一致。

演示视频

问题的 GIF 截屏 (如果您没有看到 GIF 动画请点击)

平均能量损失

对于 MWE,您首先需要保存本文附录中的文件。这个问题也可以通过不同长度的文本文件重现,尽管现在不那么清楚了。如果有人找到一种简单的方法将这些文件嵌入到此处的代码中而不会弄乱整个页面,请随时发表评论。。

% !TEX TS-program = latexmk -xelatex -shell-escape -silent -latexoption="-synctex=1" -f %
% !TEX encoding = UTF-8 Unicode
%
% First download casestudy1.txt and casestudy2.txt from the appendix of
% https://tex.stackexchange.com/q/540969/38074, then compile!
\documentclass[xcolor=dvipsnames,hyperref={bookmarksnumbered,colorlinks}]{beamer}
\usetheme{Madrid}
\usecolortheme{beaver}
\setbeamertemplate{navigation symbols}{}

\usepackage{multicol}
\usepackage{minted}

\newcommand\supertiny{\fontsize{2.5}{3}\selectfont}
\newmintedfile[casestudyFile]{text}{firstline=2,breaklines=true,breakanywhere=true,fontsize=\supertiny,frame=none,linenos=false}
\newcommand{\typesetCaseStudy}[2]{%
    \begin{multicols}{5}
        {\supertiny
            \casestudyFile{#1}%
            \only<1>{\casestudyFile{#2}}%
            \only<2>{{\usebeamercolor[bg]{block title alerted}\casestudyFile{#2}}}%
            \only<3->{\textcolor{white}{\casestudyFile{#2}}}%
        }
    \end{multicols}
}

\begin{document}    
    \begin{frame}{Case Study}
        \typesetCaseStudy{casestudy1.txt}{casestudy2.txt}
        \begin{itemize}
            \item \structure{Before:} 
            \begin{itemize}
                \item Foo
                \item Bar
            \end{itemize}
            \item<3-> \structure{After:} Baz
        \end{itemize}
    \end{frame}
\end{document}

附录

castestudy1.txt:

testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest

案例研究2.txt:

testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest

答案1

以下是基于的(可能不是最终的)解决方案egreg 的回答在这里

编辑在您修正了的定义之后,\typesetCaseStudy我相信一切都按预期进行

\newcommand{\typesetCaseStudy}[2]{%
        \begin{multicols}{5}
                \casestudyFile{#1}%
                \only<1>{\casestudyFile{#2}}%
                \only<2>{{\color{blockred}\casestudyFile{#2}}}%
                \only<3->{{\color{white}\casestudyFile{#2}}}%
        \end{multicols}
    }
% !TEX TS-program = latexmk -xelatex -shell-escape -silent -latexoption="-synctex=1" -f %
% !TEX encoding = UTF-8 Unicode
%
% First download casestudy1.txt and casestudy2.txt from the appendix of
% https://tex.stackexchange.com/q/540969/38074, then compile!
\documentclass[xcolor=dvipsnames,hyperref={bookmarksnumbered,colorlinks}]{beamer}
\usetheme{Madrid}
\usecolortheme{beaver}
\setbeamertemplate{navigation symbols}{}

\usepackage{multicol}
\usepackage{minted}

\begin{filecontents*}[overwrite]{casestudy1.txt}
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
\end{filecontents*}
\begin{filecontents*}[overwrite]{casestudy2.txt}
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
testtesttesttesttesttesttest
\end{filecontents*}

\usebeamercolor{block title alerted}
\colorlet{blockred}{bg}

\usepackage{xpatch}
\xapptocmd{\inputminted}{\vspace{-1ex}}{}{}

\newcommand\supertiny{\fontsize{2.5}{3}\selectfont}
\newmintedfile[casestudyFile]{text}{firstline=2,breaklines=true,breakanywhere=true,fontsize=\supertiny,frame=none,linenos=false}
\newcommand{\typesetCaseStudy}[2]{%
    \begin{multicols}{5}
            \casestudyFile{#1}%
            \only<1>{\casestudyFile{#2}}%
            \only<2>{{\color{blockred}\casestudyFile{#2}}}%
            \only<3->{{\color{white}\casestudyFile{#2}}}%
    \end{multicols}
}

\begin{document}    
    \begin{frame}{Case Study}
        \typesetCaseStudy{casestudy1.txt}{casestudy2.txt}
        \begin{itemize}
            \item \structure{Before:} 
            \begin{itemize}
                \item Foo
                \item Bar
            \end{itemize}
            \item<3-> \structure{After:} Baz
        \end{itemize}
    \end{frame}
\end{document}

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

相关内容