Lo que he aprendido: imitar a Pygments con listings

Me temo que acabo de crear uno de los títulos más crípticos de la historia de la blogosfera. A ver si lo hago un poco menos oscuro. Os contaba el otro día que pandoc me la jugaba y no me partía las líneas y tenía que usar el paquete listings ¿os suena? La cuestión es que el resaltado de sintaxis de pandoc es mucho más cuco y me da a saco de rabia perderlo. ¿Qué he hecho? Investigar qué colores usa mi muy amado pandoc e imitarlos con el paquete listings. ¡Lo mejor de los dos mundos!

Bien, pandoc usa los colores de Pygments si no le decimos que haga otra cosa, concretamente el estilo friendly. Una pequeña investigación nos lleva a encontrar la definición de fuentes y colores y solo nos queda reproducirlos en Latex.

Para ello, en primer lugar necesitamos sustituir el paquete color por xcolor:

\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}

Ahora veremos en la hoja de estilo de Pygments cómo se define cada cosa y la copiaremos, por ejemplo, los comentarios tienen este formato:

Comment: "italic #60a0b0"

Es decir, van en cursiva y con un color azul grisáceo. Eso lo definimos en las opciones del \lstset con:

commentstyle=\itshape\color[HTML]{60a0b0}

También podemos hacer varios \lstdefinestyle para cada lenguaje y añadirle sus palabras clave, los comentarios especiales y tal.

Aquí tenéis un ejemplo de cómo me queda a mí definiendo un estilo genérico y uno específico para Python e incluyendo de paso más palabras claves y estilos (el bonus):

No es exactamente igual que Pygments porque he puesto que escriba en azul oscuro para que me queden los números en negro, pero queda chulo.

Hala, trucadme la historia y me contáis qué tal.

NOTA

Si os da el siguiente error:

! Missing number, treated as zero.

Poned las letras de la definición de los colores en mayúsculas. A mí compilando con MikTeX me valía de las dos maneras, pero en TeXLive solo me funciona en mayúsculas (tal como dice el manual de xcolor).

Más

Demo de Pygments

xcolor vs color

Colores en Latex

Anuncios

Un pensamiento en “Lo que he aprendido: imitar a Pygments con listings

  1. Pingback: Compilación: escribir la tesis | Onda Hostil

¡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