gero” post=82332Qualcuno può spiegarmi, per favore, perché su questa slide si genera uno spostamento verso il basso sia del rigo “Increasing” sia delle figure, nel passare dalla pagina 2 alla 3?
`\frame{\frametitle{Motivations}
\begin{overlayarea}{\textwidth}{0.15\textheight}
\begin{onlyenv}<1-2>
\begin{itemize}
\item<1-2> Increasing interest in
\end{itemize}
\end{onlyenv}
%
\begin{onlyenv}<3-4>
\begin{itemize}
\item<3-4> Increasing interest in
\end{itemize}
\end{onlyenv}
\end{overlayarea}
%
\begin{overlayarea}{\textwidth}{0.75\textheight}
\begin{onlyenv}<1-2>
%+++++++++
\begin{center}
\includegraphics<1>[height=0.65\textheight]{./figures/introduction/Analysis.pdf}
\includegraphics<2>[height=0.65\textheight]{./figures/introduction/missions.pdf}
\end{center}
%+++++++++
\end{onlyenv}
% \only<1>{\tiny{\underline{Source}: ISI Web of Knowledge\texttrademark database}}
%
\begin{onlyenv}<3-4>
%+++++++++
\begin{center}
\includegraphics<3>[height=0.65\textheight]{./figures/introduction/Analysis.pdf}
\includegraphics<4>[height=0.65\textheight]{./figures/introduction/missions.pdf}
\end{center}
%+++++++++
\end{onlyenv}
%\only<3>{\tiny{\underline{Source}: ISI Web of Knowledge\texttrademark database}}
\end{overlayarea}
}`Grazie mille
Ciao e benvenuto 🙂
Per prima cosa complimenti per il codice: si nota immediatamente che c’è un buon background. Il problema è abbastanza subdolo, della categoria “jumping effect” (il salto di riga) non prodotto però dall’uso combinato con TikZ. E, per questo, forse più difficile da capire.
Prima di tutto premetto che a mio modesto parere usare l’ambiente [tt]onlyenv[/tt] lato utente non comporta nessun beneficio e, a dirla tutta è colpa al 50% del problema. Partiamo però dal perché: Beamer tiene conto dei vari overlay processando solo quello che c’è nella diapositiva (slide) del quadro (frame). Teoricamente, quindi usando solo le overlay specifications non sempre Beamer processa tutto il contentuto del frame. Ma c’è un eccezione: se Beamer incontra l’ambiente [tt]overlayarea[/tt] tiene conto di tutto ciò che c’è all’interno, sempre. Infatti il manuale ne raccomanda l’uso per non avere l’effetto che lamenti.
Quindi, leggendo: `
\begin{overlayarea}{\textwidth}{0.15\textheight}
\begin{onlyenv}<1-2>
\begin{itemize}
\item<1-2> Increasing interest in
\end{itemize}
\end{onlyenv}
%
\begin{onlyenv}<3-4>
\begin{itemize}
\item<3-4> Increasing interest in
\end{itemize}
\end{onlyenv}
\end{overlayarea}
` crea un box con l’altezza specificata e ti mostra in [tt]<1-2>[/tt] il primo elenco poi in [tt]<3-4>[/tt] il secondo elenco, tuttavia mostrando il secondo elenco tiene conto dello spazio che occupa il primo (e mentre mostra il primo tiene conto dello spazio del secondo). Tutto questo è un gran casotto complicato appunto dal fatto che hai gestito gli overlay con [tt]onlyenv[/tt] che ripeto, personalmente, trovo abbastanza inutile lato utente.
Per risolvere, quindi, occorre che nell’elenco inserito in un ambiente [tt]overlayarea[/tt] non ci sia dello spazio non sempre in luce, cosa che si può ottenere così: `
\begin{overlayarea}{\textwidth}{0.15\textheight}
\begin{onlyenv}<1-4>
\begin{itemize}
\item \only<1-2>{Increasing interest in }\only<3-4>{Increasing interest in }
\end{itemize}
\end{onlyenv}%
\end{overlayarea}
` Stesso discorso per le immagini: se guardi bene fra 2 e 3 lo spazio fra testo ed immagine aumenta. Quindi: `
\begin{overlayarea}{\textwidth}{0.75\textheight}
\begin{onlyenv}<1-4>
%+++++++++
\begin{center}
\includegraphics<1>[height=0.65\textheight]{example-image}
\includegraphics<2>[height=0.65\textheight]{example-image-a}
\includegraphics<3>[height=0.65\textheight]{example-image-b}
\includegraphics<4>[height=0.65\textheight]{example-image-c}
\end{center}
%+++++++++
\end{onlyenv}
\end{overlayarea}
` Ora, perché dover scomodare l’overlayarea e onlyenv quando in realtà non ce ne sarebbe motivo? Fra le altre cose, portano via una marea di spazio che nelle presentazioni è già sempre limitato. Io avrei fatto così: `
% Metodo migliore
\begin{frame}{Motivations – Simple method}
\begin{itemize}
\item \only<1-2>{Increasing interest in }\only<3-4>{Again, increasing interest in }
\end{itemize}
\begin{center}
\includegraphics<1>[height=0.65\textheight]{example-image}
\includegraphics<2>[height=0.65\textheight]{example-image-a}
\includegraphics<3>[height=0.65\textheight]{example-image-b}
\includegraphics<4>[height=0.65\textheight]{example-image-c}
\end{center}
\end{frame}
` Ti allego un esempio di codice minimo con il tuo esempio di partenza, un esempio che dovrebbe farti capire il problema (non c’è il primo itemize quindi fra 1-4 il testo compare solo in 3 senza nessun salto), l’esempio con onlyenv che dicevo prima e infine l’esempio che reputo migliore. Vedrai come cambia la spaziatura. `
\documentclass{beamer}
\usepackage{lmodern}
\usepackage{mwe}
\begin{document}
% Problematica
\frame{\frametitle{Motivations – From OP}
\begin{overlayarea}{\textwidth}{0.15\textheight}%
\begin{onlyenv}<1-2>
\begin{itemize}
\item<1-2> Increasing interest in
\end{itemize}
\end{onlyenv}%
\begin{onlyenv}<3-4>
\begin{itemize}
\item<3-4> Increasing interest in
\end{itemize}
\end{onlyenv}
\end{overlayarea}
%
\begin{overlayarea}{\textwidth}{0.75\textheight}
\begin{onlyenv}<1-2>
%+++++++++
\begin{center}
\includegraphics<1>[height=0.65\textheight]{example-image}
\includegraphics<2>[height=0.65\textheight]{example-image-a}
\end{center}
%+++++++++
\end{onlyenv}
% \only<1>{\tiny{\underline{Source}: ISI Web of Knowledge\texttrademark database}}
%
\begin{onlyenv}<3-4>
%+++++++++
\begin{center}
\includegraphics<3>[height=0.65\textheight]{example-image-b}
\includegraphics<4>[height=0.65\textheight]{example-image-c}
\end{center}
%+++++++++
\end{onlyenv}
%\only<3>{\tiny{\underline{Source}: ISI Web of Knowledge\texttrademark database}}
\end{overlayarea}
}
\frame{\frametitle{Motivations – The issue}
\begin{overlayarea}{\textwidth}{0.15\textheight}
\begin{onlyenv}<3-4>
\begin{itemize}
\item<3-4> Increasing interest in
\end{itemize}
\end{onlyenv}
\end{overlayarea}
%
\begin{overlayarea}{\textwidth}{0.75\textheight}
\begin{onlyenv}<1-2>
%+++++++++
\begin{center}
\includegraphics<1>[height=0.65\textheight]{example-image}
\includegraphics<2>[height=0.65\textheight]{example-image-a}
\end{center}
%+++++++++
\end{onlyenv}
% \only<1>{\tiny{\underline{Source}: ISI Web of Knowledge\texttrademark database}}
%
\begin{onlyenv}<3-4>
%+++++++++
\begin{center}
\includegraphics<3>[height=0.65\textheight]{example-image-b}
\includegraphics<4>[height=0.65\textheight]{example-image-c}
\end{center}
%+++++++++
\end{onlyenv}
%\only<3>{\tiny{\underline{Source}: ISI Web of Knowledge\texttrademark database}}
\end{overlayarea}
}
% Come risolvere il precedente esempio
\frame{\frametitle{Motivations – Using onlyenv}
\begin{overlayarea}{\textwidth}{0.15\textheight}
\begin{onlyenv}<1-4>
\begin{itemize}
\item \only<1-2>{Increasing interest in }\only<3-4>{Increasing interest in }
\end{itemize}
\end{onlyenv}%
\end{overlayarea}
%
\begin{overlayarea}{\textwidth}{0.75\textheight}
\begin{onlyenv}<1-4>
%+++++++++
\begin{center}
\includegraphics<1>[height=0.65\textheight]{example-image}
\includegraphics<2>[height=0.65\textheight]{example-image-a}
\includegraphics<3>[height=0.65\textheight]{example-image-b}
\includegraphics<4>[height=0.65\textheight]{example-image-c}
\end{center}
%+++++++++
\end{onlyenv}
\end{overlayarea}
}
% Metodo migliore
\begin{frame}{Motivations – Simple method}
\begin{itemize}
\item \only<1-2>{Increasing interest in }\only<3-4>{Again, increasing interest in }
\end{itemize}
\begin{center}
\includegraphics<1>[height=0.65\textheight]{example-image}
\includegraphics<2>[height=0.65\textheight]{example-image-a}
\includegraphics<3>[height=0.65\textheight]{example-image-b}
\includegraphics<4>[height=0.65\textheight]{example-image-c}
\end{center}
\end{frame}
\end{document}
` Il risultato:
[attachment=604]prova_beamer_themes.gif[/attachment]
Ciao
Claudio