Curso de L^{A}TEX Curso 3: Tablas e imágenes

Isabelle HURBAIN isabelle.hurbain@free.fr

Traducción por Jorge Bernal ”Koke” koke@sindominio.net

October 10, 2003

Contents

1 Introducción 1

2 Tablas 1

3 Imágenes 3

4 Objetos flotantes 4

5 En la siguiente entrega 6

1 Introducción

En este curso, hablaremos sobre tablas e imágenes, y sobre el concepto de objetos flotantes.

2 Tablas

A menudo es útil poner tablas en nuestros documentos. Es realmente fácil hacerlo con L^{A}TEX: veamos como.

Éste podría ser un primer ejemplo :

“begin–tabular˝ –cc˝ Fruta & Color““ Plátano & Amarillo““ Uva & Violeta “end–tabular˝

Que se transforma en :

Fruta  Color
Plátano Amarillo
Uva  Violeta

Cierto, no es muy impresionante, desde luego. El entorno de la tabla está definido por “begin–tabular˝ y “end–tabular˝ . El argumento –cc˝ le dice a L^{A}TEX que queremos dos columnas, con el texto centrado en ellas. El símbolo & delimita las columnas y el símbolo ““ delimita las filas.

Puede parecer un poco complicado pero una vez que uno se acostumbra, es realmente potente y mucho más rápido que cualquier GUI.

Sin embargo, es un tanto simple por el momento.

Algo como esto sería mucho más agradable :

Fruta  Color
Plátano Amarillo
Uva  Violeta

Y no es mucho más complicado. Habrá que añadir los delimitadores de columna — en la definición de la tabla, y las líneas horizontales con “hline, de la siguiente manera:

“begin–tabular˝ –—c—c—˝ “hline Fruta & Color““ “hline “hline Plátano & Amarillo““ Uva & Violeta““ “hline “end–tabular˝

Por supuesto, podemos usar tantos — y “hline como queramos. Podríamos fácilmente hacer algo así (¡intentalo como ejercicio!): Of course, you can use as much — and “hline you wish, you could easily do something like this (try it as an exercise!):

Fruta  Color
Plátano Amarillo
Uva  Violeta

También se pueden probar otras alineaciones en la tabla (en lugar de c): l alinea a la izquierda, r alinea a la derecha, y p–3cm˝ permite obtener varias líneas de texto en una misma celda. Esta celda tiene una anchura de 3cm como se puso en el argumento. Un ejemplo de esta característica sigue abajo :

Título Esto es el título Contenido ¡Esto es el contenido de una

celda de 5cm! ¿A que es sencillo?

y está hecho así :

“begin–tabular˝ –—c—p–5cm˝ —˝ “hline Título & Esto es el título ““ “hline Contenido & ¡Esto es el contenido de una celda de 5cm! ¿A que es sencillo?““ “hline “end–tabular˝

Por supuesto, es posible centrar la tabla, añadiendo un “begin–center˝ al comienzo y un “end–center˝ al final de la tabla.

La tabla no esta aun muy bien situada (demasiado cerca del texto), y puede extraviarse (al final de la página por ejemplo). Veremos en la sección 4 como arreglarlo.

Hay otros formatos de tablas, como longtable o tabularx. longtable permite poner una tabla en varias páginas, y tabularx permite crear tablas de anchura fija con una dimensión “flotante”. Lee el “L^{A}TEX Companion” para más información sobre este tema.

3 Imágenes

