Beamer

El manual de beamer ofrece una sola regla, y sin rodeos, para preparar una charla: como mucho un frame por minuto. Ese mismo manual cuenta que Till Tantau escribió la primera versión de la clase de LaTeX en febrero de 2003 para su propia defensa de tesis, y que hasta entonces había sido «una pequeña colección privada de macros para facilitar el uso de la clase seminar»; un mes después la subió a CTAN por sugerencia de unos colegas. Esta página no trata de cómo se escriben los frames —de eso se ocupa la página dedicada a la clase beamer—. Trata de todo lo que hay entre un archivo .tex terminado y una sala con proyector: pasar la presentación a 16:9 con aspectratio=169, borrar los símbolos de navegación que nadie pidió, números de diapositiva que siguen siendo honestos tras añadir diapositivas de reserva, diapositivas de título de sección, notas que solo ve quien habla, y qué hacer cuando una presentación de 121 páginas empieza a tardar tres segundos y medio por pasada.

Poner beamer en 16:9 con aspectratio=169, y cuál es de verdad el valor por defecto

Basta una palabra: \documentclass[aspectratio=169]{beamer}. Y el valor por defecto sigue siendo 4:3: sea cual sea el proyector de la sala en 2026, beamer sin más indicaciones entrega 4:3. Compilado con beamer 3.71 tal como viene en TeX Live 2024 y medido con pdfinfo, la página por defecto sale a 362,835 × 272,126 pt (128 × 96 mm) y aspectratio=169 a 453,543 × 255,118 pt (160 × 90 mm). Lo que suele pasarse por alto es que el 16:9 no solo ensancha la diapositiva: la altura baja de 96 mm a 90 mm. Un frame que llenaba hasta el borde inferior en 4:3 se desbordará en cuanto se añada aspectratio=169. Por eso la relación de aspecto se decide al principio, no al final.

Opción de claseTamañoMedido con pdfinfoNota
aspectratio=43128 × 96 mm362,835 × 272,126 ptel valor por defecto; sin opción, esto
aspectratio=169160 × 90 mm453,543 × 255,118 ptel estándar actual de proyector; 6 mm menos de alto
aspectratio=1610160 × 100 mm453,543 × 283,465 ptcoincide con muchas pantallas de portátil
aspectratio=149140 × 90 mm396,85 × 255,118 ptun formato ancho menos extremo
aspectratio=32135 × 90 mm382,677 × 255,118 pt3:2
aspectratio=141148,5 × 105 mm420,945 × 297,638 ptexactamente A6 apaisado; pdfinfo lo etiqueta «A6»
aspectratio=54125 × 100 mm354,331 × 283,465 pt5:4, para proyectores antiguos
aspectratio=2013140 × 91 mm396,85 × 257,953 pt20:13; los dígitos son la proporción

Conviene saber cómo llegan esas dimensiones al PDF. beamer.cls entrega el ancho y el alto que ha calculado a geometry como papersize={...}, y es geometry quien reescribe \pdfpagewidth y \pdfpageheight. Importa más de lo que parece. En LaTeX corriente, \documentclass[letterpaper]{article} sigue produciendo un PDF A4 —medido en 595,276 × 841,89 pt— porque el pdftexconfig.tex de TeX Live ya ha fijado \pdfpagewidth = 210 true mm y las clases estándar nunca lo tocan. beamer rehace esa sobreescritura por su cuenta, así que no cae en la trampa. El reverso: si el preámbulo manipula \pdfpagewidth a mano, solo queda atrás la aritmética de dimensiones de beamer, y las figuras centradas se desplazan. Mejor no tocarlo.

latex
% decide this before you place a single figure
\documentclass[aspectratio=169]{beamer}

% inside a frame, always express sizes relative to the slide,
% never in absolute cm, so a later ratio change survives
\includegraphics[width=0.8\textwidth]{plot.pdf}
\includegraphics[height=0.6\textheight]{photo.jpg}

Basta una línea en el preámbulo: \setbeamertemplate{navigation symbols}{}. Esas marcas tenues no son adorno sino un conjunto real de enlaces armado con seis piezas. La definición de beamerouterthemedefault.sty no hace más que alinear \insertslidenavigationsymbol, \insertframenavigationsymbol, \insertsubsectionnavigationsymbol, \insertsectionnavigationsymbol, \insertdocnavigationsymbol y \insertbackfindforwardnavigationsymbol, y cada pieza lleva de dos a cuatro hiperenlaces propios. Compile una presentación de un solo frame con el tema default y cuente: el PDF lleva 20 anotaciones /Link en esa única diapositiva. Con la plantilla vacía baja a 0; conservando solo {\insertframenavigationsymbol}, a 4.

PiezaAdónde llevan sus enlacesEnlaces
\insertslidenavigationsymboldiapositiva anterior y siguiente, más «ir a la página» del visor3
\insertframenavigationsymbolfinal del frame anterior, principio y final del actual, principio del siguiente4
\insertsubsectionnavigationsymbollos cuatro límites de subsección, igual que en los frames4
\insertsectionnavigationsymbollos cuatro límites de sección4
\insertdocnavigationsymbolprimera y última página de la presentación2
\insertbackfindforwardnavigationsymbollos comandos de menú del visor GoBack, Find y GoForward3

