
탐색 글머리 기호와 옵션이 포함된 외부 테마를 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}