Pósteres (beamerposter/tikzposter/a0poster)

El accidente más habitual al construir un póster A0 en LaTeX es descubrir en la imprenta que el archivo es A4. En TeX Live 2024 eso ocurre literalmente: pase la clase a0poster por pdflatex y pdfinfo declara un papel de 595,276 × 841,89 pt, es decir A4. Apunte al mismo A0 con beamerposter o tikzposter y ambos salen correctamente en 2383,94 × 3370,39 pt (A0). Esta página compara las tres vías hacia un póster de congreso —beamerposter, que reutiliza beamer; tikzposter, una clase propia construida sobre TikZ; y a0poster, que data de 1997— compilando cada una y midiendo el resultado con pdfinfo. Cierra con lo que hay que comprobar antes de entregar el archivo a la imprenta.

El tamaño de página del póster: compruébelo con pdfinfo

Antes que nada, mire las dimensiones del PDF que realmente ha producido. pdfinfo poster.pdf las da en la línea Page size:. El A0 es 2383,94 × 3370,39 pt, o sea 84,1 × 118,9 cm. Si esa línea sigue diciendo A4 (595,276 × 841,89 pt), el problema no es la opción de clase sino que el tamaño de página nunca llegó al PDF. Esto no se detecta a ojo: un póster siempre se muestra reducido en pantalla, así que uno aplastado a A4 parece simplemente un póster visto en pequeño.

Clase o paquetePapel bajo pdflatex (medido)Cómo se fija el tamaño
beamerposter2383,94 × 3370,39 pt (A0 vertical)Escrita directamente en el PDF desde size=a0 y orientation
tikzposter2383,94 × 3370,39 pt (A0 vertical)a0paper se pasa a geometry, y así llega al PDF
a0poster595,276 × 841,89 pt (A4)Pasa por un \special de PostScript, que pdflatex ignora
baposterNo se puede cargarNo está en TeX Live 2024 (véase más abajo)

Usar beamerposter: en realidad solo size y scale

Si ya conoce beamer, beamerposter es el camino más corto. Ponga \usepackage[size=a0,scale=1.4,orientation=portrait]{beamerposter} encima de \documentclass[final]{beamer} y sus block, columns, temas y temas de color funcionan tal cual a escala de póster. No hay notación nueva que aprender. La opción [final] pliega las superposiciones en una sola página, lo que importa cuando se recicla una presentación que todavía contiene \pause u \only<2>.

poster.tex
\documentclass[final]{beamer}
% size: a0b a0 a1 a2 a3 a4 custom  /  orientation: portrait landscape
\usepackage[size=a0,scale=1.4,orientation=portrait]{beamerposter}
\title{A Poster Title}
\author{A. Author}
\institute{Somewhere}
\begin{document}
\begin{frame}[t]{}
\maketitle
\begin{columns}[t]
  \begin{column}{0.45\textwidth}
    \begin{block}{Introduction}
      Body text at poster scale.
    \end{block}
  \end{column}
  \begin{column}{0.45\textwidth}
    \begin{block}{Results}
      More body text.
    \end{block}
  \end{column}
\end{columns}
\end{frame}
\end{document}

scale es la ampliación de la fuente, y aquí está la astucia de beamerposter: hay un factor base prenormalizado para cada tamaño de papel. En beamerposter.sty, a0 y a0b valen 1.0, a1 0.70710678, a2 0.5, a3 0.35355339 y a4 0.25. Esa sucesión son exactamente las potencias de 1/√2, en correspondencia con que la serie A divide el área por dos en cada paso, de modo que el lado se reduce en 1/√2. El resultado es que scale=1.0 se ve del mismo tamaño en cualquier papel: rehaga un póster A1 como A0 y el texto se lee al mismo tamaño aparente. Medido, a0 con scale=1.0 da un \normalsize de 24,88 pt sobre 30 pt de interlínea, y scale=1.4 da 34,83 pt sobre 42 pt.

