Listados de código en LaTeX
Pon el código en un entorno verbatim, lstlisting o minted, o usa \verb|...| dentro del texto; Scissor LaTeX lo compone en una fuente monoespaciada exactamente como lo escribiste y colorea la sintaxis cuando indicas el lenguaje.
verbatim
Dentro de verbatim no se interpreta nada: las barras invertidas, las llaves, $ y % se imprimen tal cual, y se conservan los saltos de línea y los espacios. Es la forma más sencilla de mostrar código o la salida de un terminal.
Un bloque verbatim
\begin{verbatim}
for i in range(44):
print(i) # $ and \textbf stay as typed
\end{verbatim}Código en línea: \verb
\verb muestra un fragmento corto de código dentro de una frase. El carácter justo después de \verb es el delimitador; elige uno que no aparezca en el código, como | o +.
Código en línea con \verb y \texttt
Call \verb|total(xs)| to add the list, or type \verb+x_1 = 44+.
For plain words in a monospaced font, \texttt{main.tex} is enough.\texttt{...} solo cambia la fuente: ahí los caracteres especiales como _ y % siguen necesitando escaparse, mientras que \verb los acepta tal cual.
listings: lstlisting con un lenguaje
El paquete listings te da lstlisting. Con language=... el código recibe colores de sintaxis.
lstlisting con language=Python
\begin{lstlisting}[language=Python]
def total(xs):
"""Add up the numbers in xs."""
return sum(xs)
print(total([40, 4])) # 44
\end{lstlisting}\lstinline|código| es la forma en línea, como \verb.
minted
minted recibe el lenguaje como argumento. En una instalación de TeX necesita Python y la opción -shell-escape; en Scissor LaTeX funciona sin ninguno de los dos.
minted con un lenguaje
\begin{minted}{rust}
fn main() {
let answer = 40 + 4;
println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}Qué se lee
| Comando | En Scissor LaTeX | Notas |
|---|---|---|
verbatim, verbatim* | Funciona | |
\verb, \verb* | Funciona | |
lstlisting | En parte | Se lee language=; las demás opciones (numbers, caption, frame, basicstyle, firstline...) se ignoran. |
\lstinline | Funciona | Sin colores de sintaxis en línea. |
\lstset{...} | Se omite | Un lenguaje fijado aquí no se usa; indica language= en cada listado. |
minted | En parte | Se lee el lenguaje; las opciones como linenos y frame se ignoran. |
\mintinline{lang}{código} | Funciona | Sin colores de sintaxis en línea. |
Verbatim, BVerbatim (fancyvrb) | En parte | Se muestran como verbatim; las opciones se ignoran. |
\lstinputlisting{archivo}, \inputminted{lang}{archivo} | No se admite | Se omiten con un mensaje; pega el código en el documento. |
\lstnewenvironment, \newminted | No se admite |
Hay colores de sintaxis para los lenguajes habituales, entre ellos Python, C, C++, Java, JavaScript, TypeScript, Rust, Go, Ruby, R, Julia, MATLAB, SQL, Bash, HTML, CSS, JSON, YAML, TeX y LaTeX. Los nombres de lenguaje no distinguen mayúsculas y minúsculas, así que Python y python son lo mismo. Un nombre que no se reconoce da código monoespaciado sin colores.
Código desde un archivo
En una instalación de TeX, \lstinputlisting y \inputminted leen código de otro archivo. Scissor LaTeX los omite y lo indica en la pestaña Problemas:
\lstinputlisting se omite
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.Pestaña Problemas: 1 included file is not part of this conversion
Qué cambia respecto a una instalación de TeX
Consulta listings y minted para las páginas de los paquetes. Los manuales completos están en CTAN: listings, minted y fancyvrb.
Preguntas y respuestas
¿Cómo añado un bloque de código en LaTeX?
Envuelve el código en \begin{verbatim} ... \end{verbatim}, o en lstlisting con [language=Python] para tener colores de sintaxis.
¿Funciona minted sin shell escape?
En Scissor LaTeX, sí: los entornos minted se colorean sin Python ni -shell-escape. En una instalación de TeX, minted sigue necesitando ambos.
¿Por qué faltan los números de línea de mi listado?
Scissor LaTeX ignora numbers=left y las demás opciones de diseño de listings. Solo se lee el lenguaje.
Scissor LaTeX compone cada ejemplo de esta página al generar el sitio. Última actualización: 2026-11-07.