
我正在beamer
使用miniframes
外部主題、導航項目符號和subsection=false
選項進行演示,這意味著項目符號全部位於一行上。我遇到的問題是,如果一個部分的頁面太多,項目符號就會溢出到下一部分:
Section 1 Section 2
oooooooooooooooooooo
我傾向於有很多框架,其中一些只是提出一個問題,導致下一個詳細框架。我真的不需要這些框架由導航項目符號表示,刪除它們可以解決問題。知道怎麼做嗎?
我可以透過使用覆蓋層將問題和答案放在同一幀上來作弊,但這會很混亂...
回答 percusse 問題的程式碼範例:這應該為每個畫面提供一個圓,而不是每小節一個。如果您在一個小節中添加許多框架,圓圈將會溢出到下一節。
\documentclass[compress]{beamer}
\useoutertheme[subsection=false]{miniframes}
\begin{document}
\section{S1}
\subsection{SS1}
\frame{1}
\frame{2}
\frame{3}
\subsection{SS2}
\frame{1}
\frame{2}
\frame{3}
...
\end{document}
答案1
迷你幀是使用\beamer@framepages
輔助.nav
文件中的條目產生的。如果您為某些框架刪除這些內容,它們將不會出現在導航中1。為此,您必須修補\beamer@writeslidentry
負責將命令寫入.nav
檔案的巨集:
\makeatletter
\let\beamer@writeslidentry@miniframeson=\beamer@writeslidentry
\def\beamer@writeslidentry@miniframesoff{%
\expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{}% does not happen normally
{%else
% removed \addtocontents commands
\clearpage\beamer@notesactions%
}
}
\newcommand*{\miniframeson}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframeson}
\newcommand*{\miniframesoff}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframesoff}
\makeatother
\miniframeson
將此程式碼包含在您的文件中,然後您可以使用和在原始實作和不產生任何迷你影格的修改後的實作之間切換\miniframesoff
。
1然而,這可能會產生一些我不知道的不良後果!
完整範例程式碼:
\documentclass[compress]{beamer}
\useoutertheme[subsection=false]{miniframes}
\makeatletter
\let\beamer@writeslidentry@miniframeson=\beamer@writeslidentry
\def\beamer@writeslidentry@miniframesoff{%
\expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{}% does not happen normally
{%else
% removed \addtocontents commands
\clearpage\beamer@notesactions%
}
}
\newcommand*{\miniframeson}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframeson}
\newcommand*{\miniframesoff}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframesoff}
\makeatother
\begin{document}
\section{S1}
\subsection{SS1}
\frame{1}
\miniframesoff
\frame{2}
\miniframeson
\frame{3}
\subsection{SS2}
\miniframesoff
\frame{1}
\miniframeson
\frame{2}
\frame{3}
\end{document}