
Я вложил uncover
внутрь only
и это не работает так, как ожидалось. Заголовок моего документа:
\documentclass[8pt]{beamer}
\mode<presentation>{\usetheme{Warsaw}}
\setbeamertemplate{navigation symbols}{}
\usepackage{empheq}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,backgrounds}
А рассматриваемый кадр следующий:
\begin{frame}[label=review]
\frametitle{A review of the steps}
\setbeamercovered{transparent}
\begin{columns}
\column{0.4\linewidth}
\begin{enumerate}[<+->]
\item \alert<1>{Supernova detection.}
\item \alert<2>{Spectroscopic confirmation.}
\item \alert<3,6>{Multi-band photometry.}
\item \alert<4,6>{Parameter extraction.}
\item \alert<5,6>{Hubble diagram fit.}
\end{enumerate}
\column{0.7\linewidth}
\begin{center}
\begin{tikzpicture}%[show background grid]
\node[anchor=south west,inner sep=0] (step1) at (0,0) {\includegraphics[width=0.18\linewidth]{figures/pedagogy/03D4ag-zoom1.png}};
\begin{scope}[x={(step1.south east)},y={(step1.north west)}]
\draw<1>[red] (0,0) rectangle (1,1);
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}%[show background grid]
\node[anchor=south west,inner sep=0] (step2) at (0,0) {\includegraphics[width=0.18\linewidth]{figures/guypres/1994D_spectrum.pdf}};
\begin{scope}[x={(step2.south east)},y={(step2.north west)}]
\draw<2>[red] (0,0) rectangle (1,1);
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}%[show background grid]
\node[anchor=south west,inner sep=0] (step3) at (0,0) {\includegraphics[width=0.18\linewidth]{figures/03D4ag-lc.png}};
\begin{scope}[x={(step3.south east)},y={(step3.north west)}]
\draw<3>[red] (0,0) rectangle (1,1);
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}%[show background grid]
\node[anchor=south west,inner sep=0] (step4) at (0,0) {\includegraphics[width=0.18\linewidth]{figures/03D4ag-lc-model.png}};
\begin{scope}[x={(step4.south east)},y={(step4.north west)}]
\draw<4>[red] (0,0) rectangle (1,1);
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}%[show background grid]
\node[anchor=south west,inner sep=0] (step5) at (0,0) {\includegraphics[width=0.18\linewidth]{figures/pedagogy/hubblediagram.png}};
\begin{scope}[x={(step5.south east)},y={(step5.north west)}]
\draw<5>[red] (0,0) rectangle (1,1);
\end{scope}
\end{tikzpicture}
\end{center}
\end{columns}
\begin{overlayarea}{\textwidth}{\textheight}
\only<1>{
\begin{center}
\includegraphics[width=0.4\textwidth]{figures/pedagogy/03D4ag-zoom1.png}
\hspace{0.2cm}
\includegraphics[width=0.4\textwidth]{figures/pedagogy/03D4ag-zoom3.png}
\end{center}
}
\only<2>{
\begin{center}
\includegraphics[width=0.7\textwidth]{figures/guypres/1994D_spectrum.pdf}
\end{center}
}
\only<3-4>{
\begin{center}
\includegraphics[width=0.4\textwidth]{figures/03D4ag-lc.png}
\hspace{0.2cm}
\uncover<4>{
\includegraphics[width=0.4\textwidth]{figures/03D4ag-lc-model.png}
}
\end{center}
}
\only<5>{
\begin{center}
\includegraphics[width=0.7\textwidth]{figures/pedagogy/hubblediagram.png}
\end{center}
}
\end{overlayarea}
\end{frame}
Поведение, которое я ожидаю, заключается в том, что 03D4ag-lc.png будет отображаться на слайде 3, а 03D4ag-lc-model.png появится на слайде 4, не вытесняя 03D4ag-lc.png. Вместо этого 03D4ag-lc-model.png, похоже, полностью игнорирует команду uncover
и присутствует на обоих слайдах. Это нормально? Если да, то как правильно выполнить то, к чему я стремлюсь?
решение1
В вашем коде вы устанавливаете эффект скрытия transparent
через \setbeamercovered{transparent}
макрос.
Как отмечает @JosephWright, прозрачность не работает для импортированных изображений, поэтому вы вообще не получили эффекта покрытия, когда попытались раскрыть импортированное изображение с помощью:
\uncover<4>{
\includegraphics[width=0.4\textwidth]{figures/03D4ag-lc-model.png}
}
Чтобы скрыть изображения, вам нужно сбросить эффект прозрачности с помощью
\setbeamercovered{invisible}
Я предложил поместить спецификацию внутрь overlayarea
, чтобы она не переопределяла первую настройку в остальной части рамы.
Вы также можете проверить раздел 17.6 руководства по эксплуатации Beamer.