Conservarlos o no depende de la duración de la charla. Las recomendaciones de beamer lo dicen: cuanto más larga es la charla, más ayuda de navegación conviene —una clase de noventa minutos gana con una barra lateral que indique dónde se está, mientras que un índice en una introducción de diez minutos resulta simplemente ridículo—. En la práctica: para una comunicación de quince minutos, quítelos (nadie hace clic, y además se imprimen en el papel); para un semestre de diapositivas de clase, consérvelos (el alumnado relee el PDF en su mesa y quiere saltar a una sección). El ajuste intermedio, dejar solo el avance por frames, es {\insertframenavigationsymbol}. Además, algunos temas, \usetheme{metropolis} entre ellos, ya los suprimen: si no desaparecen, sospeche primero del tema.

preamble
% remove all six symbols
\setbeamertemplate{navigation symbols}{}

% or keep only the frame-stepping pair
\setbeamertemplate{navigation symbols}{\insertframenavigationsymbol}

Mostrar el número de diapositiva: \insertframenumber e \inserttotalframenumber

A mano se escribe \insertframenumber/\inserttotalframenumber en la plantilla footline; pero si el tema ya imprime un número en el pie, es más seguro elegir una de las plantillas con nombre que trae beamer: \setbeamertemplate{page number in head/foot}[totalframenumber] da «3 / 12» (beamerbaseauxtemplates.sty define tres: framenumber, totalframenumber y appendixframenumber). Lo que hace tropezar es que el número cuenta frames, no páginas PDF. Un frame con un \pause se convierte en dos páginas PDF, y sin embargo la esquina muestra el mismo «3 / 3» en ambas. Que el número no avance al pulsar la flecha no es un error.

La segunda trampa: en la primera compilación el total es mentira. \inserttotalframenumber solo se conoce una vez compuesta toda la presentación, así que beamer escribe la respuesta en el archivo auxiliar .nav; al abrirlo aparece la línea \headcommand {\gdef \inserttotalframenumber {3}}. Borre .aux y .nav, ejecute una sola vez y el pie muestra las fracciones rotas 2/1 y 3/1; la segunda pasada por fin dio 2/3 y 3/3. Compile siempre dos veces el PDF de la charla: es la regla de hierro de beamer. Después ponga [noframenumbering] en la portada y en las diapositivas de reserva para que el total cuente solo la charla: una presentación cuya primera diapositiva de contenido medía «2/3» pasó a «1/2» solo con dejar de contar la portada. Si prefiere que el apéndice lleve su propia cuenta, coloque \appendix y elija [appendixframenumber]: la parte principal marca «2/2» y la diapositiva de reserva «1/1».

latex
\documentclass[aspectratio=169]{beamer}
\usetheme{Madrid}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{page number in head/foot}[appendixframenumber]

\begin{document}
% the title page should not eat frame number 1
\begin{frame}[plain,noframenumbering]\titlepage\end{frame}

\begin{frame}{Results}\end{frame}

% everything after \appendix is counted separately
\appendix
\begin{frame}{Backup: full derivation}\end{frame}
\end{document}

Una diapositiva de título al empezar cada sección: \AtBeginSection

Ponga \AtBeginSection[]{...} en el preámbulo y escriba dentro un frame con \tableofcontents[currentsection]. Solo con eso se inserta una diapositiva de «está usted aquí» en cada \section{...}. Los corchetes vacíos [] son el argumento que se usa para las secciones sin numerar (\section*) y significan «ahí no hagas nada»; si se olvidan, también brotan portadillas delante de los títulos del apéndice. Dé al frame insertado [noframenumbering,plain]: como se vio en la sección anterior, así el total sigue siendo honesto y además desaparece el mobiliario del tema. Para un grano más fino existe \AtBeginSubsection[]{...}, y para partir una clase de noventa minutos en dos mitades está \part{...}, con índice propio para cada parte.

Este mecanismo tiene un efecto secundario que cuesta cinco minutos a quien no lo conoce. \tableofcontents se compone a partir del archivo .toc, de modo que en la primera compilación no aparece ni una sola diapositiva de sección. Medido en una presentación de dos secciones y cuatro frames, sin archivos auxiliares: la primera pasada dio 5 páginas y la segunda 7. Antes de buscar «\AtBeginSection no funciona», vuelva a compilar.

preamble
% the [] argument is what runs for \section*, i.e. nothing
\AtBeginSection[]{%
  \begin{frame}[noframenumbering,plain]
    \tableofcontents[currentsection]
  \end{frame}%
}

% same idea one level down
\AtBeginSubsection[]{%
  \begin{frame}[noframenumbering,plain]
    \tableofcontents[currentsection,currentsubsection]
  \end{frame}%
}

Diapositivas para la sala, notas para quien habla: dos caminos a la pantalla de presentador

