Saltar al contenido

listings en Scissor LaTeX

El paquete listings funciona en parte en Scissor LaTeX: lstlisting conserva el código exactamente como lo escribes y lo colorea cuando indicas language= en el entorno, y \lstinline funciona; \lstset, los números de línea, los marcos, los pies y las etiquetas se ignoran, y \lstinputlisting se omite.

Qué hace el paquete

listings compone código fuente. El entorno lstlisting conserva los saltos de línea y los espacios, y con language=Python (o C, Java, SQL ...) muestra las palabras clave, los comentarios y las cadenas con estilos distintos. Las opciones añaden números de línea, marcos, pies y colores, ya sea por listado o para todo el documento con \lstset. \lstinline es la forma en línea, y \lstinputlisting lee el código de un archivo.

Qué funciona aquí

FunciónEn Scissor LaTeXNotas
\begin{lstlisting} ... \end{lstlisting}FuncionaMonoespaciado, exactamente como se escribe.
[language=Python] en el entornoFuncionaColores de sintaxis con un esquema fijo.
[language={[Sharp]C}] y otros dialectosFuncionaEl dialecto entre corchetes se lee junto con el nombre.
\lstinline|code|, \lstinline{code}FuncionaMonoespaciado, sin colores.
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolorSe omiteSe ignoran sin ningún mensaje.
caption=, label=Se omiteNo se imprime ningún pie, y un \ref a la etiqueta muestra "??".
\lstset{...}, \lstdefinestyle, style=Se omiteSe ignoran, incluido un language= fijado ahí.
\lstinputlisting{file}No compatibleSe omite con un mensaje.
\lstlistoflistings, \lstnewenvironmentNo compatibleSe omiten con un mensaje.

Los nombres de lenguaje no distinguen mayúsculas de minúsculas. Hay colores para los lenguajes habituales, como Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML y TeX. Un nombre que no se reconoce, como Fortran, da código monoespaciado sin colores y sin ningún mensaje.

Ejemplos

Indica el lenguaje en cada listado:

lstlisting con language=Python

LaTeXPreámbulo: \usepackage{listings}Abrir en el editor (se abre en una pestaña nueva)
\begin{lstlisting}[language=Python]
def mean(values):
    # average of a list of numbers
    return sum(values) / len(values)

print(mean([40, 44, 48]))
\end{lstlisting}
Compuesto por Scissor LaTeX: lstlisting con language=Python

Un lenguaje fijado con \lstset no se usa, así que este listado no tiene colores. Las opciones de diseño como numbers y frame también se ignoran:

\lstset se ignora

\documentclass{article}
\usepackage{listings}
\lstset{language=SQL, numbers=left, frame=single}
\begin{document}
\begin{lstlisting}
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\begin{lstlisting}[language=SQL]
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\end{document}

El código en línea con \lstinline acepta cualquier delimitador, como \verb:

\lstinline en una frase

LaTeXPreámbulo: \usepackage{listings}Abrir en el editor (se abre en una pestaña nueva)
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.
Compuesto por Scissor LaTeX: \lstinline en una frase

Un listado con pie dentro de un figure

LaTeXPreámbulo: \usepackage{listings}Abrir en el editor (se abre en una pestaña nueva)
\begin{figure}[h]
\begin{lstlisting}[language=Python]
print(sum(range(44)))
\end{lstlisting}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
The code in Listing~\ref{lst:sum} prints 946.
Compuesto por Scissor LaTeX: Un listado con pie dentro de un figure

Compatibilidad

  • De una instalación de TeX a aquí: se muestra el código de cada lstlisting. Mueve language= de \lstset a cada listado para obtener colores, y pega en el documento el código de los archivos de \lstinputlisting.
  • De aquí a una instalación de TeX: los documentos se compilan allí sin cambios, y entonces se aplican tus opciones.

El manual completo está en CTAN: ctan.org/pkg/listings. Consulta también Listados de código en LaTeX y minted.

Preguntas y respuestas

¿Por qué mis listados no tienen colores?

Probablemente el lenguaje está fijado con \lstset, que aquí se ignora. Escribe [language=Python] (o tu lenguaje) después de \begin{lstlisting}.

¿Puedo mostrar números de línea?

Todavía no. numbers=left se acepta y se ignora.

Scissor LaTeX compone cada ejemplo de esta página al generar el sitio. Última actualización: 2026-11-07.