Lo que he aprendido: imágenes inline en Org

¡Hola, gentes! ¡He aprendido nuevas cosas de Org!

Resulta que si hemos instalado Emacs con soporte para imágenes, podemos decirle a Org mode que nos las muestre dentro de nuestro documento. Esto es maravilloso porque implica que no es necesario que exportemos a HTML o pdf para tener un documento legible sino que desde dentro del propio Org podemos editar y ver directamente todo. Veamos cómo.

Mostrar las imágenes

Como ya sabemos, se pueden insertar imágenes en Org con la siguiente línea:

[[file:RUTA_A_IMAGEN]]

Tenemos unas funciones, que invocamos con M-x seguido de su correspondiente nombre, que nos permiten decidir si Org nos muestra la imagen a la que hacemos referencia en lugar de la línea esa que tan bien conocemos:

  • org-display-inline-images: muestra las imágenes
  • org-redisplay-inline-images: vuelve a cargar las imágenes
  • org-toggle-inline-images (C-c C-x C-v): si las estaba mostrando las deja de mostrar y viceversa
  • org-remove-inline-images: deja de mostrar las imágenes

El lugar de usar estas funciones todo el rato, también se puede establecer el comportamiento para determinado documento mediante una variable de inicio:

#+STARTUP: inlineimages

Mostrará las imágenes que hemos enlazado. En cambio:

#+STARTUP:noinlineimages

No las mostrará. Para que nos recargue el documento y hagan efecto los cambios en estas variables es útil la combinación C-x C-v (buscar archivo alternativo), una de mis favoritas.

Redimensionar las imágenes

Lo que nos puede pasar ahora es que la imagen nos quede gigantesca o diminuta porque Org nos la inserta en su tamaño original. Nos falta, por tanto, redimensionarla para que de verdad sea útil.

Para ello primero tenemos que darle el valor nil a la variable org-image-actual-width, que es la que controla el tamaño de las imágenes y que por defecto vale t, es decir, que las imágenes sean siempre del tamaño original. Con el valor de nil busca primero en los atributos si le hemos dado nosotros un tamaño y, si no, la muestra del tamaño original.

Yo he decidido cambiar el valor de esta variable en el archivo de configuración, pero puede hacerse también mediante una variable local:

;; Redimensionar si hay atributo, si no dejar tamaño original
(setq org-image-actual-width nil)

Ahora controlamos el tamaño con los atributos de imagen, unas líneas similares a las que dan inicio al documento que se ponen delante de la imagen y que sirven para establecer el tamaño, el pie de imagen y otras cosas. Por ejemplo, si vamos a exportar a LaTeX establecemos las opciones de cada imagen con el atributo ATTR_LATEX:

#+ATTR_LATEX: :width 0.5\textwidth
[[file:RUTA_A_IMAGEN]]

O para cambiar el tamaño de la imagen que se muestra dentro de Emacs:

#+ATTR_ORG: :width 300
[[file:RUTA_A_IMAGEN]]

Creo que para esto último hace falta Imagemagick, en Linux me va fetén pero en Windows no hay manera de hacerlo carrular.

Mostrar imágenes generadas mediante código

Si estamos creando las imágenes dentro de un bloque de código (con Ditaa, por ejemplo), igual nos interesa que después de fabricar la imagen la muestre. Para ello podemos añadir un hook al archivo de configuración que ejecute org-display-inline-images tras activar el bloque:

;; Mostrar imágenes tras ejecutar bloque de código
(add-hook 'org-babel-after-execute-hook 'org-display-inline-images 'append)

De esta manera, en lugar de crearnos solamente un enlace a la figura en la línea de resultados nos la pintará dentro de Emacs y podremos ver si está a nuestro gusto.

inline

¡Esto es todo por hoy, hermanas! Pronto más Org y más Emacs.

Referencias

4.4 Handling links en el manual de Org

12.7.5 LaTeX specific attributes en el manual de Org

15.6 Summary of in-buffer settings en el manual de Org

Emacs org-display-inline-images en StackOverflow

How to resize images in org-mode en StackOverflow

Org mode C-c C-c to display inline image en StackExchange

Scale inline images in orgmode

Image display size in Org


Anuncios

3 pensamientos en “Lo que he aprendido: imágenes inline en Org

¡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 )

Google+ photo

Estás comentando usando tu cuenta de Google+. 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 )

w

Conectando a %s