> 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/latex/it/formattazione/04-articles-how-to-change-paragraph-spacing-in-latex.md).

# Formattazione dei paragrafi

## Introduzione

Questo articolo esplora due metodi per apportare modifiche a vari aspetti della spaziatura tra i paragrafi:

* la pratica migliore e consigliata, che consiste nell'uso di pacchetti LaTeX come [`setspace`](https://ctan.org/pkg/setspace) e [`parskip`](https://ctan.org/pkg/parskip) che forniscono opzioni e comandi a livello utente per modificare la spaziatura dei tuoi documenti LaTeX;
* l'uso di comandi TeX/LaTeX di basso livello *di parametro* per modificare la spaziatura tra i paragrafi. L'uso diretto dei comandi di parametro può bypassare i controlli o i vincoli forniti da pacchetti LaTeX costruiti con cura, con conseguenze/effetti collaterali inaspettati altrove nel tuo documento LaTeX, quindi usali con cautela...

### Vai alle sezioni di interesse

I lettori che cercano soluzioni rapide:

* vai alla sezione [*Uso dei pacchetti LaTeX: setspace e parskip*](#using-latex-packages-setspace-and-parskip)

I lettori interessati ai comandi di basso livello:

* vai alle sezioni [*Comandi di parametro TeX/LaTeX*](#using-texlatex-parameter-commands) e [*Le basi: comandi di parametro ed esempi*](#the-fundamentals-parameter-commands-and-examples)

I lettori interessati ai dettagli più fini dei calcoli della spaziatura tra le righe e della struttura dei paragrafi:

* vai alla sezione [*Struttura dei paragrafi e calcoli della spaziatura tra le righe*](#paragraph-structure-and-line-space-calculations)

## Uso dei pacchetti LaTeX: setspace e parskip

* [Il pacchetto parskip](#the-parskip-package)
* [Il pacchetto setspace](#the-setspace-package)

### Il pacchetto parskip

Il [`parskip` che fornisce i comandi e le funzionalità necessarie per includere file grafici esterni. L'esempio sopra carica il](https://ctan.org/pkg/parskip?lang=en) ti aiuta a modificare in modo sicuro lo spazio inserito tra i paragrafi nel tuo documento. È progettato per garantire che strutture del documento come l'indice, gli ambienti elenco e i titoli in display non siano influenzati negativamente da un valore non nullo di [`\parskip` comando](#parskip-tex-primitive), che viene usato per impostare la quantità di spazio che TeX/LaTeX inserisce tra i paragrafi.

Il `parskip` il pacchetto non fornisce alcun comando a livello utente; invece, usa opzioni del pacchetto per configurare le sue azioni. Il [`parskip` documentazione](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/parskip/parskip.pdf) è breve, appena tre pagine, ma ecco un breve riepilogo delle opzioni del pacchetto:

* **`skip`**: specifica `\parskip`, lo spazio verticale tra i paragrafi;
* **`tocskip`**: specifica un valore non nullo di `\parskip` valore da usare in `\tableofcontents` e liste simili;
* **`indent`**: imposta il valore di `\parindent`, il rientro del paragrafo;
* **`parfill`**: regola il valore di `\parfillskip`, la colla aggiunta alla fine dell'ultima riga di un paragrafo.

Per impostazione predefinita, viene usato lo `parskip` il pacchetto imposta `\parindent` su `0pt` e fornisce un valore non nullo di `\parskip` valore di `.5[\baselineskip](#baselineskip-tex-primitive) più 2pt`.

#### Esempi del pacchetto parskip

I seguenti esempi dimostrano alcuni usi del `parskip` pacchetto. Seleziona i link “Open in Overleaf” per aprire e compilare gli esempi usando Overleaf.

**Esempio minimo del pacchetto parskip**

Il seguente esempio minimo carica il `parskip` pacchetto e compone due paragrafi creati usando il [`blindtext` che fornisce i comandi e le funzionalità necessarie per includere file grafici esterni. L'esempio sopra carica il](https://ctan.org/pkg/blindtext?lang=en). L'esempio compone anche i valori predefiniti di `\baselineskip`, `\parskip` e `\parindent`. La quantità di spazio tra i due paragrafi è determinata dal valore di `\parskip`:

```latex
\documentclass{article}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=16cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carica il pacchetto blindtext per il testo fittizio
\usepackage{blindtext}
% Carica il pacchetto parskip senza opzioni
\usepackage{parskip}
\begin{document}

\blindtext[1]\par % Usa \par per forzare un nuovo paragrafo
\blindtext[1]

Il valore di \verb|\parindent| è \texttt{\the\parindent}. Ecco gli altri valori:

\begin{itemize}
\item Il valore di \verb|\baselineskip| è \texttt{\the\baselineskip}
\item Il valore di \verb|\parskip| è \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+parskip+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+parskip+package+without+options%0A%5Cusepackage%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cblindtext%5B1%5D%5Cpar+%25Use+%5Cpar+to+force+a+new+paragraph%0A%5Cblindtext%5B1%5D%0A%0AThe+value+of+%5Cverb%7C%5Cparindent%7C+is+%5Ctexttt%7B%5Cthe%5Cparindent%7D.+Here+are+the+other+values%3A%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+The+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D%0A%5Citem+The+value+of+%5Cverb%7C%5Cparskip%7C+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Esempio di utilizzo del pacchetto LaTeX parskip](/files/36822436ba07b6988739a8eb32e0efe3576a4e7f)

Nota che `\parskip` la colla contiene tipicamente un [componente di colla estensibile](#a-few-notes-on-glue) perché aiuta LaTeX ad adattare il contenuto alla pagina e a produrre le migliori interruzioni di pagina (ottimali).

**Uso delle opzioni del pacchetto parskip**

L'esempio seguente carica e configura le `parskip` pacchetto usando l'opzione di lingua `skip` e `indent` opzioni. Compone anche due paragrafi, tramite il [`blindtext` che fornisce i comandi e le funzionalità necessarie per includere file grafici esterni. L'esempio sopra carica il](https://ctan.org/pkg/blindtext?lang=en), e compone i valori di `\baselineskip`, `\parskip` e `\parindent`.

```latex
\documentclass{article}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carica il pacchetto blindtext per il testo fittizio
\usepackage{blindtext}
% Carica il pacchetto parskip con le opzioni skip e indent
\usepackage[skip=10pt plus1pt, indent=40pt]{parskip}
\begin{document}

\blindtext[1]\par % Usa \par per forzare un nuovo paragrafo
\blindtext[1]

Il valore di \verb|\parindent| è stato impostato tramite l'opzione \texttt{indent}, quindi ora è \texttt{\the\parindent}. Gli altri valori sono:

\begin{itemize}
\item \verb|\baselineskip| è \texttt{\the\baselineskip}
\item \verb|\parskip| è stato impostato tramite l'opzione \texttt{skip}, quindi il suo valore è \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+parskip+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+parskip+package+with+skip+and+indent+options%0A%5Cusepackage%5Bskip%3D10pt+plus1pt%2C+indent%3D40pt%5D%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cblindtext%5B1%5D%5Cpar+%25+Use+%5Cpar+to+force+a+new+paragraph%0A%5Cblindtext%5B1%5D%0A%0AThe+value+of+%5Cverb%7C%5Cparindent%7C+was+set+via+the+%5Ctexttt%7Bindent%7D+option%2C+so+it+is+now+%5Ctexttt%7B%5Cthe%5Cparindent%7D.+The+other+values+are%3A%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D%0A%5Citem+%5Cverb%7C%5Cparskip%7C+was+set+via+the+%5Ctexttt%7Bskip%7D+option%2C+so+its+value+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Un secondo esempio di utilizzo del pacchetto LaTeX parskip](/files/70774753a9a8687fcd23c83fd99004646ad31e72)

### Il pacchetto setspace

Il [`setspace` che fornisce i comandi e le funzionalità necessarie per includere file grafici esterni. L'esempio sopra carica il](https://ctan.org/pkg/setspace?lang=en) fornisce comandi e ambienti per modificare la spaziatura delle righe di testo del tuo documento. Ecco un breve riepilogo dei principali comandi e ambienti forniti da `setspace`:

* i comandi **`\singlespacing`**, **`\onehalfspacing`** e **`\doublespacing`** possono essere usati nel preambolo del documento, oppure all'interno del corpo del documento per modificare la spaziatura in parte, o in tutto, il documento;
* le **`\setstretch{*quantità di baselinestretch*}`** comando imposta una spaziatura personalizzata (tramite modifiche a [`\baselinestretch`](#demonstrating-baselinestretch))—può anche essere usato nel preambolo del documento;
* gli ambienti **`singlespace`**, **`singlespace*`** **`onehalfspace`** e **`doublespace`** consentono di modificare la spaziatura delle righe per parti selezionate del testo del documento;
* le **`\SetSinglespace{*valore*}`** comando usa `*valore*` per regolare la spaziatura a singola interlinea per adattarla alla spaziatura delle righe del testo composto con font le cui forme dei caratteri (“glifi”) sono relativamente piccole, o grandi, per la dimensione in punti data. Vedi la sezione [*Brevi note sui font e sulla dimensione in punti*](#brief-notes-on-fonts-and-point-size) per un'illustrazione che dimostra la variazione della dimensione dei glifi del font per una data dimensione in punti;
* le **`spaziatura`** ambiente fornisce una spaziatura personalizzata e richiede un argomento: il [`\baselinestretch` valore](#demonstrating-baselinestretch) da usare; per esempio:

```latex
\begin{spacing}{2.5}
...
...
\end{spacing}
```

#### Esempi del pacchetto setspace

I seguenti esempi dimostrano alcuni usi del `setspace` pacchetto: fai clic sui link “Open in Overleaf” per aprire e compilare gli esempi usando Overleaf.

**Uso di \doublespacing nel preambolo del documento**

```latex
\documentclass{article}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carica il pacchetto blindtext per il testo fittizio
\usepackage{blindtext}
% Carica il pacchetto setspace
\usepackage{setspace}
% Uso di \doublespacing nel preambolo
% cambia il testo in interlinea doppia
\doublespacing
\begin{document}
\blindtext[1]
\end{document}
```

&#x20;[Apri questo `setspace` esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+doublespacing+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%25+Using+%5Cdoublespacing+in+the+preamble+%0A%25+changes+text+to+double+line+spacing%0A%5Cdoublespacing%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Esempio del comando \doublespacing di setspace](/files/20390cf869c17db89237b6d45ccddbd41e9dbea3)

**Uso dell'ambiente spacing**

Poiché il codice seguente compone 3 pagine, è preferibile visualizzare l'output su Overleaf selezionando il link “Open in Overleaf” fornito qui sotto.

```latex
\documentclass{article}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carica il pacchetto blindtext per il testo fittizio
\usepackage{blindtext}
% Carica il pacchetto setspace
\usepackage{setspace}
% Uso di \doublespacing nel preambolo
% cambia il testo in interlinea doppia
\doublespacing
\begin{document}
\blindtext[1]

Ora, applica una spaziatura più grande (personalizzata) impostando un valore di \verb|\baselinestretch| pari a 3:

\begin{verbatim}
\begin{spacing}{3}
\blindtext[1]
\end{spacing}
\end{verbatim}

\begin{spacing}{2.5}
\blindtext[1]
\end{spacing}
Ora, torna a \verb|\singlespacing|\singlespacing\blindtext[1]
\end{document}
```

&#x20;[Apri questo `setspace` esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+various+setspace+commands\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%25+Using+%5Cdoublespacing+in+the+preamble+%0A%25+changes+text+to+double+line+spacing%0A%5Cdoublespacing%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D%0A%0ANow%2C+apply+a+larger+%28custom%29+spacing+by+applying+a+%5Cverb%7C%5Cbaselinestretch%7C+value+of+3%3A%0A%0A%5Cbegin%7Bverbatim%7D%0A%5Cbegin%7Bspacing%7D%7B3%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0A%5Cend%7Bverbatim%7D%0A%0A%5Cbegin%7Bspacing%7D%7B2.5%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0ANow%2C+revert+to+%5Cverb%7C%5Csinglespacing%7C%5Csinglespacing%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

**Uso dell'ambiente singlespace\***

Come osservato nell'articolo [*Breve nota sulla spaziatura tra le righe*](https://texblog.org/2011/09/30/quick-note-on-line-spacing/), il `setspace` pacchetto fornisce versioni con asterisco (`singlespace*`) e senza asterisco del `singlespace` ambiente. I commenti nel `setspace` codice del pacchetto osservano che l' `singlespace*` ambiente è progettato per “... offrire una spaziatura verticale migliorata intorno agli ambienti itemize e quote”.

L'esempio seguente usa elenchi puntati contenuti in due `minipage` ambienti, posti fianco a fianco, per dimostrare la diversa spaziatura prodotta dal `singlespace` e `singlespace*` .

```latex
\doublespacing
\blindtext[1]

\begin{minipage}{.4\textwidth}
\begin{singlespace}
Ecco un elenco puntato\par (ambiente \texttt{singlespace}).
\begin{itemize}
\item Uno
\item Due
\item Tre
\end{itemize}
\end{singlespace}%
L'elenco è terminato.
\end{minipage}\kern10pt%
\begin{minipage}{.4\textwidth}
\begin{singlespace*}
Ecco un elenco puntato\par (ambiente \texttt{singlespace*}).
\begin{itemize}
\item Uno
\item Due
\item Tre
\end{itemize}
\end{singlespace*}
L'elenco è terminato.
\end{minipage}
```

&#x20;[Apri questo `setspace` esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+starred+singlespace+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cdoublespacing+%0A%5Cblindtext%5B1%5D%0A%0A%5Cbegin%7Bminipage%7D%7B.4%5Ctextwidth%7D%0A%5Cbegin%7Bsinglespace%7D%0AHere+is+a+bulleted+list%5Cpar+%28%5Ctexttt%7Bsinglespace%7D+environment%29.%0A%5Cbegin%7Bitemize%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bsinglespace%7D%25%0AThe+list+has+ended.%0A%5Cend%7Bminipage%7D%5Ckern10pt%25%0A%5Cbegin%7Bminipage%7D%7B.4%5Ctextwidth%7D%0A%5Cbegin%7Bsinglespace%2A%7D%0AHere+is+a+bulleted+list%5Cpar+%28%5Ctexttt%7Bsinglespace%2A%7D+environment%29.%0A%5Cbegin%7Bitemize%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bsinglespace%2A%7D%0AThe+list+has+ended.%0A%5Cend%7Bminipage%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Esempio dell'ambiente LaTeX singlespace\*](/files/a818ad8941dfb02cd77b0f235982356870bbf676)

**Uso del comando \setstretch**

`\setstretch{*valore*}` imposta il valore di `\baselinestretch` su *valore* e attiva un *immediato* cambiamento in `\baselineslip` causato da `\baselinestretch`. L'esempio seguente usa `\setstretch{1.618}`—lo strano valore di 1.618 è [spiegato più avanti nell'articolo](#understanding-and-calculating-values-for-baselinestretch)...

```latex
% Lo strano valore di 1.618 è spiegato più avanti nell'articolo.
\setstretch{1.618}
Scriviamo \verb|\setstretch{1.618}| per causare un cambiamento immediato della spaziatura tra le righe. Se scrivessimo \verb|\renewcommand{\baselinestretch}{1.618}| la spaziatura tra le righe non verrebbe modificata finché non viene usato un comando che cambia il font, come \verb|\selectfont|.

\blindtext[1]
```

&#x20;[Apri questo `setspace` esempio in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+setstretch+command\&snip=%5Cdocumentclass%5B11pt%5D%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0A%25+The+strange+figure+of+1.618+is+explained+later+in+the+article.%0A%5Csetstretch%7B1.618%7D%0AWe+write+%5Cverb%7C%5Csetstretch%7B1.618%7D%7C+to+cause+an+immediate+change+to+the+line+spacing.+If+we+wrote+%5Cverb%7C%5Crenewcommand%7B%5Cbaselinestretch%7D%7B1.618%7D%7C+the+line+spacing+would+not+be+modified+until+a+font-changing+command%2C+such+as+%5Cverb%7C%5Cselectfont%7C%2C+is+used.%0A%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Esempio del comando \setstretch](/files/69b2e3aeb7e3ca398d9fa6beff5922ead2ea68a9)

**Uso del comando \SetSinglespace**

Il seguente progetto viene compilato tramite LuaLaTeX e usa il `fontspec` pacchetto per accedere ai font TeX Gyre Pagella. Confronta due paragrafi di testo composti in TeX Gyre Pagella: il primo paragrafo usa la spaziatura singola predefinita e il secondo ha una spaziatura singola maggiore a seguito dell'applicazione di `\SetSinglespace{1.1}`. Alcune persone potrebbero preferire il secondo paragrafo, leggermente più “aperto”, trovandolo più comodo da leggere, ma questa è ovviamente una questione di preferenza personale.

```latex
\section*{Interlinea singola predefinita di Computer Modern}
Alcuni testi normali. \blindtext[1]
\setmainfont{TeX Gyre Pagella}
\section*{Interlinea singola predefinita di TeX Gyre Pagella}
Ecco del testo normale. \blindtext[1]
\section*{Interlinea singola regolata di TeX Gyre Pagella}
Nota: dobbiamo inserire \verb|\singlespacing| dopo aver scritto
\verb|\SetSinglespace{1.1}|\SetSinglespace{1.1}\singlespacing
\begin{singlespace*}
Ecco del testo normale. \blindtext[1]
\end{singlespace*}
```

&#x20;[Apri questo `setspace` esempio in Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Example+use+of+the+SetSinglespace+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csection%2A%7BComputer+Modern+default+single+spacing%7D%0ASome+regular+text.+%5Cblindtext%5B1%5D%0A%5Csetmainfont%7BTeX+Gyre+Pagella%7D%0A%5Csection%2A%7BTeX+Gyre+Pagella+default+single+line+spacing%7D%0AHere+is+some+regular+text.+%5Cblindtext%5B1%5D%0A%5Csection%2A%7BTeX+Gyre+Pagella+adjusted+single+line+spacing%7D%0ANote%3A+we+need+to+issue+%5Cverb%7C%5Csinglespacing%7C+after+writing++%0A%5Cverb%7C%5CSetSinglespace%7B1.1%7D%7C%5CSetSinglespace%7B1.1%7D%5Csinglespacing%0A%5Cbegin%7Bsinglespace%2A%7D+%0AHere+is+some+regular+text.+%5Cblindtext%5B1%5D%0A%5Cend%7Bsinglespace%2A%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Dimostrazione del comando LaTeX \SetSinglespace](/files/8fb1f598373cb1d2a41a634f9f4cfddad83b5104)

Nella sezione successiva esaminiamo i comandi `\baselinestretch` e `\linespread`.

#### Comprendere \baselinestretch e \linespread

Parte della progettazione di LaTeX per gestire la spaziatura tra le righe e i cambiamenti di font (dimensione del font, famiglia del font, codifica del font ecc.) fa uso di due comandi che potresti incontrare:

* **`\baselinestretch`**: questo comando memorizza un fattore di scala usato per moltiplicare (scalare) il valore corrente di [`\baselineskip`](#baselineskip-tex-primitive). Tale scalatura viene tipicamente applicata quando viene usato *prossima volta* un comando di selezione del font — come `\selectfont`. Per modificare il valore memorizzato da `\baselinestretch` dovresti scrivere `\renewcommand{\baselinestretch}{*scala*}`
  * **Nota**: Se scrivi `\renewcommand{\baselinestretch}{*scala*}` nel corpo del documento, il nuovo valore di `\baselinestretch` [non avrà effetto immediato](https://tex.stackexchange.com/questions/241120/why-does-changing-baselinestretch-not-change-line-spacing): il nuovo `*scala*` fattore viene memorizzato per un uso futuro. Per usare/applicare immediatamente il nuovo valore di`*scala*` valore, scrivi `\selectfont` come dimostrato nel [frammento di codice qui sotto](#demonstrating-baselinestretch).
* **`\linespread{*scala*}`**: può essere usato per modificare [`\baselineskip`](#baselineskip-tex-primitive) senza influenzare la dimensione attuale del font. Questo comando imposta `\baselinestretch` su `*scala*` che successivamente modifica `\baselineskip` su `*scala* × [\baselineskip](#baselineskip-tex-primitive)`. Tuttavia, anche tale scalatura non avviene immediatamente a meno che il comando `\linespread` venga usato nel preambolo del documento. Se `\linespread` viene usato nel corpo del documento, ha effetto dopo l'uso del successivo comando di dimensionamento/selezione del font.

In base a quanto sopra, si può usare:

* `\renewcommand{\baselinestretch}{*scala*}\selectfont` oppure,
* `\linespread{*scala*}\selectfont`

per modificare la spaziatura tra le righe, ed entrambi funzioneranno attraverso i cambiamenti della dimensione del font, come dimostrato nell'esempio seguente. Quindi, quale dovresti usare? Consulta [questa breve discussione su tex.stackexchange](https://tex.stackexchange.com/a/241121).

**Dimostrare \linespread**

L'esempio seguente usa `\linespread{2.5}` nel preambolo del documento, che modifica la spaziatura tra le righe senza richiedere ulteriori comandi di selezione del font:

```latex
\documentclass{article}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carica il pacchetto blindtext per il testo fittizio
\usepackage{blindtext}
% L'uso di \linespread nel preambolo modifica
% la spaziatura tra le righe senza richiedere ulteriori
% comandi di selezione del font, come \selectfont
\linespread{2.5}
\begin{document}
\blindtext[1] % Le righe sono influenzate da \linespread{2.5}
\end{document}
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+linestretch+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Using+%5Clinespread+in+the+preamble+changes+%0A%25+line+spacing+without+requiring+additional%0A%25+font-selection+commands%2C+such+as+%5Cselectfont%0A%5Clinespread%7B2.5%7D+%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D+%25+The+lines+are+affected+by+%5Clinespread%7B2.5%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Uso del comando linespread](/files/3424678f6d7a53673bc422e6907e23e9b47c4292)

Usare `\linespread{2.5}` nel corpo del documento (dopo `\begin{document}`) *richiederebbe* comandi di selezione del font per attivare la modifica della spaziatura tra le righe. Apri il seguente codice su Overleaf e confronta l'output con l'esempio precedente:

```latex
Poiché il seguente comando \verb|\linespread| viene usato nel corpo del documento, è necessario un comando di selezione del font per modificare la spaziatura tra le righe. Decommenta \verb|\selectfont| per vedere la differenza:

\linespread{2.5}%\selectfont

% Senza \selectfont i seguenti paragrafi non sono
% influenzati da \linespread{2.5}:
\blindtext[1]
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Second+example+using+the+linestretch+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0ABecause+the+following+%5Cverb%7C%5Clinespread%7C+command+is+used+in+the+document+body%2C+a+font-selection+command+is+required+to+change+the+line+spacing.+Un-comment+%5Cverb%7C%5Cselectfont%7C+to+see+the+difference%3A%0A%0A%5Clinespread%7B2.5%7D%25%5Cselectfont%0A+%0A%25+Without+%5Cselectfont+the+following+paragraph+lines+are+%0A%25+unaffected+affected+by+%5Clinespread%7B2.5%7D%3A+%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Uso del comando LaTeX \linespread nel documento](/files/f5209d938057c80f8c09bdb848db1d440223d31f)

**Dimostrare \baselinestretch**

L'esempio seguente dimostra `\baselinestretch` e `\selectfont` per mostrare il/i corrispondente/i effetto/i su [`\baselineskip`](#baselineskip-tex-primitive):

```latex
Il valore predefinito di \verb|\baselineskip|=\the\baselineskip. Ora aggiorna \verb|\baselinestretch|\renewcommand\baselinestretch{2.5}. Tuttavia, benché abbiamo eseguito

\vspace{5pt}
\verb|\renewcommand\baselinestretch{2.5}|
\vspace{5pt}

\noindent non ha (ancora) avuto alcun effetto: il nuovo valore di \verb|\baselinestretch| è memorizzato, ma non applicato. Possiamo emettere un comando \verb|\selectfont| per far sì che la modifica abbia effetto; ma, per ora, il valore di \verb|\baselineskip| è ancora \the\baselineskip{} (invariato).

Se ora eseguiamo \verb|\selectfont| la modifica a \verb|\baselinestretch|, impostandolo a 2.5, avrà ora effetto---\selectfont anche se siamo nel mezzo di un paragrafo. Ora, il valore di \verb|\baselineskip| è \the\baselineskip{} (= \(2.5 \times 12=30\mathrm{pt}\)).

Cosa succede se modifichiamo la dimensione del font a 14pt e \verb|\baselineskip| a 16pt usando i comandi \verb|\fontsize{14}{16}\selectfont|?

\fontsize{14}{16}\selectfont Ora, \verb|\baselineskip| non è \textit{16pt} ma \the\baselineskip{} perché il valore di \verb|\baselinestretch| (2.5) è stato preservato e applicato, dando \verb|\baselineskip| = \(2.5 \times 16=40\mathrm{pt}\).

\section{\texttt{\bfseries\string\linespread}}
Il comando \verb|\linespread| può essere usato per modificare \verb|\baselineskip| senza cambiare la dimensione del font.
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demonstrating+baselinestretch\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D16cm%2Ctextwidth%3D14cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0AThe+default+value+of+%5Cverb%7C%5Cbaselineskip%7C%3D%5Cthe%5Cbaselineskip.+Now+update+%5Cverb%7C%5Cbaselinestretch%7C%5Crenewcommand%5Cbaselinestretch%7B2.5%7D.+However%2C+although+we+have+executed%0A%0A%5Cvspace%7B5pt%7D%0A%5Cverb%7C%5Crenewcommand%5Cbaselinestretch%7B2.5%7D%7C+%0A%5Cvspace%7B5pt%7D%0A%0A%5Cnoindent+it+%5Ctextit%7Bhas+not%7D+%28yet%29+had+any+effect%3A+the+new+value+of+%5Cverb%7C%5Cbaselinestretch%7C+is+stored%2C+but+not+actioned.+We+can+issue+a+%5Cverb%7C%5Cselectfont%7C+command+to+make+the+change+take+effect%3B+but%2C+for+now%2C+the+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+still+%5Cthe%5Cbaselineskip%7B%7D+%28unchanged%29.+%0A%0AIf+we+now+execute+%5Cverb%7C%5Cselectfont%7C+the+change+to+%5Cverb%7C%5Cbaselinestretch%7C%2C+setting+it+to+2.5%2C+will+now+take+effect---%5Cselectfont+even+though+we+are+in+the+middle+of+a+paragraph.+Now%2C+the+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+%5Cthe%5Cbaselineskip%7B%7D+%28%3D+%5C%282.5+%5Ctimes+12%3D30%5Cmathrm%7Bpt%7D%5C%29%29.%0A%0AWhat+happens+if+we+change+the+font+size+to+14pt+and+%5Cverb%7C%5Cbaselineskip%7C+to+16pt+using+the+commands+%5Cverb%7C%5Cfontsize%7B14%7D%7B16%7D%5Cselectfont%7C%3F+%0A%0A%5Cfontsize%7B14%7D%7B16%7D%5Cselectfont+Now%2C+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctextit%7Bnot%7D+16pt+but+%5Cthe%5Cbaselineskip%7B%7D+because+the+value+of++%5Cverb%7C%5Cbaselinestretch%7C+%282.5%29+has+been+preserved+and+applied%2C+giving+%5Cverb%7C%5Cbaselineskip%7C+%3D+%5C%282.5+%5Ctimes+16%3D40%5Cmathrm%7Bpt%7D%5C%29.%0A%0A%5Csection%7B%5Ctexttt%7B%5Cbfseries%5Cstring%5Clinespread%7D%7D%0AThe+%5Cverb%7C%5Clinespread%7C+command+can+be+used+to+modify+%5Cverb%7C%5Cbaselineskip%7C+without+changing+the+font+size.%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Dimostrazione di baselinestretch](/files/f3dd5bd811a6948a490709029954990e6197ead8)

#### Come viene definita e modificata la “spaziatura tra le righe” nel pacchetto setspace?

Il *precisa* definizione, e *misurazione* della “spaziatura tra le righe” è aperta all'interpretazione, il che può portare a varie implementazioni all'interno di sistemi/applicazioni software. Chiaramente, il `setspace` pacchetto deve assumere una definizione operativa di spaziatura tra le righe in modo da poter fornire supporto per la composizione di righe “a interlinea singola” e “doppia”, o qualsiasi altro multiplo di spaziatura tra le righe. Ma quali variabili vengono modificate da `setspace` per produrre righe con diversi livelli di spazio bianco tra di esse?

Fortunatamente, [le discussioni su tex.stackexchange](https://tex.stackexchange.com/a/30106) e [i commenti nel codice del pacchetto](https://tex.stackexchange.com/a/632830) chiariscono come `setspace` implementa la spaziatura tra le righe: imposta il valore di `\baselineskip` usando un multiplo della dimensione in punti del font.

**Brevi note sui font e sulla dimensione in punti**

Usare font a una certa dimensione in punti significa applicare un *fattore di scala* alle forme dei caratteri (glifi) in quei font; una volta scalate in base alla dimensione in punti, la dimensione visibile del carattere è una funzione del progetto del font (tipo di carattere). La dimensione in punti non ha una relazione universale e rigida con la dimensione effettiva di visualizzazione delle forme dei caratteri all'interno dei font.

L'immagine seguente mostra lettere minuscole “abc” stilizzate usando 4 font diversi e tutte *visualizzate alla stessa dimensione in punti*. Nota come la “dimensione” di queste lettere minuscole vari in base al progetto del font (tipo di carattere) anche se sono tutte composte alla *stessa* dimensione in punti:

![Vari font alla stessa dimensione in punti](/files/078fc1cb180f038196fe022b6318210bd79f64cf)

#### Spaziatura a singola interlinea nel pacchetto setspace

Possiamo usare [le discussioni su tex.stackexchange](https://tex.stackexchange.com/a/30106) come base per ulteriori spiegazioni.

Un documento di base che usa la `article` classe ha una dimensione del font del testo predefinita di 10pt con un `\baselineskip` di 12pt. Con l'opzione \[11pt] o \[12pt] la classe article usa una dimensione del testo maggiore e un valore corrispondentemente più grande di `\baselineskip` come mostrato nella tabella seguente:

| opzione               | dimensione del font         | $$\texttt{\baselineskip}$$ | $$\displaystyle\frac{\texttt{\baselineskip}}{\text{font size}}$$ |
| --------------------- | --------------------------- | -------------------------- | ---------------------------------------------------------------- |
| \[10pt] (predefinito) | 10pt                        | 12pt                       | 1.2                                                              |
| \[11pt]               | 10.95pt$${}^{\textbf{\*}}$$ | 13.6pt                     | 1.24                                                             |
| \[12pt]               | 12pt                        | 14.5                       | 1.21                                                             |

$${}^{\textbf{\*}}$$La ragione del valore anomalo di `10.95pt`, e non esattamente `11pt`, è spiegata molto bene in questo [post su reddit](https://www.reddit.com/r/LaTeX/comments/ihle9h/why_does_latex_use_1095pt_text_when_the_11pt/).

Come mostrato nella tabella, per ogni combinazione di dimensione del testo in punti e del corrispondente valore predefinito (cioè, a interlinea singola) di `\baselineskip`, il rapporto

$$\frac{\texttt{\baselineskip}}{\text{font size}}$$

è vicino a 1.2. Quel valore di rapporto designa l'interlinea singola e fornisce la base per i calcoli della spaziatura tra le righe usati dal `setspace` pacchetto.

**Comprendere e calcolare i valori per \baselinestretch**

Per ottenere un particolare multiplo di spaziatura tra le righe come 1.5, 2, 3 ecc., il `\baselinestretch` comando deve essere impostato a valori apparentemente [“strani”](https://tex.stackexchange.com/a/30106); per esempio tramite [grezzo `\linespread` comando](https://texblog.org/2011/09/30/quick-note-on-line-spacing/). In questa sezione daremo uno sguardo più da vicino a `\baselinestretch` per vedere come sorgono quei valori “strani”.

Scegliamo un documento con dimensione del font predefinita di $$f$$ e `\baselineskip` di $$\text{dbls}\_1$$predefinito $${}\_1$$ implica il valore predefinito `\baselineskip` per l'interlinea singola alla dimensione del font $$f$$.

Definiremo ***definire*** l'interlinea singola come il seguente rapporto che chiameremo $$\alpha\_f$$:

$$\frac{\text{dbls}\_1}{f}=\alpha\_f$$

Per una data dimensione del font $$f$$, definiamo anche *definire* i seguenti valori di spaziatura tra le righe:

* un multiplo 1.5 di spaziatura tra le righe è *definito* come

$$\frac{\text{dbls}\_{1.5}}{f}=1.5$$

* un multiplo 2.0 di spaziatura tra le righe è *definito* come

$$\frac{\text{dbls}\_{2.0}}{f}=2.0$$

* un multiplo, $$m$$, di spaziatura tra le righe è *definito* come

$$\frac{\text{dbls}\_{m}}{f}=m$$

Usando la nostra interlinea singola, definita dal rapporto $$\alpha\_f$$, possiamo scrivere il seguente “pseudo codice” per calcolare un valore `\baselinestretch` corrispondente a qualsiasi multiplo di spaziatura tra le righe $$m$$:

$$\begin{align\*} \texttt{multi spacing } (m) &= \text{a constant } (\lambda) \times \texttt{single spacing}\ \frac{\text{dbls}\_{m}}{f}&=\lambda \times \alpha\_f\ m&=\lambda\alpha\_f\ \lambda&=\frac{m}{\alpha\_f}\kern5pt(\text{refer to }\lambda\text{ as }\texttt{\baselinestretch})\ \implies \texttt{\baselinestretch}&=\frac{m}{\alpha\_f} \end{align\*}$$

Usiamo `11pt` testo (in realtà `10.95pt`) e il valore predefinito di `\baselineskip` valore di `13.6pt` per calcolare `\baselinestretch` per *doppia* spaziatura tra le righe:

$$\begin{align\*} m&=2.0\ \texttt{\baselinestretch}&=\frac{2.0}{\alpha\_f}\ &=\frac{2.0}{\frac{\text{dbls}\_1}{f}}\ &=\frac{2.0}{\frac{13.6}{11}}\ &=2.0 \times \frac{11}{13.6}\ &=1.618\ \end{align\*}$$

Il seguente frammento di codice viene usato nel `setspace` pacchetto per ottenere `\doublespacing` quando la dimensione del font è 11pt. Notare come il valore di `1.618`, come calcolato sopra, è memorizzato nel comando `\baselinestretch`:

```latex
\newcommand{\doublespacing}{%
  \setstretch {1.667}%  predefinito
  \ifcase \@ptsize \relax % 10pt
    \setstretch {1.667}%
  \or % 11pt
    \setstretch {1.618}%
  \or % 12pt
    \setstretch {1.655}%
  \fi
}
```

Usando un `article` con la classe di documento con l'opzione font 11pt, il seguente esempio confronta `\doublespacing` con un `spaziatura` ambiente usando il nostro valore calcolato di `1.618` per `\baselinestretch`. Non sorprende che il `\baselineskip` i valori siano identici (`22.00475pt`):

```latex
\begingroup
\doublespacing
\verb|\baselineskip|=\texttt{\the\baselineskip} (tramite \verb|\doublespacing)|

\blindtext[1]

\endgroup

\begin{spacing}{1.618}
\verb|\baselineskip|=\texttt{\the\baselineskip} (tramite \verb|\begin{spacing}{1.618})|

\blindtext[1]
\end{spacing}
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demonstrating+baselinestretch+calculations\&snip=%5Cdocumentclass%5B11pt%5D%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D25cm%2Cpaperwidth%3D16cm%2Ctextwidth%3D14cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cusepackage%7Bblindtext%7D+%25+For+dummy+text.%0A%5Cbegin%7Bdocument%7D%0A%5Cbegingroup%0A%5Cdoublespacing%0A%5Cverb%7C%5Cbaselineskip%7C%3D%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D+%28via+%5Cverb%7C%5Cdoublespacing%29%7C%0A%0A%5Cblindtext%5B1%5D%0A%0A%5Cendgroup%0A%0A%5Cbegin%7Bspacing%7D%7B1.618%7D%0A%5Cverb%7C%5Cbaselineskip%7C%3D%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D+%28via+%5Cverb%7C%5Cbegin%7Bspacing%7D%7B1.618%7D%29%7C%0A%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![dimostrazione di \baselinestretch](/files/cdde0b359f98212b5d2042f81fa3c812f437ef45)

Calcoli simili di `\baselinestretch` i valori si applicano ad altre dimensioni del font e combinazioni di interlinea, come elencato nelle tabelle seguenti:

![parametri di setspace](/files/2d519fd020219bf693186cd0e920ea70e89d943f)

## Usare i comandi parametro di TeX/LaTeX

Le sezioni seguenti esplorano una serie di comandi relativi alla spaziatura/formattazione dei paragrafi: alcuni di questi comandi sono *incorporati nel* i motori di composizione TeX, altri sono macro TeX/LaTeX. I comandi integrati nei motori TeX sono noti come *primitivi*, il che significa che sono *fondamentale* e *irriducibili* perché, a differenza delle macro, i primitivi non sono costruiti da sequenze di altri comandi.

In particolare, prenderemo in considerazione una serie di *di parametro* supportati da tutti i motori TeX, inclusi pdfTeX, XeTeX e LuaTeX. I comandi parametro, che siano relativi ai paragrafi o meno, vengono usati per *ottenere il valore attuale* del parametro corrispondente, oppure *impostare quel parametro a un nuovo valore*. Per esempio, il `\parskip` comando, un primitivo, determina il valore di un parametro che controlla la quantità di spazio bianco inserita tra due paragrafi composti.

Per *ottenere* (qui, per comporre) il valore attuale di `\parskip` scriveresti:

```latex
\the\parskip
```

Per *set* il valore attuale di `\parskip` su `1pt plus2pt` (una colla flessibile) potresti scrivere qualcosa del genere:

```latex
\setlength{\parskip}{1pt plus2pt}
```

Discutiamo anche alcuni utili *macro*, comandi di livello più alto scritti e costruiti usando una sequenza di comandi costituenti.

### Comandi usati per la spaziatura dei paragrafi

I seguenti comandi (primitivi e macro) possono essere usati per influenzare la spaziatura dei paragrafi. Alcuni sono esplorati in maggiore dettaglio e vi si può accedere seguendo il collegamento dal nome del comando.

#### Comandi primitivi

* [`**\parindent**`](#parindent-tex-primitive): la quantità di rientro (spazio bianco) aggiunta alla prima riga di un paragrafo.
* [`**\parskip**`](#parskip-tex-primitive): la quantità di spazio bianco flessibile (“colla”) posta tra i paragrafi.
* [`**\rightskip**`](#leftskip-and-rightskip-tex-primitives): spaziatura flessibile (colla) inserita a destra di ciascuna riga in un paragrafo.
* [`**\leftskip**`](#leftskip-and-rightskip-tex-primitives): spaziatura flessibile (colla) inserita a sinistra di ciascuna riga in un paragrafo.
* [`**\baselineskip**`](#baselineskip-tex-primitive): il valore di questo parametro svolge due ruoli:
  * imposta la distanza desiderata tra le linee di base del testo in un paragrafo;
  * viene usato per calcolare la quantità (variabile) di spazio (colla) aggiunta tra le righe per ottenere la distanza desiderata tra una linea di base e l'altra ([vedi più avanti nell'articolo](#how-the-space-glue-between-paragraph-lines-is-calculated)).
* [`**\lineskiplimit**`](#lineskip-and-lineskiplimit-tex-primitives): un parametro il cui valore definisce la distanza minima accettabile tra due righe adiacenti di un paragrafo.
* [`**\lineskip**`](#lineskip-and-lineskiplimit-tex-primitives): la quantità di spazio (colla) inserita tra due righe in un paragrafo se la colla calcolata `\baselineskip` renderebbe le righe troppo vicine tra loro.
* `**\parfillskip**`: colla molto flessibile aggiunta alla fine dell'ultima riga di un paragrafo per “riempirla” con spazio bianco; per un esempio visivo, fare riferimento all'illustrazione nella sezione [*Visualizzare altri tipi di colla di paragrafo*](#visualizing-other-types-of-paragraph-glue).

#### Comandi macro

I seguenti comandi macro TeX/LaTeX sono spesso usati per modificare la spaziatura dei paragrafi:

* [`**\offinterlineskip**` e `**\nointerlineskip**`](#offinterlineskipandnointerlineskip): comandi che possono essere usati per disattivare il calcolo e l'inserimento di `\baselineskip` colla;
* [`**\baselinestretch**`](#understanding-and-calculating-values-for-baselinestretch): un comando che memorizza un fattore numerico usato per calcolare il valore di `\baselineskip` quando viene selezionato un font. Ha un valore predefinito di 1;
* [`**\linespread**`](#demonstrating-linespread): questo comando può essere usato per modificare il valore attuale di `\baselinestretch`.

### Spaziatura flessibile (colla)

I motori TeX ottengono effetti di spaziatura, anche all'interno o tra i paragrafi, tramite l'uso di uno spazio bianco flessibile chiamato *colla* che può essere allungato o compresso in base alla quantità di spazio richiesta. Se vuoi imparare il concetto di colla di TeX, ulteriori dettagli si trovano nei seguenti articoli di Overleaf:

* [Esplorare i box troppo pieni o troppo vuoti e i calcoli di badness](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv)
* [Come TeX calcola le impostazioni della colla in un \hbox](/latex/it/articoli-approfonditi/24-how-tex-calculates-glue-settings-in-an-hbox.md)
* [Comprendere gli avvisi di box troppo pieni e troppo vuoti](/latex/it/base-di-conoscenza/138-understanding-underfull-and-overfull-box-warnings.md).

## Le basi: comandi di parametro ed esempi

In questa sezione spieghiamo una serie di comandi relativi ai paragrafi e forniamo esempi del loro uso.

### \parindent (primitivo TeX)

Questo comando parametro imposta la quantità di rientro (spazio bianco) aggiunta alla prima riga di un paragrafo. Può essere modificato usando il comando LaTeX `\setlength` ; per esempio, per rientrare i paragrafi di `15pt` set `\parindent` su `15pt` scrivendo:

```latex
\setlength{\parindent}{15pt}
```

Si noti che:

* puoi modificare `\parindent` all'interno di un gruppo, assicurando che il suo effetto sia localizzato ai paragrafi di quel gruppo;
* `\parindent` può essere negativo, producendo un “rientro esterno” invece di un rientro;
* per impostazione predefinita LaTeX non rientra il primo paragrafo che segue un'intestazione di sezione del documento (`\section{...}` ecc.).

L'esempio seguente dimostra l'uso di `\parindent`.

```latex
\documentclass{article}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Crea un comando per contenere un paragrafo di testo
\newcommand{\testpar}{\texttt{\string\parindent=\the\parindent\ }Quando \TeX{} compone un paragrafo tratta ogni singolo carattere come un ``box'' 2D con una specifica larghezza, altezza e profondità.\par}
\begin{document}

% Imposta \parskip per mettere 10pt tra i paragrafi
\setlength{\parskip}{10pt}

% Imposta il valore di \parindent a 0pt
\setlength{\parindent}{0pt}
\testpar

% Imposta il valore di \parindent a 10pt
\setlength{\parindent}{10pt}
\testpar

% Imposta \parindent in un gruppo
{\setlength{\parindent}{50pt}\testpar}

% Ora \parindent è di nuovo 10pt
\testpar

% Sì, puoi avere un \parindent negativo
\setlength{\parindent}{-20pt}
\testpar
\end{document}
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+paragraph+indentation\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Create+a+command+to+hold+a+paragraph+of+text%0A%5Cnewcommand%7B%5Ctestpar%7D%7B%5Ctexttt%7B%5Cstring%5Cparindent%3D%5Cthe%5Cparindent%5C+%7DWhen+%5CTeX%7B%7D+typesets+a+paragraph+it+treats+each+individual+character+as+a+2D+%60%60box%27%27+with+a+specific+width%2C+height+and+depth.%5Cpar%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%25+Set+%5Cparskip+to+put+10pt+between+paragraphs%0A%5Csetlength%7B%5Cparskip%7D%7B10pt%7D%0A%0A%25+Set+the+value+of+%5Cparindent+to+0pt%0A%5Csetlength%7B%5Cparindent%7D%7B0pt%7D%0A%5Ctestpar%0A%0A%25+Set+the+value+of+%5Cparindent+to+10pt%0A%5Csetlength%7B%5Cparindent%7D%7B10pt%7D%0A%5Ctestpar%0A%0A%25+Set+%5Cparindent+in+a+group%0A%7B%5Csetlength%7B%5Cparindent%7D%7B50pt%7D%5Ctestpar%7D%0A%0A%25+Now+%5Cparindent+is+again+10pt%0A%5Ctestpar%0A%0A%25+Yes%2C+you+can+have+a+negative+%5Cparindent%0A%5Csetlength%7B%5Cparindent%7D%7B-20pt%7D%0A%5Ctestpar%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Usare vari valori di rientro dei paragrafi in LaTeX](/files/6c571c46313a9fcf6f1d54d13de72a7b2c04adde)

### \parskip (primitivo TeX)

La leggibilità del testo può essere migliorata separando i paragrafi con una quantità di spazio bianco che varierà in base a una certa estetica di design. TeX/LaTeX consentono agli utenti di controllare tale spaziatura tra paragrafi tramite il `\parskip` comando parametro.

* **Il consiglio del `parskip` che fornisce i comandi e le funzionalità necessarie per includere file grafici esterni. L'esempio sopra carica il**: Il [pacchetto parskip](https://ctan.org/pkg/parskip) consiglia che modificare direttamente `\parskip` può “provocare spazi verticali in punti inaspettati” (all'interno di un documento LaTeX). Il `parskip` pacchetto cerca di correggere i problemi di spaziatura che potrebbero sorgere da modifiche al valore di `\parskip`—ad esempio all'interno degli indici e degli ambienti elenco. Vedi anche la sezione pacchetto di questo articolo [`parskip` Per impostare manualmente il valore attuale di](#the-parskip-package).

usa il comando LaTeX `\parskip` ; per esempio, per separare i paragrafi di 3pt puoi scrivere: `\setlength` \setlength{\parskip}{3pt}

```latex
\newcommand{\testpar}{\noindent Il valore attuale di \texttt{\string\parskip} è \texttt{\the\parskip}. Quando \TeX{} compone un paragrafo tratta ogni singolo carattere come un ``box'' 2D~con una specifica larghezza, altezza e profondità.\par}
```

L'esempio seguente dimostra l'uso di `\parskip`:

```latex
\documentclass{article}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Crea un comando per contenere un paragrafo di testo
% Imposta \parskip a 5pt
\begin{document}
\testpar
\setlength{\parskip}{5pt}\testpar
% Imposta parskip a 10pt
\setlength{\parskip}{10pt}\testpar
% Imposta \parskip a 25pt (ma in un gruppo)
{\setlength{\parskip}{25pt}\testpar}
% Il gruppo termina, ora \parskip è di nuovo 10pt
% Sì, puoi avere un \parskip negativo
\testpar
\setlength{\parskip}{-20pt}\testpar
Dimostrazione dell'uso di \parskip in LaTeX
\end{document}
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+parskip+settings\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Create+a+command+to+hold+a+paragraph+of+text%0A%5Cnewcommand%7B%5Ctestpar%7D%7B%5Cnoindent+The+current+value+of+%5Ctexttt%7B%5Cstring%5Cparskip%7D+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D.+When+%5CTeX%7B%7D+typesets+a+paragraph+it+treats+each+individual+character+as+a+2D%7E%60%60box%27%27+with+a+specific+width%2C+height+and+depth.%5Cpar%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctestpar%0A%25+Set+%5Cparskip+to+5pt+%0A%5Csetlength%7B%5Cparskip%7D%7B5pt%7D%5Ctestpar%0A%25+Set+parskip+to+10pt%0A%5Csetlength%7B%5Cparskip%7D%7B10pt%7D%5Ctestpar%0A%25+Set+%5Cparskip+to+25pt+%28but+in+a+group%29%0A%7B%5Csetlength%7B%5Cparskip%7D%7B25pt%7D%5Ctestpar%7D%0A%25+Group+ends%2C+now+%5Cparskip+is+again+10pt%0A%5Ctestpar%0A%25+Yes%2C+you+can+have+a+negative+%5Cparskip%0A%5Csetlength%7B%5Cparskip%7D%7B-20pt%7D%5Ctestpar%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![\parskip flessibile](/files/5b2ba14da37858336d7319742c79f98edefe1c47)

#### Tradizionalmente,

non è un `\parskip` valore *fisso* , che comporterebbe la stessa quantità di spazio tra tutti i paragrafi. Invece, `\parskip` è di solito definito come uno “spazio flessibile” (chiamato colla) che consente a TeX di allungare o ridurre lo spazio tra i paragrafi, aiutando ad adattare il contenuto alla pagina e a trovare un posto “buono” per un'interruzione di pagina.

Per rendere `\parskip` flessibile, lo scriveresti sotto forma di una specifica di colla:

`\setlength{\parskip}{*quantità fissa* **plus** *quantità da allungare* **minus** *quantità da ridurre*}`

dove `**plus**` e `**minus**` sono *keywords* usati da TeX/LaTeX per identificare la *quantità da allungare* o *quantità da ridurre* contenuta in una specifica di colla. L'articolo di Overleaf [*Esplorare i box troppo pieni o troppo vuoti e i calcoli di badness*](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv) contiene una discussione più approfondita sulla colla.

Per esempio, per consentire a `\parskip` di variare tra `3 + 1 = 4pt` e `3 — 1 = 2pt` potresti scrivere

```latex
\setlength{\parskip}{3pt plus1pt minus1pt}
```

### \leftskip e \rightskip (primitivi TeX)

I motori TeX forniscono due comandi parametro che aggiungono spazio (colla) a sinistra e a destra di ciascuna riga nel paragrafo composto. Come suggeriscono i loro nomi:

* `\leftskip` inserisce spazio (colla) a sinistra di ciascuna riga in un paragrafo;
* `\rightskip` inserisce spazio (colla) a destra di ciascuna riga in un paragrafo.

I seguenti esempi usano `\leftskip` e `\rightskip` per modificare direttamente l'allineamento dei paragrafi; tuttavia... le modifiche all'allineamento del testo si ottengono di solito meglio tramite opportuni ambienti o pacchetti LaTeX—per esempio, vedi l'articolo di Overleaf sull'allineamento del testo [articolo di Overleaf sull'allineamento del testo](/latex/it/formattazione/06-text-alignment.md). Anche se dimostriamo il comportamento di alcuni comandi parametro di basso livello (primitivi) forniti dai motori TeX, è generalmente consigliabile usare i pacchetti LaTeX appropriati ogni volta che sia possibile.

#### Rendere \leftskip fisso e \rightskip flessibile

Il seguente esempio produce due paragrafi: il primo usa i valori predefiniti di LaTeX per `\leftskip` e `\rightskip` e il secondo paragrafo è composto usando le seguenti impostazioni:

```latex
\leftskip 10pt
\rightskip 0pt plus 1 fill
```

Apri il seguente progetto Overleaf per vedere l'output:

```latex
\documentclass{article}
\title{Secondo esempio di leftskip e rightskip}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Imposta il valore di alcuni parametri relativi ai paragrafi
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un file TeX generato che definisce le macro
% \mytextA e \mytextB, ciascuno contenente il testo di un paragrafo.
% Componi un paragrafo con i valori predefiniti di \leftskip e \rightskip

\mytextB

% Imposta \leftskip e \rightskip su nuovi valori
\leftskip 10pt
\rightskip 0pt plus 1fill
\vspace{8pt}

% Ora ricomponi lo stesso paragrafo
\mytextB

\end{document}
```

&#x20;Apri questo esempio come progetto LaTeX di Overleaf

Questo esempio genera il seguente output:

![Impostare la colla \leftskip in LaTeX](/files/506d6a317dbb72667cd0f6d6882db95c09b73792)

La grafica seguente è una versione annotata del secondo paragrafo prodotto dall'esempio sopra. È progettata per evidenziare e mostrare la quantità di `\leftskip` e `\rightskip` colla inserita nelle righe del paragrafo, insieme allo `\parindent` spazio per la prima riga:

![Impostare la colla \leftskip in LaTeX](/files/f609030fd0f162eb5cfc6ebb7c6bc4c6ea6a909a)

Nota che `\leftskip` la colla ha una dimensione fissa (10pt) ma `\rightskip` la colla si è allungata per fornire la quantità di spazio bianco necessaria a riempire il lato destro di ciascuna riga. Questa “flessibilità” è dovuta alla specifica di `\rightskip` che contiene `plus 1 fill`—fornendo una forma di colla “estendibile all'infinito”.

#### Rendere \rightskip fisso e \leftskip flessibile

Il seguente esempio produce due paragrafi: il primo usa i valori predefiniti di LaTeX per `\leftskip` e `\rightskip` e il secondo paragrafo è composto usando le seguenti impostazioni:

```latex
\leftskip 0pt plus 1 fill
\rightskip 10pt
```

Apri il seguente progetto Overleaf per vedere l'output:

```latex
\documentclass{article}
\title{Esempi di leftskip e rightskip}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Imposta il valore di alcuni parametri relativi ai paragrafi
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un file TeX generato che definisce le macro
% \mytextA e \mytextB, ciascuno contenente il testo di un paragrafo.
% Componi un paragrafo con i valori predefiniti di \leftskip e \rightskip

\mytextB

% Imposta \leftskip e \rightskip su nuovi valori
\rightskip 10pt
\leftskip 0pt plus 1fill
\vspace{8pt}

% Ora ricomponi lo stesso paragrafo
\mytextB

\end{document}
```

&#x20;Apri questo esempio come progetto LaTeX di Overleaf

Questo esempio genera il seguente output:

![Impostare la colla \rightskip in LaTeX](/files/240ec78aae9b3b5b11a546fb4e5ac484e0fd01db)

La grafica seguente è una versione annotata del secondo paragrafo prodotto dall'esempio sopra. È progettata per evidenziare e mostrare la quantità di `\leftskip` e `\rightskip` colla inserita nelle righe del paragrafo, insieme allo `\parindent` spazio per la prima riga:

![Impostare la colla \rightskip in LaTeX](/files/9aea973dc914b3e65cb9cac2466e95f956a52547)

Nota che `\rightskip` la colla ha una dimensione fissa (10pt) ma `\leftskip` la colla si è allungata per fornire la quantità di spazio bianco necessaria a riempire il lato sinistro di ciascuna riga. Questa “flessibilità” è dovuta alla specifica di `\leftskip` che contiene `plus 1 fill`—fornendo una forma di colla “estendibile all'infinito”.

#### Impostare \leftskip e \rightskip su valori flessibili

Il seguente esempio produce due paragrafi: il primo usa i valori predefiniti di LaTeX per `\leftskip` e `\rightskip` e il secondo usa le seguenti impostazioni di colla, flessibili:

```latex
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
```

Queste impostazioni fanno sì che le righe del paragrafo risultino centrate:

```latex
\documentclass{article}
\title{Esempi di leftskip e rightskip}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight==16cm,paperwidth==12cm,textwidth=8cm]{geometry}
% Imposta il valore di alcuni parametri relativi ai paragrafi
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un file TeX generato che definisce le macro
% \mytextA e \mytextB che definiscono il testo per due paragrafi
% Componi un paragrafo con i valori predefiniti di \leftskip e \rightskip

\mytextB

% Imposta \leftskip e \rightskip su impostazioni di colla “estremamente flessibili”
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\vspace{20pt}

% Ora ricomponi lo stesso paragrafo
\mytextB

\end{document}
```

&#x20;Apri questo esempio come progetto LaTeX di Overleaf

Questo esempio genera il seguente output:

![Esempio che mostra \leftskip e \rightskip](/files/c238801a48a618cee5bda1b6c09c1766b2f2211a)

La grafica seguente è una versione annotata del secondo paragrafo prodotto dall'esempio sopra. È progettata per evidenziare e mostrare la quantità di `\leftskip` e `\rightskip` colla inserita nelle righe del paragrafo, insieme allo `\parindent` spazio per la prima riga:

![Esempio che mostra \leftskip e \rightskip](/files/576bb757a1ed95ff97e09e2169bc70a71a3460c6)

Notare che entrambi `\leftskip` e `\rightskip` sono specificati come `0pt plus 1fill` rendendoli entrambi ugualmente “infinitamente flessibili”; di conseguenza, si allungano della stessa quantità, il che fa sì che le righe composte risultino centrate.

#### Impostare \leftskip e \rightskip in un gruppo

L'esempio seguente mostra come apportare modifiche temporanee a `\leftskip` e `\rightskip` inserendoli all'interno di un gruppo. Nel nostro esempio il gruppo è creato da `\begingroup`... `\endgroup`, come mostrato nel seguente frammento di codice:

```latex
\begingroup
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\mytextB
\endgroup
```

Il primo paragrafo è composto usando colla “estremamente flessibile” per `\leftskip` e `\rightskip`:

```latex
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
```

ma il secondo paragrafo usa i valori predefiniti di LaTeX:

```latex
\documentclass{article}
\title{Altro esempio di leftskip e rightskip}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Imposta il valore di alcuni parametri relativi ai paragrafi
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un file TeX generato che definisce le macro
% \mytextA e \mytextB che definiscono il testo per due paragrafi
% Qui cambiamo \leftskip e \rightskip su impostazioni di colla “estremamente flessibili”
% all'interno di un gruppo creato da \begingroup ... \endgroup

\begingroup
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\mytextB
\endgroup

% Ora ricomponi lo stesso paragrafo dopo la chiusura del gruppo
% facendo tornare \leftskip e \rightskip ai loro valori precedenti

\vspace{20pt}
\mytextB

\end{document}
```

&#x20;Apri questo esempio come progetto LaTeX di Overleaf

Questo esempio genera il seguente output:

![Usare \leftskip e \rightskip in un gruppo](/files/83a43f57e4073c1165e2ce440d1bfae239fa38e2)

**Nota**: Le impostazioni per (gli effetti di) `\leftskip` e `\rightskip` sono limitate al paragrafo all'interno del gruppo creato da `\begingroup`... `\endgroup`. Dopo la chiusura del gruppo, il paragrafo successivo è composto usando i valori predefiniti di LaTeX per `\leftskip` e `\rightskip`.

### \baselineskip (primitivo TeX)

È generalmente accettata nella composizione tipografica la pratica che le righe di testo all'interno dei paragrafi debbano essere equamente distanziate, tranne nei casi in cui alcune righe contengano elementi grandi, come una formula matematica o un'immagine, che rendono impossibile mantenere uno spaziamento interlinea costante per tali righe.

TeX/LaTeX forniscono comandi e meccanismi che consentono agli utenti di esercitare un certo grado di controllo sulla spaziatura interlinea. Uno di questi comandi è `\baselineskip` che ottiene, o imposta, il valore di un parametro che determina la spaziatura interlinea preferita (distanza tra una linea di base e l'altra) in un paragrafo composto.

Per comporre il valore attuale di `\baselineskip` puoi scrivere

```latex
\the\baselineskip
```

Per impostare `\baselineskip` su un qualche `valore` (una lunghezza LaTeX come `pt`) puoi scrivere

```latex
\setlength{\baselineskip}{value}
```

Per esempio, per impostare `\baselineskip` su `12pt` puoi scrivere

```latex
\setlength{\baselineskip}{12pt}
```

Possiamo dimostrare il ruolo di `\baselineskip` usando il seguente paragrafo (tipico):

![Un esempio di paragrafo LaTeX](/files/185042ed71579132b998e8041f6e0b778c2ea3ab)

e aggiungendo annotazioni che mostrano la distanza tra le linee di base controllata da `\baselineskip`:

![Un esempio di paragrafo LaTeX annotato per mostrare le distanze tra le linee di base](/files/e6211e0d9d216f5dbf8bdc9eedf1c90ed8cfe0e8)

Il diagramma mostra anche la “colla” interlinea: una quantità calcolata di spazio bianco aggiunta tra le righe—ne discuteremo ulteriormente più avanti nell'articolo.

#### \baselineskip e altri parametri

`\baselineskip` è uno dei quattro parametri principali che controllano la quantità di spazio inserita tra le righe di un paragrafo; gli altri sono:

* `\lineskip`
* `\lineskiplimit`
* `\prevdepth`

Più avanti nell'articolo esploreremo [*come vengono usati questi quattro parametri*](#paragraph-structure-and-line-space-calculations) per calcolare i valori della colla interlinea.

#### Esempio di \baselineskip (spazio fisso)

L'esempio seguente si apre in Overleaf per creare un progetto contenente un file chiamato `text.tex` che definisce i comandi `\mytextA` e `\mytextB`—entrambi i comandi compongono un paragrafo. Per praticità, il progetto Overleaf usa una piccola dimensione di pagina perché ciò aiuta nella preparazione di grafici e immagini per questa pagina di aiuto.

```latex
\documentclass{article}
\title{Dimostrazione di baselineskip}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Imposta il valore di alcuni parametri relativi ai paragrafi (ne parleremo)
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% Imposta il valore di \baselineskip—cambia il valore per vedere l'effetto
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Un file TeX generato che definisce le macro
% \mytextA e \mytextB, ciascuno dei quali compone un paragrafo

% Per prima cosa, componi due paragrafi con il \baselineskip predefinito
\mytextA\mytextB

% Ora cambia \baselineskip a un valore più grande e compone
% un altro paragrafo
\setlength{\baselineskip}{24pt}
\mytextA

\end{document}
```

&#x20;Apri questo esempio come progetto LaTeX di Overleaf

Questo esempio genera il seguente output:

![Esplorare \baselineskip in TeX o LaTeX](/files/e39a3c98d439d3dbbb7678ac7dfcdc228e77e117)

Il paragrafo nella pagina 2 ha righe molto distanziate perché `\baselineskip` è stato impostato a 24pt.

#### Esempio di \baselineskip (spazio flessibile)

L'esempio seguente specifica un `\baselineskip` valore che ha una componente di allungamento estremamente flessibile (la cosiddetta “infinita”):

```latex
\baselineskip=12pt plus1fil
```

A causa di questa flessibilità, lo spazio bianco tra le righe dei paragrafi può allungarsi della quantità necessaria per riempire la pagina. Una tale flessibilità farebbe sì che i paragrafi abbiano quantità molto diverse di spazio tra le righe di testo che li compongono, il che potrebbe non essere esteticamente piacevole o facile da leggere.

```latex
\documentclass{article}
\usepackage{blindtext}
\title{Dimostrazione flessibile di \texttt{\string\baselineskip}}
\author{Overleaf}
\date{Gennaio 2022}

\begin{document}

\maketitle
Forniremo a \verb|\baselineskip| una componente di ``stretch'' molto flessibile assegnando il valore \texttt{12pt plus1fil}: \verb|\baselineskip=12pt plus1fil|.\baselineskip=12pt plus1fil
\section{Introduzione}
Aggiungi un paragrafo che ora si allungherà per riempire la pagina. \blindtext

\end{document}
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Flexible+baselineskip+demo\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Ctitle%7BFlexible+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+demo%7D%0A%5Cauthor%7BOverleaf%7D%0A%5Cdate%7BJanuary+2022%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cmaketitle%0AWe%E2%80%99ll+provide+%5Cverb%7C%5Cbaselineskip%7C+with+a+very+flexible+%60%60stretch%27%27+component+by+assigning+the+value+%5Ctexttt%7B12pt+plus1fil%7D%3A+%5Cverb%7C%5Cbaselineskip%3D12pt+plus1fil%7C.%5Cbaselineskip%3D12pt+plus1fil+%0A%5Csection%7BIntroduction%7D%0AAdd+a+paragraph+that+will+now+stretch+to+fill+the+page.+%5Cblindtext%0A%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Dimostrazione della colla \baselineskip con flessibilità infinita](/files/de4dc312f112ed302921fa1bfc91944dc272ca6a)

**Alcune note sulla colla**

Alcune delle note seguenti sono tratte dall'articolo di Overleaf [esplorare i box troppo vuoti o troppo pieni e i calcoli di badness](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv), riprodotto qui per comodità.

Lo spazio bianco che TeX inserisce tra le righe di un paragrafo, `\baselineskip`, è una forma di spaziatura flessibile chiamata *colla*. Un valore di colla può essere specificato in tre componenti:

* un *fisso* quantità;
* una quantità che può *allungarsi*;
* una quantità che può *ridursi*,

Di conseguenza, un `\baselineskip` valore può essere specificato in questo modo:

`\baselineskip`=*importo fisso* **più** *quantità da allungare* **meno** *quantità da ridurre*

dove

* **più** e **meno** sono parole chiave che i motori TeX comprendono;
* *importo fisso* è indicato come il *componente normale* del glue (chiamato anche il *larghezza naturale* del glue);
* *quantità da allungare* è indicato come il *componente di allungamento* del glue;
* *quantità da ridurre* è indicato come il *componente di restringimento* del glue.

Il *importo fisso* è richiesto per tutti i valori di glue ma *quantità da allungare* e *quantità da ridurre* sono entrambi opzionali—se uno dei due, o entrambi, mancano, vengono impostati a un valore di 0.

Di solito, `\baselineskip` il glue è specificato con un *importo fisso* solo, i componenti stretch e shrink sono zero, altrimenti le righe del paragrafo avrebbero una spaziatura irregolare (variabile), il che potrebbe non essere esteticamente gradevole.

### \offinterlineskip e \nointerlineskip (macro)

Queste macro sono spesso usate per impedire l'inserimento di glue interlinea tra le righe di un paragrafo. I lettori interessati a maggiori dettagli possono saltare alle sezioni pertinenti dell'articolo che spiegano come funzionano queste macro.

* **`\offinterlineskip`**: Vedi la sezione dell'articolo [*Glue interlinea di dimensione zero: \offinterlineskip*](#zero-sized-interline-glue-offinterlineskip).
* **`\nointerlineskip`**: Vedi la sezione dell'articolo [*Impedire il glue interlinea: \prevdepth e \nointerlineskip*](#preventing-interline-glue-prevdepth-and-nointerlineskip).

## Struttura dei paragrafi e calcoli della spaziatura tra le righe

Usando le capacità di LuaTeX è possibile [elaborare a posteriori un paragrafo composto](https://www.overleaf.com/latex/examples/luatex-parsing-typeset-paragraphs/mzbpwxtjshsj) per visualizzare i confini dei caratteri costitutivi (glyph), delle righe e dei glue da cui è costruito. Inizieremo con una breve sequenza di grafici per aiutare a visualizzare il modello “box e glue” che i motori TeX usano per comporre il testo contenuto in un paragrafo.

### Struttura del paragrafo

Quando TeX compone un paragrafo tratta i singoli caratteri come piccole box, ciascuna con la propria larghezza, altezza e profondità, e quelle larghezze delle box dei caratteri vengono usate per calcolare le posizioni ottimali dei ritorni a capo. Inoltre, i caratteri di spazio contenuti nel testo, e usati per separare le singole parole, vengono convertiti in una forma di spazio flessibile (glue) che fornisce la spaziatura necessaria per ottenere ciascun ritorno a capo.

La seguente sequenza di 7 grafici mostra i componenti fondamentali di un paragrafo composto: vari tipi di box e glue. Il primo grafico mostra un paragrafo composto insieme a una versione annotata che evidenzia vari elementi all'interno del paragrafo. Tuttavia, il paragrafo annotato contiene molte informazioni, quindi i grafici successivi isolano vari componenti per (si spera) renderli più facili da comprendere.

![Paragraphanatomy1b.png](/files/88141ad2d6c2bea9061205f5ae9dea8b8f3837d3)

* Il grafico successivo raffigura le righe del paragrafo come box grigie separate da glue rappresentato da strisce verdi orizzontali. Quel glue viene calcolato per garantire che la distanza tra le baseline sia uguale a (cioè, il valore di) `\baselineskip`:

![Paragraphanatomy2b.png](/files/6501a7d5154da226ed567fbb649839af304e5746)

* L'immagine successiva rappresenta i caratteri composti come box: per visualizzare come i motori TeX elaborano i caratteri allo scopo di produrre i ritorni a capo:

![Paragraphanatomy3.png](/files/74a05a9b1748aca68890b673071a8f6696634565)

* L'immagine successiva mostra box dentro box: le righe del paragrafo più grandi (box) che contengono box più piccoli (caratteri individuali):

![Paragraphanatomy5.png](/files/b8fc810af2e33efe3550139fbaf28769ec220974)

* L'immagine successiva mostra la quantità di spazio tra le parole in प्रत्येक riga: questi spazi tra parole sono prodotti convertendo i caratteri di spazio in glue flessibili che vengono allungati o accorciati per produrre la lunghezza corretta di ciascuna riga di testo. Nota bene che la dimensione di questi spazi varia da una riga all'altra:

![Paragraphanatomy4.png](/files/6b3c09ea5e1a807d6d3f5df5f5c9505dd280d7a6)

* L'immagine successiva combina le box dei caratteri e i corrispondenti glue (spazi) collocati tra le singole parole:

![Paragraphanatomy6.png](/files/71db7ca5e00f174d807ba3a698203145a1148af4)

### Visualizzare altri tipi di colla di paragrafo

Anche i paragrafi seguenti sono stati composti ed elaborati usando LuaTeX per mostrare altri tipi di glue all'interno e tra una coppia di paragrafi. Nota che `\rightskip` e `\leftskip` sono entrambi impostati a 0pt, quindi non vengono mostrati:

* **`\parskip`** glue (azzurro chiaro) posto tra i due paragrafi composti;
* le singole parole sono separate da ***glue tra parole*** (giallo) creato convertendo i caratteri di spazio nell'input in spazi bianchi di dimensione variabile (glue) nell'output composto. Il glue che deriva dagli spazi tra le parole viene allungato o accorciato per ottenere ritorni a capo visivamente gradevoli;
* **`\baselineskip`** glue (verde chiaro) posto tra le righe—l'esatta quantità di `\baselineskip` glue è calcolata usando il meccanismo discusso qui sotto;
* **`\lineskip`** glue (rosso) usato nel secondo paragrafo—a causa della box bassa contenuta nell'ultima riga ma una prima;
* **`\parfillskip`** glue (verde scuro) posto alla fine dell'ultima riga in ciascun paragrafo.

![](/files/8aa76aea546cfc2efe91dd84498d570590cb9c90)

### Gestire righe (box) più profonde (o più alte)

Come mostrato dai grafici nel [sezione precedente](#paragraph-structure), un paragrafo composto è una pila verticale di “box”, separate da un certo spazio bianco, che TeX chiama “glue”. Man mano che il paragrafo viene elaborato, e le singole righe (box) vengono impilate, la lista verticale (pila) cresce in una *verso il basso* direzione, verso il fondo della pagina. Sebbene TeX/LaTeX cerchino di garantire che le righe del paragrafo siano impilate con baseline separate da una distanza costante di `\baselineskip`, non è sempre possibile ottenerlo perché alcune righe possono avere un'altezza o profondità maggiore del solito.

L'altezza e la profondità di ciascuna riga del paragrafo sono determinate dalla massima distanza che il contenuto di quella riga si estende sopra o sotto la baseline; di conseguenza, i paragrafi che contengono materiale con un'altezza o profondità relativamente grande, come formule in linea o grafica, probabilmente produrranno righe individuali con altezze e/o profondità corrispondentemente grandi. Per tali righe, TeX/LaTeX potrebbe non essere in grado di impilarle in modo che le loro baseline siano separate dalle altre righe dalla `\baselineskip` quantità. Chiaramente, TeX/LaTeX hanno bisogno di un “meccanismo di ripiego” per gestire tali righe *calcolando* una quantità adeguata di spazio da inserire tra ciascuna coppia di righe interessate da altezze e/o profondità grandi.

#### \lineskip e \lineskiplimit (primitive TeX)

Quel meccanismo di ripiego coinvolge i comandi parametro `\lineskip` e `\lineskiplimit` insieme a un terzo parametro chiamato `\prevdepth`. I lettori interessati ad altri dettagli possono saltare alla sezione dell'articolo [*Come viene calcolato lo spazio (glue) tra le righe del paragrafo*](#how-the-space-glue-between-paragraph-lines-is-calculated).

Il progetto di esempio qui sotto compone un singolo paragrafo la cui ultima riga ha una profondità relativamente grande a causa di una box di testo spostata (`\hbox`). Il paragrafo viene composto usando queste impostazioni:

```latex
\setlength{\baselineskip}{12pt}
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
```

Usa il link sotto il codice seguente per aprire un progetto Overleaf:

```latex
\documentclass{article}
% Usare una dimensione di pagina convenientemente piccola
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Imposta alcuni parametri importanti
\setlength{\baselineskip}{12pt}
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% File di input che definisce \testpar
\input testpar.tex
\title{Un paragrafo di esempio per lineskip}
\begin{document}
\testpar % Una macro creata nel progetto Overleaf
\end{document}
```

&#x20;[Apri questo esempio in Overleaf.](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%25+Use+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Set+some+important+parameters%0A%5Csetlength%7B%5Cbaselineskip%7D%7B12pt%7D%0A%5Csetlength%7B%5Clineskip%7D%7B3.5pt%7D%0A%5Csetlength%7B%5Clineskiplimit%7D%7B2pt%7D%0A%5Csetlength%7B%5Cparindent%7D%7B20pt%7D%0A%25+Input+file+defining+%5Ctestpar+%0A%5Cinput+testpar.tex%0A%5Ctitle%7BA+sample+paragraph+for+lineskip%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctestpar+%25+A+macro+created+in+the+Overleaf+project%0A%5Cend%7Bdocument%7D\&snip_name\[]=testpar.tex\&snip\[]=%5Cnewcommand%7B%5Ctestpar%7D%7B%5CTeX%7B%7D+uses+the+name+%60%60glue%27%27+to+describe+%60%60flexible+white+space%27%27+used+to+separate+any+typeset+item+which+can+appear+on+the+page.+For+example%2C+individual+words%2C+and+whole+lines%2C+within+a+typeset+paragraph+are+seperated+by+%60%60glue%27%27.+%5CTeX%7B%7D+engines+identify+%28give+a+name+to%29+different+types+of+glue+according+to+where+it+is+being+used.+For+example%2C+each+line+is+separated+by+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+glue+or%2C+occasionally%2C+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue%2C+depending+on+%5CTeX%27s+calculations.+Let%27s+trigger+use+of+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue+by+adding+an+%5Ctexttt%7B%5Cstring%5Chbox%7D+which+has+a+large+depth+due+to+the+%5Ctexttt%7B%5Cstring%5Clower%7D+command%3B+for+example%2C+the+box%0A+%5Clower5pt%5Chbox%7BLOW+BOX%7D+will+cause+%5CTeX%7B%7D+to+insert+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue+instead+of+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+glue.%5Cpar%7D\&main_document=main.tex)

Questo esempio produce il seguente output:

![Esempio per dimostrare il glue \lineskip](/files/a80b4ab79c2b6b70c842770bd0da5cb32d86055d)

Il grafico seguente usa una versione annotata del paragrafo prodotto dal progetto Overleaf precedente. Qui ingrandiamo per concentrarci sull'ultima riga del paragrafo, indicando l'uso di `\lineskip` glue (mostrato in rosso) causato dalla profondità della box di testo spostata:

![Immagine che mostra il glue \lineskip di TeX](/files/4ef2f74a07cf8abaf81dd639d7e3e02544248c89)

L'ultima riga del testo del paragrafo ha una profondità maggiore del solito, impedendo a TeX di mantenere la distanza costante baseline-a-baseline specificata dal valore `\baselineskip` (12pt). Come indicato dalle frecce sul lato destro del grafico, TeX/LaTeX cercano di garantire una distanza fissa (12pt) tra coppie di righe—il valore di `\baselineskip`. Tuttavia, per l'ultima coppia di righe TeX le ha separate di una quantità maggiore di 12pt e usa il valore di `\lineskip` per il glue interlinea invece di un valore calcolato usando `\baselineskip`.

Le sezioni seguenti esaminano e spiegano i dettagli dei calcoli di TeX dei valori del glue interlinea.

### Come viene calcolato lo spazio (glue) tra le righe del paragrafo

Per il momento *molto brevemente* menzioneremo il processo di costruzione della pagina di TeX, seppur in modo molto semplificato! Una volta che TeX ha finito di comporre un paragrafo, completando la sillabazione e determinando i ritorni a capo, puoi pensare a quei dati del paragrafo come memorizzati in una posizione di memoria temporanea. TeX deve quindi spostare quei dati del paragrafo, riga per riga, in una nuova posizione di memoria che memorizza il materiale destinato alla pagina di output corrente.

Quando TeX sposta i dati del paragrafo, riga per riga, sta, in effetti, costruendo una pila verticale di righe (box TeX) che cresce *verso il basso* verso il fondo della pagina. Man mano che sposta le righe del paragrafo alla pagina corrente, TeX cerca di garantire che quelle righe siano spaziate in modo uguale, con una spaziatura verticale coerente (baseline-a-baseline) pari al valore `\baselineskip`. Quando una nuova riga viene trasferita alla pagina corrente, il motore TeX registra temporaneamente la *profondità* perché sarà usata per calcolare la quantità di glue interlinea (spazio bianco) tra quella riga e la riga collocata dopo di essa.

#### Calcoli della dimensione del glue

Iniziamo riassumendo le caratteristiche di spaziatura interlinea fornite dai motori TeX:

* mantenere una distanza costante tra le baseline, una distanza pari a `\baselineskip`;
* fornire spaziatura per eventuali righe con un'altezza o profondità relativamente grande;
* la possibilità di disattivare l'inserimento di glue interlinea—automaticamente o sotto il controllo dell'utente. Per esempio:
  * i motori TeX disabilitano automaticamente l'inserimento di glue interlinea dopo una rule in modalità verticale;
  * le macro `\offinterlineskip` e `\nointerlineskip` consentono agli utenti di disattivare temporaneamente l'inserimento di glue interlinea—queste macro hanno effetti diversi, come vedremo più avanti.

La decisione se aggiungere glue interlinea e, in caso affermativo, quanto e di quale tipo, avviene così:

* Va aggiunto il glue interlinea? TeX lo decide verificando se la *profondità dell'ultima riga aggiunta* alla lista è inferiore al valore speciale di `–1000pt` (punti). Nota che `–1000pt` è un valore “sentinella” arbitrario usato internamente dai motori TeX.
  * **Nota**: Il valore di “profondità dell'ultima riga aggiunta”, che TeX registra internamente, è anche noto come “previous depth”. I motori TeX forniscono il comando parametro `\prevdepth`—che può, in certe circostanze, essere usato per *ottenere* o *set* il valore di “previous depth”. La macro `\nointerlineskip` fa uso di `\prevdepth`.
* TeX verifica se `la profondità della riga precedente è maggiore di –1000pt`?
  * ***Sì, lo è*** (è necessario aggiungere glue):
    * calcolare il valore Δ, dove Δ = \baselineskip – (profondità della riga precedente) – (altezza della riga successiva)
    * confrontare Δ con il valore di `\lineskiplimit`, un parametro usato per definire la distanza minima accettabile tra due righe, misurata come distanza tra il fondo della riga superiore e la sommità della riga inferiore.
    * Se Δ < `\lineskiplimit`:
      * le righe sono troppo vicine, quindi inserisci la spaziatura minima accettabile che è `\lineskip`
    * Se Δ >= `\lineskiplimit`:
      * le righe non sono troppo vicine, quindi usa Δ come quantità di glue da inserire
  * ***No, non lo è*** (non aggiungere glue):
    * Aggiungi la riga successiva (box) senza inserire alcun glue

La seguente immagine riassume il processo di glue interlinea:

![Come TeX determina i valori del glue interlinea](/files/abbe8bb6fb623d09a2072689f78dbec7d35c0110)

### Un esempio di calcolo del glue interlinea

Nel seguente esempio assumiamo che TeX/LaTeX stia usando i seguenti valori dei parametri di comando:

```latex
\baselineskip=12pt
\lineskip=3.5pt
\lineskiplimit=2pt
```

Esamineremo il calcolo del glue interlinea per le prime due righe di questo paragrafo:

![OLV2glue-calcs-step0.png](/files/31e9623f16b68426bbd0bc89f861fa317f08d828)

Nell'immagine successiva, il motore TeX ha elaborato la prima riga del paragrafo e l'ha spostata nella lista verticale che sta costruendo. Tiene traccia della profondità di quella riga (`d<sub>1</sub>`) che è `2.1528` (punti):

![OLV2glue-calcs-step1.png](/files/7543ea5be2598b2a85b1cf72c9ed044c4503f3cc)

Successivamente, TeX è pronto ad aggiungere una seconda riga alla lista che sta costruendo: quella riga ha un'altezza (`h<sub>2</sub>`) che è `6.9444` (punti) e, incidentalmente, una profondità, `d<sub>2</sub>` di `0` (punti):

![OLV2glue-calcs-step2.png](/files/f571af9b1782fa24d8e95a3abfa736aaa04e2a22)

A questo punto, TeX deve calcolare la quantità di spazio (glue, `g<sub>1</sub>`) da inserire tra queste due righe:

![OLV2glue-calcs-step3.png](/files/22986f1fc90273f1c4d1ab616925c3c5f22b6b2f)

L'immagine seguente mostra i calcoli del glue per questa coppia di righe:

![OLV2glue-calcs-stepA3.png](/files/d7fd91cc7687d8412cff139be0bb919423400374)

L'immagine finale mostra le due righe trasferite alla pagina corrente con la quantità calcolata di glue interlinea inserita tra di esse:

![OLV2glue-calcs-step5.png](/files/f08faf8815d7dd5f84e6a296b254712c47e1d840)

### Un altro parametro: \prevdepth

Come notato sopra, quando TeX crea una pila (lista) verticale di box, memorizza la profondità dell'ultimo box aggiunto a quella lista. Quel valore di profondità memorizzato è noto come “previous depth” e può essere accesso tramite il comando parametro `\prevdepth`.

Il `\prevdepth` comando può essere usato ***solo*** quando TeX è in modalità verticale; cioè, tra paragrafi o all'interno di box verticali: `\vbox`, `\vtop` o `\vcenter` (nota: `\vcenter` i box possono essere usati solo in modalità matematica).

`\prevdepth` fornisce accesso in lettura e scrittura al valore di “previous depth”:

* per leggere il valore corrente di `\prevdepth` puoi scrivere:

```latex
\the\prevdepth
```

* per impostare il valore corrente di `\prevdepth` su `un certo valore`, una lunghezza in punti, mm, ecc., puoi scrivere:

```latex
\setlength{\prevdepth}{some value}
```

Se provi a usare \verb`\prevdepth` in circostanze per cui non è stato progettato, come all'interno di un paragrafo o dentro un `\hbox` otterrai un errore

```latex
Uso improprio di \prevdepth.
```

con ulteriori informazioni che ti dicono che può essere usato solo in modalità verticale.

#### Impedire il glue interlinea: \prevdepth e \nointerlineskip

Un uso di `\prevdepth` consiste nel *impedire* che TeX esegua i calcoli della baseline usati per aggiungere glue interlinea tra gli elementi di una lista verticale, come le righe di un paragrafo. Usando `\prevdepth` per rappresentare `la profondità della riga precedente` possiamo riformulare i calcoli del glue (mostrati sopra) come segue:

```latex
se(\prevdepth > –1000pt)
{
     Δ = \baselineskip — \prevdepth — (altezza della riga corrente)

     se(Δ < \lineskiplimit)
       glue interlinea = \lineskip
     altrimenti
       glue interlinea = Δ
}
altrimenti
{
     Impila la box senza aggiungere
     alcun glue interlinea
}
```

Internamente, i motori TeX riconoscono un cosiddetto valore “sentinella” di `\prevdepth` che può essere usato per disabilitare il calcolo e l'aggiunta del glue interlinea. Quel valore sentinella è `–1000pt`, che si può vedere nella prima riga del pseudo-codice qui sopra:

```latex
se(\prevdepth > –1000pt)
```

TeX non aggiungerà glue interlinea a meno che `\prevdepth` sia maggiore di `–1000pt`— che fornisce il meccanismo usato dalla `\nointerlineskip` macro per impedire che il glue di baseline venga aggiunto tra la coppia successiva di box in una lista verticale.

`\nointerlineskip` ha una definizione equivalente a:

```latex
\def\nointerlineskip{
\prevdepth–1000pt
}
```

Nota che `\nointerlineskip` fornisce una *disattivazione una tantum* dei calcoli del glue interlinea perché il valore di `\prevdepth` viene aggiornato continuamente man mano che nuovi box vengono aggiunti alla lista verticale corrente, come dimostrato nel seguente esempio:

```latex
\noindent I seguenti \verb|\hbox|es vengono elaborati quando \TeX{} è in cosiddetta \textit{modalità verticale esterna}. Dopo l'elaborazione (composizione), queste box vengono aggiunte alla pagina corrente e impilate verticalmente con glue interlinea inserito tra di esse:

\hbox{j}
\hbox{p}
\hbox{g}

Ora, immediatamente dopo il box \verb|\hbox{j}|, impostiamo \verb|\prevdepth| a \texttt{-1000pt}, il che impedisce che il glue interlinea venga inserito tra i box \verb|\hbox{j}| e \verb|\hbox{p}|:

\hbox{j}\setlength{\prevdepth}{-1000pt}
\hbox{p}
\hbox{g}

Osserva che il glue interlinea \textit{viene} inserito tra i box \verb|\hbox{p}| e \verb|\hbox{g}| perché il valore di \verb|\prevdepth| viene aggiornato dopo che \verb|\hbox{p}| è stato elaborato e aggiunto alla lista: il valore di \verb|\prevdepth| diventa la profondità della box \verb|\hbox{p}|. Quando \verb|\hbox{g}| viene aggiunto alla lista verticale il valore di \verb|\prevdepth| non è più \texttt{-1000pt}; di conseguenza, il glue interlinea può ora essere aggiunto.
```

&#x20;[Apri questo esempio in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=One-shot+use+of+nointerlineskip\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D10cm%5D%7Bgeometry%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cbaselineskip%7D%7B14pt%7D%0A%5Csetlength%7B%5Cparskip%7D%7B1pt%7D%0A%5Csetlength%7B%5Cparindent%7D%7B0pt%7D%0A%25+A+convenience+macro+to+typeset+%5Cprevdepth+in+an+%5Chbox%2C+although+TeX+has+to+be%0A%25+in+a+vertical+mode+when+this+macro+is+used.%0A%5Cnoindent+The+following+%5Cverb%7C%5Chbox%7Ces+are+processed+when+%5CTeX%7B%7D+is+in+so-called+%5Ctextit%7Bouter+vertical+mode%7D.+After+processing+%28typesetting%29%2C+these+boxes+are+appended+to+the+current+page+and+stacked+vertically+with+interline+glue+inserted+between+them%3A%0A%0A%5Chbox%7Bj%7D%0A%5Chbox%7Bp%7D%0A%5Chbox%7Bg%7D%0A%0ANow%2C+immediately+after+after+the+box+%5Cverb%7C%5Chbox%7Bj%7D%7C%2C+we+set+%5Cverb%7C%5Cprevdepth%7C+to+%5Ctexttt%7B-1000pt%7D+which+prevents+interline+glue+being+placed+between+the+boxes+%5Cverb%7C%5Chbox%7Bj%7D%7C+and+%5Cverb%7C%5Chbox%7Bp%7D%7C%3A+%0A%0A%5Chbox%7Bj%7D%5Csetlength%7B%5Cprevdepth%7D%7B-1000pt%7D%0A%5Chbox%7Bp%7D%0A%5Chbox%7Bg%7D%0A%0AObserve+that+interline+glue+%5Ctextit%7Bis%7D+placed+between+the+boxes+%5Cverb%7C%5Chbox%7Bp%7D%7C+and+%5Cverb%7C%5Chbox%7Bg%7D%7C+because+the+value+of+%5Cverb%7C%5Cprevdepth%7C+is+updated+after+%5Cverb%7C%5Chbox%7Bp%7D%7C+is+processed+and+added+to+the+list%3A+the+value+of+%5Cverb%7C%5Cprevdepth%7C+becomes+the+depth+of+the+box+%5Cverb%7C%5Chbox%7Bp%7D%7C.+When+%5Cverb%7C%5Chbox%7Bg%7D%7C+is+added+to+the+vertical+list+the+value+of+%5Cverb%7C%5Cprevdepth%7C+is+no+longer+%5Ctexttt%7B-1000pt%7D%3B+consequently%2C+interline+glue+can+now+be+added.%0A%5Cend%7Bdocument%7D)

Questo esempio produce il seguente output:

![Esempio che dimostra il parametro \prevdepth di TeX](/files/0c5c5982a23c998a287b75c78235d202eab93de4)

#### Glue interlinea di dimensione zero: \offinterlineskip

È possibile rimuovere tutta la spaziatura interlinea tramite il comando macro `\nointerlineskip`, che ha una definizione equivalente a:

```latex
\def\offinterlineskip{%
\baselineskip=-1000pt
\lineskip=0pt
\lineskiplimit=\maxdimen
}
```

Nota che `\maxdimen` è `16383.99998pt`, la lunghezza massima che TeX può usare.

La seguente immagine mostra i calcoli fondamentali del glue interlinea e i vari valori dei parametri usati dalla macro `\nointerlineskip`:

![offinterlineskip](/files/e140c9761278d61466098b0b850c8f792f1784d5)

La seguente immagine mostra il frammento di pseudo-codice risultante dalla sostituzione dei `\nointerlineskip` valori della macro nei calcoli del glue. Dimostra come la `\nointerlineskip` macro funzioni impostando valori per `\baselineskip` e `\lineskiplimit` in modo che il glue interlinea sarà sempre `\lineskip` un glue di `0pt`.

![offinterlineskip](/files/c5b0e8cba50a49bfe00aaf49cf02fccb65a7a295)

#### \offinterlineskip e \lineskip non nullo

Il `\nointerlineskip` la macro imposta `\lineskip` a zero ma, come dimostra il seguente progetto Overleaf, puoi combinare `\nointerlineskip` con valori non nulli di `\lineskip` per ottenere effetti di spaziatura delle righe.

```latex
\documentclass{article}
\title{Dimostrazione di lineskip non nullo}
% Scegli una dimensione di pagina comodamente piccola
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
\begin{document}

\offinterlineskip % Questo imposta \lineskip a 0pt

\setlength{\lineskip}{5pt} % Vogliamo \lineskip non nullo

\input text.tex % Un file TeX generato che definisce le macro
% \mytextA e \mytextB, ciascuno dei quali compone un paragrafo

\mytextA % Componi un paragrafo

% Ora cambia \lineskip in un valore di glue flessibile e componi
% un altro paragrafo

\setlength{\lineskip}{5pt plus5pt minus5pt}

\mytextA

\end{document}
```

&#x20;Apri questo esempio come progetto LaTeX di Overleaf

Questo esempio genera il seguente output:

![Dimostrazione della macro \offinterlineskip di LaTeX](/files/d6a2a08e478eb05eea3d8b0c81799dd38a9eead2)

Puoi circoscrivere gli effetti dell'uso di `\offinterlineskip` e `\lineskip` (e di altri comandi di spaziatura) racchiudendoli in un gruppo:

```latex
\begingroup
\offinterlineskip
\setlength{\lineskip}{5pt}
...i tuoi paragrafi qui

\endgroup
```


---

# 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/latex/it/formattazione/04-articles-how-to-change-paragraph-spacing-in-latex.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.