El papel sale de size=a0b a0 a1 a2 a3 a4 custom, con orientation=portrait o landscape al lado. Medido, orientation=landscape intercambió las dimensiones a 3370,39 × 2383,94 pt y size=a1 dio 1683,78 × 2383,94 pt (A1), justo como se esperaba. Con size=custom se pasan width y height como números escuetos en centímetros: width=200,height=300 produjo 5669,29 × 8503,94 pt, una pancarta de dos por tres metros sin más. El beamerposter de TeX Live 2024 es la v1.13, del 23 de abril de 2018.

tikzposter: una clase propia donde el tema decide el aspecto

tikzposter se escribió para pósteres desde el principio. Se declara \documentclass[25pt,a0paper,portrait,margin=10mm]{tikzposter}, el cuerpo se escribe como \block{Título}{Contenido} y se reparte con \begin{columns} y \column{0.5}. El vocabulario de beamer no se aplica. El aspecto cambia en bloque con un solo \usetheme{...}, y la versión de TeX Live 2024 trae nueve: Autumn, Basic, Board, Default, Desert, Envelope, Rays, Simple y Wave. Los nueve se compilaron aquí, y todos produjeron un PDF A0 sin error.

poster.tex
\documentclass[25pt,a0paper,portrait,margin=10mm]{tikzposter}
\usetheme{Board}      % Autumn Basic Board Default Desert Envelope Rays Simple Wave
\usecolorstyle{Britain}  % Australia Britain Default Denmark Germany Russia Spain Sweden
\title{A Poster Title}
\author{A. Author}
\institute{Somewhere}
\begin{document}
\maketitle
\begin{columns}
\column{0.5}
\block{Introduction}{Body text at poster scale.}
\column{0.5}
\block{Results}{%
  \begin{tikzfigure}[A caption]
    % tikzfigure does NOT open a tikzpicture -- you must open one yourself
    \begin{tikzpicture}
      \draw (0,0) rectangle (2,2);
    \end{tikzpicture}
  \end{tikzfigure}}
\end{columns}
\end{document}

El aspecto se apila en cuatro capas: además de \usetheme están \usecolorstyle (ocho, curiosamente bautizados con nombres de países —Australia, Britain, Default, Denmark, Germany, Russia, Spain, Sweden—), \usecolorpalette (cinco) y \useblockstyle (siete: Basic, Corner, Default, Envelope, Minimal, Slide, TornOut). Sin embargo, una orden documentada no funciona en el tikzposter v2.0 (15 de enero de 2014) que trae TeX Live 2024. \innerblock muere con ! TeX capacity exceeded, sorry [grouping levels=255]. —con cualquier tema, e incluso tras llamar antes a \useinnerblockstyle— y no se produce PDF alguno. Para una caja anidada use \coloredbox{...}, que pasó limpiamente en el mismo montaje.

La otra trampa es tikzfigure. El entorno solo prepara un center y un contador de pie de figura: no abre un tikzpicture por usted. Escriba un \draw desnudo y añada un pie en el argumento opcional, y obtendrá ! LaTeX Error: There's no line here to end. La causa es la línea 818 de tikzposter.cls, que pone \\[10pt] justo antes del pie: si el cuerpo terminó en modo vertical, ese \\ no tiene línea que terminar. Quitar el pie hace desaparecer el error, pero lo correcto es abrir dentro un tikzpicture, como en el ejemplo de arriba. El tamaño de fuente viene de las opciones de clase 12pt, 14pt, 17pt, 20pt y 25pt; con 25pt el \normalsize medido fue 24,88 pt, y con 20pt, 20,74 pt.

Por qué a0poster sale en A4, y dos formas de obtener un PDF A0 de verdad

a0poster sale en A4 porque comunica el tamaño de papel mediante un \special de PostScript. Compílelo en TeX Live 2024 y el registro se llena de Non-PDF special ignored!, seguido de <special> header=./a0header.ps y <special> papersize=83.96cm,118.82cm. pdfTeX descarta ambos, así que el papel se queda en el A4 por omisión de article. La clase escribe realmente, al compilar, un fragmento de PostScript llamado a0header.ps en el directorio de trabajo, con PageSize [2380 3368] y setpagedevice dentro. El programa que debía leerlo es dvips. Se trata de la v1.22b, del 31 de enero de 2004, de Gerlinde Kettl y Matthias Weiser, trabajada desde 1997: un diseño del apogeo del DVI, conservado intacto.

