Questo articolo mostra come usare il pacchetto minted per formattare ed evidenziare il codice sorgente di linguaggi di programmazione all’interno di un documento LaTeX, partendo da un esempio:
\documentclass{article}\usepackage{minted}\begin{document}\begin{minted}{python}import numpy as npdef incmatrix(genl1,genl2): m = len(genl1) n = len(genl2) M = None #to become the incidence matrix VT = np.zeros((n*m,1), int) #dummy variable #compute the bitwise xor matrix M1 = bitxormatrix(genl1) M2 = np.triu(bitxormatrix(genl2),1) for i in range(m-1): for j in range(i+1, m): [r,c] = np.where(M2 == M1[i,j]) for k in range(len(r)): VT[(i)*n + r[k]] = 1; VT[(i)*n + c[k]] = 1; VT[(j)*n + r[k]] = 1; VT[(j)*n + c[k]] = 1; if M is None: M = np.copy(VT) else: M = np.concatenate((M, VT), 1) VT = np.zeros((n*m,1), int) return M\end{minted}\end{document}
Questo esempio produce il seguente output:
Qui ci sono due comandi importanti. Nel preambolo il pacchetto viene importato scrivendo
\usepackage{minted}
quindi i tag \begin{minted}{python} e \end{minted} delimitano un ambiente che stampa il testo alla lettera (verbatim) con caratteri a spaziatura fissa e applica anche il colore a commenti, parole chiave e funzioni. Il parametro python è il linguaggio di programmazione in cui è scritto il codice sorgente. minted supporta oltre 150 linguaggi di programmazione e di markup, oltre ai file di configurazione: consulta la guida di riferimento per l’elenco dei linguaggi supportati.Nota: affinché minted funzioni con la tua distribuzione LaTeX locale, deve essere installato un programma aggiuntivo chiamato Pygments. Overleaf ti risparmia la fatica di installarlo e di dover eseguire comandi speciali per compilare il tuo documento: su Overleaf, i documenti che usano minted funzionano “così come sono”.
Come mostrato nell’esempio seguente, l’ambiente minted può essere configurato per modificare la presentazione visiva del codice composto. Qui l’ambiente minted usa diversi parametri separati da virgole nella forma key=value:
\documentclass{article}\usepackage{minted}\usepackage{xcolor} % to access the named colour LightGray\definecolor{LightGray}{gray}{0.9}\begin{document}\begin{minted}[frame=lines,framesep=2mm,baselinestretch=1.2,bgcolor=LightGray,fontsize=\footnotesize,linenos]{python}import numpy as npdef incmatrix(genl1,genl2): m = len(genl1) n = len(genl2) M = None #to become the incidence matrix VT = np.zeros((n*m,1), int) #dummy variable #compute the bitwise xor matrix M1 = bitxormatrix(genl1) M2 = np.triu(bitxormatrix(genl2),1) for i in range(m-1): for j in range(i+1, m): [r,c] = np.where(M2 == M1[i,j]) for k in range(len(r)): VT[(i)*n + r[k]] = 1; VT[(i)*n + c[k]] = 1; VT[(j)*n + r[k]] = 1; VT[(j)*n + c[k]] = 1; if M is None: M = np.copy(VT) else: M = np.concatenate((M, VT), 1) VT = np.zeros((n*m,1), int) return M\end{minted}\end{document}
Questo esempio produce il seguente output:
I parametri usati in questo esempio sono:
frame=lines: disegna due linee, una sopra e una sotto il codice, per incorniciarlo. Altri valori possibili sono leftline, topline, bottomline e single.
framesep=2mm: la distanza della cornice è impostata a 2mm. Si possono usare altre unità di lunghezza.
baselinestretch=1.2: l’interlinea del codice è impostata a 1.2.
bgcolor=LightGray: il colore di sfondo è impostato su LightGray. Perché funzioni devi importare il pacchetto xcolor. Consulta Usare i colori in LaTeX per saperne di più sulla gestione dei colori.
fontsize=\footnotesize: la dimensione del carattere è impostata su footnotesize. È possibile impostare qualsiasi altra dimensione del carattere.
linenos: abilita i numeri di riga.
Altre opzioni che potrebbero essere utili sono:
mathescape: abilita la modalità matematica nei commenti del codice.
rulecolor: cambia il colore della cornice.
showspaces: abilita un carattere speciale per rendere visibili gli spazi.
Il codice è di solito memorizzato in un file sorgente, quindi un comando che importa automaticamente il codice da un file è molto comodo, come mostrato nell’esempio seguente:
\documentclass{article}\usepackage{minted}\title{Importing files using minted}\begin{document}The next code will be directly imported from a file:\inputminted{octave}{BitXorMatrix.m}\end{document}
Questo esempio produce il seguente output:Il comando \inputminted{octave}{BitXorMatrix.m} importa il codice dal file BitXorMatrix.m; il parametro octave indica a LaTeX il linguaggio di programmazione del codice. Questo comando può accettare due parametri aggiuntivi per importare solo una parte del file; ad esempio, per importare il codice dalla riga 2 alla riga 12, il comando diventa:
Se devi inserire una sola riga di codice, il comando \mint, la cui sintassi è illustrata nell’esempio seguente, fa al caso tuo.
One-line code formatting also works with \texttt{minted}. For example, a small fragment of HTML like this:\mint{html}|<h2>Something <b>here</b></h2>|\noindent can be formatted correctly.
Questo esempio produce il seguente output:Il parametro tra parentesi graffe imposta il linguaggio di programmazione (in questo caso il linguaggio di markup html), mentre il testo da formattare è delimitato dal carattere ’|’.
Se usi le sandbox compile insieme a un server Overleaf self-hosted, minted potrebbe non funzionare correttamente. Per informazioni dettagliate, consulta: issues/131. Affinché minted funzioni, devi abilitare il profilo di istruzioni arm e alcune chiamate di sistema.
Ultima modifica il 4 ottobre 2026
Questa pagina è stata utile?
Assistant
Responses are generated using AI and may contain mistakes.