También podemos poner imágenes en nuestros documentos. La primera cosa que hay que hacer es convertir las imágenes a EPS (Encapsulated PostScript^{1}. Para conseguir esto hay distintas formas :

• convertirlas directamente desde otro formato (con el Gimp por ejemplo): guardar la imagen con extensión .eps, o elegir el formato PostScript (sin olvidar marcar la casilla “Encapsulated PostScript”):

• si creamos nuestros propios gráficos, podemos guardarlos directamente en .eps. Para dibujos vectoriales, podemos usar tgif o xfig, que exportan bien a EPS. OpenOffice.org parece hacerlo bien, salvo que hay que decirle que exporte sólo la selección y no la página entera. Además, tuve algún problema con las fuentes... así que cuidado.

• cualquier solución es usable, pero debemos asegurarnos que el EPS resultante tenga una “bounding box” (caja de límite) o L^{A}TEX se quejará violentamente.

1PostScript Encapsulado (N. del T.)

Para insertar imágenes hay que poner el comando

“usepackage[dvips]–graphicx˝

en el preámbulo. Éste le dice a L^{A}TEX que habrá imágenes en formato EPS en el documento y que el paquete para renerizarlas es dvips.

Para insertar una imagen pondremos

“includegraphics–foo.eps˝

para insertar foo.eps.

Se puede redimensionar la imagen con los ajustes width, height y scale. Podemos especificar una anchura y/o una altura para nuestra imagen (si solo se especifica una de las dos, la imagen conservará su proporción), y scale permite usar un porcentaje del tamaño real de la imagen. Se usa asi:

“includegraphics[width=8cm]–foo.eps˝

4 Objetos flotantes

Los objetos flotantes son una manera de integrar las tablas e imágenes mucho más suavemente. La idea es decirle a L^{A}TEX “Vale, me gustaría poner esta imagen alrededor de este sitio y esta tabla alrededor de ese otro, ahora hazlo correctamente”. Además, nos dan características interesantes como un título, una etiqueta para referenciar y listas de figuras y tablas.

Para tener una tabla flotante en nuestro documento usaremos

“begin–table˝ –!ht˝

al comienzo y

“end–table˝

al final de la tabla.

Eso le dirá a L^{A}TEX que ponga la tabla “todo lo que pueda” (!) “aquí” (h) o “al comienzo de una página” (t).

La tabla será posicionada considerando estos ajustes; también se puede usar b para ponerla al final de una página, p p para situarla en una página separada que contanga sólo objetos flotantes.

Para tener una tabla flotante en nuestro documento usaremos

“begin–figure˝ –!ht˝

al comienzo y

“end–figure˝

Fruta  Color
Plátano Amarillo
Uva  Violeta

Table 1: Correspondencia entre frutas y sus colores

al final de la imagen.

La sintaxis es exactamente igual que para table.

Así el objeto flotante está flotando, por lo que no podemos decir en nuestro texto “Podemos ver los resultados abajo… ” e insertar una imagen, ya que no podemos saber si L^{A}TEX la pondrá debajo del texto o en otro lugar.

La solución para esto es usar referencias.

Lo primero que hay que hacer es poner un pequeño título a nuestro objeto. Lo haremos poniendo

“caption–El título de la figura˝

dentro del entorno de la figura o de la tabla. L^{A}TEX automáticamente generará un número (al igual que con los capítulos) para permitir las referencias. Para obtener ese numero podemos usar

“label–img:imgref˝

poniéndolo despues del caption.

El comando “label da un nombre a una parte del documento (en este caso, una tabla o imagen) para permitir una referencia. Como ejemplo, miremos a la tabla 1.

Que está hecho así:

“begin–table˝ “begin–center˝ “begin–tabular˝ –—c—c—˝ “hline Fruta & Color ““ “hline Plátano & Amarillo ““ “hline Uva & Violeta““ “hline “end–tabular˝ “caption–Correspondencia entre frutas y sus colores˝ “label–tab:ejemplo˝ “end–center˝ “end–table˝ y la referencia se hace usando

“ref–tab:ejemplo˝

Si en algun caso sucede que queremos tener la imagen o la tabla de la que hablamos en una sección en concreto (Me gusta tener todos mis gráficos juntos en una sección en un informe de laboratorio, por ejemplo). podemos forzar el vaciado (“flushing”) de todos los objetos flotantes usando la extension placeins que provee el comando FloatBarrier. Para usarlo ponemos

“usepackage–placeins˝

en el preámbulo del documento y usamos FloatBarrier donde quiera qu vayamos a vaciar el buffer de objetos flotantes. Sin embargo, hay que tener cuidado : ya que va contra las reglas de “flotado” de L^{A}TEX podríamos llevarnos alguna mala sorpresa (por ejemplo, una página medio vacía antes de un objeto).

5 En la siguiente entrega

En la siguiente entrega^{2} hablaremos sobre la potencia real de L^{A}TEX: escribir fórmulas matemáticas.

2En el momento de la traducción no había más entregas disponibles. Es posible que hable con la autora y siga el curso por mi cuenta. Los cursos estarán en http://sindominio.net/koke y se anunciaran en el weblog http://www.amedias.org/ (N. del T.)