miércoles, 25 de abril de 2012

Redimensionar Tablas en LaTeX

Como se menciono anteriormente al realizar tablas en LaTeX es necesario vigilar manualmente el grosor de la tabla para evitar que la tabla sea mas ancha que la pagina y se "corte".

Sin embargo existe una sencilla para prevenir esos casos, a la vez que le da a la tabla una apariencia mas procesional, el comando \resizebox.

Este comando toma como argumento el ancho que deseamos tenga la tabla y la escala adecuadamente cambiando el tamaño de letra y grosor de las lineas, logrando que la tabla solo tenga el ancho indicado.

Para poder hacer uso de este comando es necesario incluir el paquete graphicx que viene incluido en la instalación por defecto tanto de Tex Live como de MikTeX.

El formato de este comando es el siguiente:

\resizebox{<ancho_deseado>}{!} {

<entorno tabular que se desea escalar>

}

Es muy importante poner las llaves ya que estas delimitan donde tendrá efecto el comando.

Ahora se presentara un pequeño ejemplo con el fin de ilustrar el efecto del comando

Para esto en un documento LaTeX que contenga las declaraciones necesarias (\documentclass , \begin{document}, etc) agrege este codigo

\begin{table}
\centering
\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
\hline
\multicolumn{5}{|c|}{Puerto fuente} & \multicolumn{4}{|c|}{Puerto destino} \\ \hline
\multicolumn{9}{|c|}{Numero de secuencia} \\ \hline
\multicolumn{9}{|c|}{Numero de reconocimiento} \\ \hline
Longitud cabecera & Reservado & URG & ACK & PSH & RST & SYN & FIN & Tamaño ventana \\ \hline
\multicolumn{5}{|c|}{Suma verificación} & \multicolumn{4}{|c|}{Puntero a datos urgentes} \\ \hline
\multicolumn{9}{|c|}{Opciones} \\ \hline
\multicolumn{9}{|c|}{Datos} \\ \hline
\end{tabular}
\caption{Estructura de un segmento TCP.}
\label{c2_tabla_segento_tcp}
\end{table}

El cual generara una tabla como la mostrara el la figura 1

Figura 1: Tabla sin redimensionar.
Notara que la tabla queda "cortada" por el borde de la pagina y parte del contenido queda fuera vista.

Ahora remplace el codigo de la tabla por este:

\begin{table}
\centering
\resizebox{10cm}{!} {
\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
\hline
\multicolumn{5}{|c|}{Puerto fuente} & \multicolumn{4}{|c|}{Puerto destino} \\ \hline
\multicolumn{9}{|c|}{Numero de secuencia} \\ \hline
\multicolumn{9}{|c|}{Numero de reconocimiento} \\ \hline
Longitud cabecera & Reservado & URG & ACK & PSH & RST & SYN & FIN & Tamaño ventana \\ \hline
\multicolumn{5}{|c|}{Suma verificación} & \multicolumn{4}{|c|}{Puntero a datos urgentes} \\ \hline
\multicolumn{9}{|c|}{Opciones} \\ \hline
\multicolumn{9}{|c|}{Datos} \\ \hline
\end{tabular}
}
\caption{Estructura de un segmento TCP.}
\label{c2_tabla_segento_tcp}
\end{table}

Y recompile el documento, el resultado ahora lucirá como la Figura 2
Figura 2: Tabla redimensionada.

Ahora la tabla cabe perfectamente en la pagina y su contenido es perfectamente visible.