Я пишу слайды своей диссертации в 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
побуждает к созданию ужасных, бесконечных презентаций, которые больше напоминают «бумагу, спроецированную на стену», чем презентацию. Тем не менее, у опции есть свои применения. Наиболее заметно, что она может быть удобна для автоматического разделения библиографий или длинных уравнений.