Vai al contenuto

Listati di codice in LaTeX

Metti il codice in un ambiente verbatim, lstlisting o minted, oppure usa \verb|...| nel testo; Scissor LaTeX lo compone in un font a spaziatura fissa esattamente come l’hai scritto e colora la sintassi quando indichi il linguaggio.

verbatim

Dentro verbatim nulla viene interpretato: barre rovesciate, parentesi graffe, $ e % vengono stampati così come sono, e gli a capo e gli spazi vengono mantenuti. È il modo più semplice per mostrare codice o l’output di un terminale.

Un blocco verbatim

\begin{verbatim}
for i in range(44):
    print(i)   # $ and \textbf stay as typed
\end{verbatim}

Codice nel testo: \verb

\verb mostra un breve frammento di codice all’interno di una frase. Il carattere subito dopo \verb è il delimitatore; scegline uno che non compare nel codice, come | o +.

Codice nel testo con \verb e \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.
Composto da Scissor LaTeX: Codice nel testo con \verb e \texttt

\texttt{...} cambia solo il font: lì i caratteri speciali come _ e % vanno comunque protetti, mentre \verb li prende così come sono.

listings: lstlisting con un linguaggio

Il pacchetto listings ti offre lstlisting. Con language=... il codice riceve i colori della sintassi.

lstlisting con language=Python

LaTeXPreambolo: \usepackage{listings}Apri nell'editor (si apre in una nuova scheda)
\begin{lstlisting}[language=Python]
def total(xs):
    """Add up the numbers in xs."""
    return sum(xs)

print(total([40, 4]))  # 44
\end{lstlisting}
Composto da Scissor LaTeX: lstlisting con language=Python

\lstinline|code| è la forma nel testo, come \verb.

minted

minted prende il linguaggio come argomento. In un’installazione TeX richiede Python e l’opzione -shell-escape; in Scissor LaTeX funziona senza nessuno dei due.

minted con un linguaggio

LaTeXPreambolo: \usepackage{minted}Apri nell'editor (si apre in una nuova scheda)
\begin{minted}{rust}
fn main() {
    let answer = 40 + 4;
    println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}
Composto da Scissor LaTeX: minted con un linguaggio

Cosa viene letto

ComandoIn Scissor LaTeXNote
verbatim, verbatim*Funziona
\verb, \verb*Funziona
lstlistingIn partelanguage= viene letto; ogni altra opzione (numbers, caption, frame, basicstyle, firstline ...) viene ignorata.
\lstinlineFunzionaNessun colore della sintassi nel testo.
\lstset{...}EsclusoUn linguaggio impostato qui non viene usato; indica language= in ogni listato.
mintedIn parteIl linguaggio viene letto; opzioni come linenos e frame vengono ignorate.
\mintinline{lang}{code}FunzionaNessun colore della sintassi nel testo.
Verbatim, BVerbatim (fancyvrb)In parteMostrati come verbatim; le opzioni vengono ignorate.
\lstinputlisting{file}, \inputminted{lang}{file}Non supportatoIgnorati con un messaggio; incolla il codice nel documento.
\lstnewenvironment, \newmintedNon supportato

I colori della sintassi sono disponibili per i linguaggi più comuni, tra cui Python, C, C++, Java, JavaScript, TypeScript, Rust, Go, Ruby, R, Julia, MATLAB, SQL, Bash, HTML, CSS, JSON, YAML, TeX e LaTeX. I nomi dei linguaggi non distinguono tra maiuscole e minuscole, quindi Python e python sono equivalenti. Un nome non riconosciuto produce codice semplice a spaziatura fissa.

Codice da un file

\lstinputlisting e \inputminted leggono il codice da un altro file in un’installazione TeX. Scissor LaTeX li ignora e lo segnala nella scheda Problemi:

\lstinputlisting viene ignorato

LaTeXPreambolo: \usepackage{listings}Apri nell'editor (si apre in una nuova scheda)
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.

Scheda Problemi: 1 included file is not part of this conversion

Cosa cambia rispetto a un’installazione TeX

Vedi listings e minted per le pagine dei pacchetti. I manuali completi sono su CTAN: listings, minted e fancyvrb.

Domande e risposte

Come si aggiunge un blocco di codice in LaTeX?

Racchiudi il codice in \begin{verbatim} ... \end{verbatim}, oppure in lstlisting con [language=Python] per avere i colori della sintassi.

minted funziona senza shell escape?

In Scissor LaTeX sì: gli ambienti minted vengono colorati senza Python né -shell-escape. In un’installazione TeX minted richiede comunque entrambi.

Perché mancano i numeri di riga nel mio listato?

Scissor LaTeX ignora numbers=left e le altre opzioni di layout di listings. Viene letto solo il linguaggio.

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