
Estoy haciendo una beamer
presentación usando el miniframes
tema exterior, con viñetas de navegación y la subsection=false
opción, lo que significa que todas las viñetas están en una sola fila. El problema que tengo es que, si una sección tiene demasiadas páginas, las viñetas se desbordan a la siguiente sección:
Section 1 Section 2
oooooooooooooooooooo
Tiendo a tener muchos cuadros, algunos de ellos simplemente hacen una pregunta, lo que lleva al siguiente cuadro detallado. Realmente no necesito que esos marcos estén representados por viñetas de navegación, y eliminarlos solucionaría el problema. ¿Alguna idea de cómo hacerlo?
Podría hacer trampa usando superposiciones para tener la pregunta y la respuesta en el mismo cuadro, pero eso sería un desastre...
Ejemplo de código para responder a la pregunta de Percusse: esto debería darle un círculo por cuadro, no uno por subsección. Si agrega muchos cuadros en una subsección, los círculos se desbordarán en la siguiente sección.
\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}
Respuesta1
Los mini fotogramas se generan utilizando las \beamer@framepages
entradas del .nav
archivo auxiliar. Si los elimina para ciertos marcos, no aparecen en la navegación 1 . Para hacerlo, debe parchar el\beamer@writeslidentry
macro responsable de escribir los comandos en el .nav
archivo:
\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
Incluya este código en su documento, luego podrá cambiar entre la implementación original y la modificada sin generar ningún mini marco usando \miniframeson
y \miniframesoff
.
1 ¡Sin embargo, esto puede tener algunas consecuencias no deseadas que desconozco!
Código de ejemplo completo:
\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}