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
| Funzione | In Scissor LaTeX | Note |
|---|---|---|
\begin{lstlisting} ... \end{lstlisting} | Funziona | Monospaziato, esattamente come digitato. |
[language=Python] sull’ambiente | Funziona | Colori della sintassi secondo uno schema fisso. |
[language={[Sharp]C}] e altri dialetti | Funziona | Il dialetto tra parentesi quadre viene letto insieme al nome. |
\lstinline|code|, \lstinline{code} | Funziona | Monospaziato, senza colori. |
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolor | Tralasciato | Ignorati senza messaggi. |
caption=, label= | Tralasciato | Non viene stampata alcuna didascalia, e un \ref all’etichetta mostra "??". |
\lstset{...}, \lstdefinestyle, style= | Tralasciato | Ignorati, compreso un language= impostato lì. |
\lstinputlisting{file} | Non supportato | Saltato con un messaggio. |
\lstlistoflistings, \lstnewenvironment | Non supportato | Saltati 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
\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 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
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.Un listato con didascalia dentro una figura
\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.Compatibilità
- Da un’installazione TeX a qui: il codice di ogni
lstlistingviene mostrato. Spostalanguage=da\lstsetsu 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.