Vai al contenuto

listings in Scissor LaTeX

Il pacchetto listings funziona in parte in Scissor LaTeX: lstlisting mantiene il codice esattamente come digitato e lo colora quando indichi language= sull’ambiente, e \lstinline funziona; \lstset, numeri di riga, cornici, didascalie ed etichette vengono ignorati, e \lstinputlisting viene saltato.

Cosa fa il pacchetto

listings compone codice sorgente. L’ambiente lstlisting mantiene interruzioni di riga e spazi, e con language=Python (o C, Java, SQL ...) compone parole chiave, commenti e stringhe in stili diversi. Le opzioni aggiungono numeri di riga, cornici, didascalie e colori, per singolo listato o per l’intero documento con \lstset. \lstinline è la forma in linea, e \lstinputlisting legge il codice da un file.

Cosa funziona qui

FunzioneIn Scissor LaTeXNote
\begin{lstlisting} ... \end{lstlisting}FunzionaMonospaziato, esattamente come digitato.
[language=Python] sull’ambienteFunzionaColori della sintassi secondo uno schema fisso.
[language={[Sharp]C}] e altri dialettiFunzionaIl dialetto tra parentesi quadre viene letto insieme al nome.
\lstinline|code|, \lstinline{code}FunzionaMonospaziato, senza colori.
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolorTralasciatoIgnorati senza messaggi.
caption=, label=TralasciatoNon viene stampata alcuna didascalia, e un \ref all’etichetta mostra "??".
\lstset{...}, \lstdefinestyle, style=TralasciatoIgnorati, compreso un language= impostato lì.
\lstinputlisting{file}Non supportatoSaltato con un messaggio.
\lstlistoflistings, \lstnewenvironmentNon supportatoSaltati con un messaggio.

I nomi dei linguaggi non distinguono tra maiuscole e minuscole. I colori sono disponibili per i linguaggi comuni come Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML e TeX. Un nome non riconosciuto, come Fortran, dà codice monospaziato semplice senza messaggi.

Esempi

Indica il linguaggio su ogni listato:

lstlisting con language=Python

LaTeXPreambolo: \usepackage{listings}Apri nell'editor (si apre in una nuova scheda)
\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}
Composto da Scissor LaTeX: lstlisting con language=Python

Un linguaggio impostato con \lstset non viene usato, quindi questo listato non ha colori. Anche le opzioni di impaginazione come numbers e frame vengono ignorate:

\lstset viene ignorato

\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}

Il codice in linea con \lstinline accetta qualsiasi delimitatore, come \verb:

\lstinline in una frase

LaTeXPreambolo: \usepackage{listings}Apri nell'editor (si apre in una nuova scheda)
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.
Composto da Scissor LaTeX: \lstinline in una frase

Un listato con didascalia dentro una figura

LaTeXPreambolo: \usepackage{listings}Apri nell'editor (si apre in una nuova scheda)
\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.
Composto da Scissor LaTeX: Un listato con didascalia dentro una figura

Compatibilità

  • Da un’installazione TeX a qui: il codice di ogni lstlisting viene mostrato. Sposta language= da \lstset su ciascun listato per ottenere i colori, e incolla nel documento il codice dei file di \lstinputlisting.
  • Da qui a un’installazione TeX: i documenti si compilano lì senza modifiche, e le tue opzioni vengono allora applicate.

Il manuale completo è su CTAN: ctan.org/pkg/listings. Vedi anche Listati di codice in LaTeX e minted.

Domande e risposte

Perché i miei listati non sono colorati?

Probabilmente il linguaggio è impostato con \lstset, che qui viene ignorato. Scrivi [language=Python] (o il tuo linguaggio) dopo \begin{lstlisting}.

Posso mostrare i numeri di riga?

Non ancora. numbers=left viene accettato e ignorato.

Ogni esempio di questa pagina viene composto da Scissor LaTeX quando il sito viene generato. Ultimo aggiornamento: 2026-11-07.