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 baseb
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 centradal
alineación a la izquierdar
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}
dondei
es la columna de inicio yj
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 usarsec
,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ódigot
Posiciona la tabla en la parte superior de la páginab
Posiciona la tabla en la parte inferior de la páginap
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 argumentoH
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 ....
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
Hola Rafael, pásame el código completo para ver qué falta.