
환경에서 항목을 수직으로 중앙에 배치하는 "쉬운" 방법이 있습니까 overprint
?
현재 답변에 따르면 이것은 내 테스트 문서입니다.
\documentclass{beamer}
\usepackage{listings}
\long\def\opcenter#1{\vfill\smash{\begin{minipage}[c]{\linewidth}#1\end{minipage}}}
\begin{document}
\begin{frame}[fragile]
\begin{overprint}
\onslide<1>
\opcenter{A short paragraph}
\onslide<2>
\opcenter{A\\
longer\\
paragraph\\
with\\
a\\
few\\
lines}
\onslide<3>
\opcenter{
\begin{block}{Title}
A block \\
with\\
a\\
few lines
\end{block}
}
\onslide<4>
\opcenter{
One paragraph
Plus something else
}
\onslide<5>
\opcenter{
\begin{lstlisting}
And verbatim stuff
\end{lstlisting}
}
\end{overprint}
\end{frame}
\end{document}
그리고 이제 문제는 단락 나누기(? 대체 \smash
)와 내용 그대로( listings
)에 있습니다.
답변1
아이디어는 \smash
텍스트의 높이를 숨기는 데 사용하고 \vfill
s를 사용하여 수직으로 가운데에 놓은 다음 사용하는 것입니다.minibox
텍스트에서 줄 바꿈을 얻으려면.
minipage
대신에 사용할 수도 있지만 minibox
전자를 사용하려면 너비를 지정해야 합니다.
\documentclass{beamer}
\usepackage{minibox}
\begin{document}
\long\def\opcenter#1{\vfill\smash{\minibox{#1}}}
\begin{frame}
\begin{overprint}
\onslide<1>
\opcenter{A short paragraph}
\onslide<2>
\opcenter{A\\
longer\\
paragraph\\
with\\
a\\
few\\
lines}
% This frame uses minipage instead of minibox. minibox
% does not accept a block as its argument.
\onslide<3>
\vfill\smash{\begin{minipage}[c]{1.0\linewidth}
\begin{block}{Title}
A block \\
with\\
a\\
few lines
\end{block}
\end{minipage}}\vfill
\end{overprint}
\end{frame}
\end{document}