Pregunta

Estoy buscando un paquete LaTeX que resalte la sintaxis en el código. Por ejemplo, ahora mismo uso el bloque literal para escribir código:

\begin{verbatim}
    <html>
       <head>
           <title>Hello</title>
       </head>
       <body>Hello</body>
    </html>
\end{verbatim}

Y esto funciona bien para mostrar el código en mi documento. Pero, ¿y si quisiera resaltar el marcado HTML como lo haría un IDE en el documento de salida? ¿Hay algún paquete que pueda ayudar?

Me gustaría hacer lo mismo para varios lenguajes como Java, C #, HTML, CSS, etc.

¿Fue útil?

Solución

Puede usar el paquete listados . Admite muchos idiomas diferentes y hay muchas opciones para personalizar la salida.

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[language=html]
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>Hello</body>
</html>
\end{lstlisting}
\end{document}

Otros consejos

Después de hacer una pregunta similar he creado otro paquete que utiliza Pygments, y ofrece bastantes opciones más que texments . Se llama minted y es bastante estable y utilizable.

Solo para mostrarlo, aquí hay un código resaltado con acuñado:

Código de ejemplo

Recomiendo Pygments . Acepta un fragmento de código en cualquier idioma y genera sintaxis resaltada en código LaTeX. Utiliza fancyvrb y color para producir su salida. Personalmente lo prefiero al paquete de listado. Creo que fancyvrb crea resultados mucho más bonitos.

LGrind hace esto. Es un paquete maduro de LaTeX que existe desde que Adam era un vaquero y tiene soporte para muchos lenguajes de programación.

Usaría el paquete acuñado como se menciona en el desarrollador Konrad Rudolph en lugar del paquete de listado . Aquí es por qué:

paquete de listado

El paquete de listado no admite colores por defecto. Para usar colores, deberá incluir el paquete de colores y definir las reglas de color usted mismo con el comando \ lstset como se explica para el código matlab aquí .

Además, el paquete de listado no funciona bien con Unicode, pero puede solucionar esos problemas como se explica aquí y aquí .

El siguiente código

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[language=html]
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>Hello</body>
</html>
\end{lstlisting}
\end{document}

produce la siguiente imagen:

 ingrese la descripción de la imagen aquí

paquete acuñado

El paquete acuñado admite colores, unicode y se ve increíble. Sin embargo, para usarlo, debe tener python 2.6 y pygments . En Ubuntu, puede verificar su versión de Python en la terminal con

python --version

y puedes instalar pigmentos con

sudo apt-get install python-pygments

Entonces, dado que minted hace llamadas a pigmeos, debe compilarlo con -shell-escape de esta manera

pdflatex -shell-escape yourfile.tex

Si usa un editor de látex como TexMaker o algo así, recomendaría agregar un comando de usuario, para que aún pueda compilarlo en el editor.

El siguiente código

\documentclass{article}
\usepackage{minted}
\begin{document}

\begin{minted}{html}
    <!DOCTYPE html>
    <html>
       <head>
           <title>Hello</title>
       </head>

       <body>Hello</body>
    </html>
\end{minted}
\end{document}

produce la siguiente imagen:

 ingrese la descripción de la imagen aquí

Utilizo principalmente lstlistings en papeles, pero para la salida en color (para diapositivas) utilizo pigmentos en su lugar.

Sugeriría definir su propio paquete basado en el siguiente código de texto; Esto te da total libertad. http://ubuntuforums.org/archive/index.php/t-331602. html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top