Saltar al contenido
Topos Uranos

Resumen

Esta clase extiende la tabla legible de la clase anterior a los casos que la cuadrícula simple no resuelve. Enseña a unir celdas a lo ancho con \multicolumn, para agrupar encabezados bajo una regla parcial y para cambiar la alineación de una sola celda, y deduce adónde va el ancho sobrante de un encabezado agrupado; enseña a unir celdas a lo alto con \multirow y a decidir cuándo conviene evitarlo; compara tres maneras de dar a una tabla el ancho de la línea (tabularx con su columna X, tabular* con \extracolsep, y el escalado con \resizebox, que se desaconseja); compone tablas de varias páginas con longtable, con su encabezado repetido y las pasadas que necesita; presenta los giros de página para tablas muy anchas; genera tablas desde un archivo de datos con csvsimple y pgfplotstable, creando el archivo con filecontents; muestra tabularray como alternativa moderna; y termina con los errores típicos, leídos en registros reales.

Objetivos de aprendizaje

  1. Construir encabezados agrupados con \multicolumn y \cmidrule, contar las celdas de cada fila y predecir el resultado cuando la cuenta no coincide.
  2. Decidir entre \multirow y la celda vacía de la tradición de booktabs, justificando la elección por la lectura.
  3. Ajustar una tabla al ancho de la línea con tabularx o con tabular*, y explicar por qué no se escala con \resizebox.
  4. Componer con longtable una tabla de varias páginas con encabezado y pie propios, interpretar sus avisos y saber por qué no puede ir dentro de un flotante.
  5. Generar una tabla desde un archivo de datos y explicar qué se gana con un solo origen de los datos.

Celdas que abarcan columnas

La instrucción \multicolumn{n}{alineación}{texto} ocupa el lugar de n celdas contiguas de una fila y las reemplaza por una sola, con la alineación indicada en su segundo argumento, que se escribe como en el preámbulo de la tabla (l, c, r, p{…}, y también @{}). De ello se sigue una regla de cuenta que el autor debe verificar en cada fila: la suma de las celdas simples y de los anchos declarados en cada \multicolumn debe ser, como máximo, el número de columnas del preámbulo.

Cambiar la alineación de una sola celda

El uso más modesto de \multicolumn abarca una sola columna: \multicolumn{1}{c}{…} no une nada, pero impone a esa celda una alineación distinta de la de su columna. Es la manera de centrar el encabezado de una columna de cifras alineadas a la derecha, o de alinear a la derecha el rótulo de una fila de total que debe quedar junto a su cifra.

EjemploEl presupuesto de un proyecto
Código LaTeX
\documentclass{article}\usepackage{fontspec}\usepackage[spanish]{babel}\usepackage{booktabs}\begin{document}\begin{tabular}{llr}\toprulePartida & Detalle & \multicolumn{1}{c}{Monto} \\\midruleViajes   & Dos visitas al archivo   & 1\,200 \\Material & Papel y discos externos  &    300 \\Servicios& Digitalización de fondos &    850 \\\midrule\multicolumn{2}{r}{Total} & 2\,350 \\\bottomrule\end{tabular}\end{document}
Resultado
Resultado

El encabezado «Monto» se centra sobre una columna que sigue alineada a la derecha, y el rótulo «Total», que abarca las dos primeras columnas, se alinea a la derecha, junto a su cifra.

Encabezados agrupados

Cuando varias columnas comparten una categoría, la tabla gana con un encabezado de dos niveles: arriba, el nombre del grupo, que abarca sus columnas; debajo, el de cada columna. Entre ambos niveles, booktabs ofrece la regla parcial \cmidrule{2-3}, que subraya solo las columnas 2 a 3; con las opciones (lr), \cmidrule(lr){2-3}, la regla se recorta un poco por la izquierda y por la derecha, de modo que dos reglas contiguas no se toquen y el ojo vea dos grupos.

EjemploResultados por grupos de un estudio
Código LaTeX
\documentclass{article}\usepackage{fontspec}\usepackage[spanish]{babel}\usepackage{booktabs}\begin{document}\begin{tabular}{lrrrr}\toprule& \multicolumn{2}{c}{Grupo de control}& \multicolumn{2}{c}{Grupo experimental} \\\cmidrule(lr){2-3} \cmidrule(lr){4-5}Medición & Media & Desv. & Media & Desv. \\\midruleInicial & 52,1 & 8,3 & 51,7 & 7,9 \\Final   & 54,0 & 8,1 & 61,2 & 7,4 \\\bottomrule\end{tabular}\end{document}
Resultado
Resultado

La primera fila tiene una celda vacía (el & inicial) y dos celdas de dos columnas: uno más dos más dos, cinco, como el preámbulo. Obsérvese que la columna de la desviación del grupo experimental es más ancha que la del grupo de control.

Adónde va el ancho sobrante

La diferencia de anchos del ejemplo anterior no es casual. Si el texto de un \multicolumn es más ancho que la suma de las columnas que abarca, la tabla debe ensancharse, y el motor da todo el exceso a la última de esas columnas; las demás conservan su ancho natural. «Grupo experimental» es más ancho que «Media» y «Desv.» juntas, y la diferencia la recibe la segunda. Con un encabezado mucho más largo que sus datos, el efecto deja de ser discreto.

EjemploUn encabezado demasiado largo
Código LaTeX
\documentclass{article}\usepackage{fontspec}\usepackage[spanish]{babel}\usepackage{booktabs}\begin{document}\begin{tabular}{lrr}\toprule& \multicolumn{2}{c}{Grupo experimental tras la intervención} \\\cmidrule(lr){2-3}Medición & Media & Desv. \\\midruleInicial & 51,7 & 7,9 \\Final   & 61,2 & 7,4 \\\bottomrule\end{tabular}\end{document}
Resultado
Resultado

La cifra de la media queda lejos de la de su desviación, separadas por un blanco que no significa nada. La corrección no es tipográfica, sino de redacción: un encabezado breve («Experimental») y la explicación en el pie de la tabla o en el texto.