Macros de sustitución en Org Mode (dos ejemplos prácticos)
Las macros de sustitución son una de esas pequeñas gemas escondidas en el maravilloso Org Mode
de Emacs. La forma más sencilla de usarlas es añadiendo a la cabecera de nuestro documento
#+MACRO: palabra-a-asustituir sustitución
, de tal forma que si vamos a repetir en nuestro
texto muchas veces algo así como «la parte contratante de la primera parte», podemos escribir
en la cabecera:
y en nuestro texto, entonces, nos bastará con escribir la «palabra-comodín», las veces que nos
haga falta, encerrada entre dos {{{...}}}
: {{{parte1}}}
.
Para mi traducción de la Odisea (work in progress) estas macros de Org me son de mucha utilidad, gracias a dos características esenciales que tienen:
- La sustitución de términos se realiza en una etapa muy tempranera del proceso de exportación; y
- La posibilidad de evaluar alguna expresión de Elisp en la parte que reemplaza.
De mi escenario particular he extraído un par de ejemplos generales, por si pudiesen ser de utilidad a alguien. Vayamos a ellos en un periquete.
Varios formatos de fecha
Imaginemos que cuando exportemos nuestro documento a LaTeX queremos que en la fecha salga un
texto determinado y a continuación la fecha completa, introducida por el comando típico de
LaTeX \today
, pero si exportamos a HTML queremos el mismo texto, pero la fecha en formato
mínimo. Por supuesto, hay muchas maneras de hacerlo, y una de ellas es definiendo una macro en
la cabecera de nuestro documento así (ojo, la expresión Elisp a evaluar ha de estar toda en una
línea, con el resto del conjunto):
A continuación, sólo tendremos que añadir en el lugar oportuno:
#+DATE: En algún lugar de vuelta a Ítaca: {{{fecha}}}
El nombre del autor debajo del título en la exportación a HTML
Cuando exportamos nuestro documento Org a HTML, el nombre del autor aparecerá, por defecto, en
el postamble del fichero resultante; es decir, abajo de todo y en pequeñito. Pero habrá
ocasiones en que nos queramos ver más arriba, justo debajo del título. Como en el caso
anterior, hallaremos muchas formas de hacerlo, pero tirar de una macro de reemplazo es un apaño
muy cómodo y rápido. Así pues, definimos esta macro (recordemos que podemos introducir una
cadena que sólo sea leíble e inteligible para un determinado formato de exportación si la
encerramos entre, por ejemplo, @@html:...@@
):
Y ya nos quedaría añadir:
#+TITLE: Mi gran obra {{{yomismo}}}
∞
Publicado: 20/07/2019
Última actualización: 20/07/2019
Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.