LaTeX 8: tablas

Poco a poco vamos avanzando en el conocimiento de LaTeX y después de aprender a insertar imágenes seguimos profundizando en los entornos flotantes más útiles con las tablas.

Las tablas

Una tabla no es más que un conjunto ordenado de datos, y aunque el ejemplo más inmediato que se nos viene a todos a la cabeza es el de una hoja de cálculo, cualquiera de las ocasiones en que vemos datos organizados en filas estamos ante una tabla. Los datos no tienen por qué ser numéricos, como puede suponerse. Se verá en el ejemplo, en el que se diseñará una tabla con una declinación latina.

Después de esta mini introducción de Perogrullo, seguimos.

Igual que las imágenes, las tablas se insertan directamente o bien en medio de un marco flotante que no solo se mueve dentro del documento para organizar su aspecto como mandan los cánones sino que permite alguna funcionalidad más, como el texto al pie, etiquetas para referenciar la tabla, etc.

Sin embargo, hay una gran diferencia con las imágenes, y es que un entorno engloba la tabla y otro entorno proporciona el marco flotante, de manera que se encuentran dos entornos anidados, tabular y table.

El entorno «tabular»

El entorno tabular, al igual que el resto de entornos, se engloba entre las marcas begin y end, así:

\begin{tabular}
\end{tabular}

y es el que define el contenido y aspecto de la tabla. La marca de apertura tiene un argumento obligatorio a continuación en el que se definen el número de columnas, la alineación del texto en las columnas y las líneas verticales que las separan. El método es muy sencillo: entre corchetes se incluyen tantas letras como columnas separadas con una pleca o barra vertical si deben separarse con una línea vertical y sin esta si no hay línea divisoria. Las letras que se deben incluir son l (left) para alinear la columna a la izquierda, c (center) para centrar el texto en la columna o r (right) para alinear a la derecha.

En el ejemplo queremos tres columnas alineadas a la izquierda (una para la lista de casos, otra para el singular y una tercera para el plural) sin división alguna, por lo que las marcas del entorno serían, simplemente,tres eles seguidas:

\begin{tabular}{lll}
\end{tabular}

Al cambiar {lll} por {l|cc}, por ejemplo, se conseguiría una columna alineada a la izquierda separada de la segunda por una línea vertical y, a continuación, dos columnas con el texto centrado. La pleca puede estar en cualquier posición, como en {|c|c|c|c|} (cuatro columnas centradas con líneas verticales delimitando cada columna a ambos lados). Mi experiencia me demuestra que, en cierto sentido, cuantas menos líneas más clara resulta la lectura de la tabla, sobre todo en tablas con texto como estas, así que procura no abusar.

A continuación va la tabla propiamente dicha. Consta, básicamente, de tres elementos:

  • un ampersand (&) que separa el texto de una celda del de la celda contigua,
  • una doble barra ivertida que marca el final de cada fila (), y tantas marcas \hline como sean necesarias intercaladas entre las filas para separar estas con líneas horizontales
  • y, por supuesto, el propio texto de las celdas.

Por lo tanto, con lo visto hasta ahora, una tabla sería algo como:

\begin{tabular}{lll}
  &Singular&Plural\\
  \hline
  Nom.&consul&consules\\
  Voc.&consul&consules\\
  Ac.&consulem&consules\\
  Gen. & consulis & consulum\\
  Dat. & consuli  & consulibus\\
  Abl. & consule  & consulibus\\
  \hline
\end{tabular}

Es una tabla sencilla con el texto alineado a la izquierda y sin divisiones verticales. Dos líneas hacen de separación de los encabezados de las columnas del resto y de límite inferior. Esta es la tercera declinación latina con tema en consonante y sin desinencia en el nominativo singular. Nótese que en las primeras filas el ampersand separa el texto de las celdas directamente, mientras que en las tres últimas hay unos espacios entre estos elementos. Es nada más que para dejar constancia de que ambos modos de proceder son válidos y solamente es la legibilidad la que aconseja el segundo sistema. Fíjate también que la primera fila empieza con & directamente para dejar en blanco el que sería el encabezado de la primera columna.

Ahora bien, el problema que había con las imágenes insertadas tal cual en el medio del texto continúa: no hay posibilidad de variar la posición para permitir mejorar el resultado, y no podemos insertar un pie de foto ni una etiqueta válida para establecer una referencia. Para eso se necesita, como mencioné antes, un entorno flotante que englobe a este.

El entorno «table»

