Tablas con LaTeX

LaTeX ofrece una serie de posibilidades para la gestión de tablas, sin embargo también se requiere mucho cuidado con los entornos puesto que su manipulación se dificulta con el tamaño de los contenidos. Veremos las principales herramientas con las que contamos:

Tablas con tabular

Con tabular no es necesario cargar nuevos paquetes, por defecto la compilación producirá las tablas. Básicamente la sintáxis es:

\begin{tabular}[pocisión]{colocación}
celda & celda \\
celda & celda
\end{tabular}
  • La separación de las columnas se define con &
  • Las líneas se finalizan con \\, a su vez, es posible ayadir espacios verticales cuya longitud se indica entre []
  • La posición se refiere a la posición vertical de la tabla respecto de la línea base, dispone de los siguientes valores:
  • t la línea superior de la tabla se alinea con la línea base
  • b la línea inferior de la tabla se alinea con la línea base
  • Si no aparece el parámetro, se centrará respecto de la línea base.

  • La colocación se ouede definir como:

  • c alineación centrada
  • l alineación a la izquierda
  • r alineación a la derecha
  • La anchura de cada columna queda definida por el texto de mayor largo que esté en la misma columna
  • Es posible incluir líneas horizontales con los comandos \hline el cual cubrirá todas las columnas y con \cline{i-j} donde i es la columna de inicio y j la columna final
  • Las líneas verticales se definen el la colocación con | la cual se extiende hasta la última fila, || dibuja dos líneas verticales, mientras que \vline introducirá una línea vertical la cual se alineará al comienzo o final del texto.
  • \multicolumn{#1}{#2}{#3} Coloca el encabezamiento a un número determinado de columnas
  • #1 Define el número de columnas (debe ser igual o menor) al total de columnas que existen
  • #2 Define el formato del encabezamiento, puede usarse c, l, r.
  • #3 Texto

Ejemplo de tabular

\begin{tabular}{|l|l|l} % Es posible alinear toda la tabla adicionando opciones              
\hline
\multicolumn{3}{c|}{Algunos ingredientes} \\
\hline
papa & camote &  yuca \\ [1 cm]
\hline
cebolla & ajo & sal  \\
\cline{1-2}
\end{tabular}

Tablas con table

El entorno table incluye un contador de tablas y también imprime un título, ambos detalles se mostrarán en el ídice de tablas. Básicamente la sintáxis es:

\begin{table}[posición]
\centering
\begin{tabular}           
...
\end{tabular}
\caption{título de la tabla} % la posición por defecto es en la parte inferior, sin embarga también la podemos situar en la parte superior
\label{tab:etiqueta}
\end{table}

La posición de la tabla que puede ser una o la combinación de los siguientes argumentos:

  • h Posiciona la tabla donde indica el código
  • t Posiciona la tabla en la parte superior de la página
  • b Posiciona la tabla en la parte inferior de la página
  • p Posiciona la tabla en una página separada
  • Si no se especifica la posición, por defecto la secuencia será [tbp]
  • Es recomdable usar el paquete \usepackage{float} y el argumento H para lograr que la tabla se ubique donde la colocamos en el código

Ejemplo con table

\begin{table}[p]                                                                                         \centering
\begin{tabular}{|l|l|l}                    
\hline
\multicolumn{3}{c|}{Algunos ingredientes} \\
\hline
papa & camote &  yuca \\ [1cm]
\hline
cebolla & ajo & sal  \\
\cline{1-2}
\end{tabular}
\caption{Ingredientes principales para preparar un sancochado}
\label{tab:ing-p}
\end{table}

Tablas con longtable

LaTeX ofrece la posibilidad de gestionar tablas extensas con el entorno longtable nos permite generar tablas grandes que no caben en una única página. Es similar al entorno table: emplea el mismo contador de tabla, tiene un comando para especificar el título de la tabla y aparece listada en la lista de tablas (\listoftables). Hay que incluir el paquete longtable en el preámbulo para que funcione.

Paquetes necesarios

\usepackage{longtable} % Permite uso del entrono longtable
\usepackage{booktabs} % Permite el uso de \toprule, \midrule y \bottonrule para realzar el acabado de las tablas
\usepackage[spanish]{babel} % Captions y sections en español
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

Ejemplo de longtable

\begin{longtable}[c]{c c c }
\caption{Mi primera tabla larga} \\ \toprule
\textbf{columna 1} & \textbf{columna 2} &\textbf{ columna 3} \\ \toprule % Es la fila que se repetirá en cada página                  
\endfirsthead

\multicolumn{3}{c}{\textit{\textsl{(Viene de la página anterior)}}} \\
\caption{Mi primera tabla larga} \\ \toprule
\textbf{columna 1} & \textbf{columna 2} &\textbf{ columna 3} \\ \toprule % Repetirá la fila en todas las páginas                      
\endhead

\multicolumn{3}{c}{\textsl{\textit{(Continúa en la página siguiente)}}}\\ %\midrule                                                   
\endfoot

\multicolumn{3}{c}{\textit{\textsl{(Fin de mi primera tabla larga)}}} \\% \midrule                                                    
\endlastfoot
      
1 & 2 & 3 \\ \midrule % Repetir 80 veces esta fila para apreciar los resultados
1 & 2 & 3 \\ \midrule
1 & 2 & 3 \\ \bottomrule
\end{longtable}

El resultado lo pueden visualizar aquí:

Otras opciones

La manipulación de las tablas puede ser más exigente de lo que se ha mostrado hasta ahora, por lo que es útil conocer las opciones adicionales con las que contamos.

Rotar tabla

Si necesitamos rotar una tabla que por sus dumensiones no cabría de forma vertical, esto es sumamente sencillo.

Paquetes necesarios

\usepackage[spanish]{babel} % Permite el uso del idioma español
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{rotating} % Permite rotar la tabla a través del entorno turn

Ejemplo de tabla rotada

\section{Matriz de Marco Lógico}

  \begin{table}[H]
    \centering
    \caption{Marco lógico}
    \label{table:marco}
       \begin{turn}{90} % Inicia el rotado a 90° de la tabla
        \begin{tabular}{lllll}
          \hline
          & \multicolumn{1}{c}{\textbf{Resumen narrativo}} & \multicolumn{1}{c}{\textbf{Indicadores verificables}} & \multicolumn{1}{c}{
            \begin{tabular}[c]{@{}c@{}}\textbf{Monitoreo y}\\ \textbf{verificación}\end{tabular}} & \multicolumn{1}{c}{\textbf{Supuesto}}\\
          \hline \textbf{Fin} & \begin{tabular}[c]{@{}l@{}}Contribuir
            a la mejora de las condiciones \\ de acceso a los
            servicios de salud materno \\ infantil en la Micro Red San
            Jerónimo\end{tabular} & \begin{tabular}[c]{@{}l@{}}1. Al
            final el proyecto se ha mejorado\\ el acceso materno
            infantil en la Micro\\ Red San Jerónimo, reduciéndose en\\
            20\% las quejas de los usuarios\end{tabular}
          & \begin{tabular}[c]{@{}l@{}}1. Estadísticas del Centro de\\
            Salud\end{tabular} & \begin{tabular}[c]{@{}l@{}}Los
            beneficiarios continúan\\ considerando como \\
            prioritarios los temas de salud\end{tabular} \\ \hline
          \textbf{Propósito} & \begin{tabular}[c]{@{}l@{}}Mejorar el
            acceso al servicio materno\\ infantil en la Micro Red San
            Jerónimo\end{tabular} & \begin{tabular}[c]{@{}l@{}}1. Se
            detectan las complicaciones y\\ enfermedades a tiempo\\
            2. Se tratan las complicaciones y\\ enfermedades a
            tiempo\end{tabular}
          & \begin{tabular}[c]{@{}l@{}}1. Estadísticas del Centro de\\
            Salud\end{tabular} & \begin{tabular}[c]{@{}l@{}}Los
            patrones de formación\\ profesional del personal\\
            facilitan el cambio para\\ la calidad del
            servicio\end{tabular} \\ \hline \textbf{Compomentes}
          & \begin{tabular}[c]{@{}l@{}}1. Implementación de la
            Defensoría de\\ la Salud en el establecimiento\\
            2. Alianza con comunidades sociales de\\ base y
            organizaciones comunitarias\\ 3. Incrementar las acciones
            de\\ supervisión y seguimiento de las\\
            actividades\end{tabular}& \begin{tabular}[c]{@{}l@{}}1. Se
            implementa la Defensoría de la \\ Salud.\\ 2. Se realizan
            4 alianzas con las\\ comunidades y organizaciones\\
            comunitarias.\\ 3. Se realizan 8 supervisiones al año\\ a
            la calidad del servicio de salud.\end{tabular}
          & \begin{tabular}[c]{@{}l@{}}1. Gerencia del centro\\ de
            salud\end{tabular} & \begin{tabular}[c]{@{}l@{}}Se aplican
            las normas y \\ políticas institucionales del \\ sector
            Salud y de la Micro\\ Red San Jerónimo\end{tabular} \\
          \hline \textbf{Actividades}
          & \begin{tabular}[c]{@{}l@{}}1. Incrementar actividades
            preventivas\\ 2. Dar a conocer al usuario los beneficios\\
            que brinda el servicio materno infantil\\ 3. Mejorar la
            interculturalidad de los\\ patrones culturales de los
            profesionales\\ de la salud y los usuarios del área\\
            4. Mejorar el procedimiento del sistema\\ de referencias y
            contrareferencias\end{tabular}
          & \begin{tabular}[c]{@{}l@{}}1. Se realizan 3 campañas al
            año \\ dirigidas a las comunidades sobre\\ la prevención
            de la salud\\ 2. Se realizan capacitaciones para \\ los
            profesionales del centro de salud\\ 3. Se implementa un
            sistema de\\ calidad de trámites en el centro de \\
            salud\end{tabular}
          & \begin{tabular}[c]{@{}l@{}}1. Gerencia del centro\\ de
            salud\end{tabular} & \begin{tabular}[c]{@{}l@{}}La
            atención de la población\\ se lleva a cabo según los \\
            planes de ejecución del\\ proyecto: plazos, calidad,\\
            cantidad.\\ \\ Durante la ejecución del\\ proyecto el
            número de los\\ beneficiarios se mantiene\\ dentro de una
            banda de\\ +/- 10\%.\end{tabular} \\ \hline
        \end{tabular}
      \end{turn} % Finaliza el rotado a 90° de la tabla
  \end{table}

Escalar tabla

Para escalar tablas no hace falta agregar paquetes, únicamenete se debe tener cuidado con la sintáxis, se hace uso de \scalebox{factor de escalamiento}{tabla a escalar}. Para ejemplificar el efecto usaremos el código anterior y lo modificaremos como sigue

Ejemplo de tabla escalada

...
\scalebox{0.75}{ % Inicia el escalada, el factor es de 0.75
\begin{turn}{90} 
\begin{tabular}{lllll}
....
\end{tabular}
\end{turn}
} % Finaliza el escalado de la talba
....

Recursos Recomendados

http://www.tablesgenerator.com/

3 comentarios

  1. Cordial saludo miembros del foro.
    Tengo una inquietud, utilizo windt como editor de Látex, cuando compilo el texto compila bien, es decir, sin errores, pero no muestra la tabla en el texto PDF, adjunto el código de la tabla
    \begin{table}[p] \centering
    \begin{tabular}{|l|l|l}
    \hline
    \multicolumn{3}{c|}{Algunos ingredientes} \\
    \hline
    papa & camote & yuca \\ [1cm]
    \hline
    cebolla & ajo & sal \\
    \cline{1-2}
    \end{tabular}
    \caption{Ingredientes principales para preparar un sancochado}
    \label{tab:ing-p}
    \end{table}

    Saludos
    Rafael

Deja un comentario