shell
# Route 1 -- the route the class was designed for (DVI to PostScript to PDF)
latex poster.tex && dvips poster.dvi -o poster.ps && ps2pdf poster.ps
pdfinfo poster.pdf | grep "Page size"   # 2384 x 3370 pts (A0)

# Route 2 -- stay with pdflatex and copy the paper size into the PDF yourself.
# Put these two lines in the preamble of poster.tex:
#   \pdfpagewidth=\paperwidth
#   \pdfpageheight=\paperheight
pdflatex poster.tex
pdfinfo poster.pdf | grep "Page size"   # 2379.97 x 3368.13 pts (A0)

Hay dos salidas. La vía prevista es latex, luego dvips y luego ps2pdf; medido, el .ps llevaba arriba %%DocumentPaperSizes: a0 y el PDF resultante midió 2384 × 3370 pt. La otra es seguir con pdflatex y copiar usted mismo al PDF las dimensiones que la clase ya calculó, poniendo \pdfpagewidth=\paperwidth y \pdfpageheight=\paperheight en el preámbulo; eso dio 2379,97 × 3368,13 pt. Conviene notar además que un \documentclass{a0poster} escueto toma por omisión landscape,a0b,final, y que a0b no es el A0 de ISO sino una hoja sobredimensionada de 119 × 87 cm. Si el formato importa, escriba [a0,portrait] explícitamente. En cuanto al tipo, \normalsize se redefine a 24,88 pt, y la clase añade sus propios \veryHuge (74,3 pt), \VeryHuge (89,16 pt) y \VERYHuge (107 pt). No aporta maquinaria propia de columnas ni de bloques: el contenido se dispone a mano, con el entorno multicols de multicol o con minipage.

baposter no está en TeX Live 2024

baposter, que dispone el contenido como una rejilla de cajas, aparece citado en muchísimos tutoriales de pósteres, pero no está en TeX Live 2024. kpsewhich baposter.cls no devuelve nada, y tlmgr info baposter responde cannot find package baposter. La única coincidencia cercana es xebaposter, una clase XeLaTeX para pósteres persas y latinos, que es otra cosa. Usar baposter implica, pues, instalarlo desde CTAN a mano; antes de pagar ese precio, es más rápido probar tikzposter.

Qué comprobar antes de entregar el archivo a la imprenta

Bastan tres comprobaciones. Tamaño de página: la línea Page size: de pdfinfo. Incrustación de fuentes: en pdffonts, cada fila debe mostrar yes en la columna emb. Resolución de imágenes: 150 dpi a tamaño final bastan en la práctica, 300 dpi para un póster que se lee de cerca. pdffonts sobre un póster hecho con pdflatex muestra fuentes Type 1 con nombres de subconjunto como PWNZYL+CMB10, con yes en emb y en sub. Un solo no ahí significa que el RIP de la imprenta puede sustituir otra tipografía.

Queda un límite más, rara vez alcanzado pero desconcertante cuando ocurre. La mayor dimensión de TeX es 16383,99998 pt, unos 5,75 m. Probada con \setlength, la cifra 16383,99998 pt pasa intacta mientras que 577 cm falla con ! Dimension too large. Los 3370 pt de un A0 quedan muy por debajo, igual que los 8503,94 pt de un beamerposter de dos por tres metros. Pero componga en una sola página un fondo de estand de seis metros y chocará con este muro. La respuesta habitual: componerlo a la mitad de tamaño y pedir a la imprenta una ampliación del 200 %.

  • Reutilizar una presentación beamer existentebeamerposter. size y scale deciden casi todo
  • Conseguir rápido un acabado pulidotikzposter. Nueve temas y ocho estilos de color, pero evite \innerblock
  • Controlar usted la maquetación, o partir de una fuente existentea0poster, confirmando siempre con pdfinfo que el tamaño de papel llegó al PDF
  • Le han recomendado baposter → no está en TeX Live 2024. Instálelo desde CTAN a mano, o pásese a tikzposter