Table es un entorno flotante para situar una tabla en el lugar apropiado en el texto y «contener» elementos asociados a la tabla aunque no formen parte propiamente de esta, como la leyenda o texto bajo la tabla, etiquetas para referenciar, alineación, etc.

En primer lugar está la elección, opcional, del lugar preferente de la tabla con respecto al texto. No querría repetirme mucho, así que te recomiendo que visites el artículo anterior de esta serie para conocer los detalles, pero básicamente consiste en poner entre corchetes, tras la marca de inicio del entorno, un código consistente en h (situar aquí), t (situar al inicio de la página actual o página siguiente), b (situar al final de la página actual o de la página siguiente) y p (situar en página aparte).

A continuación, una orden \centering centrará la tabla horizontalmente y finalmente la tabla propiamente dicha contenida en un entorno tabular (que es el código que está más arriba).

Una vez insertada la tabla, antes de cerrar el entorno table, se pueden introducir la leyenda y la etiqueta, con las órdenes \caption y \label, respectivamente. Ambas incluyen, entre llaves, el texto deseado, bien para ser mostrado bajo la tabla, bien para establecer una referencia cruzada.

Dentro de la leyenda recordemos que se puede incluir cualquier orden que formatee el texto, notas al pie (ver el artículo anterior para detalles sobre cómo incluir notas al pie), etc.

Final

Ahora un ejemplo completo. Para complicarlo todo un poco he incluido elementos de formateo de texto (texto en cursiva y versalitas). En este caso he escogido p como marca de situación de la tabla. Aparecerá en una página aparte, separada del texto, acompañada del resto de declinaciones en las que se ha seguido el mismo sistema.

Además de valernos como ejemplo de tabla de texto, sin valores numéricos, nos servirá para aprender algo de la inserción de caracteres «no estándar», como las vocales con marca de cantidad en lugar de acento. Volveremos sobre esto cuando hablemos de fonética, pero servirá de introducción. Pero por el momento fíjate en la última columna, es decir, el texto entre el segundo & y la doble barra final de las tres primeras filas: dice \textsc{consul\=es}. La primera parte es la indicación de texto en versalitas, que va entre llaves, y en este texto formateado se ve una antibarra con signo igual. Es la marca de sílaba larga latina, la marca de cantidad. La secuencia \=a da como resultado una a larga (esa pequeña raya horizontal sobre la letra).

El código completo que valdrá de ejemplo incorporando todo lo explicado hasta ahora es el siguiente:

