
Предположим, у меня есть длинное оглавление в формате beamer
, которое LaTeX расширяет до двух (или более) слайдов благодаря опции allowframebreaks
.
\documentclass[12pt]{beamer}
\usetheme{madrid}
\usepackage[american]{babel}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\title{List of Donald Duck universe characters}
\author{Walt Disney}
\begin{document}
\section{Main characters}
\subsection{Donald Duck}
\subsection{Daisy Duck}
\subsection{Huey, Dewey, and Louie}
\subsection{Scrooge McDuck}
\subsection{Ludwig Von Drake}
\section{Relatives}
\subsection{Duck family (Disney)}
\subsection{Clan McDuck}
\section{Duck characters}
\subsection{Umperio Bogarto}
\subsection{Bum Bum Ghigno}
\subsection{Magica De Spell}
\subsection{Evroniani}
\subsection{Flintheart Glomgold}
\subsection{Gloria}
\subsection{Gotrocks}
\subsection{Grand Mogul}
\subsection{Mata Harrier}
\subsection{Brigitta MacBridge}
\begin{frame}[allowframebreaks]{Donald Duck universe characters}
\tableofcontents
\end{frame}
\end{document}
Первый слайд заполнен до максимума, а остальное (выровнено по верху) на втором слайде. Однако я хотел бы настроить его так, чтобы разделы 1 и 2 отображались на слайде 1, а раздел 3 (включая все его подразделы) — на слайде 2. Конечно, текст на обоих слайдах должен быть выровнен по вертикали, а не по верху. Я также хотел бы сохранить автоматическую нумерацию заголовков на последующих слайдах, т. е. I, II, III.
Я знаю о\framebreak
, но понятия не имею, куда его положить!?
\tableofcontents[hideothersubsections]
какпредложено здесьпохоже, тоже не срабатывает.
решение1
\documentclass[12pt]{beamer}
\usetheme{Madrid}
\usepackage[american]{babel}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\title{List of Donald Duck universe characters}
\author{Walt Disney}
\begin{document}
\section{Main characters}
\subsection{Donald Duck}
\subsection{Daisy Duck}
\subsection{Huey, Dewey, and Louie}
\subsection{Scrooge McDuck}
\subsection{Ludwig Von Drake}
\section{Relatives}
\subsection{Duck family (Disney)}
\subsection{Clan McDuck}
\section{Duck characters}
\subsection{Umperio Bogarto}
\subsection{Bum Bum Ghigno}
\subsection{Magica De Spell}
\subsection{Evroniani}
\subsection{Flintheart Glomgold}
\subsection{Gloria}
\subsection{Gotrocks}
\subsection{Grand Mogul}
\subsection{Mata Harrier}
\subsection{Brigitta MacBridge}
\begin{frame}[allowframebreaks]{Donald Duck universe characters}
\tableofcontents[sections={1-2}]
\framebreak
\tableofcontents[sections={3}]
\end{frame}
\end{document}
решение2
Я предлагаю избегать разбиения ToC на несколько кадров. Альтернативы:
1) Начать показывать только разделы (без подразделов):
\begin{frame}{ToC}
\setcounter{tocdepth}{1}
\tableofcontents
% \setcounter{tocdepth}{2} % allow subsequent ToCs *with* subsections
\end{frame}
... или короче:
\begin{frame}{ToC}
\tableofcontents[hideallsubsections]
\end{frame}
Простота — сила презентации.
2) Не противоречит предыдущему пункту, отображать оглавление в начале каждого раздела, но выделять текущий раздел и при желании отображать только подразделы этого раздела:
% In the preamble!!
\AtBeginSection
{\begin{frame}{ToC}
\tableofcontents[currentsection,hideothersubsections]
\end{frame}}
\begin{document}
И установите tocdepth
счетчик, 2
если вы вышли из рамки пункта 1!
В некоторых случаях (например, при показе 3-го раздела) этого недостаточно, так как подразделов 10. Тогда вот мои предложения:
а) Не показывать никаких подразделов (сохранить tocdepth
в 1
). Простота — сила.
б) Перепроектируйте структуру, если это возможно, уменьшив количество подразделов.
в) Используйте несколько столбцов, например:
% In the preamble!!
\usepackage{multicol}
\AtBeginSection
{\begin{frame}{ToC}
\begin{multicols}{2}
\tableofcontents[currentsection,hideothersubsections]
\end{multicols}
\end{frame}}
\begin{document}
г) Удалить теневые разделы, показать только оглавление фактического раздела с помощью
\tableofcontents[sectionstyle=show/hide,subsectionstyle=show/show/hide]
:
решение3
Вы можете указать, какой раздел показывать:
\tableofcontents[sections={1-3}]
Таким образом, вы можете вручную указать, какой раздел показывать в каждом кадре:
\begin{frame}{Outline}
\tableofcontents[sections={1-3}]
\end{frame}
\begin{frame}
\tableofcontents[sections={4-5}]
\end{frame}
решение4
\section*{Outline}
\begin{frame}{Agenda}
\begin{columns}[onlytextwidth]
\column{0.5\textwidth}
\tableofcontents[sections = 1-2]
\column{0.5\textwidth}
\tableofcontents[sections = 3-4]
\end{columns}
\end{frame}
\section{Executive Summary}
\subsection{Vision and Objectives}
\subsection{Current Needs and Status}
\subsection{Approaches}
\subsection{Review}
\section{The 5 W's and the H}
\subsection{What?}
\subsection{Why?}
\subsection{Where?}
\subsection{When?}
\subsection{Who?}
\section{Examples}
Выводит следующий результат: