A continuación, mostraré una pequeña introducción para dibujar tablas sencillas en LaTeX. En primer lugar, nuestro archivo .tex tendrá que ser algo parecido a lo siguiente. Además de los paquetes habituales {babel} y inputenc}, se carga el paquete {multirow}, necesario para poder combinar celdas.
\documentclass[a4paper,openright,10pt]{report}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{multirow} % para las tablas
\begin{document}
\end{document}
LaTeX, cuando trabaja con el paquete [spanish] llama a las tablas "Cuadros". Para que mejor las llame "Tablas", tenemos que indicarlo escribiendo:
\usepackage[spanish,es-tabla]{babel}
Una tabla muy sencilla puede ser la siguiente:
Por ejemplo, la tabla (\ref{tabla:sencilla}):
\begin{table}[htbp]
\begin{center}
\begin{tabular}{|l|l|}
\hline
País & Ciudad \\
\hline \hline
España & Madrid \\ \hline
España & Sevilla \\ \hline
Francia & París \\ \hline
\end{tabular}
\caption{Tabla muy sencilla.}
\label{tabla:sencilla}
\end{center}
\end{table}
Cuyo resultado sería:
Básicamente, utilizamos "&" para pasar a la siguiente celda, "\\" para saltar de línea, y "\hline" para hacer una línea horizontal.
Cuando en la tercera línea ponemos \begin{tabular}{|l|l|}, las "l" (letra ele) indican alineación a la izquierda (left). También podríamos haber puesto "c" o "r", para alineación en el centro o a la derecha. Los "|" (palitos verticales) significan separación con línea vertical.
Por último, en la primera línea hemos puesto [htbp]. Esto indica el orden en que queremos que LaTeX trate de colocar la tabla.
- h (here) aquí.
- t (top) arriba.
- b (bottom) abajo.
- p (page) en esta página.
Es decir, si ponemos [htbp], LaTeX probará primero de poner la tabla aquí. Si no le convence, probará arriba de la página. Luego abajo. Y luego en cualquier parte de esta página. De todos modos, LaTeX es bastante especial para colocar las tablas e imágenes. Si queremos obligar a LaTeX que situe la tabla exactamente donde hemos dicho, hay que poner [H] y usar el paquete {float}.
Se pueden fusionar celdas de la misma fila, mediante el comando \multicolumn.
\begin{table}[htb]
\centering
\begin{tabular}{|l|l|}
\hline
\multicolumn{2}{|c|}{Europa} \\ \hline
País & Ciudad \\
\hline \hline
España & Madrid \\ \hline
España & Sevilla \\ \hline
Francia & París \\ \hline
\end{tabular}
\caption{Tabla muy sencilla.}
\label{tabla:sencilla2}
\end{table}
En este caso \multicolumn{2}{|c|}{Europa}: {2} = 2 celdas fusionadas (contando de izquierda a derecha), {|c|} = texto centrado. (Por cierto, este comando también nos puede valer para alinear de una manera diferente, una única celda de una columna. Por ejemplo, con \multicolumn{1}{|r|}{xxx})
El resultado sería:
LaTeX se encarga de seleccionar el ancho de las celdas que él considera "mejor". Sin embargo, utilizando el comando p{...cm} en vez de "l", "c" o "r", podemos fijar el ancho que queramos.
\begin{table}[htb]
\centering
\begin{tabular}
{| p{2.2cm}| p{2.2cm} |}
\hline
\multicolumn{2}{|c|}{Europa} \\
\hline
País & Ciudad \\
\hline \hline
España & Madrid \\ \hline
España & Sevilla \\ \hline
Francia & París \\ \hline
\end{tabular}
\caption{Tabla de ancho fijo.}
\label{tabla:anchofijo}
\end{table}
Cuyo resultado sería:
También podemos fusionar celdas de una misma columna. Para ello utilizamos el comando "\multirow", que está en el paquete {mutlirow}.
\usepackage{multirow}
\begin{table}[htb]
\centering
\begin{tabular}{|l|c|}
\hline
\multicolumn{2}{|c|}{Europa} \\
\hline
País & Ciudad \\
\hline \hline
\multirow{2}{1cm}{España} & Madrid \\ \cline{2-2}
& Sevilla \\ \hline
Francia & París \\ \hline
\end{tabular}
\caption{Fusionando celdas.}
\label{tabla:fusionandoceldas}
\end{table}
En este caso \multirow{2}{1cm}{España}: {2} = 2 celdas fusionadas (contando de arriba abajo), {1cm} = ancho de la celda.
Además, ahora ya no se puede utilizar siempre el comando \hline, pues crea una línea horizontal de longitud toda la tabla. Hay que usar el comando \cline{n1-n2}, que crea una línea horizontal entre la columna n1 y la columna n2.
Por último, un ejemplo de una tabla un poco más grande. (Fíjate que la rayita está centrada en el centro, no a la izquierda.)
\usepackage{multirow}
\begin{table}[htb]
\centering
\begin{tabular}{|l|l|l|l|}
\hline
& \multicolumn{3}{c|}{Europa} \\
\cline{2-4}
& Ciudad & Río & Símbolo\\
\hline \hline
\multirow{3}{1cm}{España} & Madrid & Manzanares & Cibeles\\ \cline{2-4}
& Sevilla & Guadalquivir & Giralda\\ \cline{2-4}
& Zaragoza & Ebro & Pilar\\ \cline{1-4}
Francia & París & Sena & Torre Eiffel\\ \cline{1-4}
\multirow{2}{1cm}{Italia} & Roma & Tíber & San Pedro\\ \cline{2-4}
& Milán & \multicolumn{1}{c|}{-} & Duomo\\ \cline{1-4}
\end{tabular}
\caption{Tabla muy bonita.}
\label{tabla:final}
\end{table}
Una última cosa. La etiqueta de las tablas, aparece debajo de cada tabla. Para que vaya arriba, basta con escribir la etiqueta "\caption{}" antes de "\begin{tabular}".