Вертикальное выравнивание по центру в слайдах проектора с помощью параметра [allowframebreaks] и \newpage

Вертикальное выравнивание по центру в слайдах проектора с помощью параметра [allowframebreaks] и \newpage

Я пишу слайды своей диссертации в Beamer. Мне нужно выровнять содержимое слайда по вертикали по центру, когда я использую опцию [allowframebreaks] в среде фрейма и \newpage для начала нового слайда.

В качестве следующего примера:

    \begin{frame}[allowframebreaks]
                    \frametitle{Outline}
                    Some text....

                    \newpage
                    Some text....
                    \begin{figure}[!ht]
                         \input{myimage.pdf_tex}
                    \end{figure}

                    \newpage
                    Some text....
                    \begin{figure}[!ht]
                         \input{myimage2.pdf_tex}
                    \end{figure}
         \end{frame}

Здесь обе фигуры всегда находятся в верхней части слайда, но не в вертикальном центре. Мне нужно отцентрировать содержимое после перехода на новый слайд с помощью \newpage.

Спасибо заранее. Я очень ценю вашу помощь.

решение1

Из beamerруководства:

По умолчанию весь материал для слайда вертикально центрирован. Вы можете изменить это с помощью следующих параметров класса:

\documentclass[t]{beamer}

Размещайте текст слайдов в (вертикальной) верхней части слайдов. Это соответствует вертикальному «заподлицо». Вы можете переопределить это для отдельных кадров с помощью параметра c или b.

\documentclass[c]{beamer}

Размещать текст слайдов по (вертикальному) центру слайдов. Это значение по умолчанию. Вы можете переопределить это для отдельных кадров с помощью параметра t или b.

Таким образом, вы можете использовать что-то вроде следующего кода, чтобы вертикально отцентрировать ваши «сломанные» кадры:

\documentclass[t]{beamer} %<- 'c' is default option, 't' forces top aligned
\usepackage{lipsum}
\begin{document}
\begin{frame}[c,allowframebreaks]{centered frame} %<- 'c' forces to forget default
\lipsum[2]
\framebreak %<- with '\newpage' first frame is top aligned
\lipsum[5]
\end{frame}
\begin{frame}[allowframebreaks]{top aligned frame}
\lipsum[2]
\framebreak
\lipsum[5]
\end{frame}
\end{document}

введите описание изображения здесь

Раньше ты \newpageломал рамку, но beamerговоришь:

Вы можете вставлять команды \break, \nobreak и \penalty, чтобы контролировать, где должны происходить разрывы. Команды \pagebreak и \nopagebreak также работают, включая их параметры. [...] Команда \framebreak является сокращением для \pagebreak, а \noframebreak является сокращением для \nopagebreak.

Если вы используете \newpageпервый слайд, выровненный по верхнему краю, используйте \breakили \framebreak.

Последний комментарий из beamerруководства, касающийся allowframebreaksопции:

Использование этой опции — зло. В (хорошей) презентации вы тщательно готовите каждый слайд и дважды думаете, прежде чем помещать что-то на определенный слайд, а не на какой-то другой. Использование опции allowframebreaksпобуждает к созданию ужасных, бесконечных презентаций, которые больше напоминают «бумагу, спроецированную на стену», чем презентацию. Тем не менее, у опции есть свои применения. Наиболее заметно, что она может быть удобна для автоматического разделения библиографий или длинных уравнений.

Связанный контент