viernes, 6 de marzo de 2015

Agregar caption a mdframed al usar minted en latex

En mi documentación técnica, los saltos de línea ya estaban solucionado, también salto en páginas también al usar mdframed, pero resulta que mdframed no soporta el caption de manera directa, el caption es el pie de código, o pie de descripción donde se agrega información de algo, en este caso la descripción del código.

Bueno, pues mdframed no lo soportó, entonces tuve que buscar una alternativa para agregarlo.

La solución es la siguiente:
Agregar las instrucciones
\renewcommand\listoflistingscaption{Lista de fragmentos de códigos}
\renewcommand\listingscaption{Código}

% Estilo de Listings
\AtBeginDocument{\renewcommand*{\thelstlisting}{\thesection.\arabic{lstlisting}}}
\captionsetup[listing]{}
%----------------- para mostrar caption de códigos en minted usando listings

Antes de la etiqueta \begin{document} y listo.

Y para agregar la descripción se usa \captionof{listings}{Texto de descripción} en lo lugar de \caption{Texto de descripción}.

EL siguiente código:
\begin{mdframed}[linecolor=black, topline=false, bottomline=false, leftline=false, rightline=false, userdefinedwidth=\textwidth]
\begin{minted}[breaklines, frame=single, tabsize=4, gobble=0]{c}

/* Autor: Ferdinand Khopper
* Fecha: 6 febrero 2015
* Descripcion: Imprime "Hola mundo desde Latex...!" N veces
*/

#include <stdio.h>
#define N 10

int main(){
    int i;
    // Linea de comentario.
    printf("Programa Hola Mundo en C, mostrado en Latex usando minted!");
    for (i = 0; i < N; i++){
        printf("LaTeX es para programadores mas sofisticados y también para los que no son tanto!");
    }
    return 0;
}
\end{minted}
\vspace{-0.6cm} %separación entre el caption y el código
\captionof{listing}{La descripción del código puede ser larga, incluso puede tener caracteres como estos \LaTeX\ o tal vez símbolos matemáticos así $x = y + 8$ o una \textbf{url} \url{http://linuxgx.blogspot.mx/}.}
\label{mdframed1}
\end{mdframed}

El ejemplo anterior genera lo siguiente:

El editor que uso para compilar los documentos es: TexStudio

3 comentarios:

  1. ¡Muchas gracias Fernando! Era exáctamente lo que estaba buscando para mi tesis. ¡Saludos amigo!

    ResponderBorrar
    Respuestas
    1. Perfecto, también lo usé para la tesis, que bueno que te haya servido.

      Borrar
  2. Muchas gracias Fernando, era exáctamente lo que estaba buscando para mi tesis.

    ResponderBorrar