我遇到了空子部分的问题——当我使用 设置它们时,它们甚至会被添加\section*{}
。
我的 MWE:
\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\usetheme{warsaw}
\setbeamercovered{transparent}
\begin{document}
\section{section 1}
\begin{frame}\end{frame}
\subsection{subsection 1}
\begin{frame}\end{frame}
\subsection{subsection 2}
\begin{frame}\end{frame}
\subsection{subsection 3}
\begin{frame}\end{frame}
\subsection{subsection 4}
\begin{frame}\end{frame}
\subsection*{}
\begin{frame}\end{frame}
\section{section 2}
\begin{frame}\end{frame}
\subsection{subsection 1}
\begin{frame}\end{frame}
\subsection{subsection 2}
\begin{frame}\end{frame}
\subsection{subsection 3}
\begin{frame}\end{frame}
\subsection{subsection 4}
\begin{frame}\end{frame}
\section{section 3}
\begin{frame}\end{frame}
\end{document}
在第 1 部分的导航中,有 5 行(最后一行有空标题),但在第 2 部分中,有 4 行。
如何强制 beamer 不添加最后一个空子部分?空部分不会添加到导航栏。
包含 4 个小节且末尾有一个空小节的部分:
仅包含 4 个小节的部分:
答案1
以下类似于samcarter 的回答但有一个接口:
\stopnavigation
关闭beamer
导航;\resumenavigation
将其重新打开。
上述接口\headcommand
在.nav
文件中重新定义,暂时不做任何操作,而不是写没有什么完全没有.nav
。这可能不是最理想的,但它适用于你的情况:
\documentclass{beamer}
\let\Tiny\tiny% https://tex.stackexchange.com/q/58087/5764
\setbeamertemplate{navigation symbols}{}
\usetheme{Warsaw}
\setbeamercovered{transparent}
\makeatletter
\let\oldheadcommand\headcommand
\newcommand{\stopnavigation}{\addtocontents{nav}{\string\let\string\headcommand\string\@gobble}}
\newcommand{\resumenavigation}{\addtocontents{nav}{\string\let\string\headcommand\string\oldheadcommand}}
\makeatother
\begin{document}
\section{section 1}
\begin{frame}\end{frame}
\subsection{subsection 1}
\begin{frame}\end{frame}
\subsection{subsection 2}
\begin{frame}\end{frame}
\subsection{subsection 3}
\begin{frame}\end{frame}
\subsection{subsection 4}
\begin{frame}\end{frame}
\stopnavigation
\subsection*{}
\begin{frame}\end{frame}
\resumenavigation
\section{section 2}
\begin{frame}\end{frame}
\subsection{subsection 1}
\begin{frame}\end{frame}
\subsection{subsection 2}
\begin{frame}\end{frame}
\subsection{subsection 3}
\begin{frame}\end{frame}
\subsection{subsection 4}
\begin{frame}\end{frame}
\section{section 3}
\begin{frame}\end{frame}
\end{document}
答案2
隐藏该小节就足够了吗?
以下想法来自https://tex.stackexchange.com/a/66633/36296 (您还会在那里找到更多额外的解释)。
\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\usetheme{Warsaw}
\setbeamercovered{transparent}
\let\origaddtocontents=\addtocontents
\def\dontaddtocontents#1#2{} % or \@gobbletwo if in \makeatletter ... \makeatother
\begin{document}
\section{section 1}
\begin{frame}\end{frame}
\subsection{subsection 1}
\begin{frame}\end{frame}
\subsection{subsection 2}
\begin{frame}\end{frame}
\subsection{subsection 3}
\begin{frame}\end{frame}
\subsection{subsection 4}
\begin{frame}\end{frame}
\let\addtocontents=\dontaddtocontents
\subsection{Invisible Section}
\begin{frame}this\end{frame}
\let\addtocontents=\origaddtocontents
\section{section 2}
\begin{frame}\end{frame}
\subsection{subsection 1}
\begin{frame}\end{frame}
\subsection{subsection 2}
\begin{frame}\end{frame}
\subsection{subsection 3}
\begin{frame}\end{frame}
\subsection{subsection 4}
\begin{frame}\end{frame}
\section{section 3}
\begin{frame}\end{frame}
\end{document}