Hay dos caminos. El primero no necesita más que beamer: \setbeameroption{show notes on second screen=right}, que vuelve el PDF el doble de ancho. Medido en una presentación de un frame, la página sale a 725,669 × 272,126 pt (256 × 96 mm) sin variar el recuento de páginas, que sigue en 1: una sola hoja cuya mitad izquierda es para la sala y cuya mitad derecha es para quien habla. Con =bottom se duplica en vertical (362,835 × 544,252 pt). No hace falta software adicional, siempre que el lado que proyecta sepa recortar la mitad izquierda. El segundo camino es el paquete pdfpc que trae TeX Live 2024 (v0.7.1, 2023/10/21), que guarda las notas y los tiempos en los metadatos del propio PDF. Escriba \usepackage[overridenote]{pdfpc} y el contenido de \note{...} pasa a ser una nota de pdfpc; escriba \pdfpcsetup{duration=20, lastminutes=3} y una cuenta atrás de veinte minutos con aviso a los tres finales viaja dentro del archivo.

Una salvedad honesta: PDF Presenter Console en sí no forma parte de TeX Live. El paquete pdfpc entrega solo la mitad LaTeX que escribe los metadatos; la aplicación de dos pantallas (GPLv3+) se instala aparte. Y funciona también al revés: en una sala donde no se puede instalar nada, el PDF ancho de show notes on second screen se abre en cualquier visor, así que exportar uno por si acaso no cuesta nada. La escritura de las notas propiamente dicha —la sintaxis de \note{...} y la intercalación de páginas de notas con show notes— corresponde a la página de materiales de apoyo.

preamble
% route 1: one PDF, twice as wide, no extra software
\setbeameroption{show notes on second screen=right}

% route 2: notes and a countdown clock stored inside the PDF
\usepackage[overridenote]{pdfpc}
\pdfpcsetup{duration=20, lastminutes=3}

Cuando una presentación larga compila lenta: \includeonlyframes y draft

Ponga [label=cur] en el frame que está editando y \includeonlyframes{cur} en el preámbulo. Solo se emite ese frame; el resto se compone igualmente y luego se descarta. Midámoslo: una presentación de 40 frames, cada uno con tres pasos de overlay y un dibujo TikZ, suma 121 páginas y tarda 3,51 s por pasada en este Mac con TeX Live 2024. Al añadir \includeonlyframes{cur} quedan 3 páginas y 1,39 s. Recordando que hacen falta dos pasadas, la espera baja de unos siete segundos a menos de tres. La opción de clase draft actúa de otro modo: sustituye la cabecera, el pie y la barra lateral por simples filetes grises —la sustitución está escrita en beamerbasemisc.sty—. El número de páginas sigue siendo 121 y la pasada tardó 2,76 s. Use draft mientras ajusta la colocación de figuras, y \includeonlyframes cuando quiera mirar cuarenta veces la maqueta de una sola diapositiva.

latex
% preamble: build only the frame you are working on
\includeonlyframes{cur}

% body: the label must match
\begin{frame}[label=cur]{The slide I am fighting with}
  \includegraphics[width=\textwidth]{big-figure.pdf}
\end{frame}

El PDF que se proyecta no es el que se reparte: exportar e imprimir

No imprima el PDF de la charla tal cual. El motivo es dimensional: una diapositiva 16:9 mide 160 × 90 mm y una A4 mide 210 × 297 mm, de modo que una diapositiva por hoja deja dos tercios del papel en blanco; y un frame con tres \pause ya se ha convertido en cuatro páginas, con lo que una charla de media hora se vuelve un ladrillo de 120 hojas. La respuesta correcta es construir un segundo PDF con \documentclass[handout]{beamer} y pgfpages, algo que detalla la página de materiales de apoyo. Si prefiere no tocar el fuente, pdfjam viene con TeX Live y lo resuelve como posproceso: ejecutar pdfjam --nup 2x2 --frame true --paper a4paper --landscape colocó dos diapositivas medidas en una sola página A4 apaisada (841,89 × 595,276 pt).

terminal
# four slides to an A4 sheet, without touching the source
pdfjam --nup 2x2 --frame true --paper a4paper --landscape \
       --outfile talk-4up.pdf talk.pdf

# check what you actually produced before you print 40 copies
pdfinfo talk-4up.pdf | grep -E "Pages|Page size"
  • Fije primero la relación de aspectoaspectratio=169 añade ancho pero también recorta la altura de 96 mm a 90 mm. Cambiarla tarde desborda todos los frames que había llenado.
  • Compile siempre dos veces — tanto el total de frames como las diapositivas de título de sección pasan por .nav y .toc; la primera pasada muestra números rotos como 2/1.
  • [noframenumbering] en la portada y en las de reserva — así el total cuenta solo la charla. Para un apéndice independiente, \appendix y [appendixframenumber].
  • En una charla de quince minutos, borre la navegación — una línea, \setbeamertemplate{navigation symbols}{}. En una clase larga, consérvela.
  • Llegue con tres PDF — la charla, una copia de seguridad hecha con show notes on second screen y el material de apoyo. El tercero está en la página de materiales de apoyo.
  • Compruebe que las fuentes van incrustadas — pase pdfinfo y pdffonts sobre el archivo antes de copiarlo al pendrive.