![beamer:'allowframebreak' 和 'Mini Frame Navigation' 之间的冲突](https://linux22.com/image/445814/beamer%EF%BC%9A'allowframebreak'%20%E5%92%8C%20'Mini%20Frame%20Navigation'%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%86%B2%E7%AA%81.png)
我glossaries
在我的 中使用 来表示首字母缩略词beamer
。首字母缩略词列表对于一页来说太大了,因此我过去常常\begin{frame}[allowframebreaks]{ACRONYMS}
允许它跨页显示allowframebreaks
,而不是让它超出一页的范围。但是,自从使用 以来,无论我是否在该页面上,首字母缩略词的所有导航点都已填满。使用 时参考书目也是如此,allowframebreaks
但为了简单起见,我选择不包含任何参考书目。下图说明了这个问题:
下面MWE
重现了该问题:
\documentclass[aspectratio=169]{beamer}
\usetheme[compress]{Singapore}
\usepackage{graphicx}
\graphicspath{ {figures/} }
\usefonttheme{serif}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{graphicx}
\usepackage[acronym]{glossaries}
\newacronym{a}{A}{A}
\newacronym{b}{B}{B}
\newacronym{c}{C}{C}
\newacronym{d}{D}{D}
\newacronym{e}{E}{E}
\newacronym{f}{F}{F}
\newacronym{g}{G}{G}
\newacronym{h}{H}{H}
\newacronym{i}{I}{I}
\newacronym{j}{J}{J}
\newacronym{k}{K}{K}
\newacronym{l}{L}{L}
\newacronym{m}{M}{M}
\newacronym{n}{N}{N}
\newacronym{o}{O}{O}
\newacronym{p}{P}{P}
\renewcommand{\glossarysection}[2][]{}
\makeglossaries
\setbeamertemplate{caption}[numbered]
\setbeamersize{text margin left=14mm,text margin right=14mm}
\setbeamertemplate{navigation symbols}{}
\title{TITLE}
\author{John Doe\inst{1}}
\institute[\acrfull{b}]
{
\inst{1}%
{\acrfull{a}\\
\acrfull{b}}}
\date{\today}
\subject{General relativity}
\newcommand{\nologo}{\setbeamertemplate{logo}{}}
\logo{%
\makebox[\paperwidth]{%
\includegraphics[height=1cm]{example-image}%
\hfill%
\includegraphics[height=1cm]{example-image}%
}\hskip-.1cm%
}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\section*{OUTLINE}
\begin{frame}{OUTLINE}
\tableofcontents
\end{frame}
\section{INTRODUCTION}
\begin{frame}{INTRODUCTION}
INSERT INTRODUCTION. \acrshort{a}\acrshort{b}\acrshort{c}\acrshort{d}\acrshort{e}\acrshort{f}\acrshort{g}\acrshort{h}\acrshort{i}\acrshort{j}\acrshort{k}\acrshort{l}\acrshort{m}\acrshort{n}\acrshort{o}\acrshort{p}
\end{frame}
\section{CONCLUSION}
\begin{frame}{CONCLUSION}
INSERT CONCLUSION.
\end{frame}
\appendix
\section{BIBLIOGRAPHY}
\nologo{
\begin{frame}{BIBLIOGRAPHY}
INSERT BIBLIOGRAPHY
\end{frame}
\section{ACRONYMS}
% \begin{frame}{ACRONYMS}
\begin{frame}[allowframebreaks]{ACRONYMS}
\printglossary[type=\acronymtype,nonumberlist,title=ACRONYMS]
\end{frame}
\section{ACKNOWLEDGEMENTS}
\begin{frame}{ACKNOWLEDGEMENTS}
\centering{
\includegraphics[height=3cm,keepaspectratio]{example-image}%
\hspace{30pt}
\includegraphics[height=3cm,keepaspectratio]{example-image}%
}
\end{frame}
}
\end{document}
我明白它可能被设计成这样工作,因为在你们眼中可能和我有同样的看法,beamer
但我不禁想知道是否有可能让它正常运行。
- 使用时,是否有可能存在未填充和已填充的导航点
allowframebreaks
?
编辑(基于@Dr. Manuel Kuehner 的回答,他还提供了更高级的答案MWE
)。
正如@Dr. Manel Kuehner 正确断言的那样,这不仅仅是一个仅限于glossaries
或 的问题bibliography
。然而,这是 和 迷你框架导航之间的冲突allowframebreak
,这就是为什么我按照他的要求更改了问题标题。
答案1
更新:报告错误这里。
这不是一个解决方案,而是一个更好的 MWE。
- 我清理了你的 MWE。
- 我也测试了普通
itemize
幻灯片,结果相同。 glossaries
因此我认为您的问题与该软件包无关。- 更新:您的问题似乎与Allowframebreaks 导致 beamer miniframes 行为异常。但是,我尝试使用提供的解决方案,但收到错误消息。您的问题应该/可以有标题beamer:'allowframebreak' 和 'Mini Frame Navigation' 之间的冲突。
% --- --- Start (see https://tex.stackexchange.com/questions/132285)
%http://tex.stackexchange.com/a/66626/9115
\usepackage{etoolbox}
\makeatletter
\patchcmd{\slideentry}{\ifnum#2>0}{\ifnum2>0}{}{\@error{unable to patch}}% replace the subsection number test with a test that always returns true
% use frame numbers instead of subsection slide numbers so that frames broken over slides get separate circles
\patchcmd{\slideentry}{\c@subsectionslide}{\c@framenumber}{}{\@error{unable to patch}}
\patchcmd{\beamer@writeslidentry}{\c@subsectionslide}{\c@framenumber}{}{\@error{unable to patch}}
\makeatother
% --- --- End
\documentclass{beamer}
\usetheme[compress]{Singapore}
\usepackage[acronym]{glossaries}
\newacronym{a}{A}{A}
\newacronym{b}{B}{B}
\newacronym{c}{C}{C}
\newacronym{d}{D}{D}
\newacronym{e}{E}{E}
\newacronym{f}{F}{F}
\newacronym{g}{G}{G}
\newacronym{h}{H}{H}
\newacronym{i}{I}{I}
\newacronym{j}{J}{J}
\newacronym{k}{K}{K}
\newacronym{l}{L}{L}
\newacronym{m}{M}{M}
\newacronym{n}{N}{N}
\newacronym{o}{O}{O}
\newacronym{p}{P}{P}
\renewcommand{\glossarysection}[2][]{}
\makeglossaries
\setbeamertemplate{navigation symbols}{}
\begin{document}
\section{A}
% ---
\begin{frame}{INTRODUCTION}
INSERT INTRODUCTION. \acrshort{a}\acrshort{b}\acrshort{c}\acrshort{d}\acrshort{e}\acrshort{f}\acrshort{g}\acrshort{h}\acrshort{i}\acrshort{j}\acrshort{k}\acrshort{l}\acrshort{m}\acrshort{n}\acrshort{o}\acrshort{p}
\end{frame}
\section{B}
% ---
\begin{frame}[allowframebreaks]{ACRONYMS}
\printglossary[
type = \acronymtype,
nonumberlist,
title = ACRONYMS,
]
\end{frame}
\section{C}
% ---
\begin{frame}[allowframebreaks]{TEST}
\begin{itemize}
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\item Test
\end{itemize}
\end{frame}
\end{document}