Mostrando las entradas con la etiqueta entorno minted. Mostrar todas las entradas
Mostrando las entradas con la etiqueta entorno minted. Mostrar todas las entradas

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

Entorno minted en saltos de página

De nueva cuenta, en la redacción de documentación de código para manual de técnico, me percaté de lo siguiente, si bien es cierto, ya había podido solucionar lo del salto de línea automático del código al usar el entorno minted en latex. (Ver aquí.)

Ahora se me presentaba el siguiente problema:
El problema, básicamente era que, al incluir un fragmento de código extenso, en la siguiente página no continuaba, sino que se perdía por completo, como se muestra en la imagen de arriba.

Bueno, el problema lo solucioné usando el paquete mdframed el da un resultado como el siguiente:
Ya con eso, el código se mueve automáticamente en las páginas o saltos de nuevas páginas que sean necesario.

El código para ingresar el código fuente usando mdframed en latex, es el siguiente:

\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}
\end{mdframed}


Gracias por visitar, Hasta la próxima.

Saltos de línea usando entorno minted en latex

Hace como dos semanas necesitaba hacer un manual de programador. El documento lo comencé a redactar en LaTeX usando el entorno minted para resaltar el código, eso no fuera problema si al compilar el archivo no hubiese mostrado lo siguiente:
Descargué el manual oficial de minted para ver la configuración que debía de agregarle y que el código se ajustara al contorno de su contenedor, la instrucción que se debía agregar es breaklines pero, sorpresa, no funcionó, mostrara un error de compilación que breaklines no estaba definida en dicho paquete.

Después de una horas buscando en internet sin éxito, tome el paquete minted.sty y lo agregué en la carpeta principal de mi proyecto, y resulta que al dar clic en compilar funcionó.

Ahora el resultado que se tiene es el siguiente:
Ahora el código se ve más legible y más bonito esta es una solución por ahora, habría que seguir buscando otra que no requiera tener el paquete de minted.sty dentro del directorio del documento principal.