Curso no convencional de LaTeX: insertando figuras

En las próximas entregas del cursito de LaTeX vamos a desmenuzar lo que explicamos en la entrada anterior en trocitos que se digieran mejor. Concretamente, vamos a empezar por las figuras. Voy a intentar empoderaros para que juguéis sin miedo, no sé si lo conseguiré.

Empecemos


Decíamos el otro día que para insertar figuras nos hacían falta dos cosas:

  • El paquete graphicx1
  • El comando \includegraphics[opciones]{ruta}. Aprovechamos para aprender que los parámetros obligatorios van entre llaves y los opcionales entre corchetes.

Vamos a dividir esta entrada en dos partes: insertar una única figura e insertar una figura formada por subfiguras.

Una sola figura

Añadir una figura es superfácil. Solo tenemos que hacer:

\includegraphics{ruta_a_la_figura}

No hace falta ni siquiera que le pongamos la extensión, él buscará la imagen correspondiente. Evidentemente, esto tiene un problema: nos pondrá la imagen ahí mismo y de su tamaño original. Lo primero aun no lo podemos solucionar pero el tamaño podemos ajustarlo con las opciones.

Opciones

Las opciones son lo que le pasamos al comando entre los corchetes y nos permiten controlar cosas de la imagen. Aquí os recopilo las que yo uso más:

  • height: la altura que debe tener la figura, escalará el gráfico hasta que tenga esta altura
  • width: la anchura que debe tener la figura, escalará el gráfico hasta que tenga esta anchura
  • scale: cuánto hay que escalar la figura, sobre 1
  • angle: cuánto hay que girar la figura, en grados

Por ejemplo, si queremos reducir la figura a la mitad y girarla 90 grados hacemos:

\includegraphics[angle=90, scale=0.5]{ruta_a_la_figura}

Es interesante utilizar height y width en combinación con las longitudes que define LaTeX, por ejemplo, para que una figura tenga la anchura del texto haríamos:

\includegraphics[width=\textwidth]{ruta_a_la_figura}

Podemos modificar también esta longitud, por ejemplo, para que sea un 70% de la anchura del texto:

\includegraphics[width=0.7\textwidth]{ruta_a_la_figura}

La ventaja de este sistema es que si cambiamos los márgenes la figura se adaptará sola. Ahora vamos a ver cómo gestionamos la posición de la figura.

Figuras flotantes

En la pasada entrada os hablé de los objetos flotantes y de cómo convertíamos una figura en flotante al usar el entorno figure. Esto nos permite, aparte de ponerle un pie de figura y una referencia, decidir su posición en la hoja.

También tenemos la opción de rodear la imagen de texto con el entorno wrapfigure, os lo dejo de deberes.

Posición

Cuando digo decidir no digo la versión Word de decidir. LaTex de por sí pone las figuras donde mejor quedan (según él) y nosotros le damos sugerencias de lo que preferimos. Podemos obligarle a poner las figuras en determinado lugar, pero no suele ser muy buena idea, es mejor reservar esta opción para los casos extremos.

Esta es la sintaxis:

\begin{figure}[posición]
\includegraphics[opciones]{ruta}
\end{figure}

La opción posición puede tomar estos valores:

  • h (here), le decimos que ponga la imagen más o menos aquí
  • t (top), preferiblemente en la parte superior de la página
  • b (bottom), preferiblemente en la parte inferior de la página
  • p (page), que junte los objetos flotantes en una página
  • ! que ignore sus reglas internas de posicionamiento
  • H que ponga la imagen justo aquí, similar a h! y con muchas papeletas de hacer cosas rarunas

Estas opciones se pueden combinar, por ejemplo, tb solo probará arriba y abajo. El orden no afecta.

Otra cosa a tener en cuenta es la alineación de la figura. Por defecto se alinean a la izquierda, podemos cambiarla con los siguientes comandos:

  • \centering: para centrar
  • \raggedleft: para alinear a la derecha
  • \raggedright: para alinear a la izquierda

que pondríamos dentro del entorno figure antes de insertar la imagen:

\begin{figure}[posición]
\centering
\includegraphics[opciones]{ruta}
\end{figure}

Pie de figura y referencia

Como hemos dicho, el entorno figure nos permite también poner un pie de figura y una etiqueta a la figura:

\begin{figure}[posición]
\includegraphics[opciones]{ruta}
\caption{Pie de figura}
\label{etiqueta}
\end{figure}

La etiqueta sirve para hacer referencia a la figura en el texto con el comando \ref{etiqueta}, por ejemplo:

\begin{figure}[h]
\includegraphics[scale=0.7]{Figuras/gatos}
\caption{Unos gatos molones}
\label{fig:gatos}
\end{figure}

