
私は、ナビゲーション箇条書きと、箇条書きがすべて 1 行に表示されるオプションを備えた外部テーマbeamer
を使用してプレゼンテーションを作成しています。問題は、1 つのセクションにページが多すぎると、箇条書きが次のセクションにオーバーフローしてしまうことです。miniframes
subsection=false
Section 1 Section 2
oooooooooooooooooooo
フレームをたくさん持つ傾向があり、その中には単に質問をして、次の詳細なフレームに導くものもあります。これらのフレームをナビゲーションの箇条書きで表す必要はまったくないので、削除すれば問題は解決します。その方法をご存知ですか?
オーバーレイを使用して質問と回答を同じフレームに表示することでごまかすこともできますが、それでは混乱を招きます...
percusse の質問に答えるコード例: これにより、サブセクションごとに 1 つの円ではなく、フレームごとに 1 つの円が表示されます。1 つのサブセクションに多数のフレームを追加すると、円が次のセクションにオーバーフローします。
\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}