与 texlive2011 相比,texlive2012 中的 \pause 功能有何变化?

与 texlive2011 相比,texlive2012 中的 \pause 功能有何变化?

我最近从 texlive2011 升级到了 texlive2012。转换过程相对顺利,但今天我发现了一个问题。在我的 beamer 幻灯片中,在 texlive2011 发行版下,以下构造可以\pause按顺序在两个页面中显示两个图形。换句话说,在 texlive2011 下,第一页只显示第一个图形和第二幅图形的阴影副标题“(b) Error”,但不显示第二幅图形本身,而第二页显示两个图形。但在新的 texlive2012 发行版下,当第一页显示两个图形时,只显示具有指定透明度的副标题“(b) Error”。然后,第二页显示变暗的副标题。我想知道为什么 的行为会发生\pause变化。任何建议都将不胜感激。

这是我使用的实际乳胶构造(包png提供的文件mwe):

\documentclass{beamer}
\usepackage{color,graphicx,subfigure}
\usepackage{mwe}

\mode<presentation>
{
\usetheme{Madrid} % this is the best so far.
}
\setbeamercovered{transparent=10}

\begin{document}
\begin{frame}
\frametitle{Pause Test}
\begin{figure}
\centering
\renewcommand{\thesubfigure}{(a)}
\subfigure[Original]{\includegraphics[width=0.45\textwidth]{example-image-a.png}}
\pause
\renewcommand{\thesubfigure}{(b)}
\subfigure[Error]{\includegraphics[width=0.45\textwidth]{example-image-b.png}}
\end{figure}
\end{frame}

\end{document}

答案1

抱歉,我发问题的时候犯了一个错误。当我在 texlive2011 下运行我的简单文件时,文件里没有以下行:

\setbeamercovered{transparent=10}

但是当我在 texlive2012 下测试文件时,我插入了上述行。这产生了差异。删除该行后,在 texlive2012 下创建的 pdf 文件的行为与在 texlive2011 下创建的 pdf 文件的行为完全相同。这次我了解到,无论是 texlive2011 还是 texlive2012,使用 \pause 指定透明度的那行都无法按预期工作。我还发现

\visible<2->{\renewcommand{\thesubfigure}{(b)}
             \subfigure[Error]{\includegraphics[width=0.45\textwidth]{example-image-b.png}}}

顺序显示,但透明字幕被忽略,即使有上面​​的透明线。另一方面,

\uncover<2->{\renewcommand{\thesubfigure}{(b)}
             \subfigure[Error]{\includegraphics[width=0.45\textwidth]{example-image-b.png}}}

和 \pause 的作用相同(即,第 1 页同时出现两个图,并带有阴影字幕“(b)错误”)。

无论如何,非常感谢 egreg 和 cyberSingularity 指出 pgf 的透明度问题!我希望这个透明度问题能尽快得到解决。

答案2

现在我们明白\pause功能没有改变,我将这个问题解释为“我怎样才能\pause让图像变得透明?”

为此,我有一个可能的解决方法。我不确定它有多强大,但本质上我尝试用包pgf中的版本替换透明机制transparent(可能需要引擎pdftex):

\documentclass{beamer}
\usepackage{color,graphicx,subfigure}
\usepackage{mwe}

\mode<presentation>
{
\usetheme{Madrid} % this is the best so far.
}
\setbeamercovered{transparent=50}
%0 means “totally transparent” and 100 means “totally opaque.”

\pdfpageattr {/Group << /S /Transparency /I true /CS /DeviceRGB>>}% based on comment by Martin Heller on http://tex.stackexchange.com/questions/16061/includegraphics-pdf-color-problem; force Adobe Reader to use the RGB rendering model for pages with transparency. Without this, the colours look different (and wrong) on pages with transparency.

%%% replace pgf transparency with Heiko's transparent package
\usepackage{transparent}
% but patch it to take a percentage instead of a value between 0 and 1
\let\opaquepercent\transparent
\usepackage{etoolbox}
\makeatletter
\patchcmd{\opaquepercent}{\dimen@=#1\p@\relax}{\dimen@=0.01\dimexpr#1\p@\relax\relax}{}{\errmessage{patching failed}}

% redefine \opaqueness in \beamer@startcovered
\def\beamer@startcovered{%
  \beamer@smuggle{%
  \global\advance\beamer@coveringdepth by 1\relax%
  \beamer@actions{\pgfsys@begininvisible\aftergroup\beamer@@spacingcover}{%
     \pgfsys@endinvisible\aftergroup\beamer@@spacingcover%
     }%
  \def\opaqueness<##1>##2{%
    \only<##1>{%
      \beamer@actions{%
        \opaquepercent{##2}%
      }%
      {%
      }}}%
  \ifnum\beamer@slideinframe<\beamer@minimum%ok, at beginning
  {%
    \beamer@saveanother%
    \advance\beamer@minimum by-\beamer@slideinframe%
    \beamer@slideinframe=\beamer@minimum%
    \beamer@uncoverbeforeactions%
    \beamer@restoreanother%
  }%
  \else%
  {%
    \beamer@saveanother%
    \advance\beamer@slideinframe by-\beamer@minimum%
    \beamer@uncoverafteractions%
    \beamer@restoreanother%
  }%
  \fi%
  \beamer@do%
  }%
}
%%% end transparent patch

\begin{document}
\begin{frame}
\frametitle{Pause Test}
\begin{figure}
\centering
\renewcommand{\thesubfigure}{(a)}
\subfigure[Original]{\includegraphics[width=0.45\textwidth]{example-image-a.png}}
\pause
\renewcommand{\thesubfigure}{(b)}
\subfigure[Error]{\includegraphics[width=0.45\textwidth]{example-image-b.png}}
\end{figure}
\end{frame}

\begin{frame}
\frametitle{Uncover Test}
\begin{figure}
\centering
\renewcommand{\thesubfigure}{(a)}
\subfigure[Original]{\includegraphics[width=0.25\textwidth]{example-image-a.png}}
\uncover<2-3>{%
\renewcommand{\thesubfigure}{(b)}
\subfigure[Error]{\includegraphics[width=0.25\textwidth]{example-image-b.png}}
}%
\uncover<2>{%
\renewcommand{\thesubfigure}{(c)}
\subfigure[Test]{\includegraphics[width=0.25\textwidth]{example-image-a.png}}
}%
\end{figure}
\end{frame}

\end{document}

相关内容