> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/texlive/it/relativo-ai-pacchetti/minted.md).

# {Minted}

Questo articolo mostra come usare il [`minted` pacchetto](https://ctan.org/pkg/minted?lang=en) per formattare ed evidenziare il codice sorgente di un linguaggio di programmazione all'interno di un documento LaTeX, a partire da un esempio:

```latex
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{python}
import numpy as np
    
def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None # diventerà la matrice di incidenza
    VT = np.zeros((n*m,1), int)  # variabile fittizia
    
    # calcola la matrice xor bit a bit
    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:

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Example displaying the output of the minted package"></p>

Ci sono due comandi importanti qui. Nel preambolo il pacchetto viene importato scrivendo

```latex
\usepackage{minted}
```

poi i tag `\begin{minted}{python}` e `\end{minted}` delimitano un ambiente che stampa il testo verbatim con font monospaziati e applica anche il colore ai commenti, alle parole chiave e alle 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 a file di configurazione, vedi la [guida di riferimento](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide) per un elenco dei linguaggi supportati.

**Nota**: Per `minted` funzioni con la tua *locale* distribuzione LaTeX, è necessario installare un programma aggiuntivo chiamato [Pygments](https://pygments.org/) . [Overleaf](https://www.overleaf.com/) può evitarti il problema di doverlo installare e di dover eseguire comandi speciali per compilare il tuo documento — su Overleaf, i documenti che usano `minted` funzioneranno "subito".

### Uso di base

Come dimostrato nell'esempio seguente, l' `minted` ambiente può essere configurato per modificare la presentazione visiva del codice impaginato. Qui, l' `minted` ambiente usa diversi parametri separati da virgole della forma `chiave=valore`:

```latex
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % per accedere al colore nominato 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 np
    
def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None # diventerà la matrice di incidenza
    VT = np.zeros((n*m,1), int)  # variabile fittizia
    
    # calcola la matrice xor bit a bit
    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:

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Example applying formatting to typeset code produced by the minted package"></p>

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 separazione del frame è impostata a 2 mm. Possono essere usate altre [unità di lunghezza](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX) .
* `baselinestretch=1.2`: l'interlinea del codice è impostata a 1,2.
* `bgcolor=LightGray`: colore di sfondo impostato su `LightGray`. Devi importare il pacchetto `xcolor` per farlo funzionare. Vedi [Uso dei colori in LaTeX](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) per saperne di più sulla manipolazione dei colori.
* `fontsize=\footnotesize`: dimensione del carattere impostata a `footnotesize`. Qualsiasi altra [dimensione del carattere](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide) può essere impostata.
* `linenos`: abilita i numeri di riga.

Altre opzioni che possono essere utili sono:

* `mathescape`: abilita la modalità matematica nei commenti del codice.
* `rulecolor`: cambia il colore del frame.
* `showspaces`: abilita un carattere speciale per rendere visibili gli spazi.

### Inclusione di codice da un file

Il codice è solitamente memorizzato in un file sorgente, quindi un comando che importa automaticamente il codice da un file è molto comodo, come dimostrato nel seguente esempio:

```latex
\documentclass{article}
\usepackage{minted}
\title{Importazione di file usando minted}
\begin{document}
Il codice seguente verrà importato direttamente da un file:

\inputminted{octave}{BitXorMatrix.m}
\end{document}
```

Questo esempio produce il seguente output:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="Usare minted per importare un file di codice" height="392" width="600">

Il comando `\inputminted{octave}{BitXorMatrix.m}` importa il codice dal file `BitXorMatrix.m`, il parametro `octave` dice a LaTeX qual è il linguaggio di programmazione del codice. Questo comando può accettare due parametri aggiuntivi per importare solo una parte del file; per esempio, per importare il codice dalla riga 2 alla riga 12, il comando diventa:

```latex
\inputminted[firstline=2, lastline=12]{octave}{BitXorMatrix.m}
```

### Codice su una sola riga

Se devi inserire solo una riga di codice, il comando `\mint`, la cui sintassi è presentata nel prossimo esempio, farà al caso tuo.

{% code overflow="wrap" %}

```latex
La formattazione del codice su una sola riga funziona anche con \texttt{minted}. Per esempio, un piccolo frammento di HTML come questo:
\mint{html}|<h2>Something <b>here</b></h2>|
\noindent può essere formattato correttamente.
```

{% endcode %}

Questo esempio produce il seguente output:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Esempio di codice su una riga con minted" height="112" width="600">

Il parametro tra parentesi graffe imposta il linguaggio di programmazione (`html` linguaggio di markup in questo caso) con il testo effettivo da formattare delimitato dal carattere '|' .

### Problemi con Overleaf self-hosted

Se stai usando sandbox compile e anche un server overleaf per distribuire overleaf, minted potrebbe non funzionare bene. Per informazioni dettagliate, puoi vedere: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Devi abilitare il profilo di istruzioni ARM e alcuni system call affinché minted funzioni.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/texlive/it/relativo-ai-pacchetti/minted.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
