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ón | En Scissor LaTeX | Notas |
|---|---|---|
\begin{lstlisting} ... \end{lstlisting} | Funciona | Monoespaciado, exactamente como se escribe. |
[language=Python] en el entorno | Funciona | Colores de sintaxis con un esquema fijo. |
[language={[Sharp]C}] y otros dialectos | Funciona | El dialecto entre corchetes se lee junto con el nombre. |
\lstinline|code|, \lstinline{code} | Funciona | Monoespaciado, sin colores. |
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolor | Se omite | Se ignoran sin ningún mensaje. |
caption=, label= | Se omite | No se imprime ningún pie, y un \ref a la etiqueta muestra "??". |
\lstset{...}, \lstdefinestyle, style= | Se omite | Se ignoran, incluido un language= fijado ahí. |
\lstinputlisting{file} | No compatible | Se omite con un mensaje. |
\lstlistoflistings, \lstnewenvironment | No compatible | Se 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
\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}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
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.Un listado con pie dentro de un figure
\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.Compatibilidad
- De una instalación de TeX a aquí: se muestra el código de cada
lstlisting. Muevelanguage=de\lstseta 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.