Inserting Images
Las imágenes son elementos esenciales en la mayoría de los documentos científicos. LaTeX provee varias opciones para manejar imágenes y hacerlas lucir exactamente como las necesitas. En este artículo se explica como incluir imágenes en los formatos más comunes, como hacerlas más pequeñas o más grandes, y como añadir referencias a las imágenes dentro del documento.
Introducción
En seguida un ejemplo sobre como importar una imagen en LaTeX.
\documentclass{article}
\usepackage{graphicx}
\graphicspath{ {images/} }
\begin{document}
The universe is immense and it seems to be homogeneous,
in a large scale, everywhere we look at.
\includegraphics{universe}
There's a picture of a galaxy above
\end{document}
Latex no tiene la capacidad de manipular imágenes por sí mismo, por esa razón se debe importar el paquete graphicx. Para usar dicho paquete añade la siguiente linea en el preámbulo de tu documento
\usepackage{graphicx}
El comando \graphicspath{ {images/} }
le indica a LaTeX que
las imágenes están guardadas en una carpeta llamada images bajo el
directorio actual.
El comando \includegraphics{universe}
es el que se encarga de
incluir la imagen en el documento. Aquí, universe es el nombre del archivo
de imagen, sin la extensión; así que universe.PNG se convierte en
universe. El nombre del archivo de imagen no debe contener espacios en
en blanco ni múltiples signos de puntuación.
Note: Se puede introducir la extensión del archivo, pero es recomendable omitirla. Si la extensión se omite esto provoca que LaTeX busque todos los formatos soportados. Para más detalles consulta la sección Generando imágenes en alta y baja resolución.
La ruta a la carpeta de imágenes
Cuando se trabaja en un documento que incluye varias imágenes una posibilidad para mantener tu proyecto organizado es guardarlas una carpeta por separado.
En el ejemplo de la introducción esto se logra mediante el comando \graphicspath{ {images/} }
que le dice a LaTeX que las
imágenes las debe buscar en la carpeta images. La ruta es relativa al
directorio de trabajo actual.
La ruta hacia la carpeta puede ser relativa (recomendado) si la carpeta está en el mismo directorio que el archivo .tex principal o en alguna de las subcarpetas, o puede ser absoluta si se requiere especificar exactamente la ruta. Por ejemplo:
%Ruta absoluta en el formato de Windows:
\graphicspath{ {c:/user/images/} }
%Ruta absoluta en formato tipo Unix (Linux, OsX)
\graphicspath{ {/home/user/images/} }
Nótese que este comando requiere una barra derecha /
al final
y que la ruta se debe poner entre dos pares de llaves.
También es posible establecer múltiples rutas si es que guardaste las imágenes en más de una carpeta para mayor organización. Por ejemplo, si hay dos carpetas, una llamada images1 y la otra images2, usa el comando
\graphicspath{ {images1/}{images2/} }</code>
Si no se especifica ninguna ruta LaTeX buscará las imágenes en la carpeta actual, donde está guardado el archivo .tex.
Cambiar el tamaño y rotar una imagen
Si se quieren especificar parámetros adicionales al momento de importar una imagen en LaTeX para modificar la anchura, altura, posición, etc de la imagen, esto es posible por medio de la siguiente sintaxis:
Overleaf is a great professional tool to edit online,
share and backup your \LaTeX projects. Also offers a
rather large help documentation.
\includegraphics[scale=1.5]{lion-logo}
El comando \includegraphics[scale=1.5]{lion-logo}
incluye la
imagen lion-logo en el documento, el parámetro extra scale=1.5
escala la imagen a 1.5 de su tamaño original.
También es posible redimensionar la imagen a una altura y anchura determinadas.
Overleaf is a great professional tool to edit online,
share and backup your \LaTeX projects. Also offers a
rather large help documentation.
\includegraphics[width=3cm, height=4cm]{lion-logo}
Como probablemente ya haz adivinado, los parámetros dentro de los corchetes [width=3cm, height=4cm]
definen el ancho y alto de la imagen. Pueden usarse diferentes unidades de medida en éstos parámetros. Si solamente se establece el valor de width, la altura se escalará proporcionalmente para mantener el aspecto de la imagen.
También es posible establecer la longitud de la imagen respecto a otros elementos en el documento. Por ejemplo, si quieres que la imagen tenga la misma anchura que el texto:
Overleaf is a great professional tool to edit online,
share and backup your \LaTeX projects. Also offers a
rather large help documentation.
\includegraphics[width=\textwidth]{universe}
En vez de \textwidth
puedes usar cualquier otra de las unidades que LaTeX incluye por defecto: \columnsep, \linewidth, \textheight, \paperheight, etc. Consulta la guía de referencia para una mejor descripción de las unidades.
Hay otra opción muy común a la hora de incluir imágenes en un documento, el poder rotarla. Ésto es muy fácil en LaTeX:
Overleaf is a great professional tool to edit online,
share and backup your \LaTeX projects. Also offers a
rather large help documentation.
\includegraphics[scale=1.2, angle=45]{lion-logo}
El parámetro angle=45
rota la imagen 45 grados en sentido contrarreloj. Para rotar la imagen en mismo sentido que las manecillas de un reloj usa un número negativo.
Posicionar la imagen
En la sección anterior se explicó cómo insertar una imagen en tu documento, pero a veces la combinación de imágenes y texto en tu documento puede no resultar como lo esperabas. Para cambiar ésto es necesario usar un nuevo ambiente:
In the next example the figure will be positioned
right below this sentence.
\begin{figure}[h]
\includegraphics[width=8cm]{Plot}
\end{figure}
El ambiente figure
se usa para mostrar la imágenes como elementos flotantes dentro del documento. Ésto significa que basta con incluir tu imagen dentro del ambiente figure y ya no te tienes que preocupar por dónde aparecerá, LaTeX la posicionará de tal manera que encaje perfectamente con el flujo del documento.
Aunque en principio esto suena muy bien, a veces uno quiere tener más control sobre dónde aparecerán las imágenes. Un parámetro adicional se puede usar para establecer el posicionamiento de la figura. En el ejemplo, begin{figure}[h]
, el parámetro dentro de los corchetes establece la posición de la figura here (aquí, en inglés). En seguida una tabla con una lista de posibles valores posicionales.
Parameter | Position |
---|---|
h | Establece la posición del elemento flotante «aquí». Ésto es, aproximadamente en el mismo punto donde aparece en el código (sin embargo, no siempre es exacto el posicionamiento) |
t | Inserta la figura al inicio de la página. |
b | Inserta la figura al final de la página. |
p | Inserta los elementos flotantes en una página por separado, que sólo contiene figuras. |
! | Sobreescribe los parámetros que LaTeX usa para determinar una «buena» posición para la imagen. |
H | Establece el elemento flotante precisamente en el mismo lugar en el que aparece en el código, se requiere importar el paquete float . Es hasta cierto punto equivalente a h!.
|
En el siguiente ejemplo se puede ver una imagen que aparece al inicio del documento, a pesar de que el código que la produce se encuentra al final del documento.
In this picture you can see a bar graph that shows
the results of a survey which involved some important
data studied as time passed.
\begin{figure}[t]
\includegraphics[width=8cm]{Plot}
\centering
\end{figure}
El comando adicional \centering
se encarga de centrar la imagen. El valor de alineación por defecto es a la izquierda.
También es posible envolver el texto al rededor de la figura. Cuando el documento contiene imágenes pequeñas ésto hace que el texto se vea mejor.
\begin{wrapfigure}{r}{0.25\textwidth} %this figure will be at the right
\centering
\includegraphics[width=0.25\textwidth]{mesh}
\end{wrapfigure}
There are several ways to plot a function of two variables,
depending on the information you are interested in. For
instance, if you want to see the mesh of a function so it
easier to see the derivative you can use a plot like the
one on the left.
\begin{wrapfigure}{l}{0.25\textwidth}
\centering
\includegraphics[width=0.25\textwidth]{contour}
\end{wrapfigure}
On the other side, if you are only interested on
certain values you can use the contour plot, you
can use the contour plot, you can use the contour
plot, you can use the contour plot, you can use
the contour plot, you can use the contour plot,
you can use the contour plot, like the one on the left.
On the other side, if you are only interested on
certain values you can use the contour plot, you
can use the contour plot, you can use the contour
plot, you can use the contour plot, you can use the
contour plot, you can use the contour plot,
you can use the contour plot,
like the one on the left.
Para que los comandos en el ejemplo funcionen, se debe importar el paquete wrapfig. Añade al preámbulo la línea
\usepackage{wrapfig}
Una vez importado el paquete se puede usar el ambiente wrapfigure por medio del comando \begin{wrapfigure}{l}{0.25\textwidth} \end{wrapfigure}
. Nótese que el ambiente tiene dos parámetros adicionales entre llaves. En seguida se explica el código con más detalle.
{l}
- Establece la alineación de la figura. Usa l para izquierda y r para derecha. Más aún, si se está usando la clase book u otra similar, en vez te l y r se pueden usar o para la orilla exterior y i para la orilla interior de la página.
{0.25\textwidth}
- Ésto establece la anchura de la caja que contiene la imagen. No es la anchura de la imagen en sí misma, esa se debe establecer en el comando includegraphics. En el ejemplo se usan unidades relativas, pero unidades normales (cm, mm, in, etc) se pueden usar. Consulta la guía de referencia para ver una lista de unidades posibles.
\centering
- Ya se explicó con anterioridad, pero en el ejemplo anterior la imagen será centrada respecto a la caja que lo contiene, en lugar de centrarla respecto a la página.
Para información más completa acerca del posicionamiento de imágenes consulta el artículo Positioning images and tables
Añadir etiquetas, leyendas y referencias
El poder añadir leyendas con una breve descripción de la imagen y etiquetas que luego se pueden usar para referirse a la imagen son herramientas muy útiles cuando se trabaja con documentos muy largos.
Leyendas
Empecemos con un ejemplo sobre como añadir una leyenda:
\begin{figure}[h]
\caption{Example of a parametric plot ($\sin (x), \cos(x), x$)}
\centering
\includegraphics[width=0.5\textwidth]{spiral}
\end{figure}
Es muy fácil, sólo hay que añadir el comando \caption{Some caption}
y dentro de las llaves escribir el texto a mostrar. El lugar donde se imprimirá la leyenda depende de dónde se inserta el comando; si esta sobre el comando includegraphics entonces la leyenda aparecerá sobre la imagen, si está bajo ése comando entonces la leyenda aparecerá en la parte inferior de la figura.
Las leyendas también se pueden posicionar al lado de las figuras. El paquete sidecap permite usar un código muy similar al del ejemplo anterior para añadir el texto.
\documentclass{article}
\usepackage[rightcaption]{sidecap}
\usepackage{graphicx} %package to manage images
\graphicspath{ {images/} }
\begin{SCfigure}[0.5][h]
\caption{Example of a parametric plot.
This caption will be on the right}
\includegraphics[width=0.6\textwidth]{spiral}
\end{SCfigure}
Hay dos nuevos comandos en éste ejemplo:
\usepackage[rightcaption]{sidecap}
- Como posiblemente ya lo sabes, éste comando importa el paquete llamado sidecap, pero hay un parámetro adicional:
rightcaption
. Éste parámetro es el que establece el lugar donde se imprime la leyenda. En este caso, a la derecha de la imagen, también es posible usar leftcaption para mover la leyenda a la izquierda.En documentos que usan clases de tipo libro, adicionalmente se pueden usar las opciones outercaption y innercaption para imprimir la leyenda en la parte exterior o interior respecto al borde de la página.
\begin{SCfigure}[0.5][h] \end{SCfigure}
- Define un ambiente similar a figure. El primer parámetro es la anchura de la leyenda relativa al tamaño de la imagen. El segundo parámetro
h
tiene la misma función que en el ambiente figure. Consulta la sección sobre posicionamiento de imágenes para más información.
Se puede lograr un manejo más avanzado del formato de las leyendas si así se desea. Consulta las lecturas adicionales para ver más referencias.
Etiquetas y referencias cruzadas
Las figuras, tal como muchos otros elementos en un documento LaTeX (ecuaciones, tablas, gráficas, etc.) pueden ser referidas desde dentro del texto. Lograr ésto es muy fácil, solo hay que añadir una etiqueta al ambiente figure o SCfigure, luego usar esa etiqueta para referirse a la figura.
\begin{figure}[h]
\centering
\includegraphics[width=0.25\textwidth]{mesh}
\caption{a nice plot}
\label{fig:mesh1}
\end{figure}
As you can see in the figure \ref{fig:mesh1}, the
function grows near 0. Also, in the page \pageref{fig:mesh1}
is the same example.
Hay tres comandos en éste ejemplo que generan referencias cruzadas.
\label{fig:mesh1}
- Establece la etiqueta para la figura. Dado que las etiquetas se pueden usar en diversos tipos de elementos en el documento, es una buena práctica el usar un prefijo, tal como fig: en el ejemplo.
\ref{fig:mesh1}
- Éste comando imprime el número que se le asignó a la figura. Los números se generan automáticamente y son actualizados si posteriormente se inserta una figura antes de la que es referida.
\pageref{fig:mesh1}
- Imprime el número de página donde aparece la imagen referida por la etiqueta.
El comando \caption
que añade una leyenda es obligatorio para poder añadir una etiqueta y referir la figura.
Otra característica importante en LaTeX es la posibilidad de generar automáticamente una lista de figuras. Ésto se logra fácilmente con:
\listoffigures
Éste comando solo funciona con figuras que tienen una leyenda, dado que la usa para generar la tabla. El ejemplo anterior lista las imágenes usadas en el presente artículo.
Nota importante: Cuando se usan referencias cruzadas en LaTeX el proyecto debe ser compilado dos veces, de otra manera las referencias, las referencias a páginas y la tabla de figuras no funcionarán.
Generando imágenes en alta y baja resolución
Por el momento, cuando introducimos el nombre del archivo de imagen en el comando \includegraphics omitimos la extensión del archivo. Sin embargo, eso no es necesario, aunque si puede ser muy útil. Si la extensión se omite, LaTeX buscará cualquier tipo de imagen soportada en el directorio de imágenes preestablecido, la búsqueda se hará en un cierto orden, el cuál puede ser modificado.
Ésto es muy útil para pasar de la versión en borrador de tu documento a la versión final. En el borrador (mientras escribes tu artículo, libro, reporte, etc), es deseable poder usar imágenes con baja resolución (típicamente en formato .png) para que el documento compile más rápidamente. En la versión final, en cambio, uno prefiere incluir las imágenes en alta resolución, para tener un documento de calidad.
Esto se puede lograr por medio de:
- No especificar la extensión del archivo en el comando \includegraphics, y
- Especificando el orden de las extensiones en el preámbulo
Así, si uno tiene dos versiones de la misma imagen, por ejemplo venndiagram.pdf (en alta resolución) y venndiagram.png (en baja resolución). Se puede incluir la siguiente línea en el preámbulo mientras se escribe y depura el documento -
\DeclareGraphicsExtensions{.png,.pdf}
El comando anterior se asegura de que is se encuentran dos imágenes con el mismo nombre pero con diferentes extensiones, entonces el archivo .png será usado, y si por alguna razón este archivo desaparece la versión en pdf será la siguiente opción.
Una vez que el documento ha sido escrito, para usar únicamente la versión en alta resolución se debe cambiar la linea que determina la extensión a:
\DeclareGraphicsExtensions{.pdf,.png}
Se puede incluso mejorar la técnica descrita anteriormente, podemos pedirle a LaTeX que genere imágenes .png de baja resolución mientras se compila el documento si es que el PDF no ha sido convertido a PNG con anterioridad. Para lograr esto, se debe incluir lo siguiente en el preámbulo después de \usepackage{graphicx}
.
\usepackage{epstopdf}
\epstopdfDeclareGraphicsRule{.pdf}{png}{.png}{convert #1 \OutputFile}
\DeclareGraphicsExtensions{.png,.pdf}
Si venndiagram2.pdf existe pero no venndiagram2.png, el archivo vendiagramm2-pdf-converted-to.png se creará y se cargará en su lugar. El comando convert #1 es el responsable de la conversión
Hay un par de cosas a tener en mente si se elige éste método:
- Para que la conversión automática funciones se debe ejecutar pdflatex con la opción
--shell-escape
. - Para la versión final no se debe olvidar comentar la línea
\epstopdfDeclareGraphicsRule
, de tal suerte que sólo se carguen las imágenes en alta resolución. También se debe recordar cambiar el orden de precedencia.
Guía de referencia
Unidades y medidas en LaTeX
Abreviación | Definición |
---|---|
pt | Un punto, es la unidad de longitud por defecto. Aproximadamente 0.3515mm |
mm | un milímetro |
cm | un centímetro |
in | una pulgada |
ex | la altura de una x con la fuente actual |
em | la anchura de una m con la fuente actual |
\columnsep | distancia entre las columnas |
\columnwidth | anchura de una columna |
\linewidth | amplitud de línea en el ambiente actual |
\paperwidth | anchura del papel |
\paperheight | altura del papel |
\textwidth | anchura del texto |
\textheight | altura del texto |
\unitlength | unidades de longitud en el ambiente picture |
Acerca de los tipos de imágenes que se pueden usar en LaTeX
- latex
- Si se compila el documento con el comando latex, sólo se pueden usar imágenes en formato EPS, el cuál es un formato vectorial.
- pdflatex
- Si se compila el documento con el comando pdflatex para producir un PDF, entonces se pueden usar varios tipos de imágenes-
JPG: La mejor opción para insertar fotografías PNG: La mejor opción para insertar diagramas (si por alguna razón no puedes usar un gráfico vectorial) y capturas de pantall PDF: A pesar de la costumbre de usar PDF para documentos, en general un PDF puede constar de únicamente una imagen que puede posteriormente ser importada. EPS: Las imágenes EPS se pueden incluir usando el paquete epstopdf (el paquete sólo se debe instalar en el equipo, una vez instalado no es necesario ningún comando adicional en el archivo .tex)
- ¿Gráficos vectoriales o mapas de bits?
- Las imágenes se pueden incluir ya sea en formato de mapas de bits o gráficos vectoriales. En general uno no debe preocuparse por ello, pero si se tiene la opción de elegir un formato hay que tener en cuenta que para un gráfico vectorial lo mejor es guardarlo en formato PDF o EPS, mientras que para un mapa de bits los formatos JPG o PNG son los recomendados. Ésto porque un mapa de bits dentro de un archivo en formato PDF o EPS requiere mucho espacio para su almacenamiento.
Lecturas adicionales
Para más información consultar:
- Positioning images and tables
- Lists of tables and figures
- Single sided and double sided documents
- Lengths in LaTeX
- floatrow package for advanced caption managing of floating elements (tables and figures)
- sidecap package documentation, for side-figure captions
- epstopdf package documentation (PDF to EPS conversion)
Overleaf guides
- Creating a document in Overleaf
- Uploading a project
- Copying a project
- Creating a project from a template
- Using the Overleaf project menu
- Including images in Overleaf
- Exporting your work from Overleaf
- Working offline in Overleaf
- Using Track Changes in Overleaf
- Using bibliographies in Overleaf
- Sharing your work with others
- Using the History feature
- Debugging Compilation timeout errors
- How-to guides
- Guide to Overleaf’s premium features
LaTeX Basics
- Creating your first LaTeX document
- Choosing a LaTeX Compiler
- Paragraphs and new lines
- Bold, italics and underlining
- Lists
- Errors
Mathematics
- Mathematical expressions
- Subscripts and superscripts
- Brackets and Parentheses
- Matrices
- Fractions and Binomials
- Aligning equations
- Operators
- Spacing in math mode
- Integrals, sums and limits
- Display style in math mode
- List of Greek letters and math symbols
- Mathematical fonts
- Using the Symbol Palette in Overleaf
Figures and tables
- Inserting Images
- Tables
- Positioning Images and Tables
- Lists of Tables and Figures
- Drawing Diagrams Directly in LaTeX
- TikZ package
References and Citations
- Bibliography management with bibtex
- Bibliography management with natbib
- Bibliography management with biblatex
- Bibtex bibliography styles
- Natbib bibliography styles
- Natbib citation styles
- Biblatex bibliography styles
- Biblatex citation styles
Languages
- Multilingual typesetting on Overleaf using polyglossia and fontspec
- Multilingual typesetting on Overleaf using babel and fontspec
- International language support
- Quotations and quotation marks
- Arabic
- Chinese
- French
- German
- Greek
- Italian
- Japanese
- Korean
- Portuguese
- Russian
- Spanish
Document structure
- Sections and chapters
- Table of contents
- Cross referencing sections, equations and floats
- Indices
- Glossaries
- Nomenclatures
- Management in a large project
- Multi-file LaTeX projects
- Hyperlinks
Formatting
- Lengths in LaTeX
- Headers and footers
- Page numbering
- Paragraph formatting
- Line breaks and blank spaces
- Text alignment
- Page size and margins
- Single sided and double sided documents
- Multiple columns
- Counters
- Code listing
- Code Highlighting with minted
- Using colours in LaTeX
- Footnotes
- Margin notes
Fonts
Presentations
Commands
Field specific
- Theorems and proofs
- Chemistry formulae
- Feynman diagrams
- Molecular orbital diagrams
- Chess notation
- Knitting patterns
- CircuiTikz package
- Pgfplots package
- Typesetting exams in LaTeX
- Knitr
- Attribute Value Matrices
Class files
- Understanding packages and class files
- List of packages and class files
- Writing your own package
- Writing your own class