Lo que he aprendido: cambiar el idioma en pandoc

Sigo peleando con Markdown y pandoc, como veis. Pero ya lo tengo casi dominado. Hoy he descubierto como cambiar el idioma, cosa que me estaba volviendo loca perdida. Os lo cuento.


Para que cuando pandoc convierta el archivo Markdown a pdf nos ponga los nombres de las figuras y tablas y tal en castellano, se pueden hacer dos cosas: darle como opción de entrada el idioma (lo fácil) o cambiar la plantilla (lo chungo, pero que permite jugar más).

Lo fácil: el idioma como argumento

Es tan simple1 como darle a pandoc el valor de la variable lang (de language) usando la opción -V (de variable):

$ pandoc -V lang=spanish input.md --latex-engine=xelatex -o output.pdf

Pandoc por dentro le mandará a su plantilla de latex, que es lo que usa para convertir a pdf, el valor del idioma. Vamos, que es equivalente a:

\usepackage[spanish]{babel}

Rápido, sencillo y eficaz, como me gustan a mí las cosas.

Lo chungo: cambiar la plantilla

Esto es un poco más raruno de hacer, pero nos permite cambiar la división de palabras, la codificación, o lo que sea que nos apetezca de paso. Veamos como lo hacemos. Lo más cómodo es coger la plantilla que usa por defecto para latex y crear a partir de ella una específica para cuando queremos escribir español. Hacemos:

$ pandoc -D latex > latexES.latex

Yo la he llamado latexES pero podéis ponerle el nombre que os de la gana mientras la apellidéis .latex para que pandoc sepa que es la plantilla de latex.

Abrimos el documento que hemos generado y le añadimos la línea de antes, la del idioma. Aquí ya que estamos podríamos cambiar más cosas, pero eso os lo dejo a vosotros, algo tendréis que hacer también, a ver qué va a ser esto.

Sin más, yo lo he pegado en la segunda línea:

\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$}
\usepackage[spanish]{babel}

La plantilla hay que guardarla en C:\Users\USUARIO\AppData\Roaming\pandoc\templates si estamos en Windows2 (como estoy yo ahora mismo). Si esta carpeta no existe habrá que crearla.

Ahora solo nos queda llamar a pandoc con la opción de plantilla, latexES en mi caso:

$ pandoc input.md --latex-engine=xelatex --template=latexES -o output.pdf

Y se nos genera nuestro pdf con sus figuras que se llaman Figura. Ya estamos un paso más cerca de la dominación mundial.


ACTUALIZACIÓN

Podemos ser mucho más hábiles y hacer que nos cambie el idioma y nos ponga Tabla en lugar de Cuadro al mismo tiempo con el truco que viene aquí. Consiste simplemente en sustituir

\usepackage[spanish]{babel}

por

\usepackage[spanish,es-tabla]{babel}

en nuestra plantilla.


  1. Es simple ahora que lo sé, pero llevó un rato de búsqueda exhaustiva in the Internet. La pista me la dio este hilo. 
  2. Parece ser que las plantillas antes se guardaban en otra carpeta y hay un poco de lío con esto. O al menos eso dan a entender aquí 
Anuncios

4 pensamientos en “Lo que he aprendido: cambiar el idioma en pandoc

  1. Pingback: Lo que he aprendido: truquillos para la bibliografía en pandoc | Onda Hostil

  2. Pingback: Lo que he aprendido: Markdown + pandoc para la ciencia | Onda Hostil

  3. Pablo Rodríguez

    Ondiz, debo estar muy perdido con lo que pretendes hacer, pero ¿no es más fácil añadir lo siguiente?

    ---
    lang: es
    ---
    
    es sólo una prueba de español
    

    Lo de «tabla» en lugar de «cuadro» ya es algo de LaTeX.

    Responder
    1. Ondiz Autor de la entrada

      Sí, eso es equivalente a lo que he hecho en la “opción fácil”. Lo otro lo hice para ver la plantilla y ver que cómo se cambiaba. Tengo que actualizar esta entrada ahora que controlo más de pandoc.

      ¡Gracias por comentar!

      Responder

¡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