使用 allowframebreaks 调整 beamer 幻灯片中段落间分页符的优先级

使用 allowframebreaks 调整 beamer 幻灯片中段落间分页符的优先级

allowframebreaks我有一些具有一些基本结构的breamer 滑梯,例如:

\begin{frame}[fragile,allowframebreaks]{Title}

some text...
\begin{itemize}...\end{itemize}

other text
\begin{itemize}...\end{itemize}

another text
\begin{lstlisting}...\end{lstlisting}

\end{frame}

我不希望内容在文本和随后的列表/代码之间中断(尽管中断列表或列表列表可能是可以的)。换句话说,我希望在段落之间以最高优先级中断。当然,我不想使用显式的\framebreaks。

我尝试将其放在\nopagebreak文本部分和随后的 itemize/lstlisting 之间,但似乎不起作用。另外,我不想将它们包装在 中\minipage,因为我不想使代码混乱(此外,使用命令可能会出现列表问题)。因此,“自动”配置对我来说是最好的。

有什么建议吗?


平均能量损失

\documentclass[9pt]{beamer}

\usepackage{lipsum}
\usepackage{listings}

\begin{document}

\begin{frame}[fragile,allowframebreaks]{Title}

abcdef\\
ghilmn\\
pqrst
\begin{lstlisting}
a
b
c
d
e
f
\end{lstlisting}

abcdef\\
ghilmn\\
pqrst
\begin{lstlisting}
a
b
c
\end{lstlisting}

some text 1
\begin{lstlisting}
a
b
c
d
\end{lstlisting}

uvz\\
123\\
456
\begin{lstlisting}
a
b
c
\end{lstlisting}

uvz\\
123\\
456
\begin{lstlisting}
a
b
c
\end{lstlisting}

some text 2
\begin{itemize}
\item a
\item b
\item c
\end{itemize}

\end{frame}

\end{document}

我不想要的是下图中突出显示的部分:

红色矩形框选出了我想避免的中断

答案1

\framebreak您可以在“一些文本”之前手动使用来影响断点:

\documentclass[9pt]{beamer}

\usepackage{lipsum}
\usepackage{listings}

\begin{document}

\begin{frame}[fragile,allowframebreaks]{Title}

abcdef\\
ghilmn\\
pqrst
\begin{lstlisting}
a
b
c
d
e
f
\end{lstlisting}

abcdef\\
ghilmn\\
pqrst
\begin{lstlisting}
a
b
c
\end{lstlisting}

\framebreak
some text 1
\begin{lstlisting}
a
b
c
d
\end{lstlisting}

uvz\\
123\\
456
\begin{lstlisting}
a
b
c
\end{lstlisting}

uvz\\
123\\
456
\begin{lstlisting}
a
b
c
\end{lstlisting}

\framebreak
some text 2
\begin{itemize}
\item a
\item b
\item c
\end{itemize}

\end{frame}

\end{document}

如果运气好的话,减少填充框架的比例也可能会影响断点,但你必须幸运地找到一个适用于所有幻灯片的值。以下是适用于第一张幻灯片的值:

\documentclass[9pt]{beamer}

\usepackage{lipsum}
\usepackage{listings}

\begin{document}

\begin{frame}[fragile,allowframebreaks=0.80]{Title}

abcdef\\
ghilmn\\
pqrst
\begin{lstlisting}
a
b
c
d
e
f
\end{lstlisting}

abcdef\\
ghilmn\\
pqrst
\begin{lstlisting}
a
b
c
\end{lstlisting}

some text 1
\begin{lstlisting}
a
b
c
d
\end{lstlisting}

uvz\\
123\\
456
\begin{lstlisting}
a
b
c
\end{lstlisting}

uvz\\
123\\
456
\begin{lstlisting}
a
b
c
\end{lstlisting}

some text 2
\begin{itemize}
\item a
\item b
\item c
\end{itemize}

\end{frame}

\end{document}

相关内容