Manual de LaTeX/Escribiendo texto/Tablas

De Wikilibros, la colección de libros de texto de contenido libre.

En los libros escolares, las tablas son normalmente utilizadas para recapitular los resultados de una investigación. En general es necesario manejarlas bien para realizar documentos de buena calidad.

La gestión de tablas no es muy intuitiva. Las tablas de base son fáciles y presentables, utilizando la misma lógica que en HTML, pero una tabla un poco más elaborada requiere de cierto aprendizaje ya que no es muy intuitiva su construcción.

El entorno tabular[editar]

Recordemos algunos conceptos ya explícitos.

Entorno
Un entorno es una declaración particular destinada a la composición de texto en un estilo específico. Todos los entornos empiezan y terminan de la misma manera:
\begin{nombre-entorno}
...
...
\end{nombre-entorno}
Entorno tabular
El entorno tabular es otro tipo de entorno, concebido para colocar los datos en las tablas. Ciertos parámetros son necesarios después de la declaración del entorno para describir la alineación de cada columna. No es necesario indicar el número de columnas porque se deduce a partir de los parámetros introducidos. De la misma manera, se pueden introducir líneas verticales entre columnas. Los símbolos siguientes están disponibles para describir las columnas de una tabla.
  • l : Columna alineada a la izquierda
  • c : Columna centrada
  • r : Columna alineada a la derecha
  • p{anchura} : Columna de anchura fija, justificada y con sangria; El texto esta posicionado en lo alto de la celda.
  • m{anchura} : Como en el caso anterior pero el texto esta centrado verticalmente.
  • b{anchura} : Como en el caso anterior, pero el texto esta posicionado en la parte baja de la celda.


Nota:
los parámetros m y b necesitan la utilización de la extensión array

  • | : línea vertical
  • || : doble línea vertical
Una vez en el entorno,
  • & : Separador de columna.
  • \\ : Principio de una nueva línea.
  • \hline : Línea horizontal.

A tener en cuenta, que los espacios insertados entre estos comandos son inútiles, pero facilitan la lectura.

Tabla de base[editar]

Este ejemplo muestra como crear una simple tabla en . Es una tabla tres por tres, pero sin ninguna línea.

\begin{tabular}{ l c r }
   1 & 2 & 3 \\
   4 & 5 & 6 \\
   7 & 8 & 9 \\
 \end{tabular}

Modificando el ejemplo anterior añadiendo algunas líneas verticales:

\begin{tabular}{ l | c || r | }
   1 & 2 & 3 \\
   4 & 5 & 6 \\
   7 & 8 & 9 \\
 \end{tabular}

Para añadir las líneas horizontales superiores e inferiores:

\begin{tabular}{ l | c || r | }
 \hline			
   1 & 2 & 3 \\
   4 & 5 & 6 \\
   7 & 8 & 9 \\
 \hline  
 \end{tabular}

Y finalmente, para añadir líneas centradas entre todas las filas (ver la utilización del entorno center):

\begin{center}
   \begin{tabular}{ l | c || r | }
     \hline
     1 & 2 & 3 \\ \hline
     4 & 5 & 6 \\ \hline
     7 & 8 & 9 \\
     \hline
   \end{tabular}
 \end{center}

Texto en las tablas[editar]

Los algoritmos de para generar las tablas tienen ciertas imperfecciones. Una de ellas es que no hará un salto de línea dentro de una celda, aunque se desborde la anchura de la página. Para las columnas que contendrán una cierta cantidad de texto, se recomienda emplear el atributo p e indicar la anchura deseada de la columna (aunque esto pueda obligar a efectuar varios ajustes antes de obtener el resultado previsto).

Antes de continuar, tenemos que presentar el sistema de medidas que emplea. Es muy flexible para que se pueda elegir entre toda una variedad de unidades de medida

  • pt : punto anglosajón, 1/72 de pulgada ;
  • mm : milímetro ;
  • cm : centímetro ;
  • in : pulgada (2,54 cm) ;
  • ex : altura d'x , altura de una letra sin el trazo vertical ni el palo inferior de la fuente utilizada;
  • em : cuadratín, grosso modo la anchura de una M (capital) en la fuente utilizada.

Existen comandos conocidos con el nombre de commandos de longitud, que juegan el rol de variable, que no tienen valores fijos porque dependen de la configuración de la clase y/o del preámbulo normal del documento. Los mas útiles son:

  • \parindent : El tamaño del desplazamiento a la derecha ;
  • \baselineskip : Distancia vertical entre las líneas ;
  • \parskip : Espacio suplementario entre los párrafos ;
  • \textwidth : La anchura de una línea de texto en el entorno local (por ejemplo, las líneas son generalmente mas estrechas en el resumen que en el texto normal);
  • \textheight : La altura del texto en la página;

Los ejemplos que se dan a continuación son bastante largos debido a que se ilustran lo que se produce cuando hay un fragmento de texto en las celdas de una tabla. Así, en lugar de reproducirlo en la página, id a [1] para poder consultar directamente el fichero de ejemplo wrapped.tex y luego mirar el resultado.

El entorno tabular*, control de la anchura de una tabla[editar]

Es fundamental una pequeña extensión de la versión básica de la tabla, ya que exige un parámetro suplementario (antes de las descripciones de columnas) para indicar la anchura deseada para la tabla.

\begin{tabular*}{0.75\textwidth}{ | c | c | c | r | }
  \hline
  label 1 & label 2 & label 3 & label 4 \\
  \hline 
  item 1  & item 2  & item 3  & item 4  \\
  \hline
\end{tabular*}

Sin embargo, esto no se parace a lo que se espera. Las columnas tienen siempre su anchura normal (justo lo suficientemente larga para adaptar su contenido mientras que las líneas son tan anchas como la anchura deseada de la tabla) La tabla no tiene una buena apariencia. La razón de este desorden es debido a que se tiene que insertar un espacio suplementario en la columna. , tiene una longitud en caucho, que a diferencia de otras, no son fijas y puede dinámicamente decidir el momento en el que deben ser fijas. Así, la solución al problema propuesto es:

\begin{tabular*}{0.75\textwidth}{@{\extracolsep{\fill}} | c | c | c | r | }
  \hline
  label 1 & label 2 & label 3 & label 4 \\
  \hline 
  item 1  & item 2  & item 3  & item 4  \\
  \hline
\end{tabular*}

En el código se utiliza la construcción @{...} que se coloca al principio de la columna. Mas tarde se darán los detalles de este elemento. En el interior de estas construcciones, el comando \extracolsep, exige una anchura como parámetro. Se habría podido utilizar una anchura fija, sin embargo, utilizando una longitud elástica, es decir, \fill, las columnas se espacian automáticamente de manera uniforme.