我最近从 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}