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

# Styckeformatering

## Introduktion

Den här artikeln undersöker två metoder för att göra ändringar i olika aspekter av styckeavstånd:

* den bästa praxis, och rekommenderade, metoden att använda LaTeX-paket som [`setspace`](https://ctan.org/pkg/setspace) och [`parskip`](https://ctan.org/pkg/parskip) som erbjuder alternativ och användarnivåkommandon för att ändra avståndet i dina LaTeX-dokument;
* användning av lågnivå-TeX/LaTeX *parameterkommandon* för att ändra styckeavstånd. Direkt användning av parameterkommandon kan kringgå kontroller eller spärrar som tillhandahålls av noggrant utformade LaTeX-paket, vilket potentiellt kan leda till oväntade konsekvenser/bieffekter på andra ställen i ditt LaTeX-dokument, så använd dem med försiktighet...

### Hoppa till avsnitt av intresse

Läsare som söker snabba lösningar:

* gå till avsnittet [*Använda LaTeX-paket: setspace och parskip*](#using-latex-packages-setspace-and-parskip)

Läsare som är intresserade av lågnivåkommandon:

* gå till avsnitten [*TeX/LaTeX-parametrkommandon*](#using-texlatex-parameter-commands) och [*Grunderna: parameterkommandon och exempel*](#the-fundamentals-parameter-commands-and-examples)

Läsare som är intresserade av de finare detaljerna kring beräkningar av radavstånd och styckestruktur:

* gå till avsnittet [*Styckestruktur och beräkningar av radavstånd*](#paragraph-structure-and-line-space-calculations)

## Använda LaTeX-paket: setspace och parskip

* [Paketet parskip](#the-parskip-package)
* [Paketet setspace](#the-setspace-package)

### Paketet parskip

Den [`parskip` paketet](https://ctan.org/pkg/parskip?lang=en) hjälper dig att på ett säkert sätt ändra avståndet som infogas mellan stycken i ditt dokument. Det är utformat för att säkerställa att dokumentstrukturer som innehållsförteckning, listmiljöer och rubriker i displayformat inte påverkas negativt av ett icke-nollvärde för [`\parskip` kommandot](#parskip-tex-primitive), som används för att ange mängden avstånd som TeX/LaTeX infogar mellan stycken.

Den `parskip` Paketet tillhandahåller inga användarkommandon; i stället använder det paketalternativ för att konfigurera sina åtgärder. Manualen [`parskip` dokumentationen](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/parskip/parskip.pdf) är kort, bara tre sidor, men här är en kort sammanfattning av paketalternativen:

* **`skip`**: ange `\parskip`, det vertikala avståndet mellan stycken;
* **`tocskip`**&#x61;nge ett icke-noll `\parskip` värde för användning i `\tableofcontents` och liknande listor;
* **`indent`**&#x61;nge värdet på `\parindent`, styckeindraget;
* **`parfill`**&#x6A;usterar värdet på `\parfillskip`, limmet som läggs till i slutet av den sista raden i ett stycke.

Som standard används `parskip` Paketet ställer in `\parindent` till `0pt` och ger ett icke-noll `\parskip` värdet av `.5[\baselineskip](#baselineskip-tex-primitive) plus 2pt`.

#### Exempel på paketet parskip

Följande exempel visar några användningar av `parskip` paketet. Välj länkarna “Open in Overleaf” för att öppna och kompilera exemplen i Overleaf.

**Minimalt exempel med paketet parskip**

Följande minimala exempel laddar `parskip` paketet och sätter två stycken skapade med [`blindtext` paketet](https://ctan.org/pkg/blindtext?lang=en). Exemplet sätter också standardvärdena för `\baselineskip`, `\parskip` och `\parindent`Mängden avstånd mellan de två styckena bestäms av värdet på `\parskip`:

```latex
\documentclass{article}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=16cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Ladda paketet blindtext för platshållartext
\usepackage{blindtext}
% Ladda paketet parskip utan alternativ
\usepackage{parskip}
\begin{document}

\blindtext[1]\par % Använd \par för att tvinga fram ett nytt stycke
\blindtext[1]

Värdet på \verb|\parindent| är \texttt{\the\parindent}. Här är de andra värdena:

\begin{itemize}
\item Värdet på \verb|\baselineskip| är \texttt{\the\baselineskip}
\item Värdet på \verb|\parskip| är \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Exempelanvändning av LaTeX-paketet parskip](/files/4937f5368ce95e6a75c892893669e797bac38c94)

Observera att `\parskip` lim innehåller vanligtvis en töjbar [limkomponent](#a-few-notes-on-glue) eftersom det hjälper LaTeX att anpassa innehållet till sidan och skapa de bästa (optimala) sidbrytningarna.

**Använda paketalternativen för parskip**

Följande exempel laddar och konfigurerar `parskip` paketet med `skip` och `indent` alternativ. Det sätter också två stycken, via [`blindtext` paketet](https://ctan.org/pkg/blindtext?lang=en), och sätter värdena för `\baselineskip`, `\parskip` och `\parindent`.

```latex
\documentclass{article}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Ladda paketet blindtext för platshållartext
\usepackage{blindtext}
% Ladda paketet parskip med alternativen skip och indent
\usepackage[skip=10pt plus1pt, indent=40pt]{parskip}
\begin{document}

\blindtext[1]\par % Använd \par för att tvinga fram ett nytt stycke
\blindtext[1]

Värdet på \verb|\parindent| sattes via alternativet \texttt{indent}, så det är nu \texttt{\the\parindent}. De andra värdena är:

\begin{itemize}
\item \verb|\baselineskip| är \texttt{\the\baselineskip}
\item \verb|\parskip| sattes via alternativet \texttt{skip}, så dess värde är \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Ett andra exempel på användning av LaTeX-paketet parskip](/files/dc683c628135ef735fc5e527b3d312e2a718a892)

### Paketet setspace

Den [`setspace` paketet](https://ctan.org/pkg/setspace?lang=en) tillhandahåller kommandon och miljöer för att ändra avståndet mellan raderna i dokumentet. Här är en kort sammanfattning av de viktigaste kommandona och miljöerna som tillhandahålls av `setspace`:

* kommandona **`\singlespacing`**, **`\onehalfspacing`** och **`\doublespacing`** kan användas i dokumentets preambel, eller i dokumentets brödtext för att ändra avståndet delvis eller i hela dokumentet;
* den **`\setstretch{*baselinestretch amount*}`** kommandot ställer in ett anpassat avstånd (via ändringar i [`\baselinestretch`](#demonstrating-baselinestretch))—det kan också användas i dokumentets preambel;
* miljöerna **`singlespace`**, **`singlespace*`** **`onehalfspace`** och **`doublespace`** gör det möjligt att ändra radavståndet för utvalda delar av dokumentets text;
* den **`\SetSinglespace{*value*}`** kommandot använder `*value*` för att justera enkelradigt avstånd så att det passar radavståndet för text satt med typsnitt vars teckenformer (“glypher”) är relativt små eller stora för den givna punktstorleken. Se avsnittet [*Korta notiser om typsnitt och punktstorlek*](#brief-notes-on-fonts-and-point-size) för en illustration som visar variationen i teckensnittens storlek för en given punktstorlek;
* den **`avstånd`** miljön tillhandahåller anpassat avstånd och kräver ett argument: [`\baselinestretch` värde](#demonstrating-baselinestretch) att använda; till exempel:

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

#### Exempel på paketet setspace

Följande exempel visar några användningar av `setspace` paketet: klicka på länkarna “Open in Overleaf” för att öppna och kompilera exemplen i Overleaf.

**Använda \doublespacing i dokumentets preambel**

```latex
\documentclass{article}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Ladda paketet blindtext för platshållartext
\usepackage{blindtext}
% Ladda paketet setspace
\usepackage{setspace}
% Använder \doublespacing i preambeln
% ändrar texten till dubbelradavstånd
\doublespacing
\begin{document}
\blindtext[1]
\end{document}
```

&#x20;[Öppna detta `setspace` exempel i 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)

Det här exemplet ger följande utdata:

![Exempel på kommandot \doublespacing i setspace](/files/dc6890cf177740b969cb70f7693a8a2e5ffa76da)

**Använda miljön spacing**

Eftersom följande kod sätter tre sidor är det bättre att se utdata i Overleaf genom att välja länken “Open in Overleaf” nedan.

```latex
\documentclass{article}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Ladda paketet blindtext för platshållartext
\usepackage{blindtext}
% Ladda paketet setspace
\usepackage{setspace}
% Använder \doublespacing i preambeln
% ändrar texten till dubbelradavstånd
\doublespacing
\begin{document}
\blindtext[1]

Använd nu ett större (anpassat) avstånd genom att ange ett värde på \verb|\baselinestretch| som 3:

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

\begin{spacing}{2.5}
\blindtext[1]
\end{spacing}
Nu, återgå till \verb|\singlespacing|\singlespacing\blindtext[1]
\end{document}
```

&#x20;[Öppna detta `setspace` exempel i 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)

**Använda miljön singlespace\***

Som noterats i artikeln [*Kort notis om radavstånd*](https://texblog.org/2011/09/30/quick-note-on-line-spacing/), den `setspace` paketet tillhandahåller stjärnmärkta (`singlespace*`) och icke-stjärnmärkta versioner av `singlespace` miljön. Kommentarer i `setspace` paketkoden noterar att `singlespace*` miljön är utformad för att “... ge förbättrat vertikalt avstånd runt itemize- och quote-miljöer”.

Följande exempel använder punktlistor i två `minipage` miljöer, placerade sida vid sida, för att demonstrera det olika avstånd som produceras av `singlespace` och `singlespace*` miljöer.

```latex
\doublespacing
\blindtext[1]

\begin{minipage}{.4\textwidth}
\begin{singlespace}
Här är en punktlista\par (\texttt{singlespace}-miljön).
\begin{itemize}
\item Ett
\item Två
\item Tre
\end{itemize}
\end{singlespace}%
Listan har avslutats.
\end{minipage}\kern10pt%
\begin{minipage}{.4\textwidth}
\begin{singlespace*}
Här är en punktlista\par (\texttt{singlespace*}-miljön).
\begin{itemize}
\item Ett
\item Två
\item Tre
\end{itemize}
\end{singlespace*}
Listan har avslutats.
\end{minipage}
```

&#x20;[Öppna detta `setspace` exempel i 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)

Det här exemplet ger följande utdata:

![Exempel på LaTeX-miljön singlespace\*](/files/73dd7eaa5cb025e3b9277a2cecd171c7dbcd5128)

**Använda kommandot \setstretch**

`\setstretch{*value*}` värdet på `\baselinestretch` till *värde* och utlöser en *omedelbar* ändring i `\baselineslip` orsakad av `\baselinestretch`. Följande exempel använder `\setstretch{1.618}`—det märkliga värdet 1.618 [förklaras senare i artikeln](#understanding-and-calculating-values-for-baselinestretch)...

```latex
% Det märkliga talet 1.618 förklaras senare i artikeln.
\setstretch{1.618}
Vi skriver \verb|\setstretch{1.618}| för att åstadkomma en omedelbar ändring av radavståndet. Om vi i stället skrev \verb|\renewcommand{\baselinestretch}{1.618}| skulle radavståndet inte ändras förrän ett fontändrande kommando, såsom \verb|\selectfont|, används.

\blindtext[1]
```

&#x20;[Öppna detta `setspace` exempel i 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)

Det här exemplet ger följande utdata:

![Exempel på kommandot \setstretch](/files/2060fb425bfeb4d060bd9b0484aa281831d1a824)

**Använda kommandot \SetSinglespace**

Följande projekt kompileras via LuaLaTeX och använder `fontspec` paketet för att komma åt typsnitten i TeX Gyre Pagella. Det jämför två stycken text satta i TeX Gyre Pagella: det första stycket använder standardmässigt enkelradigt avstånd och det andra har ett större enkelradigt avstånd på grund av att `\SetSinglespace{1.1}`. Vissa personer kan föredra det andra, något “öppnare”, stycket, eftersom de tycker att det förbättrar läskomforten, men det är förstås en fråga om personlig smak.

```latex
\section*{Standardmässigt enkelradigt avstånd i Computer Modern}
Lite vanlig text. \blindtext[1]
\setmainfont{TeX Gyre Pagella}
\section*{Standardmässigt enkelradigt avstånd i TeX Gyre Pagella}
Här är lite vanlig text. \blindtext[1]
\section*{Justerat enkelradigt avstånd i TeX Gyre Pagella}
Observera: vi behöver skriva \verb|\singlespacing| efter att ha skrivit
\verb|\SetSinglespace{1.1}|\SetSinglespace{1.1}\singlespacing
\begin{singlespace*}
Här är lite vanlig text. \blindtext[1]
\end{singlespace*}
```

&#x20;[Öppna detta `setspace` exempel i 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)

Det här exemplet ger följande utdata:

![Demonstration av LaTeX-kommandot \SetSinglespace](/files/0da236cc57fb934a81cef5c72b2a3dfe2ad86f48)

I nästa avsnitt går vi igenom kommandona `\baselinestretch` och `\linespread`.

#### Förstå \baselinestretch och \linespread

En del av LaTeX:s design för att hantera radavstånd och fontändringar (teckenstorlek, typsnittsfamilj, teckenkodning osv.) använder två kommandon som du kan stöta på:

* **`\baselinestretch`**: detta kommando lagrar en skalningsfaktor som används för att multiplicera (skala) det aktuella värdet av [`\baselineskip`](#baselineskip-tex-primitive). Den skalningen tillämpas normalt *nästa gång* när ett teckenväljningskommando används—såsom `\selectfont`. För att ändra värdet som lagras av `\baselinestretch` bör du skriva `\renewcommand{\baselinestretch}{*scale*}`
  * **Obs**: Om du skriver `\renewcommand{\baselinestretch}{*scale*}` i dokumentets brödtext, kommer det nya värdet av `\baselinestretch` [inte att träda i kraft omedelbart](https://tex.stackexchange.com/questions/241120/why-does-changing-baselinestretch-not-change-line-spacing): det nya `*scale*` faktorn lagras för framtida bruk. För att omedelbart använda/tillämpa det nya`*scale*` värdet, skriv `\selectfont` som demonstreras i [kodfragmentet nedan](#demonstrating-baselinestretch).
* **`\linespread{*scale*}`**: kan användas för att ändra [`\baselineskip`](#baselineskip-tex-primitive) utan att påverka den aktuella teckenstorleken. Detta kommando ställer in `\baselinestretch` till `*scale*` vilket därefter ändrar `\baselineskip` till `*scale* × [\baselineskip](#baselineskip-tex-primitive)`. Men den skalningen sker inte heller omedelbart om inte `\linespread` kommandot används i dokumentets preambel. Om `\linespread` används i dokumentets brödtext, träder det i kraft efter att nästa kommando för val/storleksändring av teckensnitt har använts.

Baserat på ovanstående kan antingen:

* `\renewcommand{\baselinestretch}{*scale*}\selectfont` eller,
* `\linespread{*scale*}\selectfont`

användas för att ändra radavståndet, och båda fungerar över ändringar i teckenstorleken, som demonstreras i exemplet nedan. Så, vilken ska du använda? Se [den här korta diskussionen på tex.stackexchange](https://tex.stackexchange.com/a/241121).

**Demonstration av \linespread**

Följande exempel använder `\linespread{2.5}` i dokumentets preambel, vilket ändrar radavståndet utan att kräva ytterligare teckenväljningskommandon:

```latex
\documentclass{article}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Ladda paketet blindtext för platshållartext
\usepackage{blindtext}
% Att använda \linespread i preambeln ändrar
% radavstånd utan att kräva ytterligare
% teckenväljningskommandon, såsom \selectfont
\linespread{2.5}
\begin{document}
\blindtext[1] % Raderna påverkas av \linespread{2.5}
\end{document}
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Använda kommandot linespread](/files/a62657f5a4274dfb15a318ce6fa33874ee5ed5f7)

Använda `\linespread{2.5}` i dokumentets brödtext (efter `\begin{document}`) *skulle* kräva teckenväljningskommandon för att utlösa ändringen i radavståndet. Öppna följande kod i Overleaf och jämför utdata med föregående exempel:

```latex
Eftersom följande \verb|\linespread|-kommando används i dokumentets brödtext krävs ett teckenväljningskommando för att ändra radavståndet. Avkommentera \verb|\selectfont| för att se skillnaden:

\linespread{2.5}%\selectfont

% Utan \selectfont är följande styckes rader
% opåverkade påverkade av \linespread{2.5}:
\blindtext[1]
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![användning av LaTeX-kommandot \linespread i dokumentet](/files/96f9a9dc1e971fe05158508ff2802cd77b9088c2)

**Demonstration av \baselinestretch**

Följande exempel demonstrerar `\baselinestretch` och `\selectfont` för att visa motsvarande effekt(er) på [`\baselineskip`](#baselineskip-tex-primitive):

```latex
Standardvärdet för \verb|\baselineskip|=\the\baselineskip. Uppdatera nu \verb|\baselinestretch|\renewcommand\baselinestretch{2.5}. Men även om vi har utfört

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

\noindent det har \textit{ännu inte} haft någon effekt: det nya värdet av \verb|\baselinestretch| lagras, men används inte. Vi kan ge kommandot \verb|\selectfont| för att låta ändringen träda i kraft; men för tillfället är värdet på \verb|\baselineskip| fortfarande \the\baselineskip{} (oförändrat).

Om vi nu kör \verb|\selectfont| kommer ändringen i \verb|\baselinestretch|, satt till 2.5, nu att träda i kraft---\selectfont även om vi är mitt i ett stycke. Nu är värdet på \verb|\baselineskip| \the\baselineskip{} (= \(2.5 \times 12=30\mathrm{pt}\)).

Vad händer om vi ändrar teckenstorleken till 14pt och \verb|\baselineskip| till 16pt med kommandona \verb|\fontsize{14}{16}\selectfont|?

\fontsize{14}{16}\selectfont Nu är \verb|\baselineskip| \textit{inte} 16pt utan \the\baselineskip{} eftersom värdet på \verb|\baselinestretch| (2.5) har bevarats och tillämpats, vilket ger \verb|\baselineskip| = \(2.5 \times 16=40\mathrm{pt}\).

\section{\texttt{\bfseries\string\linespread}}
Kommandot \verb|\linespread| kan användas för att ändra \verb|\baselineskip| utan att ändra teckenstorleken.
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Demonstration av baselinestretch](/files/f94a9daa336576cf76c6d31428e1819020d6b308)

#### Hur definieras och ändras “radavstånd” i paketet setspace?

Den *noggrann* definition och *mätning* av “radavstånd” lämnar utrymme för tolkning, vilket kan leda till olika implementationer i programvarusystem/-applikationer. Tydligen måste `setspace` paketet utgå från en fungerande definition av radavstånd så att det kan ge stöd för sättning av “enkel-” och “dubbelradigt” avstånd, eller vilket annat multipelvärde som helst av radavstånd. Men vilka variabler ändras av `setspace` för att producera rader med olika mängd vitt utrymme mellan dem?

Lyckligtvis, [diskussioner på tex.stackexchange](https://tex.stackexchange.com/a/30106) och [kommentarer i paketkoden](https://tex.stackexchange.com/a/632830) förtydligar hur `setspace` implementerar radavstånd: det ställer in värdet på `\baselineskip` med hjälp av en multipel av typsnittets punktstorlek.

**Korta notiser om typsnitt och punktstorlek**

Att använda typsnitt vid en viss punktstorlek innebär att man tillämpar en *skalningsfaktor* på teckenformerna (glypherna) i dessa typsnitt; när de väl har skalats enligt punktstorleken är den synliga storleken på tecknet en funktion av typsnittets utformning (typsnitt). Punktstorlek har inget universellt, absolut förhållande till den faktiska visningsstorleken för teckenformer i typsnitt.

Följande bild visar gemenerna “abc” formaterade med 4 olika typsnitt och alla *visade i samma punktstorlek*. Notera hur “storleken” på dessa gemener varierar enligt typsnittets utformning (typsnitt) även om de alla sätts i *samma* punktstorlek:

![Olika typsnitt vid samma punktstorlek](/files/bcf677ca82f63678c7bc95b944b77206189f9f51)

#### Enkelradigt avstånd i paketet setspace

Vi kan använda [diskussioner på tex.stackexchange](https://tex.stackexchange.com/a/30106) som utgångspunkt för några vidare förklaringar.

Ett grundläggande dokument som använder `article` klassen har en standardteckenstorlek på 10pt med ett `\baselineskip` på 12pt. Med alternativet \[11pt] eller \[12pt] använder artikelklassen en större textstorlek och ett motsvarande större värde för `\baselineskip` som visas i följande tabell:

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

$${}^{\textbf{\*}}$$Anledningen till det avvikande värdet på `10.95pt`, och inte exakt `11pt`, förklaras snyggt i detta [reddit-inlägg](https://www.reddit.com/r/LaTeX/comments/ihle9h/why_does_latex_use_1095pt_text_when_the_11pt/).

Som visas i tabellen är, för varje kombination av textens punktstorlek och motsvarande standardvärde (dvs. enkelradigt avstånd) för `\baselineskip`, kvoten

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

nära 1.2. Det kvotvärdet betecknar enkelradigt avstånd och utgör grunden för beräkningar av radavstånd som används av `setspace` paketet.

**Förstå och beräkna värden för \baselinestretch**

För att uppnå en viss multipel av radavstånd, såsom 1.5, 2, 3 etc., måste `\baselinestretch` kommandot sättas till till synes [“märkliga” värden](https://tex.stackexchange.com/a/30106); till exempel genom [med hjälp av `\linespread` kommandot](https://texblog.org/2011/09/30/quick-note-on-line-spacing/). I det här avsnittet ska vi titta närmare på `\baselinestretch` för att se hur dessa “märkliga” värden uppstår.

Låt oss välja ett dokument med standardteckenstorleken $$f$$ och standard `\baselineskip` för $$\text{dbls}\_1$$, där subskriptet $${}\_1$$ innebär standard `\baselineskip` värde för enkelradigt avstånd vid teckenstorleken $$f$$.

Vi ska ***definiera*** enkelradigt avstånd som följande kvot som vi kommer att kalla $$\alpha\_f$$:

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

För en given teckenstorlek $$f$$, låt oss också *definiera* följande värden för radavstånd:

* en 1.5-multipel av radavstånd är *definierad* som

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

* en 2.0-multipel av radavstånd är *definierad* som

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

* en multipel, $$m$$, av radavstånd är *definierad* som

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

Med vårt enkelradiga avstånd, definierat av kvoten $$\alpha\_f$$, kan vi skriva följande “pseudokod” för att räkna ut ett `\baselinestretch` värde som motsvarar en godtycklig multipel av radavstånd $$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\*}$$

Låt oss använda `11pt` text (egentligen `10.95pt`) och standardvärdet `\baselineskip` värdet av `13.6pt` att beräkna `\baselinestretch` för *dubbelt* radavstånd:

$$\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\*}$$

Följande kodfragment används i `setspace` paketet för att uppnå `\doublespacing` när teckenstorleken är 11pt. Notera hur värdet av `1.618`, som beräknats ovan, lagras i kommandot `\baselinestretch`:

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

Med en `article` dokumentklass med 11pt-teckenstorleksalternativet jämför följande exempel `\doublespacing` med en `avstånd` miljö som använder vårt beräknade värde för `1.618` för `\baselinestretch`. Inte oväntat är `\baselineskip` värdena identiska (`22.00475pt`):

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

\blindtext[1]

\endgroup

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

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

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![demonstration av \baselinestretch](/files/ee20f784f6201ed026d3c6f0c4c4e05b64918017)

Liknande beräkningar av `\baselinestretch` värden gäller för andra teckenstorlekar och kombinationer av radavstånd, som anges i följande tabeller:

![setspace-parametrar](/files/676ee1d714080967a342607d66a8aa25619f2fdb)

## Användning av TeX/LaTeX-parameterkommandon

Följande avsnitt utforskar ett antal kommandon relaterade till styckeavstånd/-formatering: vissa av dessa kommandon är *inbyggda i* TeX-typsättningsmotorer, andra är TeX/LaTeX-makron. Kommandon inbyggda i TeX-motorer kallas *primitiver*, vilket betyder att de är *grundläggande* och *irreducerbara* eftersom primitiv, till skillnad från makron, inte är uppbyggda av sekvenser av andra kommandon.

I synnerhet kommer vi att behandla ett antal primitiva *parameterkommandon* som stöds av alla TeX-motorer, inklusive pdfTeX, XeTeX och LuaTeX. Parameterkommandon, vare sig de är relaterade till stycken eller inte, används för att *hämta det aktuella värdet* av motsvarande parameter, eller *ställa in den parametern till ett nytt värde*. Till exempel bestämmer `\parskip` kommandot, en primitiv, värdet av en parameter som styr mängden tomrum som infogas mellan två typsatta stycken.

För att *hämta* (här, att typsätta) det aktuella värdet av `\parskip` skulle du skriva:

```latex
\the\parskip
```

För att *set* det aktuella värdet av `\parskip` till `1pt plus2pt` (ett flexibelt lim) skulle du kunna skriva något i stil med detta:

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

Vi diskuterar också några användbara TeX/LaTeX- *makron*kommandon på högre nivå som skrivs och konstrueras med hjälp av en sekvens av ingående kommandon.

### Kommandon som används för styckeavstånd

Följande kommandon (primitiver och makron) kan användas för att påverka styckeavstånd. Vissa behandlas mer detaljerat och kan nås genom att följa länken från kommandots namn.

#### Primitiva kommandon

* [`**\parindent**`](#parindent-tex-primitive): mängden indrag (tomrum) som läggs till i första raden i ett stycke.
* [`**\parskip**`](#parskip-tex-primitive): mängden flexibelt tomrum (“lim”) som placeras mellan stycken.
* [`**\rightskip**`](#leftskip-and-rightskip-tex-primitives): flexibelt mellanrum (lim) som infogas till höger om varje rad i ett stycke.
* [`**\leftskip**`](#leftskip-and-rightskip-tex-primitives): flexibelt mellanrum (lim) som infogas till vänster om varje rad i ett stycke.
* [`**\baselineskip**`](#baselineskip-tex-primitive): värdet för denna parameter har två roller:
  * den anger det önskade avståndet mellan textradernas baslinjer i ett stycke;
  * den används för att beräkna den (variabla) mängden utrymme (lim) som läggs till mellan rader för att uppnå det önskade baslinje-till-baslinje-avståndet ([se senare i artikeln](#how-the-space-glue-between-paragraph-lines-is-calculated)).
* [`**\lineskiplimit**`](#lineskip-and-lineskiplimit-tex-primitives): en parameter vars värde definierar det minsta acceptabla avståndet mellan två intilliggande rader i ett stycke.
* [`**\lineskip**`](#lineskip-and-lineskiplimit-tex-primitives): mängden utrymme (lim) som infogas mellan två rader i ett stycke om det beräknade `\baselineskip` limmet skulle leda till att raderna ligger för nära varandra.
* `**\parfillskip**`: mycket flexibelt lim som läggs till i slutet av den sista raden i ett stycke för att ”fylla ut” den med tomrum; för ett visuellt exempel, se illustrationen i avsnittet [*Visualisering av andra typer av styckelim*](#visualizing-other-types-of-paragraph-glue).

#### Makrokommandon

Följande TeX/LaTeX-makrokommandon används ofta för att ändra styckeavstånd:

* [`**\offinterlineskip**` och `**\nointerlineskip**`](#offinterlineskipandnointerlineskip): kommandon som kan användas för att stänga av beräkning och infogning av `\baselineskip` lim;
* [`**\baselinestretch**`](#understanding-and-calculating-values-for-baselinestretch): ett kommando som lagrar en numerisk faktor som används för att beräkna värdet av `\baselineskip` när ett teckensnitt väljs. Det har standardvärdet 1;
* [`**\linespread**`](#demonstrating-linespread): detta kommando kan användas för att ändra det aktuella värdet av `\baselinestretch`.

### Flexibelt mellanrum (lim)

TeX-motorer åstadkommer avståndseffekter, även inom eller mellan stycken, genom användning av ett flexibelt tomrum som kallas *lim* som kan sträckas ut eller krympas beroende på hur mycket utrymme som krävs. Om du vill lära dig mer om TeX:s begrepp glue, finns mer information i följande Overleaf-artiklar:

* [Utforska underfulla eller överfulla rutor och beräkningar av badness](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv)
* [Hur TeX beräknar liminställningar i en \hbox](/latex/sv/fordjupade-artiklar/24-how-tex-calculates-glue-settings-in-an-hbox.md)
* [Förstå varningar om underfulla och överfulla rutor](/latex/sv/kunskapsbas/138-understanding-underfull-and-overfull-box-warnings.md).

## Grunderna: parameterkommandon och exempel

I detta avsnitt förklarar vi ett antal parameterkommandon relaterade till stycken och ger exempel på deras användning.

### \parindent (TeX-primitiv)

Detta parameterkommando ställer in mängden indrag (tomrum) som läggs till i första raden i ett stycke. Det kan ändras med LaTeX:s `\setlength` kommando; till exempel, för att dra in stycken med `15pt` set `\parindent` till `15pt` genom att skriva:

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

Observera att:

* kan du ändra `\parindent` inom en grupp, vilket säkerställer att dess effekt begränsas till stycken i den gruppen;
* `\parindent` kan vara negativt, vilket ger ett "utdrag" snarare än ett indrag;
* som standard drar LaTeX inte in det första stycket efter en sektionsrubrik (`\section{...}` etc.).

Följande exempel visar användningen av `\parindent`.

```latex
\documentclass{article}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Skapa ett kommando för att hålla ett stycke text
\newcommand{\testpar}{\texttt{\string\parindent=\the\parindent\ }När \TeX{} typsätter ett stycke behandlar det varje enskilt tecken som en 2D ``box'' med en specifik bredd, höjd och djup.\par}
\begin{document}

% Ställ in \parskip för att lägga 10pt mellan stycken
\setlength{\parskip}{10pt}

% Ställ in värdet för \parindent till 0pt
\setlength{\parindent}{0pt}
\testpar

% Ställ in värdet för \parindent till 10pt
\setlength{\parindent}{10pt}
\testpar

% Ställ in \parindent i en grupp
{\setlength{\parindent}{50pt}\testpar}

% Nu är \parindent åter 10pt
\testpar

% Ja, du kan ha ett negativt \parindent
\setlength{\parindent}{-20pt}
\testpar
\end{document}
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Användning av olika värden för styckeindrag i LaTeX](/files/ca34240b7a01fd80d47d48db58bdd8f5e7ee2685)

### \parskip (TeX-primitiv)

Läsbarheten i text kan förbättras genom att separera stycken med en mängd tomrum som varierar beroende på viss formgivningsestetik. TeX/LaTeX låter användare styra detta mellanstyckeavstånd via `\parskip` parameterkommandot.

* **Råd från `parskip` paketet**: Paketet [parskip-paketet](https://ctan.org/pkg/parskip) rekommenderar att direkt ändra `\parskip` kan ”resultera i vertikala mellanrum på oväntade platser” (i ett LaTeX-dokument). `parskip` paketet försöker åtgärda avståndsproblem som kan uppstå till följd av ändringar av värdet för `\parskip`—såsom i innehållsförteckningar och listmiljöer. Se även [`parskip` paketavsnittet i denna artikel](#the-parskip-package).

För att manuellt ställa in det aktuella värdet för `\parskip` använd LaTeX:s `\setlength` kommando; till exempel, för att separera stycken med 3pt kan du skriva:

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

Följande exempel visar användningen av `\parskip`:

```latex
\documentclass{article}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Skapa ett kommando för att hålla ett stycke text
\newcommand{\testpar}{\noindent Det aktuella värdet för \texttt{\string\parskip} är \texttt{\the\parskip}. När \TeX{} typsätter ett stycke behandlar det varje enskilt tecken som en 2D~``box'' med en specifik bredd, höjd och djup.\par}
\begin{document}
\testpar
% Ställ in \parskip till 5pt
\setlength{\parskip}{5pt}\testpar
% Ställ in parskip till 10pt
\setlength{\parskip}{10pt}\testpar
% Ställ in \parskip till 25pt (men i en grupp)
{\setlength{\parskip}{25pt}\testpar}
% Gruppen avslutas, nu är \parskip åter 10pt
\testpar
% Ja, du kan ha ett negativt \parskip
\setlength{\parskip}{-20pt}\testpar
\end{document}
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Demonstration av användningen av \parskip i LaTeX](/files/7f82965865d3e1e863dca737fc19315fb3789c0f)

#### Flexibelt \parskip

Traditionellt sett, `\parskip` är inte ett *fast* värde, vilket skulle ge samma mängd utrymme mellan alla stycken. I stället, `\parskip` definieras det vanligtvis som ett ”flexibelt utrymme” (kallat lim) som gör att TeX kan sträcka ut eller krympa utrymmet mellan stycken, vilket hjälper till att få plats med innehåll på sidan och hitta en ”bra” plats för en sidbrytning.

För att göra `\parskip` flexibelt skulle du skriva det i form av en limspecifikation:

`\setlength{\parskip}{*fixed amount* **plus** *amount to stretch* **minus** *amount to shrink*}`

där `**plus**` och `**minus**` är *keywords* som används av TeX/LaTeX för att identifiera *mängden att sträcka ut* eller *mängden att krympa* som ingår i en limspecifikation. Overleaf-artikeln [*Utforska underfulla eller överfulla rutor och beräkningar av badness*](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv) innehåller en mer ingående diskussion om lim.

Till exempel, för att låta `\parskip` variera mellan `3 + 1 = 4pt` och `3 — 1 = 2pt` skulle du kunna skriva

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

### \leftskip och \rightskip (TeX-primitiver)

TeX-motorer tillhandahåller två parameterkommandon som lägger till utrymme (lim) till vänster och höger om varje rad i det typsatta stycket. Som namnen antyder:

* `\leftskip` lägger till utrymme (lim) till vänster om varje rad i ett stycke;
* `\rightskip` lägger till utrymme (lim) till höger om varje rad i ett stycke.

Följande exempel använder `\leftskip` och `\rightskip` för att direkt ändra styckejusteringen; men ... ändringar av textjustering görs oftast bäst via lämpliga LaTeX-miljöer eller paket—till exempel, se [Overleaf-artikeln om textjustering](/latex/sv/formatering/06-text-alignment.md). Även om vi demonstrerar beteendet hos vissa låg-nivå-kommandon (primitiver) som tillhandahålls av TeX-motorer, är det i allmänhet lämpligt att använda passande LaTeX-paket där det är möjligt.

#### Göra \leftskip fast och \rightskip flexibelt

Följande exempel producerar två stycken: det första använder LaTeX:s standardvärden för `\leftskip` och `\rightskip` och det andra stycket typsätts med följande inställningar:

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

Öppna följande Overleaf-projekt för att se resultatet:

```latex
\documentclass{article}
\title{Andra exemplet med leftskip och rightskip}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Ställ in värdet för några styckerelaterade parametrar
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % En genererad TeX-fil som definierar makrona
% \mytextA och \mytextB, var och en innehåller texten för ett stycke.
% Typsätt ett stycke med standardvärdena för \leftskip och \rightskip

\mytextB

% Ställ in \leftskip och \rightskip till nya värden
\leftskip 10pt
\rightskip 0pt plus 1fill
\vspace{8pt}

% Typsätt nu om samma stycke
\mytextB

\end{document}
```

&#x20;Öppna detta exempel som ett Overleaf LaTeX-projekt

Detta exempel genererar följande resultat:

![Ställa in \leftskip-lim i LaTeX](/files/3fbf8c5db26773ebcd1100987672b0f085c4c780)

Följande grafik är en kommenterad version av det andra stycket som produceras av exemplet ovan. Den är utformad för att framhäva och visa mängden av `\leftskip` och `\rightskip` lim som infogats i styckets rader, tillsammans med `\parindent` utrymmet för första raden:

![Ställa in \leftskip-lim i LaTeX](/files/3b91577bb056d1c30dfa5b96a7a7ba5e5ba8d204)

Observera att `\leftskip` lim har en fast storlek (10pt) men `\rightskip` lim har sträckts ut för att ge den mängd tomrum som krävs för att fylla ut högerkanten på varje rad. Denna ”flexibilitet” beror på specifikationen av `\rightskip` som innehåller `plus 1 fill`—vilket ger en ”oändligt sträckbar” form av lim.

#### Göra \rightskip fast och \leftskip flexibelt

Följande exempel producerar två stycken: det första använder LaTeX:s standardvärden för `\leftskip` och `\rightskip` och det andra stycket typsätts med följande inställningar:

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

Öppna följande Overleaf-projekt för att se resultatet:

```latex
\documentclass{article}
\title{exempel med leftskip och rightskip}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Ställ in värdet för några styckerelaterade parametrar
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % En genererad TeX-fil som definierar makrona
% \mytextA och \mytextB, var och en innehåller texten för ett stycke.
% Typsätt ett stycke med standardvärdena för \leftskip och \rightskip

\mytextB

% Ställ in \leftskip och \rightskip till nya värden
\rightskip 10pt
\leftskip 0pt plus 1fill
\vspace{8pt}

% Typsätt nu om samma stycke
\mytextB

\end{document}
```

&#x20;Öppna detta exempel som ett Overleaf LaTeX-projekt

Detta exempel genererar följande resultat:

![Ställa in \rightskip-lim i LaTeX](/files/0ff1d4c44ef3881453fc8bb147810157dbccdea3)

Följande grafik är en kommenterad version av det andra stycket som produceras av exemplet ovan. Den är utformad för att framhäva och visa mängden av `\leftskip` och `\rightskip` lim som infogats i styckets rader, tillsammans med `\parindent` utrymmet för första raden:

![Ställa in \rightskip-lim i LaTeX](/files/cde2ecaca6dd288107b91f8a4aef599cd0a2947e)

Observera att `\rightskip` lim har en fast storlek (10pt) men `\leftskip` lim har sträckts ut för att ge den mängd tomrum som krävs för att fylla ut vänsterkanten på varje rad. Denna ”flexibilitet” beror på specifikationen av `\leftskip` som innehåller `plus 1 fill`—vilket ger en ”oändligt sträckbar” form av lim.

#### Ställa in \leftskip och \rightskip till flexibla värden

Följande exempel producerar två stycken: det första använder LaTeX:s standardvärden för `\leftskip` och `\rightskip` och det andra använder följande flexibla liminställningar:

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

Dessa inställningar gör att styckets rader centreras:

```latex
\documentclass{article}
\title{exempel med leftskip och rightskip}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight==16cm,paperwidth==12cm,textwidth=8cm]{geometry}
% Ställ in värdet för några styckerelaterade parametrar
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % En genererad TeX-fil som definierar makrona
% \mytextA och \mytextB som definierar text för två stycken
% Typsätt ett stycke med standardvärdena för \leftskip och \rightskip

\mytextB

% Ställ in \leftskip och \rightskip på "extremt flexibla" liminställningar
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\vspace{20pt}

% Typsätt nu om samma stycke
\mytextB

\end{document}
```

&#x20;Öppna detta exempel som ett Overleaf LaTeX-projekt

Detta exempel genererar följande resultat:

![Exempel som visar \leftskip och \rightskip](/files/2599793a93bd957b63c6bc08d14889282c441f01)

Följande grafik är en kommenterad version av det andra stycket som produceras av exemplet ovan. Den är utformad för att framhäva och visa mängden av `\leftskip` och `\rightskip` lim som infogats i styckets rader, tillsammans med `\parindent` utrymmet för första raden:

![Exempel som visar \leftskip och \rightskip](/files/194f36eab14b766bcf499e6b2d6cae5eff50140d)

Notera att båda `\leftskip` och `\rightskip` anges som `0pt plus 1fill` vilket gör dem lika ”oändligt flexibla”; följaktligen sträcks de ut med samma mängd vilket gör att de typsatta raderna centreras.

#### Ställa in \leftskip och \rightskip i en grupp

Följande exempel visar hur man tillfälligt kan ändra `\leftskip` och `\rightskip` genom att omsluta dem i en grupp. I vårt exempel skapas gruppen av `\begingroup`... `\endgroup`, som visas i följande kodfragment:

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

Det första stycket typsätts med ”extremt flexibelt” lim för `\leftskip` och `\rightskip`:

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

men det andra stycket använder LaTeX:s standardvärden:

```latex
\documentclass{article}
\title{Ytterligare ett exempel med leftskip och rightskip}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Ställ in värdet för några styckerelaterade parametrar
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % En genererad TeX-fil som definierar makrona
% \mytextA och \mytextB som definierar text för två stycken
% Här ändrar vi \leftskip och \rightskip till "extremt flexibla" liminställningar
% inom en grupp som skapas av \begingroup ... \endgroup

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

% Typsätt nu om samma stycke efter att gruppen har avslutats
% vilket gör att \leftskip och \rightskip återgår till sina tidigare värden

\vspace{20pt}
\mytextB

\end{document}
```

&#x20;Öppna detta exempel som ett Overleaf LaTeX-projekt

Detta exempel genererar följande resultat:

![Användning av \leftskip och \rightskip i en grupp](/files/206c55e8c4a5e7783a623b717dd863819ec00472)

**Obs**: Inställningarna för (effekterna av) `\leftskip` och `\rightskip` är begränsade till stycket inom gruppen som skapas av `\begingroup`... `\endgroup`. Efter att gruppen har avslutats typsätts nästa stycke med LaTeX:s standardvärden för `\leftskip` och `\rightskip`.

### \baselineskip (TeX-primitiv)

Det är allmänt vedertagen typografisk praxis att rader i stycken bör ha lika avstånd, förutom när vissa rader innehåller stora element, såsom matematik eller en bild, vilket gör det omöjligt att bevara konstant radavstånd för sådana rader.

TeX/LaTeX tillhandahåller kommandon och mekanismer som gör det möjligt för användare att utöva en viss kontroll över radavståndet. Ett sådant kommando är `\baselineskip` som hämtar eller ställer in värdet för en parameter som bestämmer det föredragna radavståndet (baslinje-till-baslinje-avståndet) i ett typsatt stycke.

För att typsätta det aktuella värdet för `\baselineskip` kan du skriva

```latex
\the\baselineskip
```

För att ställa in `\baselineskip` till något `värde` (en LaTeX-längd såsom `pt`) kan du skriva

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

Till exempel, för att ställa in `\baselineskip` till `12pt` kan du skriva

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

Vi kan demonstrera rollen för `\baselineskip` genom att använda följande (typiska) stycke:

![Ett exempel på ett LaTeX-stycke](/files/52ef55014bec42db57de9119377b04766d84e600)

och lägga till annoteringar som visar baslinje-till-baslinje-avståndet som styrs av `\baselineskip`:

![Ett exempel på ett LaTeX-stycke med annoteringar som visar baslinjeavstånd](/files/fc1e2169e9e0130a351dc1ea8fcaae2e7ccc83dd)

Diagrammet visar också radlimmet: en beräknad mängd tomrum som läggs till mellan rader—detta kommer vi att diskutera närmare senare i artikeln.

#### \baselineskip och andra parametrar

`\baselineskip` är en av fyra kärnparametrar som styr mängden utrymme som infogas mellan rader i ett stycke; de andra är:

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

Senare i artikeln kommer vi att utforska [*hur dessa fyra parametrar används*](#paragraph-structure-and-line-space-calculations) för att beräkna värden för radlim.

#### Exempel med \baselineskip (fast utrymme)

Följande exempel öppnas i Overleaf för att skapa ett projekt som innehåller en fil som heter `text.tex` som definierar kommandona `\mytextA` och `\mytextB`—båda kommandona typsätter ett stycke. För enkelhets skull använder Overleaf-projektet en liten sidstorlek eftersom det underlättar förberedelser av grafik och bilder för denna hjälpsida.

```latex
\documentclass{article}
\title{Demonstration av baselineskip}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Ställ in värdet för några styckerelaterade parametrar (dessa kommer vi att diskutera)
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% Ställ in värdet för \baselineskip---ändra värdet för att se effekten
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % En genererad TeX-fil som definierar makrona
% \mytextA och \mytextB, där var och en typsätter ett stycke

% Typsätt först två stycken med standardvärdet för \baselineskip
\mytextA\mytextB

% Ändra nu \baselineskip till ett större värde och typsätt
% ytterligare ett stycke
\setlength{\baselineskip}{24pt}
\mytextA

\end{document}
```

&#x20;Öppna detta exempel som ett Overleaf LaTeX-projekt

Detta exempel genererar följande resultat:

![Utforska baselineskip i TeX eller LaTeX](/files/5785b7d08b7dfe3c5a18166426b4128c0a32757d)

Stycket på sida 2 har stora radavstånd eftersom `\baselineskip` sattes till 24pt.

#### Exempel med \baselineskip (flexibelt utrymme)

Följande exempel anger ett `\baselineskip` värde som har en extremt flexibel (så kallad ”oändlig”) sträckkomponent:

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

På grund av denna flexibilitet kan tomrummet mellan styckets rader sträckas ut med vilken mängd som helst som krävs för att fylla sidan. En sådan flexibilitet skulle leda till att stycken får mycket olika mängder utrymme mellan sina ingående textrader, vilket kanske inte är estetiskt tilltalande eller lättläst.

```latex
\documentclass{article}
\usepackage{blindtext}
\title{Demonstration av flexibelt \texttt{\string\baselineskip}}
\author{Overleaf}
\date{Januari 2022}

\begin{document}

\maketitle
Vi kommer att ge \verb|\baselineskip| en mycket flexibel ”sträck”-komponent genom att tilldela värdet \texttt{12pt plus1fil}: \verb|\baselineskip=12pt plus1fil|.\baselineskip=12pt plus1fil
\section{Introduktion}
Lägg till ett stycke som nu kommer att sträckas ut för att fylla sidan. \blindtext

\end{document}
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Demonstration av baselineskip-lim med oändlig flexibilitet](/files/06f87944854218a48bb26fb52a8c6c381d805af6)

**Några anmärkningar om lim**

Några av följande anmärkningar är hämtade från Overleaf-artikeln [undersöka underfulla eller överfulla rutor och badness-beräkningar](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv), återgiven här för enkelhetens skull.

Det vita utrymme som TeX infogar mellan rader i ett stycke, `\baselineskip`, är en form av flexibel avståndsjustering som kallas *lim*. Ett limvärde kan anges med tre komponenter:

* a *fast* mängd;
* en mängd som det kan *sträckas*;
* en mängd som det kan *krympa*,

Följaktligen kan ett `\baselineskip` värde anges så här:

`\baselineskip`=*fast mängd* **plus** *mängden att sträcka ut* **minus** *mängden att krympa*

där

* **plus** och **minus** är nyckelord som TeX-motorer förstår;
* *fast mängd* kallas för *normala komponenten* av limmet (även kallad *naturliga bredden* av limmet);
* *mängden att sträcka ut* kallas för *sträckningskomponenten* av limmet;
* *mängden att krympa* kallas för *krympningskomponenten* av limmet.

Den *fast mängd* krävs för alla limvärden men *mängden att sträcka ut* och *mängden att krympa* är båda valfria – om endera, eller båda, saknas sätts de till värdet 0.

Vanligtvis, `\baselineskip` lim anges med enbart en *fast mängd* är sträcknings- och krympningskomponenterna noll, annars skulle styckets rader ha oregelbundet (variabelt) avstånd, vilket kanske inte är estetiskt tilltalande.

### \offinterlineskip och \nointerlineskip (makron)

Dessa makron används ofta för att förhindra att mellanradslim infogas mellan rader i ett stycke. Läsare som är intresserade av mer detaljer kan gå vidare till de relevanta artikelavsnitten som förklarar hur dessa makron fungerar.

* **`\offinterlineskip`**: Se artikelavsnittet [*Mellanradslim med noll storlek: \offinterlineskip*](#zero-sized-interline-glue-offinterlineskip).
* **`\nointerlineskip`**: Se artikelavsnittet [*Förhindra mellanradslim: \prevdepth och \nointerlineskip*](#preventing-interline-glue-prevdepth-and-nointerlineskip).

## Styckestruktur och beräkningar av radavstånd

Genom att använda LuaTeX funktioner är det möjligt att [efterbearbeta ett satt stycke](https://www.overleaf.com/latex/examples/luatex-parsing-typeset-paragraphs/mzbpwxtjshsj) för att visualisera gränserna för de ingående tecknen (glyferna), raderna och limmen som det är uppbyggt av. Vi börjar med en kort bildsekvens som hjälper till att visualisera modellen ”rutor och lim” som TeX-motorer använder för att sätta text i ett stycke.

### Styckets struktur

När TeX sätter ett stycke behandlar det enskilda tecken som små rutor, var och en med sin egen bredd, höjd och djup, och dessa teckenrutors bredder används för att beräkna de optimala platserna för radbrytningar. Dessutom konverteras blankstegstecken i texten, som används för att skilja enskilda ord åt, till en form av flexibelt mellanrum (lim) som ger det avstånd som krävs för att uppnå varje radbrytning.

Följande sekvens med 7 bilder visar kärnkomponenterna i ett satt stycke: olika typer av rutor och lim. Den första bilden visar ett satt stycke tillsammans med en kommenterad version som framhäver olika element i stycket. Det kommenterade stycket innehåller dock mycket information, så de efterföljande bilderna isolerar olika komponenter för att (förhoppningsvis) göra dem lättare att förstå.

![Paragraphanatomy1b.png](/files/351983acd4f5b1abae22e2b8d22501c0d5fad441)

* Nästa bild visar styckerader som grå rutor åtskilda av lim som representeras av horisontella gröna band. Det limmet beräknas för att säkerställa att avståndet från baslinje till baslinje är lika med (dvs. värdet av) `\baselineskip`:

![Paragraphanatomy2b.png](/files/20f565fd8547da3f1b1f191182ada007a95bfde3)

* Nästa bild representerar satta tecken som rutor: för att visualisera hur TeX-motorer bearbetar tecken för att skapa radbrytningar:

![Paragraphanatomy3.png](/files/9ab489ccbb22bd0d93ddf85b8ae9663466e762ea)

* Nästa bild visar rutor inuti rutor: de större styckeraderna (rutorna) som innehåller mindre rutor (enskilda tecken):

![Paragraphanatomy5.png](/files/0b8a4413db28dd049136076d7e025771439a7759)

* Nästa bild visar mängden utrymme mellan ord i varje rad: dessa mellanrumsutrymmen skapas genom att konvertera blankstegstecken till flexibla lim som sträcks eller krymps för att ge rätt längd för varje textrad. Observera noga att storleken på dessa mellanrum varierar från rad till rad:

![Paragraphanatomy4.png](/files/91671bca647c947491c9a90a68b13a26b23db5e7)

* Nästa bild kombinerar teckenrutorna och motsvarande lim (mellanrum) som placeras mellan enskilda ord:

![Paragraphanatomy6.png](/files/1d484836b11718c752623a6f7a1238e53ff6145c)

### Visualisering av andra typer av styckelim

Följande stycken sattes och bearbetades också med LuaTeX för att visa andra typer av lim inom och mellan ett par stycken. Observera att `\rightskip` och `\leftskip` båda är satta till 0pt, så de visas inte:

* **`\parskip`** lim (ljusblått) placerat mellan de två satta styckena;
* enskilda ord skiljs åt av ***mellanordslim*** (gult) som skapas genom att blankstegstecken i inmatningen konverteras till vitutrymme med variabel storlek (lim) i den satta utmatningen. Lim från mellanordsmellanrum sträcks eller krymps för att uppnå visuellt tilltalande radbrytningar;
* **`\baselineskip`** lim (ljusgrönt) placerat mellan rader – den exakta mängden `\baselineskip` lim beräknas med hjälp av mekanismen som diskuteras nedan;
* **`\lineskip`** lim (rött) som används i det andra stycket – på grund av den låga rutan i den näst sista raden;
* **`\parfillskip`** lim (mörkgrönt) placerat i slutet av den sista raden i varje stycke.

![](/files/65b136173d5f5553b8d9fa9c2982f3b44edf852b)

### Hantera djupare (eller högre) rader (rutor)

Som visas av bilderna i [föregående avsnitt](#paragraph-structure), är ett satt stycke en vertikal stapel av ”rutor”, åtskilda av ett visst vitt utrymme, som TeX kallar ”lim”. När stycket bearbetas och de enskilda raderna (rutorna) staplas, växer den vertikala listan (stapeln) i en *nedåtgående* riktning, mot sidans nederkant. Även om TeX/LaTeX försöker säkerställa att styckerader staplas med baslinjer åtskilda av ett konstant avstånd på `\baselineskip`, är det inte alltid möjligt att uppnå detta eftersom vissa rader kan ha en större höjd eller ett större djup än vanligt.

Höjden och djupet för varje styckerad bestäms av det maximala avstånd som radens innehåll sträcker sig över eller under baslinjen; följaktligen kommer stycken som innehåller material med relativt stor höjd eller stort djup, såsom inbäddad matematik eller grafik, sannolikt att skapa enskilda rader med motsvarande stora höjder och/eller djup. För sådana rader kan TeX/LaTeX kanske inte stapla dem så att deras baslinjer separeras från andra rader med `\baselineskip` mängden. TeX/LaTeX behöver uppenbarligen en ”reservmekanism” för att hantera sådana rader genom att *beräkna* en lämplig mängd utrymme att infoga mellan varje par rader som påverkas av stora höjder och/eller djup.

#### \lineskip och \lineskiplimit (TeX-primitiver)

Den reservmekanismen omfattar parameterkommandona `\lineskip` och `\lineskiplimit` tillsammans med en tredje parameter som kallas `\prevdepth`. Läsare som är intresserade av ytterligare detaljer kan gå vidare till artikelavsnittet [*Hur utrymmet (limmet) mellan styckerader beräknas*](#how-the-space-glue-between-paragraph-lines-is-calculated).

Exempelprojektet nedan sätter ett enda stycke vars sista rad har ett relativt stort djup på grund av en förskjuten textruta (`\hbox`). Stycket sätts med dessa inställningar:

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

Använd länken under följande kod för att öppna ett Overleaf-projekt:

```latex
\documentclass{article}
% Använd en lagom liten sidstorlek
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Ange några viktiga parametrar
\setlength{\baselineskip}{12pt}
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% Indatafil som definierar \testpar
\input testpar.tex
\title{Ett exempelstycke för lineskip}
\begin{document}
\testpar % Ett makro skapat i Overleaf-projektet
\end{document}
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Exempel som demonstrerar \lineskip-lim](/files/0c3ee2414803ba09765468d025ecb3ef44919f59)

Följande bild använder en kommenterad version av stycket som skapades av det föregående Overleaf-projektet. Här zoomar vi in för att fokusera på den sista styckeraden och visar användningen av `\lineskip` lim (visas i rött) som orsakas av djupet hos den förskjutna textrutan:

![Bild som visar TeX \lineskip-lim](/files/b21a30eac554438ca81fa38fa8eba657d1472cbc)

Den sista raden i stycket har ett större djup än vanligt, vilket hindrar TeX från att bibehålla det konstanta avståndet från baslinje till baslinje som anges av värdet `\baselineskip` (12pt). Som pilarna på bildens högra sida visar försöker TeX/LaTeX säkerställa ett fast avstånd (12pt) mellan radpar – värdet av `\baselineskip`. För det sista radparet har TeX dock separerat dem med ett belopp större än 12pt och använder värdet av `\lineskip` för mellanradslimmet i stället för ett värde som beräknats med hjälp av `\baselineskip`.

Följande avsnitt utforskar och förklarar detaljerna i TeX beräkningar av mellanradslimvärden.

### Hur utrymmet (limmet) mellan styckerader beräknas

För våra aktuella syften ska vi *mycket kortfattat* nämna TeX sidkonstruktionsprocess, om än på ett mycket förenklat sätt! När TeX har slutfört sättningen av ett stycke genom att slutföra avstavning och fastställa radbrytningar, kan du tänka på styckedata som lagrade i en tillfällig minnesplats. TeX behöver sedan flytta dessa styckedata, rad för rad, till en ny minnesplats som lagrar material avsett för den aktuella utmatningssidan.

När TeX flyttar styckedata, rad för rad, bygger det i praktiken en vertikal stapel av rader (TeX-rutor) som växer *nedåtgående* mot sidans nederkant. När TeX flyttar styckerader till den aktuella sidan försöker det säkerställa att dessa rader får jämnt avstånd, med konsekvent vertikalt avstånd (från baslinje till baslinje) lika med värdet `\baselineskip`. När en ny rad överförs till den aktuella sidan registrerar TeX-motorn tillfälligt radens *djup* eftersom det kommer att användas för att beräkna mängden mellanradslim (vitt utrymme) mellan den raden och raden som placeras efter den.

#### Beräkningar av limstorlek

Låt oss börja med att sammanfatta de mellanradsfunktioner som tillhandahålls av TeX-motorer:

* att behålla ett konstant avstånd mellan baslinjer, ett avstånd lika med `\baselineskip`;
* ge avstånd för alla rader med relativt stor höjd eller stort djup;
* möjlighet att stänga av infogning av mellanradslim – antingen automatiskt eller under användarens kontroll. Till exempel:
  * TeX-motorer inaktiverar automatiskt infogning av mellanradslim efter en regel i vertikalt läge;
  * makrona `\offinterlineskip` och `\nointerlineskip` gör det möjligt för användare att tillfälligt stänga av infogning av mellanradslim – dessa makron har olika effekter, vilket vi ser nedan.

Beslutet om huruvida mellanradslim ska läggas till och, i så fall, hur mycket av vilken typ, går till så här:

* Ska mellanradslim läggas till? TeX avgör detta genom att testa om *djupet hos den senast tillagda raden* till listan är mindre än specialvärdet `–1000pt` (punkter). Observera att `–1000pt` är ett godtyckligt ”vaktvärde” som används internt av TeX-motorer.
  * **Obs**: Värdet för ”djupet hos den senast tillagda raden”, som TeX registrerar internt, kallas också ”föregående djup”. TeX-motorer tillhandahåller parameterkommandot `\prevdepth`— som under vissa omständigheter kan användas för att *hämta* eller *set* värdet för ”föregående djup”. Makrot `\nointerlineskip` använder `\prevdepth`.
* TeX testar om `djupet hos föregående rad är större än –1000pt`?
  * ***Ja, det är det*** (behöver lägga till lim):
    * beräkna värdet Δ, där Δ = \baselineskip – (djupet hos föregående rad) – (höjden hos nästa rad)
    * jämför Δ med värdet av `\lineskiplimit`, en parameter som används för att definiera det minsta acceptabla avståndet mellan två rader, mätt som avståndet mellan den övre radens nederkant och den undre radens överkant.
    * Om Δ < `\lineskiplimit`:
      * ligger raderna för nära varandra, så infoga det minsta acceptabla avståndet, vilket är `\lineskip`
    * Om Δ >= `\lineskiplimit`:
      * ligger raderna inte för nära varandra, så använd Δ som mängden lim att infoga
  * ***Nej, det är det inte*** (lägg inte till lim):
    * Lägg till nästa rad (ruta) utan att infoga något lim

Följande bild sammanfattar processen för mellanradslim:

![Hur TeX bestämmer värden för mellanradslim](/files/83a7ca217aff9aeb85c790510579fe9b8cfff1dc)

### Ett exempel på beräkningar av mellanradslim

I följande exempel antar vi att TeX/LaTeX använder följande kommandoparametervärden:

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

Vi ska titta på beräkningen av mellanradslim för de två första raderna i detta stycke:

![OLV2glue-calcs-step0.png](/files/57a32407f1b8ac871f3f840d224c7b54e7feda72)

I nästa bild har TeX-motorn bearbetat den första styckeraden och flyttat den till den vertikala lista som den bygger. Den håller reda på radens djup (`d<sub>1</sub>`) som är `2.1528` (punkter):

![OLV2glue-calcs-step1.png](/files/5fc995e6001d7544ad158e55c615f1fc70124443)

Därefter är TeX redo att lägga till en andra rad i listan som den bygger: raden har en höjd (`h<sub>2</sub>`) som är `6.9444` (punkter) och, för övrigt, ett djup, `d<sub>2</sub>` för `0` (punkter):

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

Vid denna punkt behöver TeX beräkna mängden utrymme (lim, `g<sub>1</sub>`) som ska infogas mellan dessa två rader:

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

Följande bild visar limberäkningarna för detta radpar:

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

Den sista bilden visar de två raderna flyttade till den aktuella sidan med den beräknade mängden mellanradslim placerad mellan dem:

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

### Ännu en parameter: \prevdepth

Som nämnts ovan lagrar TeX djupet hos den sista rutan som lagts till i den listan när det skapar en vertikal stapel (lista) av rutor. Det lagrade djupvärdet kallas ”föregående djup” och kan nås via parameterkommandot `\prevdepth`.

Den `\prevdepth` kommandot kan användas ***endast*** när TeX är i vertikalt läge; dvs. mellan stycken eller inuti vertikala rutor: `\vbox`, `\vtop` eller `\vcenter` (observera: `\vcenter` rutor kan endast användas i matematikläge).

`\prevdepth` ger läs- och skrivåtkomst till värdet för ”föregående djup”:

* för att läsa det aktuella värdet av `\prevdepth` kan du skriva:

```latex
\the\prevdepth
```

* för att ange det aktuella värdet av `\prevdepth` till `ett valfritt värde`, en längd i punkter, mm osv., kan du skriva:

```latex
\setlength{\prevdepth}{ett valfritt värde}
```

Om du försöker använda \verb`\prevdepth` under omständigheter som det inte är avsett för, till exempel inom ett stycke eller inuti en `\hbox` får du ett fel

```latex
Improper \prevdepth.
```

med ytterligare information som berättar att det endast kan användas i vertikalt läge.

#### Förhindra mellanradslim: \prevdepth och \nointerlineskip

En användning av `\prevdepth` är att *förhindra* TeX från att utföra de baslinjeberäkningar som används för att lägga till mellanradslim mellan objekt i en vertikal lista, såsom raderna i ett stycke. Genom att använda `\prevdepth` för att representera `djupet hos föregående rad` kan vi formulera om limberäkningarna (som visas ovan) enligt följande:

```latex
if(\prevdepth > –1000pt)
{
     Δ = \baselineskip — \prevdepth — (höjden hos aktuell rad)

     if(Δ < \lineskiplimit)
       mellanradslim = \lineskip
     annars
       mellanradslim = Δ
}
annars
{
     Stapla rutan utan att lägga till
     något mellanradslim
}
```

Internt känner TeX-motorer igen ett så kallat ”vaktvärde” på `\prevdepth` som kan användas för att inaktivera beräkning och tillägg av mellanradslim. Det vaktvärdet är `–1000pt`, vilket kan ses i den första raden i pseudokoden ovan:

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

TeX lägger inte till mellanradslim om inte `\prevdepth` är större än `–1000pt`— vilket tillhandahåller mekanismen som används av `\nointerlineskip` makrot för att förhindra att baslinjelim läggs till mellan nästa par rutor i en vertikal lista.

`\nointerlineskip` har en definition som motsvarar:

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

Observera att `\nointerlineskip` ger en *engångsinaktivering* av beräkningar av mellanradslim eftersom värdet av `\prevdepth` uppdateras kontinuerligt när nya rutor läggs till i den aktuella vertikala listan, vilket visas i följande exempel:

```latex
\noindent Följande \verb|\hbox|ar bearbetas när \TeX{} är i så kallat \textit{yttre vertikalt läge}. Efter bearbetning (sättning) läggs dessa rutor till den aktuella sidan och staplas vertikalt med mellanradslim infogat mellan dem:

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

Nu, omedelbart efter rutan \verb|\hbox{j}|, sätter vi \verb|\prevdepth| till \texttt{-1000pt}, vilket förhindrar att mellanradslim placeras mellan rutorna \verb|\hbox{j}| och \verb|\hbox{p}|:

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

Observera att mellanradslim \textit{placeras} mellan rutorna \verb|\hbox{p}| och \verb|\hbox{g}| eftersom värdet på \verb|\prevdepth| uppdateras efter att \verb|\hbox{p}| har bearbetats och lagts till i listan: värdet på \verb|\prevdepth| blir djupet på rutan \verb|\hbox{p}|. När \verb|\hbox{g}| läggs till i den vertikala listan är värdet på \verb|\prevdepth| inte längre \texttt{-1000pt}; följaktligen kan mellanradslim nu läggas till.
```

&#x20;[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Exempel som demonstrerar TeX parameter \prevdepth](/files/4a15ab7dd1527d5f68798f42bdc7f1866b4f4fac)

#### Mellanradslim med noll storlek: \offinterlineskip

Det är möjligt att ta bort allt mellanradsavstånd via makrokommandot `\nointerlineskip`, som har en definition som motsvarar:

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

Observera att `\maxdimen` är `16383.99998pt`, den största längd som TeX kan använda.

Följande bild visar kärnberäkningarna för mellanradslim och de olika parametervärden som används av makrot `\nointerlineskip`:

![offinterlineskip](/files/dd084f958688ac9449b8e79d30267d9ea00d9b30)

Följande bild visar pseudokodfragmentet som blir resultatet av att ersätta `\nointerlineskip` makrovärdena i limberäkningarna. Den visar hur `\nointerlineskip` makrot fungerar genom att ange värden för `\baselineskip` och `\lineskiplimit` så att mellanradslimmet alltid blir `\lineskip` lim på `0pt`.

![offinterlineskip](/files/aed329e1c34df49c441137ca46e26e9dedbc4d3f)

#### \offinterlineskip och \lineskip som inte är noll

Den `\nointerlineskip` makrot sätter `\lineskip` till noll, men som följande Overleaf-projekt visar kan du kombinera `\nointerlineskip` med värden som inte är noll för `\lineskip` för att uppnå effekter för radavstånd.

```latex
\documentclass{article}
\title{Demonstration av lineskip som inte är noll}
% Välj en lämpligt liten sidstorlek
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
\begin{document}

\offinterlineskip % Detta sätter \lineskip till 0pt

\setlength{\lineskip}{5pt} % Vi vill ha \lineskip som inte är noll

\input text.tex % En genererad TeX-fil som definierar makrona
% \mytextA och \mytextB, som båda sätter ett stycke

\mytextA % Sätt ett stycke

% Ändra nu \lineskip till ett flexibelt limvärde och sätt
% ytterligare ett stycke

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

\mytextA

\end{document}
```

&#x20;Öppna detta exempel som ett Overleaf LaTeX-projekt

Detta exempel genererar följande resultat:

![Demonstration av LaTeX makro \offinterlineskip](/files/7e3cfa0c3e91fc39f21d9373f5a05e5ea3e191d6)

Du kan begränsa effekten/effekterna av att använda `\offinterlineskip` och `\lineskip` (och andra avståndskommandon) genom att omsluta dem i en grupp:

```latex
\begingroup
\offinterlineskip
\setlength{\lineskip}{5pt}
...ditt/dina stycke(n) här

\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/sv/formatering/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.
