Lo que he aprendido: cuadros de texto de colores en LaTeX

Estaba yo informándome sobre entornos para el próximo capítulo del cursete de LaTeX cuando me he tropezado con el paquete tcolorbox, que nos permite hacer cuadros de texto de colores. Este simpático paquete tiene un manual de solo 480 páginas contándonos todos los tipos de cuadros que puede crear. Para tener un idea podemos echarle una ojeada a los ejemplos que proporciona y luego ya si eso nos leemos lo que nos haga falta del tochaco.

Cosas que me parecen interesantes de este paquete:

  • Se les puede poner título a los cuadros de texto, interesante para poner notas, ejemplos o alertas en el documento.
  • Se pueden numerar los cuadros y hacer a una lista de ellos.
  • Hay un tipo de cuadro que muestra el código (en principio de LaTeX) y el resultado simultáneamente. Usa los paquetes listings, listingsut8 o minted para dar formato al código.
  • Hay funcionalidades específicas para escribir tutoriales para LaTeX y documentación.
  • Se puede guardar el contenido de un cuadro para usarlo luego.

Es muy fácil de usar, para crear un cuadro usamos el entorno tcolorbox. Como argumentos opcionales podemos darle el título del cuadro (title) y su estilo (fontitle), el color de fondo (colback) o el del borde (colframe), entre otras cosas:

\begin{tcolorbox}
[colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries,title=Nota]
 Es muy importante tener en cuenta \ldots
\end{tcolorbox}

Si usamos un tipo de cuadro muy a menudo podemos crear nuestro propio estilo con \newtcolorbox. Por ejemplo, para el cuadro anterior escribiríamos esto en el preámbulo:

\newtcolorbox{mybox}[1]
{colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries,title=#1}

Así, en el cuerpo del documento no tenemos que escribir tanto para crear un cuadro de ese tipo:

\begin{mybox}{Nota}
  Es muy importante tener en cuenta \ldots
\end{mybox}

Os pongo ahora unos ejemplillos de cosas chulas que hace el paquete y con los que he estado jugando.

Código

Para escribir código dentro de nuestros cuadros necesitamos usar una biblioteca de código:

\usepackage{tcolorbox}
\tcbuselibrary{listingsutf8} % o listings o minted

Ahora en lugar de tcolorbox usamos el entorno tcblisting. De por sí interpreta que el código es LaTeX y nos escribe el resultado compilado debajo, o en paralelo con la opción listing side text:

\begin{tcblisting}
{listing side text, title= \textit{Side by side}}
  $\sum_{k=0}^{n-1} a r^k$
\end{tcblisting}

Que nos fabrica este cuadro:

codigo

Hay por supuesto la opción de insertar código de otros lenguajes y de que no aparezca la parte compilada. En este ejemplo creo que se ve bien cómo se hacen ambas cosas:

\begin{tcblisting}{listing only, listing options={language=python}, title=Cuadro con código}
  print 'Hello!'
\end{tcblisting}

La apariencia del código la controlamos con listing options, eso ya depende del paquete que estemos usando. Hablé un poco más de ello en el capítulo Píntame ese código del Curso no convencional de LaTeX.

Cuadros numerados

La opción auto counter nos permite crear cuadros numerados cuya numeración se reinicia según la opción number within cuando comienza una nueva sección, capítulo… Dentro del propio cuadro hacemos referencia a este número con \thecbcounter.

Por ejemplo, vamos a crear un cuadro para ejemplos con una numeración que se reinicie en cada sección:

% Cuadro numerado para ejemplos
\newtcolorbox[auto counter, number within=section]{example}[2][]
{colback=green!5!white,colframe=green!75!black,
fonttitle=\bfseries, title=Ejemplo~\thetcbcounter: #2,#1}

El argumento #1 hace referencia a los argumentos opcionales, por defecto ninguno.

Luego en el cuerpo del documento tenemos disponible el entorno example al que debemos darle un título y podemos darle otros argumento opcionales, en este caso una etiqueta:

\section{Ejemplos}

\begin{example}[label={ex:serie}]{La serie geométrica}
 Se define la serie geométrica como:

 \begin{equation*}
  a + ar + ar^2 + \ldots + ar^n
 \end{equation*}

\end{example}

En el Ejemplo \ref{ex:serie}

Que nos da este resultado:

ejemplos

Cada tipo de cuadro creado llevará su propia numeración, igual que ocurre con las figuras y las tablas.


Pues esto es lo que he aprendido hoy, para más información tenéis, como siempre, el manual. Os dejo aquí todas mis pruebas con el paquete en un gist para que hurguéis si tenéis ganas:

Anuncios

¡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