Me gustaría poder mostrar código en latex, en un cuadrado gris oscuro, negro, etc, con sintaxis de color (cómo te lo citan las ias generativas). Quedaría, de está forma, muy bueno para generar documentación para un programa de Software Libre…
No tengo problema en importar alguno de los miles de programas que te instala texlive…
Una buena opción es usar el paquete minted
. Usa pygments para el formateo de texto, así que necesitas python para poder usarlo. Aparte de eso deja todo muy bonito, soporta varios lenguajes, integra varias paletas de colores para el resaltado, deja importar código directamente de archivos fuente, y alguna otra cosa.
Para que veas que resultados da, mira como es en latex:
Y como se ve el PDF:
Si quieres optar por este paquete puedes leer su documentación. Pero te recomiendo mejor leer la guía de overleaf.
Para LaTeX la wiki es muy útil. En caso del codigo puedes usar listings
que es mas sencillo pero no soporta todos los lenguajes, o minted
que deja el código mas elegante pero depende de python.
Te aconsejaría usar soft links para redireccionar todos los archivos a una carpeta configurar el home path para el código. Lo suelo emplear así para no tener que copiar código y se actualice el documento automáticamente cuando se compile.
Aunque en cierta forma me esperaba usar un paquete de texlive, minted (que lo descargue por pipx, no sé porque no me funciona pip (tanto en arch como en debian).
Este es el resultado de mis primeras pruebas con el paquete, que servirá mucho para hacer documentaciones, y que quede este “hilo” para otros…
\documentclass{article}
\usepackage{minted}
%\usemintedstyle{vim}
\usepackage[spanish]{babel}
\usepackage{xcolor}
\definecolor{darkgrey}{rgb}{0.15,0.15,0.2}
\title{Ejemplo de código}
\begin{document}
\maketitle
\section*{Código:}
\begin{minted}{python}
def hello():
print("Hola Mundo!!!")
hello()
\end{minted}
\begin{minted}{java}
public class hello{
public static void main(String[] args){
System.out.println("Hola Mundo!!!");
}
}
\end{minted}
\section*{Prueba}
%\useintedstyle{automn}
\begin{minted}[frame=lines,linenos]{python}
def hello():
print("Hola Mundo!!!")
hello()
\end{minted}
\begin{minted}[frame=lines,linenos,bgcolor=darkgrey]{cpp}
#include <iostream>
using namespace std;
int main(int argc,char **argv)
{
std::cerr << "Hola Mundo!!!" << std::endl;
}
\end{minted}
\newpage
\begin{minted}[frame=lines,linenos,bgcolor=darkgrey]{html}
<!DOCTYPE html>
<html>
<head>
<title>Web app</title>
</head>
<body>
</body>
</html>
\end{minted}
\begin{minted}[frame=lines,linenos,bgcolor=darkgrey]{php}
<?php
echo "Hola Mundo!!!<br>";
?>
\end{minted}
\end{document}
¡Gracias!