Como se ve en la Figura \ref{fig:gatos}, hay gatos negros y blancos

LaTeX nos numerará las figuras correctamente el solito y citará la figura correspondiente cuando se lo pidamos.

Una idea inteligente es etiquetar las cosas de manera que luego no nos volvamos locos porque no sabemos si una determinada etiqueta hace referencia a una ecuación, a una tabla o a un capítulo. Cada uno aquí tiene sus maneras, una opción podría ser:

  • fig: para las figuras
  • eq: para las ecuaciones
  • sec: para las secciones

Tampoco hay que obsesionarse, claro, mientras seamos coherentes.

Sobre formatos

Una última nota antes de pasar a hablar de múltiples figuras. Cuando hablábamos de compiladores dijimos que LaTeX se puede compilar a dvi y pdf dependiendo de si usamos latex o pdflatex (o las otras opciones con y sin la). Para las imágenes esto es importante: latex solo compilará si las imágenes están en formato eps; pdflatex, en cambio, acepta pdf, png y jpg.

El caso del formato eps al compilar a pdf es especial, técnicamente no metemos la imagen en eps, sino que por detrás se llama al programa epstopdf, se convierte a pdf y se inserta. En general se hace solo, pero depende del programa, Pandoc, por ejemplo, no lo hace. Os lo digo porque tengo compañeros de curro convencidísimos de que ellos meten las imágenes en eps en sus documentos a pesar de que tienen una carpeta llena de pdfs con nombres del tipo figure-eps-converted-to.pdf. Y les gritan a los otros en plan: ¿Pero cómo metes eso en pdf ? ¿No ves que pierdes calidad?

Una cosa interesante de epstopdf es que lo podemos usar aparte en la terminal, por ejemplo:

epstopdf archivo.eps

nos creará archivo.pdf. Aquí hice un bucle y todo que me convertía todas las imágenes de la carpeta.

La fiesta de las figuras

Ahora vamos a ver cómo hay que hacer si queremos incluir una figura formada por subfiguras, es decir, que un grupo de figuras que van juntas y comparten pie de figura. Para esto se usaba primero el paquete subfigure, luego subfig y ahora se supone que debe usarse subcaption. Resulta que subfig tiene problemas con hyperref (el paquete de hacer hipervínculos) y subcaption no. Además, subcaption no es compatible con ninguno de los dos anteriores.

El paquete subcaption define el entorno subfigure, que se usa a su vez dentro del entorno figure. Tiene esta pinta:

\begin{subfigure}[posición]{ancho}
% Contenido
\end{subfigure}

Dentro del entorno subfigure escribimos exactamente lo mismo que pondríamos dentro del entorno figure.

Por ejemplo, si quisiéramos poner dos imágenes en paralelo haríamos algo así:

\documentclass{article}

% Necesitamos los paquetes graphicx, caption y subcaption
    \usepackage{graphicx}
    \usepackage{caption}
    \usepackage{subcaption}

\begin{document}

    \begin{figure}
        \centering
        \begin{subfigure}[h]{0.45\textwidth} 
            \includegraphics[width=\textwidth]{figura1}
            \caption{Pie de figura 1}
            \label{fig:figura1}
        \end{subfigure}       
        \begin{subfigure}[h]{0.45\textwidth} 
            \includegraphics[width=\textwidth]{figura2}
            \caption{Pie de figura 2}
            \label{fig:figura2}
        \end{subfigure}

        \caption{Pie general}
    \end{figure}

\end{document}

Si os fijáis, no hay separación entre el fin del primer entorno subfigure y el inicio del segundo, si ahí dejamos una línea en blanco, la siguiente figura en lugar de ponerla en paralelo la pondrá debajo. Ahí en medio también podemos decirle cómo de separadas queremos las figuras, pero para eso necesitamos aprender primero cómo funciona el espacio blanco en LaTeX y eso es tema para otro día.

De momento tenéis referencias y manuales enlazados para que cambiéis las opciones porque, ya sabéis, que si hurgar no se aprende.

¡Espero vuestros comentarios!

Referencias

Packages in the `graphics’ bundle (pdf)

LaTeX/Importing Graphics en Wikibooks

Which graphics formats can be included in documents processed by latex or pdflatex? en StackExchange

Inserting Images en ShareLaTeX

How to influence the position of float environments like figure and table in LaTeX? en StackExchange

subcaption vs. subfig: Best package for referencing a subfigure en StackExchange


  1. El paquete graphicx sustituye al paquete graphics y los ayuda a la hora de meter las imágenes y compilar. 
Anuncios

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s