\begin{table}[p]
  \centering
    \begin{tabular}{lll}
      &\textit{Singular}&\textit{Plural}\\
      \hline
      \textit{Nom.}&\textsc{consul}&\textsc{consul\=es}\\
      \textit{Voc.}&\textsc{consul}&\textsc{consul\=es}\\
      \textit{Ac.}&\textsc{consulem}&\textsc{consul\=es}\\
      \textit{Gen.}&\textsc{consulis}&\textsc{consulum}\\
      \textit{Dat.}&\textsc{consul\=i}&\textsc{consulibus}\\
      \textit{Abl.}&\textsc{consule}&\textsc{consulibus}\\
      \hline
    \end{tabular}
    \caption{\textit{Tercera declinación con tema en consonante y
    sin desinencia en el nom. sing (masculinos y femeninos):
    \textsc{consul, consulis} `cónsul'}.}\label{tbl:3declcons}
\end{table}

Y el resultado final tras la compilación es:

Puede verse la alineación, las líneas divisorias horizontales, la cursiva, las versalitas y la marca de vocal larga, así como el texto indicativo bajo la tabla que a su vez incluye algunas de estas marcas de formato.

Y esto es todo por el momento. Más sobre \LaTeX en próximas entregas.

Anuncios

LaTeX 7 – imágenes

Ya han pasado algunos capítulos de esta serie y ya se puede escribir un documento básico, con un preámbulo y ciertos elementos como texto en negrita o cursiva, citas, notas al pie, etc. Introduciremos ahora unos nuevos elementos que serán, no solo útiles en sí mismos, sino una excusa para aprender algo más acerca de los entornos. Me refiero a las imágenes y a las tablas.

Las imágenes

Las imágenes (igual que las tablas, por cierto), pueden ser incluidas tal cual, a pelo, o dentro de un entorno que proporcionará algunas funcionalidades extra.

Insertar una imagen

Para insertar una imagen son necesarias dos cosas: la imagen en sí (obviamente) y cargar un paquete en el preámbulo que permita tal cosa.

Lo primero, la imagen, ha de estar en el mismo directorio en el que está el archivo .tex a la hora de compilar o, si no, en un directorio conocido que hay que especificar cuando se inserte la imagen.

Lo segundo, en el preámbulo se carga el paquete graphicx:

\usepackage{graphicx}

Y en el lugar en el que se quiere insertar la imagen se especifica el siguiente código:

\includegraphics{imagen.png}

Y ya está, con esto quedará la imagen insertada en el texto y \LaTeX se encargará de ajustarla lo mejor posible. Aún así, faltan cosas.

Una de esas cosas que faltan es la posibilidad de ajustar el tamaña relativo de la imagen respecto al texto. Para eso se añaden parámetros opcionales (entre corchetes) al código anterior especificando la anchura de la imagen (width) respecto a la anchura del área de texto (textwidth). Queda como sigue:

\includegraphics[width=0.75\textwidth]{./fotos/imagen.png}

En este ejemplo la imagen llamada imagen.png, guardada en la carpeta fotos dentro del mismo directorio del archivo .tex, se redimensionará a un 75% del ancho del texto.

Otra cosa que se puede añadir, y algo además muy útil, es poder indicar si la imagen ha de preferirse en la parte superior o inferior de la página, si se desea forzar que aparezca en la posición en la que está el código respecto al resto del texto, etc. Para mí, sobre todo, está también la posibilidad de incluir una leyenda bajo la imagen con una numeración (algo como Figura 3: Nudos marineros.) y una etiqueta para poder referirnos a ella en las referencias cruzadas. Para ello hay que insertar la imagen dentro de un entorno que sirva de «contenedor».

El entorno «figure»

Exactamente igual al entorno quote usado para las citas literales (ver la tercera entrada de esta serie) y a cualquier otro entorno que se pueda usar en \LaTeX, este se engloba entre órdenes de apertura y cierre:

\begin{figure}
  Aquí todo lo referente a la imagen
\end{figure}

Y es dentro de estas dos órdenes donde todo lo necesario para la definición de la imagen irá insertado. Para empezar, la misma imagen, con su enlace, tamaño en relación al texto, etc. Pero también, como dije antes, alguna cosa más.

Justo después de la marca de apertura del entorno, una marca opcional (y por lo tanto entre corchetes) indica la posición de la imagen en relación a la página. Esta posición se indica con los códigos:

  • h : la imagen se posiciona aquí (here) en relación al texto circundante, es decir, después del párrafo precedente y antes del párrafo siguiente. En realidad, es demasiado restrictivo y \LaTeX lo cambiará automáticamente por ht.
  • t : la imagen va en la parte superior de esa página (top) o la siguiente, independientemente del lugar en el que se escriba el código en relación al texto circundante.
  • b : la imagen se sitúa en la parte inferior de esa página (bottom) o la siguiente.
  • p : se crea una página a propósito para la figura.

Estos códigos pueden escribirse juntos por orden de preferencia para indicar las opciones posibles. Recuerda que el objetivo es conseguir el mejor resultado, por lo que \LaTeX puede escoger modificar estas preferencias con este objetivo, incluso mostrando la imagen en la página siguiente (los entornos son «entornos flotantes», se mueven). Para forzar la posición escogida a pesar de que el programa entienda que no es óptimo se usa !. Esto lo que hace es ignorar las restrictiones autoimpuestas de un máximo de 2 objetos en el comienzo de la página, un máximo de 1 objeto al final de la página y un máximo general, obviamente, de 3 objetos. La opción por defecto, sin especificar nada, es tbp. Mi elección, en muchos casos, es \begin{figure}[htb].

Ojo: hay que entender que estos entornos flotantes pueden moverse según el tamaño de los párrafos adyacentes, el tamaño de la imagen, etc., por lo que siempre es buena idea hacer referencia a las imágenes, o figuras, con una referencia cruzada (si tienes dudas sobre cómo funcionan las referencias dentro de un texto, échale un vistazo al cuarto artículo de esta serie, en el apartado Referencias cruzadas), de manera que no importa dónde esté la imagen, siempre habrá un modo sencillo de encontrarla.

Ojo (segunda parte): el arte de colocar las figuras en su sitio es eso, un arte, y no se puede tratar todo de la misma manera, el objetivo es la legibilidad y coherencia en un texto, no el que así ya vale o es que me gusta más. De hecho, el manual de KomaScript, un conjunto de clases del que hablaré en su momento, menciona que

Estos entornos flotantes son a menudo mal entendidos por los principiantes, que suelen buscar una posición fija para las figuras en el texto. Sin embargo, como estos entornos están referenciados en el mismo texto, en la mayoría de los casos esto no es necesario. Además, tampoco es razonable, porque estos objetos solo se pueden incluir en una página cuando hay espacio suficiente. Si no es el caso, el objeto debe moverse a la siguiente página dejando probablemente un gran espacio en blanco en la página precedente.

A menudo uno se encuentra los mismos argumentos opcionales para todos los objetos flotantes, lo que tampoco tiene sentido. En esos casos sería mucho mejor variar el parámetro estándar de manera general.

Traducción propia.

Por lo tanto, aunque no lo parezca al principio, en realidad el funcionamiento general de \LaTeX suele ser, como en casi todo, el mejor.

Ya está definido el entorno, su posición preferente y la imagen que contendrá. Pero esta imagen aparecerá en línea con el texto, es decir, alineada a la izquierda (por más que el texto esté justificado). Para centrarla, que es lo debido, incluiremos una orden \centering antes de la orden con la que se inserta la imagen.

Finalmente, después de la imagen, el texto que la acompaña o leyenda. El texto que se escriba irá precedido, si se usan las opciones para español, de la palabra Figura seguida de un número ordinal que permitirá identificar la imagen entre el resto, así como incluirla en el Índice de figuras si lo hay. Para insertar una leyenda se usa la orden \caption{texto bajo la imagen}.

Este texto aparecerá centrado y bajo la imagen. Hay maneras de cambiar esta apariencia, pero ya será complicar mucho las cosas.

Lo único que queda para tener una imagen perfectamente insertada en el texto es una etiqueta que permita que las referencias cruzadas encuentren un punto de destino. Eso, como vimos, se logra usando \label.

El código resultante de tanto añadir cosas es el siguiente:

\begin{figure}[ht]
  \centering
  \includegraphics[width=0.9\textwidth]{./imagenes/rustica.png}
  \caption{Escritura rústica romana.}
  \label{rust}
\end{figure}

Y ya ves el resultado. Si las opciones de idioma del preámbulo son distintas, la imagen será nombrada de forma distinta de acuerdo al idioma seleccionado.

Tras insertar la imagen, las referencias Ver figura \ref{rust} en la página \pageref{rust}. se verán como «Ver figura 2 en la página 17».

Notas al pie en la leyenda

Algo que no es muy obvio a simple vista es la manera de insertar una nota al pie como en el ejemplo de la foto:

El problema con las notas al pie es que no pueden estar dentro del entorno figure, pero el texto que figura al pie sí que debe estar dentro. ¿Cómo hacer entonces?

Hay que insertar una «pareja de marcas» en la que una, la interna al entorno, llame al texto de la nota al pie. En el lugar en el que se desea que aparezca la nota el código \footnotemark llama al primer lugar en el que se encuentre su «pareja», \footnotetext{Texto de la nota}. En un caso así, el código quedaría como sigue:

\begin{figure}[ht]
  \centering
  \includegraphics[width=0.9\textwidth]{./imagenes/mayuscula.png}
  \caption{Escritura mayúscula romana.\footnotemark}
  \label{mays}
\end{figure}
\footnotetext{Imagen extraída de Wikipedia.}

Nótese que \footnotemark está dentro de los corchetes que definen el pie de foto, o sea que funciona exactamente como una cita al pie normal y corriente. No deben mezclarse estas «parejas» de etiquetas, pues el texto seleccionado es el primero que aparezca dentro de una marca footnotetext, de modo que lo más sensato es ponerlo justo después del entorno flotante, no todo junto al final del documento.

Iba a decir que no hay mucho más que decir, pero no es verdad. Solo la parte del manual de KomaScript con las opciones para formatear la leyenda de la imagen ocupa un buen número de páginas, lo que nos da una idea de la potencia disponible. Pero estamos, todos nosotros, empezando en esto, así que paciencia.

Como siempre, esta es una entrada original de Bokunoshumi, en una de las series de artículos que más me gustan. Espero que os sea de alguna utilidad.

LaTeX 3: formatos de texto

Estamos ya en la tercera entrega de la serie dedicada a \LaTeX para las humanidades. Con esta remataremos la parte más sencilla, que nos permitirá hacer una edición básica, aunque completa, de un texto puro, como una novela. Esta entrada será un poco larga, pero a cambio contiene mucha información nueva.

Anteriormente hemos creado el documento y le hemos dado una estructura lógica. Siguiendo esta dirección «de dentro hacia afuera» veremos primero cómo formatear partes del texto, y dejaremos para más adelante cómo agregar un índice al principio (o al final) y la página de título. Comencemos: Seguir leyendo