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

# Kappaleiden muotoilu

## Johdanto

Tässä artikkelissa tarkastellaan kahta tapaa tehdä muutoksia kappalevälistyksen eri osa-alueisiin:

* paras käytäntö ja suositeltu tapa käyttää LaTeX-paketteja, kuten [`setspace`](https://ctan.org/pkg/setspace) ja [`parskip`](https://ctan.org/pkg/parskip) jotka tarjoavat asetuksia ja käyttäjätason komentoja LaTeX-asiakirjojesi välistyksen muuttamiseen;
* matalan tason TeX/LaTeX-komentojen käyttö *parametrikomennot* kappalevälistyksen muuttamiseen. Parametrikomentojen suora käyttö voi ohittaa huolellisesti rakennettujen LaTeX-pakettien tarjoamat tarkistukset tai ohjaukset, mikä voi johtaa odottamattomiin seurauksiin/haittavaikutuksiin muualla LaTeX-asiakirjassasi, joten käytä niitä varoen...

### Siirry kiinnostaviin osioihin

Nopeita ratkaisuja hakeville lukijoille:

* siirry osioon [*LaTeX-pakettien käyttö: setspace ja parskip*](#using-latex-packages-setspace-and-parskip)

Matalan tason komennoista kiinnostuneille lukijoille:

* siirry osioihin [*TeX/LaTeX-parametrikomennot*](#using-texlatex-parameter-commands) ja [*Perusteet: parametrikomennot ja esimerkit*](#the-fundamentals-parameter-commands-and-examples)

Rivivälilaskelmien ja kappalerakenteen hienoista yksityiskohdista kiinnostuneille lukijoille:

* siirry osioon [*Kappalerakenne ja rivivälilaskelmat*](#paragraph-structure-and-line-space-calculations)

## LaTeX-pakettien käyttö: setspace ja parskip

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

### parskip-paketti

Se [`parskip` paketti](https://ctan.org/pkg/parskip?lang=en) auttaa sinua muuttamaan turvallisesti asiakirjasi kappaleiden väliin lisättävää tilaa. Se on suunniteltu varmistamaan, että asiakirjarakenteet, kuten sisällysluettelo, luettelo-ympäristöt ja näyttöotsikot, eivät kärsi ei-nollasta arvosta [`\parskip` komento](#parskip-tex-primitive), jota käytetään määrittämään TeX/LaTeXin kappaleiden väliin lisäämän tilan määrä.

Se `parskip` paketti ei tarjoa yhtään käyttäjätason komentoa; sen sijaan se käyttää pakettiasetuksia toimintojensa määrittämiseen.  [`parskip` dokumentaatiota](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/parskip/parskip.pdf) on lyhyt, vain kolme sivua, mutta tässä on lyhyt yhteenveto paketin asetuksista:

* **`skip`**&#x6D;ääritä `\parskip`, kappaleiden välinen pystysuora tila;
* **`tocskip`**&#x6D;ääritä ei-nolla `\parskip` arvo käytettäväksi `\tableofcontents` ja vastaavissa listoissa;
* **`indent`**&#x61;seta arvoksi `\parindent`, kappaleen sisennys;
* **`parfill`**&#x73;äätää arvon `\parfillskip`, liiman, joka lisätään kappaleen viimeisen rivin loppuun.

algoritmistyyliä. Mutta jos pidät viivoista algoritmin ja kuvatekstin ympärillä, voit lisätä `parskip` paketti asettaa `\parindent` kohteeseen `0pt` ja tarjoaa ei-nolla-arvon `\parskip` arvo `.5[\baselineskip](#baselineskip-tex-primitive) plus 2pt`.

#### parskip-paketin esimerkkejä

Seuraavat esimerkit havainnollistavat joitakin käyttötapoja `parskip` paketin. Valitse “Open in Overleaf” -linkit avataksesi ja kääntääksesi esimerkit Overleafissä.

**Minimaalinen esimerkki parskip-paketista**

Seuraava minimaalinen esimerkki lataa `parskip` paketin ja latoo kaksi kappaletta, jotka on luotu käyttäen [`blindtext` paketti](https://ctan.org/pkg/blindtext?lang=en). Esimerkki myös latoo oletusarvot `\baselineskip`, `\parskip` ja `\parindent`. Näiden kahden kappaleen välinen tila määräytyy arvon `\parskip`:

```latex
\documentclass{article}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=16cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Lataa blindtext-paketti täytteeksi
\usepackage{blindtext}
% Lataa parskip-paketti ilman asetuksia
\usepackage{parskip}
\begin{document}

\blindtext[1]\par %Käytä \par-komentoa pakottaaksesi uuden kappaleen
\blindtext[1]

Arvo \verb|\parindent| on \texttt{\the\parindent}. Tässä ovat muut arvot:

\begin{itemize}
\item Arvo \verb|\baselineskip| on \texttt{\the\baselineskip}
\item Arvo \verb|\parskip| on \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Esimerkki parskip-LaTeX-paketin käytöstä](/files/2a9b34eafd5b1457d7666d620a5d56811bd710e0)

Huomaa, että `\parskip` liima sisältää tyypillisesti venyvän [liimakomponentin](#a-few-notes-on-glue) koska se auttaa LaTeXia sovittamaan sisällön sivulle ja tuottamaan parhaat (optimaaliset) sivunvaihdot.

**parskip-pakettiasetusten käyttö**

Seuraava esimerkki lataa ja määrittää `parskip` paketti käyttäen `skip` ja `indent` asetukset. Se myös latoo kaksi kappaletta käyttäen [`blindtext` paketti](https://ctan.org/pkg/blindtext?lang=en), ja latoo arvot `\baselineskip`, `\parskip` ja `\parindent`.

```latex
\documentclass{article}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Lataa blindtext-paketti täytteeksi
\usepackage{blindtext}
% Lataa parskip-paketti skip- ja indent-asetuksilla
\usepackage[skip=10pt plus1pt, indent=40pt]{parskip}
\begin{document}

\blindtext[1]\par % Käytä \par-komentoa pakottaaksesi uuden kappaleen
\blindtext[1]

Arvo \verb|\parindent| asetettiin \texttt{indent}-asetuksella, joten se on nyt \texttt{\the\parindent}. Muut arvot ovat:

\begin{itemize}
\item \verb|\baselineskip| on \texttt{\the\baselineskip}
\item \verb|\parskip| asetettiin \texttt{skip}-asetuksella, joten sen arvo on \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Toinen esimerkki parskip-LaTeX-paketin käytöstä](/files/890f8a5832d0f5dc68b46e6909e5cc9127809f99)

### setspace-paketti

Se [`setspace` paketti](https://ctan.org/pkg/setspace?lang=en) tarjoaa komentoja ja ympäristöjä asiakirjasi tekstirivien välistyksen muuttamiseen. Tässä on lyhyt yhteenveto tärkeimmistä komentoista ja ympäristöistä, joita `setspace`:

* komennot **`\singlespacing`**, **`\onehalfspacing`** ja **`\doublespacing`** voidaan käyttää asiakirjan esipuheessa tai asiakirjan rungossa välistyksen muuttamiseen osassa asiakirjaa tai koko asiakirjassa;
* sivustolta **`\setstretch{*baselinestretch amount*}`** komento asettaa mukautetun välistyksen (muutosten kautta [`\baselinestretch`](#demonstrating-baselinestretch)) — sitä voidaan käyttää myös asiakirjan esipuheessa;
* ympäristöt **`singlespace`**, **`singlespace*`** **`onehalfspace`** ja **`doublespace`** sallivat rivivälin muuttamisen valituissa osissa asiakirjan tekstiä;
* sivustolta **`\SetSinglespace{*value*}`** komento käyttää `*value*` säätääkseen yksirivivälin vastaamaan tekstin riviväliä ladonnassa fonteilla, joiden kirjainmuodot (“glyfit”) ovat annetulla pistekoolla suhteellisen pieniä tai suuria. Katso osio [*Lyhyitä huomioita fonteista ja pistekoosta*](#brief-notes-on-fonts-and-point-size) kuvitusta varten, joka havainnollistaa fonttien glyfien koon vaihtelua annetulla pistekoolla;
* sivustolta **`spacing`** ympäristö tarjoaa mukautetun välistyksen ja vaatii yhden argumentin: [`\baselinestretch` arvo](#demonstrating-baselinestretch) käytettäväksi; esimerkiksi:

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

#### setspace-paketin esimerkkejä

Seuraavat esimerkit havainnollistavat joitakin käyttötapoja `setspace` paketin: napsauta “Open in Overleaf” -linkkejä avataksesi ja kääntääksesi esimerkit Overleafissä.

**\doublespacing-komennon käyttäminen asiakirjan esipuheessa**

```latex
\documentclass{article}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Lataa blindtext-paketti täytteeksi
\usepackage{blindtext}
% Lataa setspace-paketti
\usepackage{setspace}
% \doublespacing-komennon käyttö esipuheessa
% muuttaa tekstin kaksiriviväliseksi
\doublespacing
\begin{document}
\blindtext[1]
\end{document}
```

&#x20;[Avaa tämä `setspace` esimerkki Overleafissa.](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Esimerkki setspace-paketin \doublespacing-komennosta](/files/8eafac68ab92735f42249ae5e63f0810d2773728)

**spacing-ympäristön käyttö**

Koska seuraava koodi latoo 3 sivua, on suositeltavaa tarkastella tulostetta Overleafissä valitsemalla alla annettu “Open in Overleaf” -linkki.

```latex
\documentclass{article}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Lataa blindtext-paketti täytteeksi
\usepackage{blindtext}
% Lataa setspace-paketti
\usepackage{setspace}
% \doublespacing-komennon käyttö esipuheessa
% muuttaa tekstin kaksiriviväliseksi
\doublespacing
\begin{document}
\blindtext[1]

Sovelletaan nyt suurempaa (mukautettua) välistystä asettamalla \verb|\baselinestretch|-arvoksi 3:

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

\begin{spacing}{2.5}
\blindtext[1]
\end{spacing}
Nyt, palataan \verb|\singlespacing|\singlespacing\blindtext[1]
\end{document}
```

&#x20;[Avaa tämä `setspace` esimerkki Overleafissa.](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)

**singlespace\*-ympäristön käyttö**

Kuten artikkelissa todetaan [*Nopea huomio rivivälistä*](https://texblog.org/2011/09/30/quick-note-on-line-spacing/), `setspace` paketti tarjoaa tähdellä merkityt (`singlespace*`) ja ei-tähdelliset versiot `singlespace` ympäristöstä. Kommentit `setspace` paketin koodissa huomauttavat, että `singlespace*` ympäristö on suunniteltu “... parantamaan pystysuuntaista välistystä itemize- ja quote-ympäristöjen ympärillä”.

Seuraava esimerkki käyttää luettelomerkein varustettuja listoja kahdessa `minipage` vierekkäin sijoitetussa ympäristössä, jotta havainnollistetaan eri välistystä, jonka tuottaa `singlespace` ja `singlespace*` ympäristöistä.

```latex
\doublespacing
\blindtext[1]

\begin{minipage}{.4\textwidth}
\begin{singlespace}
Tässä on luettelomerkkeinä esitetty lista\par (\texttt{singlespace}-ympäristö).
\begin{itemize}
\item Yksi
\item Kaksi
\item Kolme
\end{itemize}
\end{singlespace}%
Lista on päättynyt.
\end{minipage}\kern10pt%
\begin{minipage}{.4\textwidth}
\begin{singlespace*}
Tässä on luettelomerkkeinä esitetty lista\par (\texttt{singlespace*}-ympäristö).
\begin{itemize}
\item Yksi
\item Kaksi
\item Kolme
\end{itemize}
\end{singlespace*}
Lista on päättynyt.
\end{minipage}
```

&#x20;[Avaa tämä `setspace` esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Esimerkki LaTeXin singlespace\*-ympäristöstä](/files/b70a0776eaa7470595b68d2f4e615f6c378cf715)

**\setstretch-komennon käyttäminen**

`\setstretch{*value*}` asettaa arvoksi `\baselinestretch` kohteeseen *arvo* ja käynnistää *välittömän* muutoksen `\baselineslip` jonka aiheuttaa `\baselinestretch`. Seuraava esimerkki käyttää `\setstretch{1.618}`—1,618:n outo arvo on [selitetään myöhemmin artikkelissa](#understanding-and-calculating-values-for-baselinestretch)...

```latex
% Artikkelissa selitetään myöhemmin outo luku 1.618.
\setstretch{1.618}
Kirjoitamme \verb|\setstretch{1.618}| saadaksemme aikaan välittömän muutoksen riviväliin. Jos kirjoittaisimme \verb|\renewcommand{\baselinestretch}{1.618}| riviväliä ei muutettaisi ennen kuin fonttia vaihtavaa komentoa, kuten \verb|\selectfont|, käytetään.

\blindtext[1]
```

&#x20;[Avaa tämä `setspace` esimerkki Overleafissa.](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Esimerkki \setstretch-komennosta](/files/1955f541c30879498e7a69229f0fb02acb91efb5)

**\SetSinglespace-komennon käyttäminen**

Seuraava projekti käännetään LuaLaTeXillä ja käyttää `fontspec` pakettia TeX Gyre Pagella -fonttien käyttöön. Se vertaa kahta TeX Gyre Pagellalla ladottua tekstikappaletta: ensimmäinen kappale käyttää oletusarvoista yksiriviväliä ja toisessa on suurempi yksiriviväli, koska siihen sovelletaan `\SetSinglespace{1.1}`. Jotkut saattavat pitää enemmän toisesta, hieman “avonaisemmasta” kappaleesta ja kokea sen parantavan lukumukavuutta, mutta se on tietenkin makuasia.

```latex
\section*{Computer Modernin oletusyksiriviväli}
Tavallista tekstiä. \blindtext[1]
\setmainfont{TeX Gyre Pagella}
\section*{TeX Gyre Pagellan oletusyksiriviväli}
Tässä on tavallista tekstiä. \blindtext[1]
\section*{TeX Gyre Pagellan säädetty yksiriviväli}
Huom: meidän on annettava \verb|\singlespacing| kirjoittamisen jälkeen
\verb|\SetSinglespace{1.1}|\SetSinglespace{1.1}\singlespacing
\begin{singlespace*}
Tässä on tavallista tekstiä. \blindtext[1]
\end{singlespace*}
```

&#x20;[Avaa tämä `setspace` esimerkki Overleafissa.](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![LaTeXin \SetSinglespace-komennon esittely](/files/a946fdc2457c5e28f76768d03c8ce03eb6a09ad2)

Seuraavassa osiossa tarkastelemme komentoja `\baselinestretch` ja `\linespread`.

#### Ymmärtäminen \baselinestretchin ja \linespreadin toiminta

Osa LaTeXin suunnittelua rivivälin ja fonttimuutosten (fonttikoko, kirjasinperhe, fonttien merkistö jne.) käsittelyssä käyttää kahta komentoa, joihin saatat törmätä:

* **`\baselinestretch`**: tämä komento tallentaa skaalauskertoimen, jota käytetään nykyisen arvon kertomiseen (skaalaamiseen) [`\baselineskip`](#baselineskip-tex-primitive). Tämä skaalaus tehdään yleensä *seuraavalla kerralla* kun fontinvalintakomento on käytössä — kuten `\selectfont`. Muuttaaksesi arvon, jonka `\baselinestretch` sinun pitäisi kirjoittaa `\renewcommand{\baselinestretch}{*scale*}`
  * **Huomaa**: Jos kirjoitat `\renewcommand{\baselinestretch}{*scale*}` asiakirjan rungossa, uuden `\baselinestretch` [ei tule voimaan heti](https://tex.stackexchange.com/questions/241120/why-does-changing-baselinestretch-not-change-line-spacing): uusi `*skaala*` kerroin tallennetaan myöhempää käyttöä varten. Käyttääksesi/ottaaksesi välittömästi käyttöön uuden`*skaala*` arvon, kirjoita `\selectfont` kuten osoitetaan [alla olevassa koodinpätkässä](#demonstrating-baselinestretch).
* **`\linespread{*scale*}`**: voidaan käyttää muuttamaan [`\baselineskip`](#baselineskip-tex-primitive) vaikuttamatta nykyiseen fonttikokoon. Tämä komento asettaa `\baselinestretch` kohteeseen `*skaala*` joka puolestaan muuttaa `\baselineskip` kohteeseen `*skaala* × [\baselineskip](#baselineskip-tex-primitive)`. Tuo skaalaus ei kuitenkaan myöskään tapahdu heti, ellei `\linespread` komentoa käytetä asiakirjan esipuheessa. Jos `\linespread` sitä käytetään asiakirjan rungossa, se tulee voimaan vasta seuraavan fontin koon/valinnan komentoon käytön jälkeen.

Edellä olevan perusteella joko:

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

voidaan käyttää rivivälin muuttamiseen, ja kumpikin toimii myös fonttikoon muutosten yli, kuten alla olevassa esimerkissä osoitetaan. Kumpaa siis pitäisi käyttää? Katso [tämä lyhyt keskustelu tex.stackexchange-sivustolla](https://tex.stackexchange.com/a/241121).

**linespread-komennon esittely**

Seuraava esimerkki käyttää `\linespread{2.5}` asiakirjan esipuheessa, mikä muuttaa riviväliä ilman lisäfontinvalintakomentoja:

```latex
\documentclass{article}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Lataa blindtext-paketti täytteeksi
\usepackage{blindtext}
% \\linespread-komennon käyttö esipuheessa muuttaa
% riviväliä ilman, että tarvitaan lisä
% fontinvalintakomentoja, kuten \\selectfont
\linespread{2.5}
\begin{document}
\blindtext[1] % Riviväliin vaikuttaa \\linespread{2.5}
\end{document}
```

&#x20;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![linespread-komennon käyttö](/files/9d01e755cf5f2de5f3fa6a4f27dabc6d72c1abdf)

Käyttämällä `\linespread{2.5}` asiakirjan rungossa (jälkeen `\begin{document}`) *vaatisi* fontinvalintakomentoja rivivälin muutoksen käynnistämiseksi. Avaa seuraava koodi Overleafissä ja vertaa tulosta edelliseen esimerkkiin:

```latex
Koska seuraava \verb|\linespread|-komento käytetään asiakirjan rungossa, rivivälin muuttamiseen tarvitaan fontinvalintakomento. Poista \verb|\selectfont|-komennon kommentointi nähdäksesi eron:

\linespread{2.5}%\selectfont

% Ilman \selectfont-komentoa seuraavan kappaleen rivit ovat
% seuraavan kappaleen rivit eivät muutu \linespread{2.5}:n vaikutuksesta:
\blindtext[1]
```

&#x20;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![käyttäen LaTeXin \linespread-komentoa asiakirjassa](/files/7959cc0b92f20998c0cc78be11d64e4818c2271b)

**\baselinestretchin esittely**

Seuraava esimerkki havainnollistaa `\baselinestretch` ja `\selectfont` näyttääkseen vastaavan vaikutuksen [`\baselineskip`](#baselineskip-tex-primitive):

```latex
Oletusarvoinen \verb|\baselineskip|=\the\baselineskip. Päivitä nyt \verb|\baselinestretch|\renewcommand\baselinestretch{2.5}. Vaikka olemme suorittaneet

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

\noindent sillä \textit{ei ole} (vielä) ollut mitään vaikutusta: uusi \verb|\baselinestretch|-arvo on tallennettu, mutta sitä ei ole vielä otettu käyttöön. Voimme antaa \verb|\selectfont|-komennon, jotta muutos tulee voimaan; mutta toistaiseksi \verb|\baselineskip|-arvo on yhä \the\baselineskip{} (muuttumaton).

Jos nyt suorittamme \verb|\selectfont|-komennon, \verb|\baselinestretch|-arvon muutos, jonka arvoksi asetetaan 2.5, tulee nyt voimaan---\selectfont vaikka olemme kappaleen keskellä. Nyt \verb|\baselineskip|-arvo on \the\baselineskip{} (= \(2.5 \times 12=30\mathrm{pt}\)).

Mitä tapahtuu, jos muutamme fonttikoon arvoon 14pt ja \verb|\baselineskip|-arvon 16pt:ksi käyttäen komentoja \verb|\fontsize{14}{16}\selectfont|?

\fontsize{14}{16}\selectfont Nyt \verb|\baselineskip| ei \textit{ole} 16pt vaan \the\baselineskip{} koska \verb|\baselinestretch|-arvo (2.5) on säilytetty ja sovellettu, jolloin \verb|\baselineskip| = \(2.5 \times 16=40\mathrm{pt}\).

\section{\texttt{\bfseries\string\linespread}}
\verb|\linespread|-komentoa voidaan käyttää \verb|\baselineskip|-arvon muuttamiseen muuttamatta fonttikokoa.
```

&#x20;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![baselinestretchin havainnollistaminen](/files/594da86eabb06468cc9463ced2f28cfc1889c180)

#### Miten “riviväli” määritellään ja muutetaan setspace-paketissa?

Se *tarkka* määritelmä ja *mittaaminen* on tulkinnanvaraista, mikä voi johtaa erilaisiin toteutuksiin ohjelmistojärjestelmissä/sovelluksissa. On selvää, että `setspace` paketin on oletettava toimiva määritelmä rivivälille, jotta se voi tukea “yksirivisen” ja “kaksirivisen” tekstin ladontaa tai mitä tahansa muuta rivivälin monikertaa. Mutta mitä muuttujia muokataan `setspace` jotta saadaan rivejä, joiden välissä on eri määrä tyhjää tilaa?

Onneksi, [keskustelut tex.stackexchangessa](https://tex.stackexchange.com/a/30106) ja [paketin koodissa olevat kommentit](https://tex.stackexchange.com/a/632830) selventävät, miten `setspace` toteuttaa rivivälin: se asettaa arvon `\baselineskip` käyttäen fontin pistekoon monikertaa.

**Lyhyitä huomioita fonteista ja pistekoosta**

Fonttien käyttäminen tietyllä pistekoolla tarkoittaa *skaalauskerrointa* näiden fonttien merkkimuotoihin (glyfeihin); kun ne on skaalattu pistekoon mukaan, merkin näkyvä koko on fontin suunnittelun (kirjasinlajin) funktio. Pistekoolla ei ole yleispätevää, ehdotonta suhdetta fonttien merkkimuotojen todelliseen näyttökokoon.

Seuraava kuva näyttää pienet kirjaimet “abc” neljällä eri fontilla tyyliteltyinä ja kaikki *näytettynä samalla pistekoolla*. Huomaa, miten näiden pienkirjainten “koko” vaihtelee fontin suunnittelun (kirjasinlajin) mukaan, vaikka ne kaikki on ladottu *samaan* pistekokoon:

![Eri fontteja samalla pistekoolla](/files/68ace522847110289fe6e44ad7a6741045cd3d03)

#### Yksiriviväli setspace-paketissa

Voimme käyttää [keskustelut tex.stackexchangessa](https://tex.stackexchange.com/a/30106) jatkossa joillekin selityksille.

Perusasiakirja, jossa käytetään `article` luokalla on oletustekstifonttikoko 10pt ja `\baselineskip` on 12pt. Valitsimella \[11pt] tai \[12pt] article-luokka käyttää suurempaa tekstikokoa ja vastaavasti suurempaa arvoa `\baselineskip` kuten seuraavassa taulukossa:

| vaihtoehdon      | fonttikoko                  | $$\texttt{\baselineskip}$$ | $$\displaystyle\frac{\texttt{\baselineskip}}{\text{font size}}$$ |
| ---------------- | --------------------------- | -------------------------- | ---------------------------------------------------------------- |
| \[10pt] (oletus) | 10 pt                       | 12 pt                      | 1.2                                                              |
| \[11pt]          | 10,95pt$${}^{\textbf{\*}}$$ | 13,6pt                     | 1.24                                                             |
| \[12pt]          | 12 pt                       | 14.5                       | 1.21                                                             |

$${}^{\textbf{\*}}$$Poikkeavan arvon syy `10,95pt`, eikä täsmälleen `11 pt`, selittää hyvin tämä [reddit-viesti](https://www.reddit.com/r/LaTeX/comments/ihle9h/why_does_latex_use_1095pt_text_when_the_11pt/).

Kuten taulukosta ilmenee, jokaiselle tekstin pistekoon ja sitä vastaavan oletusarvon (eli yksirivivälin) arvon `\baselineskip`, suhde

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

on lähellä arvoa 1,2. Tämä suhdearvo tarkoittaa yksiriviväliä ja muodostaa perustan rivivälilaskelmille, joita käyttää `setspace` pakettiin.

**\baselinestretch-arvojen ymmärtäminen ja laskeminen**

Saavuttaaksesi tietyn rivivälin monikerran, kuten 1,5, 2, 3 jne., `\baselinestretch` komento on asetettava näennäisesti [“outoihin” arvoihin](https://tex.stackexchange.com/a/30106); esimerkiksi [käyttäen `\linespread` komento](https://texblog.org/2011/09/30/quick-note-on-line-spacing/). Tässä osiossa tarkastelemme lähemmin `\baselinestretch` jotta nähdään, miten nuo “outot” arvot syntyvät.

Valitaan asiakirja, jonka oletusfonttikoko on $$f$$ ja oletus `\baselineskip` kohteelle $$\text{dbls}\_1$$, jossa alaindeksi $${}\_1$$ tarkoittaa oletus `\baselineskip` arvoa yksirivivälille fonttikoolla $$f$$.

Määritellään ***määrittelemme*** yksiriviväli seuraavana suhteena, johon viittaamme nimellä $$\alpha\_f$$:

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

Tietyllä fonttikoolla $$f$$, määritellään myös *määrittelemme* seuraavat riviväliarvot:

* 1,5-kertainen riviväli on *määritelty* muodossa

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

* 2,0-kertainen riviväli on *määritelty* muodossa

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

* monikerta, $$m$$, rivivälin on *määritelty* muodossa

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

Käyttäen yksiriviväliämme, jonka määrittää suhde $$\alpha\_f$$, voimme kirjoittaa seuraavan “pseudokoodin” selvittääksemme `\baselinestretch` arvon, joka vastaa mitä tahansa rivivälin monikertaa $$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\*}$$

Käytetään `11 pt` tekstiä (itse asiassa `10,95pt`) ja oletus `\baselineskip` arvo `13,6pt` laskea `\baselinestretch` kohtaan *kaksois* riviväli:

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

Seuraavaa koodikatkelmaa käytetään `setspace` paketissa saavuttamaan `\doublespacing` kun fonttikoko on 11 pt. Huomaa, miten arvo `1.618`, joka on laskettu yllä, tallennetaan komentoon `\baselinestretch`:

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

Käyttämällä `article` asiakirjaluokkaa, jossa on 11 pt:n fonttiasetus, seuraava esimerkki vertaa `\doublespacing` yhdessä `spacing` ympäristöä, jossa käytetään laskettua arvoamme `1.618` kohtaan `\baselinestretch`. Ei ole yllättävää, että `\baselineskip` arvot ovat samat (`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;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![\baselinestretchin esittely](/files/1e0dc0ceaa11942498bb5aeafeebae991beaf0e9)

Samanlaisia laskelmia `\baselinestretch` arvoille pätevät muut fonttikoot ja rivivälivaihtoehdot, kuten seuraavissa taulukoissa on lueteltu:

![setspace-parametrit](/files/4c6db4b1b95e197be628422c11fe676b967ea059)

## Käyttämällä TeX/LaTeX-parametrikomentoja

Seuraavissa osioissa tarkastellaan useita kappaleiden väliin/muotoiluun liittyviä komentoja: osa näistä komennoista on *sisäänrakennettuina* TeX-asettelumoottoreita, toiset ovat TeX/LaTeX-makroja. TeX-moottoreihin sisäänrakennetut komennot tunnetaan nimellä *primitiiveistä*, mikä tarkoittaa, että ne ovat *perustavanlaatuinen* ja *hajottamattomia* sillä toisin kuin makrot, primitiivit eivät koostu muiden komentojen sarjoista.

Tarkastelemme erityisesti useita primitiivisiä *parametrikomennot* joita kaikki TeX-moottorit tukevat, mukaan lukien pdfTeX, XeTeX ja LuaTeX. Parametrikomentoja, olivatpa ne kappaleisiin liittyviä tai eivät, käytetään *hakemaan nykyinen arvo* vastaavalle parametrille, tai *asettamaan kyseinen parametri uuteen arvoon*. Esimerkiksi `\parskip` komento, joka on primitiivi, määrittää parametrin arvon, joka ohjaa kahden ladotun kappaleen väliin lisättävän tyhjän tilan määrää.

Saadaksesi *saada* (tässä, ladotaksesi) nykyisen arvon `\parskip` kirjoittaisit:

```latex
\the\parskip
```

Saadaksesi *set* nykyinen arvo `\parskip` kohteeseen `1pt plus2pt` (joustava liima) voit kirjoittaa esimerkiksi näin:

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

Käsittelemme myös joitakin hyödyllisiä TeX/LaTeX *makroja*, korkeamman tason komentoja, jotka on kirjoitettu ja muodostettu useiden osakomentojen sarjasta.

### Kappaleväleihin käytettävät komennot

Seuraavia komentoja (primitiivejä ja makroja) voidaan käyttää kappalevälin muuttamiseen. Joitakin niistä tarkastellaan tarkemmin, ja niihin pääsee komentonimen linkistä.

#### Primitiiviset komennot

* [`**\parindent**`](#parindent-tex-primitive): sisennyksen määrä (tyhjä tila), joka lisätään kappaleen ensimmäiselle riville.
* [`**\parskip**`](#parskip-tex-primitive): kappaleiden väliin sijoitettavan joustavan tyhjän tilan („liiman”) määrä.
* [`**\rightskip**`](#leftskip-and-rightskip-tex-primitives): joustava väli (liima), joka lisätään kappaleen jokaisen rivin oikealle puolelle.
* [`**\leftskip**`](#leftskip-and-rightskip-tex-primitives): joustava väli (liima), joka lisätään kappaleen jokaisen rivin vasemmalle puolelle.
* [`**\baselineskip**`](#baselineskip-tex-primitive): tämän parametrin arvolla on kaksi tehtävää:
  * se asettaa halutun etäisyyden kappaleen tekstin perustasojen välillä;
  * sitä käytetään laskemaan rivien väliin lisättävän (vaihtelevan) tilan (liiman) määrä, jotta saavutetaan haluttu perustasojen välinen etäisyys ([katso myöhemmin artikkelissa](#how-the-space-glue-between-paragraph-lines-is-calculated)).
* [`**\lineskiplimit**`](#lineskip-and-lineskiplimit-tex-primitives): parametri, jonka arvo määrittää kahden vierekkäisen kappaleen rivin vähimmäishyväksyttävän etäisyyden.
* [`**\lineskip**`](#lineskip-and-lineskiplimit-tex-primitives): kahden rivin väliin lisättävän tilan (liiman) määrä kappaleessa, jos laskettu `\baselineskip` liima aiheuttaisi rivien olevan liian lähellä toisiaan.
* `**\parfillskip**`: erittäin joustava liima, joka lisätään kappaleen viimeisen rivin loppuun, jotta se „täyttyisi” tyhjällä tilalla; visuaalista esimerkkiä varten katso kuvaa osiossa [*Muiden kappaleliimojen visualisointi*](#visualizing-other-types-of-paragraph-glue).

#### Makrokomennot

Seuraavia TeX/LaTeX-makrokäskyjä käytetään usein kappalevälin muuttamiseen:

* [`**\offinterlineskip**` ja `**\nointerlineskip**`](#offinterlineskipandnointerlineskip): komentoja, joilla voidaan kytkeä pois `\baselineskip` liiman laskenta ja lisääminen;
* [`**\baselinestretch**`](#understanding-and-calculating-values-for-baselinestretch): komento, johon tallennetaan numeerinen kerroin, jota käytetään arvon laskemiseen `\baselineskip` kun fontti valitaan. Sen oletusarvo on 1;
* [`**\linespread**`](#demonstrating-linespread): tätä komentoa voidaan käyttää muuttamaan arvon nykyistä arvoa `\baselinestretch`.

### Joustava väli (liima)

TeX-moottorit toteuttavat välistysefektejä, myös kappaleiden sisällä ja välillä, käyttämällä joustavaa tyhjää tilaa nimeltä *liima* jota voidaan venyttää tai kutistaa tarvittavan tilan mukaan. Jos haluat oppia TeXin liimakäsitteestä, lisätietoja löytyy seuraavista Overleaf-artikkeleista:

* [Vajaitten tai ylitäyttyneiden laatikoiden ja badness-laskelmien tutkiminen](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv)
* [Miten TeX laskee liima-asetukset \hboxissa](/latex/fi/syvalliset-artikkelit/24-how-tex-calculates-glue-settings-in-an-hbox.md)
* [Vajaat ja ylitäytetyt laatikkovaroitukset](/latex/fi/tietopankki/138-understanding-underfull-and-overfull-box-warnings.md).

## Perusteet: parametrikomennot ja esimerkit

Tässä osiossa selitämme useita kappaleisiin liittyviä parametrikomentoja ja annamme esimerkkejä niiden käytöstä.

### \parindent (TeX-primitiivi)

Tämä parametrikomento asettaa sisennyksen määrän (tyhjän tilan), joka lisätään kappaleen ensimmäiselle riville. Sitä voidaan muuttaa käyttämällä LaTeXin `\setlength` komentoa; esimerkiksi, jotta kappaleet sisennetään `15pt` set `\parindent` kohteeseen `15pt` kirjoita:

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

Huomaa, että:

* voit muuttaa `\parindent` ryhmän sisällä, jolloin sen vaikutus rajautuu kyseisen ryhmän kappaleisiin;
* `\parindent` voi olla negatiivinen, jolloin syntyy sisennyksen sijasta „ulossisennys”;
* oletusarvoisesti LaTeX ei sisennä ensimmäistä kappaletta asiakirjan osio-otsikon jälkeen (`\section{...}` jne.).

Seuraava esimerkki havainnollistaa komennon `\parindent`.

```latex
\documentclass{article}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Luo komento, joka sisältää tekstikappaleen
\newcommand{\testpar}{\texttt{\string\parindent=\the\parindent\ }Kun \TeX{} latoo kappaleen, se käsittelee jokaisen yksittäisen merkin 2D ``laatikoksi'', jolla on tietty leveys, korkeus ja syvyys.\par}
\begin{document}

% Aseta \parskip siten, että kappaleiden väliin tulee 10 pt
\setlength{\parskip}{10pt}

% Aseta \parindentin arvoksi 0 pt
\setlength{\parindent}{0pt}
\testpar

% Aseta \parindentin arvoksi 10 pt
\setlength{\parindent}{10pt}
\testpar

% Aseta \parindent ryhmän sisällä
{\setlength{\parindent}{50pt}\testpar}

% Nyt \parindent on jälleen 10 pt
\testpar

% Kyllä, \parindent voi olla negatiivinen
\setlength{\parindent}{-20pt}
\testpar
\end{document}
```

&#x20;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Eri kappaleiden sisennysarvojen käyttäminen LaTeXissa](/files/c4084c415cbcba2a43d9116055d3a5cface4cde8)

### \parskip (TeX-primitiivi)

Tekstin luettavuutta voidaan parantaa erottamalla kappaleet tyhjällä tilalla, jonka määrä vaihtelee jonkin suunnittelullisen estetiikan mukaan. TeX/LaTeX mahdollistavat tämän kappalevälien hallinnan `\parskip` parametrikomennolla.

* **Neuvoja `parskip` paketti**: Se [parskip-paketista](https://ctan.org/pkg/parskip) suosittelee, että suora muokkaaminen `\parskip` voi „johtaa pystysuoriin väleihin odottamattomissa paikoissa” (LaTeX-asiakirjassa). `parskip` paketti yrittää korjata välistysongelmia, joita voi syntyä arvon muutoksista `\parskip`—esimerkiksi sisällysluettelo- ja luettelo-ympäristöissä. Katso myös [`parskip` tämän artikkelin pakettiosio](#the-parskip-package).

Asettaaksesi arvon nykyisen arvon käsin `\parskip` käytä LaTeXin `\setlength` komentoa; esimerkiksi erottaaksesi kappaleet 3 pt:n välein voit kirjoittaa:

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

Seuraava esimerkki havainnollistaa komennon `\parskip`:

```latex
\documentclass{article}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Luo komento, joka sisältää tekstikappaleen
\newcommand{\testpar}{\noindent Komennon \texttt{\string\parskip} nykyinen arvo on \texttt{\the\parskip}. Kun \TeX{} latoo kappaleen, se käsittelee jokaisen yksittäisen merkin 2D~``laatikoksi'', jolla on tietty leveys, korkeus ja syvyys.\par}
\begin{document}
\testpar
% Aseta \parskip arvoksi 5 pt
\setlength{\parskip}{5pt}\testpar
% Aseta parskip arvoksi 10 pt
\setlength{\parskip}{10pt}\testpar
% Aseta \parskip arvoksi 25 pt (mutta ryhmän sisällä)
{\setlength{\parskip}{25pt}\testpar}
% Ryhmä päättyy, nyt \parskip on jälleen 10 pt
\testpar
% Kyllä, \parskip voi olla negatiivinen
\setlength{\parskip}{-20pt}\testpar
\end{document}
```

&#x20;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![\parskipin käytön havainnollistaminen LaTeXissa](/files/55d0dff601d7232d89e354200a53041acf269fb0)

#### Joustava \parskip

Perinteisesti, `\parskip` ei ole *kiinteä* arvo, mikä johtaisi samaan tilaan kaikkien kappaleiden välillä. Sen sijaan `\parskip` määritellään yleensä „joustavaksi tilaksi” (liima), jonka avulla TeX voi venyttää tai kutistaa kappaleiden välistä tilaa, mikä auttaa sovittamaan sisällön sivulle ja löytämään „hyvän” kohdan sivunvaihdolle.

Tehdäksesi `\parskip` joustavaksi, kirjoita se liimamäärityksen muodossa:

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

jossa `**plus**` ja `**minus**` olet *keywords* jota TeX/LaTeX käyttää tunnistaakseen *venytettävän määrän* tai *kutistettavan määrän* liimamäärityksessä olevan. Overleaf-artikkeli [*Vajaitten tai ylitäyttyneiden laatikoiden ja badness-laskelmien tutkiminen*](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv) sisältää syvällisemmän keskustelun liimasta.

Esimerkiksi jotta `\parskip` vaihdella välillä `3 + 1 = 4pt` ja `3 — 1 = 2pt` voisit kirjoittaa

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

### \leftskip and \rightskip (TeX primitives)

TeX-moottorit tarjoavat kaksi parametrikomentoa, jotka lisäävät tilaa (liimaa) ladotun kappaleen jokaisen rivin vasemmalle ja oikealle puolelle. Kuten niiden nimet vihjaavat:

* `\leftskip` lisää tilaa (liimaa) kappaleen jokaisen rivin vasemmalle puolelle;
* `\rightskip` lisää tilaa (liimaa) kappaleen jokaisen rivin oikealle puolelle.

Seuraavat esimerkit käyttävät `\leftskip` ja `\rightskip` kappaleiden tasaamisen suoraan muuttamiseen; kuitenkin... tekstin tasausta muutetaan yleensä parhaiten sopivien LaTeX-ympäristöjen tai -pakettien avulla—katso esimerkiksi [Overleaf-artikkeli tekstin tasauksesta](/latex/fi/muotoilu/06-text-alignment.md). Vaikka havainnollistamme joitakin TeX-moottoreiden tarjoamia matalan tason (primitiivisiä) parametrikomentoja, on yleensä suositeltavaa käyttää sopivia LaTeX-paketteja aina kun mahdollista.

#### \leftskipin tekeminen kiinteäksi ja \rightskipin joustavaksi

Seuraava esimerkki tuottaa kaksi kappaletta: ensimmäinen käyttää LaTeXin oletusarvoja `\leftskip` ja `\rightskip` ja toinen kappale ladataan seuraavilla asetuksilla:

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

Avaa seuraava Overleaf-projekti nähdäksesi tuloksen:

```latex
\documentclass{article}
\title{Toinen leftskip- ja rightskip-esimerkki}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Aseta joidenkin kappaleisiin liittyvien parametrien arvot
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Luotu TeX-tiedosto, joka määrittää makrot
% \mytextA ja \mytextB, joista kumpikin sisältää kappaletekstin.
% Lado kappale \leftskipin ja \rightskipin oletusarvoilla

\mytextB

% Aseta \leftskip ja \rightskip uusiin arvoihin
\leftskip 10pt
\rightskip 0pt plus 1fill
\vspace{8pt}

% Lado sama kappale nyt uudelleen
\mytextB

\end{document}
```

&#x20;Avaa tämä esimerkki Overleaf LaTeX -projektina

Tämä esimerkki tuottaa seuraavan tuloksen:

![\leftskip-liiman asettaminen LaTeXissa](/files/6eaf3748982e89e133cdaade3c4441aefc442679)

Seuraava kuva on edellä olevan esimerkin tuottaman toisen kappaleen selitetty versio. Se on suunniteltu korostamaan ja näyttämään `\leftskip` ja `\rightskip` kappaleriveihin lisättyjen liimojen määrää yhdessä `\parindent` ensimmäisen rivin tilan kanssa:

![\leftskip-liiman asettaminen LaTeXissa](/files/e6084274ca3633623252fb57b0218cd3b3b6e1cd)

Huomaa, että `\leftskip` liiman koko on kiinteä (10 pt), mutta `\rightskip` liima on venynyt tarjotakseen niin paljon tyhjää tilaa kuin tarvitaan jokaisen rivin oikean puolen täyttämiseen. Tämä „joustavuus” johtuu määrityksestä `\rightskip` joka sisältää `plus 1 fill`—tarjoten „äärettömästi venyvän” liiman muodon.

#### \rightskipin tekeminen kiinteäksi ja \leftskipin joustavaksi

Seuraava esimerkki tuottaa kaksi kappaletta: ensimmäinen käyttää LaTeXin oletusarvoja `\leftskip` ja `\rightskip` ja toinen kappale ladataan seuraavilla asetuksilla:

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

Avaa seuraava Overleaf-projekti nähdäksesi tuloksen:

```latex
\documentclass{article}
\title{leftskip- ja rightskip-esimerkit}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Aseta joidenkin kappaleisiin liittyvien parametrien arvot
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Luotu TeX-tiedosto, joka määrittää makrot
% \mytextA ja \mytextB, joista kumpikin sisältää kappaletekstin.
% Lado kappale \leftskipin ja \rightskipin oletusarvoilla

\mytextB

% Aseta \leftskip ja \rightskip uusiin arvoihin
\rightskip 10pt
\leftskip 0pt plus 1fill
\vspace{8pt}

% Lado sama kappale nyt uudelleen
\mytextB

\end{document}
```

&#x20;Avaa tämä esimerkki Overleaf LaTeX -projektina

Tämä esimerkki tuottaa seuraavan tuloksen:

![\rightskip-liiman asettaminen LaTeXissa](/files/8e6920412107b5721c21ed94b763d73fe03cafe7)

Seuraava kuva on yllä olevan esimerkin tuottaman toisen kappaleen selitetty versio. Se on suunniteltu korostamaan ja näyttämään `\leftskip` ja `\rightskip` kappaleriveihin lisättyjen liimojen määrää yhdessä `\parindent` ensimmäisen rivin tilan kanssa:

![\rightskip-liiman asettaminen LaTeXissa](/files/e0901a26d899d0c6a20b8552018e2723add0a2a4)

Huomaa, että `\rightskip` liiman koko on kiinteä (10 pt), mutta `\leftskip` liima on venynyt tarjotakseen niin paljon tyhjää tilaa kuin tarvitaan jokaisen rivin vasemman puolen täyttämiseen. Tämä „joustavuus” johtuu määrityksestä `\leftskip` joka sisältää `plus 1 fill`—tarjoten „äärettömästi venyvän” liiman muodon.

#### \leftskipin ja \rightskipin asettaminen joustaviin arvoihin

Seuraava esimerkki tuottaa kaksi kappaletta: ensimmäinen käyttää LaTeXin oletusarvoja `\leftskip` ja `\rightskip` ja toinen käyttää seuraavia joustavia liima-asetuksia:

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

Nämä asetukset keskittävät kappaleen rivit:

```latex
\documentclass{article}
\title{leftskip- ja rightskip-esimerkit}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight==16cm,paperwidth==12cm,textwidth=8cm]{geometry}
% Aseta joidenkin kappaleisiin liittyvien parametrien arvot
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Luotu TeX-tiedosto, joka määrittää makrot
% \mytextA ja \mytextB, jotka määrittävät kahden kappaleen tekstin
% Lado kappale \leftskipin ja \rightskipin oletusarvoilla

\mytextB

% Aseta \leftskip ja \rightskip „erittäin joustaviksi” liima-asetuksiksi
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\vspace{20pt}

% Lado sama kappale nyt uudelleen
\mytextB

\end{document}
```

&#x20;Avaa tämä esimerkki Overleaf LaTeX -projektina

Tämä esimerkki tuottaa seuraavan tuloksen:

![Esimerkki, joka näyttää \leftskipin ja \rightskipin](/files/9de8dcfc6f54f7f872dae91c19d24a993dacef00)

Seuraava kuva on yllä olevan esimerkin tuottaman toisen kappaleen selitetty versio. Se on suunniteltu korostamaan ja näyttämään `\leftskip` ja `\rightskip` kappaleriveihin lisättyjen liimojen määrää yhdessä `\parindent` ensimmäisen rivin tilan kanssa:

![Esimerkki, joka näyttää \leftskipin ja \rightskipin](/files/c72df02e695fcc7dae455da2cb225e3d41f27428)

Huomaa, että molemmat `\leftskip` ja `\rightskip` määritellään muodossa `0pt plus 1fill` mikä tekee niistä yhtä „äärettömän joustavia”; näin ne venyvät saman verran, minkä seurauksena ladotut rivit keskitetään.

#### \leftskipin ja \rightskipin asettaminen ryhmän sisällä

Seuraava esimerkki näyttää, miten tehdä tilapäisiä muutoksia `\leftskip` ja `\rightskip` sijoittamalla ne ryhmän sisään. Esimerkissämme ryhmä luodaan komennolla `\begingroup`... `\endgroup`, kuten seuraavassa koodikatkelmassa näkyy:

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

Ensimmäinen kappale ladataan käyttäen „erittäin joustavaa” liimaa `\leftskip` ja `\rightskip`:

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

mutta toinen kappale käyttää LaTeXin oletusarvoja:

```latex
\documentclass{article}
\title{Toinen leftskip- ja rightskip-esimerkki}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Aseta joidenkin kappaleisiin liittyvien parametrien arvot
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Luotu TeX-tiedosto, joka määrittää makrot
% \mytextA ja \mytextB, jotka määrittävät kahden kappaleen tekstin
% Tässä muutamme \leftskipin ja \rightskipin „erittäin joustaviksi” liima-asetuksiksi
% \begingroup ... \endgroup -komentojen luoman ryhmän sisällä

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

% Lado sama kappale nyt uudelleen ryhmän sulkeuduttua
% jolloin \leftskip ja \rightskip palautuvat aiempiin arvoihinsa

\vspace{20pt}
\mytextB

\end{document}
```

&#x20;Avaa tämä esimerkki Overleaf LaTeX -projektina

Tämä esimerkki tuottaa seuraavan tuloksen:

![\leftskipin ja \rightskipin käyttäminen ryhmän sisällä](/files/f86565afb3436d2bd7288a4616eca7c0b918a21c)

**Huomaa**: Asetukset (vaikutukset) `\leftskip` ja `\rightskip` rajoittuvat kappaleeseen ryhmän sisällä, joka on luotu komennolla `\begingroup`... `\endgroup`. Kun ryhmä on suljettu, seuraava kappale ladataan käyttäen LaTeXin oletusarvoja `\leftskip` ja `\rightskip`.

### \baselineskip (TeX-primitiivi)

Vakiintuneen ladontakäytännön mukaan kappaleen sisäisten tekstirivien tulisi olla tasavälein, paitsi silloin kun tietyillä riveillä on suuria elementtejä, kuten matematiikkaa tai kuva, jotka tekevät vakion rivivälin säilyttämisestä näillä riveillä mahdotonta.

TeX/LaTeX tarjoavat komentoja ja mekanismeja, joiden avulla käyttäjät voivat hallita riviväliä jonkin verran. Yksi tällainen komento on `\baselineskip` joka hakee tai asettaa parametrin arvon, joka määrittää suositellun rivivälin (perustasosta perustasoon -etäisyyden) ladotussa kappaleessa.

Ladotaksesi nykyisen arvon `\baselineskip` voit kirjoittaa

```latex
\the\baselineskip
```

Asettaaksesi `\baselineskip` jonkin `arvo` (LaTeX-pituuden, kuten `pt`) voit kirjoittaa

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

Esimerkiksi asettaaksesi `\baselineskip` kohteeseen `12 pt` voit kirjoittaa

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

Voimme havainnollistaa komennon roolia `\baselineskip` käyttämällä seuraavaa (tyypillistä) kappaletta:

![Esimerkkikappale LaTeXissa](/files/c3effe72032a7504ea9bcc59db1d0aa3843615a1)

ja lisäämällä selitteitä, jotka näyttävät perustasosta perustasoon -etäisyyden, jota hallitsee `\baselineskip`:

![Esimerkkikappale LaTeXissa, jossa on selitteet perustasojen etäisyyksien näyttämiseksi](/files/0337043ed7e37a11caa76502c39ccc14d75d78ff)

Kaavio näyttää myös rivivälin „liiman”: laskettu määrä tyhjää tilaa, joka lisätään rivien väliin—käsittelemme tätä tarkemmin myöhemmin artikkelissa.

#### \baselineskip ja muut parametrit

`\baselineskip` on yksi neljästä keskeisestä parametrista, jotka säätelevät kappaleen rivien väliin lisättävän tilan määrää; muut ovat:

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

Myöhemmin artikkelissa tarkastelemme [*miten näitä neljää parametria käytetään*](#paragraph-structure-and-line-space-calculations) rivivälin liima-arvojen laskemiseen.

#### \baselineskip-esimerkki (kiinteä väli)

Seuraava esimerkki avautuu Overleafissa ja luo projektin, joka sisältää tiedoston nimeltä `text.tex` joka määrittää komennot `\mytextA` ja `\mytextB`—molemmat komennot latoavat kappaleen. Kätevyyden vuoksi Overleaf-projekti käyttää pientä sivukokoa, koska se helpottaa kuvien ja grafiikoiden valmistelua tätä ohjesivua varten.

```latex
\documentclass{article}
\title{\baselineskipin havainnollistaminen}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Aseta joidenkin kappaleisiin liittyvien parametrien arvot (käsittelemme näitä)
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% Aseta \baselineskipin arvo—muuta arvoa nähdäksesi vaikutuksen
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Luotu TeX-tiedosto, joka määrittää makrot
% \mytextA ja \mytextB, joista kumpikin latoa yhden kappaleen

% Ensiksi latoa kaksi kappaletta \baselineskipin oletusarvolla
\mytextA\mytextB

% Muuta nyt \baselineskip suurempaan arvoon ja latoa
% toinen kappale
\setlength{\baselineskip}{24pt}
\mytextA

\end{document}
```

&#x20;Avaa tämä esimerkki Overleaf LaTeX -projektina

Tämä esimerkki tuottaa seuraavan tuloksen:

![\baselineskipin tutkiminen TeXissä tai LaTeXissa](/files/2a9313b350a7954235b7faae2db15f1db578d942)

Sivun 2 kappaleessa on harvassa olevat rivit, koska `\baselineskip` asetettiin arvoon 24 pt.

#### \baselineskip-esimerkki (joustava väli)

Seuraava esimerkki määrittää `\baselineskip` arvon, jolla on erittäin joustava (ns. „ääretön”) venytyskomponentti:

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

Tämän joustavuuden vuoksi kappaleen rivien välinen tyhjä tila voi venyä niin paljon kuin sivun täyttämiseen tarvitaan. Tällainen joustavuus johtaisi siihen, että kappaleiden tekstirivien väliset välit olisivat hyvin erisuuruisia, mikä ei välttämättä olisi esteettisesti miellyttävää tai helppolukuista.

```latex
\documentclass{article}
\usepackage{blindtext}
\title{Joustavan \texttt{\string\baselineskip}in esittely}
\author{Overleaf}
\date{Tammikuu 2022}

\begin{document}

\maketitle
Annamme \verb|\baselineskip|-komennolle erittäin joustavan ``stretch''-komponentin asettamalla arvoksi \texttt{12pt plus1fil}: \verb|\baselineskip=12pt plus1fil|.\baselineskip=12pt plus1fil
\section{Introduction}
Lisää kappale, joka nyt venyy täyttämään sivun. \blindtext

\end{document}
```

&#x20;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![\baselineskip-liiman havainnollistaminen äärettömällä joustavuudella](/files/c4a3ecb22d52ba7aaae27bf9e60075bc524dd907)

**Muutama huomio liimasta**

Osa seuraavista huomioista on otettu Overleaf-artikkelista [ali- tai ylitäytettyjen laatikoiden ja huonouslaskelmien tutkimista](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv), toistettu tässä kätevyyden vuoksi.

TeXin kappaleen rivien väliin lisäämä tyhjä tila, `\baselineskip`, on joustavan välin muoto, jota kutsutaan *liima*. Liima-arvo voidaan määrittää kolmella osalla:

* a *kiinteä* määrä;
* määrä, jonka se voi *venyä*;
* määrä, jonka se voi *kutistua*,

Näin ollen `\baselineskip` arvo voidaan määrittää näin:

`\baselineskip`=*kiinteä määrä* **sekä** *venytettävän määrän* **miinus** *kutistettavan määrän*

jossa

* **sekä** ja **miinus** ovat avainsanoja, jotka TeX-moottorit ymmärtävät;
* *kiinteä määrä* kutsutaan *normaaliksi osaksi* liiman osaa (jota kutsutaan myös *luonnollinen leveys* liiman osaksi);
* *venytettävän määrän* kutsutaan *venymäosaksi* liiman osaksi;
* *kutistettavan määrän* kutsutaan *kutistumisosaksi* liiman osaksi.

Se *kiinteä määrä* on pakollinen kaikille liima-arvoille, mutta *venytettävän määrän* ja *kutistettavan määrän* ovat molemmat valinnaisia—jos toinen tai molemmat puuttuvat, niiden arvoksi asetetaan 0.

Yleensä, `\baselineskip` liima määritetään *kiinteä määrä* vain, venymä- ja kutistumisosa ovat nollia, muuten kappaleen riveillä olisi epäsäännöllinen (vaihteleva) väli, mikä ei ehkä olisi esteettisesti miellyttävää.

### \offinterlineskip ja \nointerlineskip (makrot)

Näitä makroja käytetään usein estämään riviväli-liiman lisääminen kappaleen rivien väliin. Yksityiskohdista kiinnostuneet lukijat voivat siirtyä suoraan asianmukaisiin artikkeliosiin, joissa selitetään, miten nämä makrot toimivat.

* **`\offinterlineskip`**: Katso artikkelin osio [*Nollakokoinen riviväli-liima: \offinterlineskip*](#zero-sized-interline-glue-offinterlineskip).
* **`\nointerlineskip`**: Katso artikkelin osio [*Riviväli-liiman estäminen: \prevdepth ja \nointerlineskip*](#preventing-interline-glue-prevdepth-and-nointerlineskip).

## Kappalerakenne ja rivivälilaskelmat

LuaTeXin ominaisuuksia käyttämällä on mahdollista [jälkikäsitellä ladottu kappale](https://www.overleaf.com/latex/examples/luatex-parsing-typeset-paragraphs/mzbpwxtjshsj) havainnollistaa sen muodostavien merkkien (glyyfien), rivien ja liimojen rajat. Aloitamme lyhyellä sarjalla kuvia, jotka auttavat havainnollistamaan “laatikot ja liima” -mallia, jota TeX-moottorit käyttävät kappaleen tekstin latoessa.

### Kappaleen rakenne

Kun TeX latoo kappaleen, se käsittelee yksittäiset merkit pieninä laatikkoina, joilla kullakin on oma leveytensä, korkeutensa ja syvyytensä, ja näitä merkkilaatikoiden leveyksiä käytetään rivinvaihtojen optimaalisten kohtien laskemiseen. Lisäksi tekstissä olevat välilyöntimerkit, joita käytetään erottamaan yksittäiset sanat, muunnetaan joustavan välin (liiman) muodoksi, joka tuottaa kullekin rivinvaihdolle tarvittavan välin.

Seuraava 7 kuvan sarja näyttää ladotun kappaleen ydinosat: erityyppiset laatikot ja liiman. Ensimmäinen kuva näyttää ladotun kappaleen sekä merkityn version, joka korostaa kappaleen eri osia. Merkitty kappale sisältää kuitenkin paljon tietoa, joten seuraavissa kuvissa eristetään eri osia, jotta ne (toivottavasti) olisi helpompi ymmärtää.

![Paragraphanatomy1b.png](/files/a54dfcdee7c3baa86a6cceedf9f2fd44500fe18c)

* Seuraava kuva esittää kappalerivit harmaina laatikkoina, joita erottavat liima, jota kuvataan vaakasuorilla vihreillä suikaleilla. Tämä liima lasketaan niin, että peruslinjasta peruslinjaan -etäisyys on yhtä suuri kuin (eli arvoltaan) `\baselineskip`:

![Paragraphanatomy2b.png](/files/cca06b9a88725a24db5fbe5dde8efc11d4964eaf)

* Seuraava kuva esittää ladotut merkit laatikkoina: tarkoituksena on havainnollistaa, miten TeX-moottorit käsittelevät merkkejä rivinvaihtojen tuottamiseksi:

![Paragraphanatomy3.png](/files/c41c784423b388c19880b462e493494f14c88615)

* Seuraava kuva näyttää laatikoita laatikoiden sisällä: suuremmat kappalerivit (laatikot), jotka sisältävät pienempiä laatikoita (yksittäisiä merkkejä):

![Paragraphanatomy5.png](/files/106b6524681b10f1ec4f852da99ee17b222b599f)

* Seuraava kuva näyttää sanojen välisen tilan määrän kullakin rivillä: nämä sanojenväliset välit syntyvät muuntamalla välilyöntimerkit joustaviksi liimoiksi, joita venytetään tai kutistetaan, jotta kullekin tekstiriville saadaan oikea pituus. Huomaa tarkasti, että näiden välikköjen koko vaihtelee rivistä toiseen:

![Paragraphanatomy4.png](/files/3a1ed0a070716fc1f15f1ffd72489978d2177414)

* Seuraava kuva yhdistää merkkilaatikot ja niitä vastaavat liimat (välilyönnit), jotka sijoitetaan yksittäisten sanojen väliin:

![Paragraphanatomy6.png](/files/0f90c3d76e71fd73a242948f775b07bb89e2aa97)

### Muiden kappaleliimojen visualisointi

Seuraavat kappaleet ladottiin ja käsiteltiin myös LuaTeXillä, jotta voitaisiin näyttää muun tyyppistä liimaa kappaleparin sisällä ja niiden välissä. Huomaa, että `\rightskip` ja `\leftskip` molemmat on asetettu arvoon 0pt, joten niitä ei näytetä:

* **`\parskip`** liima (vaaleansininen), joka on sijoitettu kahden ladotun kappaleen väliin;
* yksittäiset sanat erotetaan ***sanojenvälisellä liimalla*** (keltainen), joka syntyy muuntamalla syötteen välilyöntimerkit vaihtelevankokoiseksi tyhjäksi tilaksi (liimaksi) ladotussa tulosteessa. Sanojenvälisistä väleistä syntyvä liima venyy tai kutistuu, jotta rivinvaihdot olisivat visuaalisesti miellyttäviä;
* **`\baselineskip`** liima (vaaleanvihreä), joka on sijoitettu rivien väliin—täsmällinen määrä `\baselineskip` liimaa lasketaan alla käsitellyn mekanismin avulla;
* **`\lineskip`** liima (punainen), jota käytetään toisessa kappaleessa—toiseksi viimeisen rivin sisältämän matalan laatikon vuoksi;
* **`\parfillskip`** liima (tummanvihreä), joka on sijoitettu kunkin kappaleen viimeisen rivin loppuun.

![](/files/5cabf883d7a5ed373ab77b7174641bf1fddd4484)

### Syvempien (tai korkeampien) rivien (laatikoiden) käsittely

Kuten kuvat osoittavat [edellisessä osiossa](#paragraph-structure), ladottu kappale on pystysuora pino “laatikoita”, joita erottavat välilyönnit, joita TeX kutsuu “liimaksi”. Kun kappaletta käsitellään ja yksittäisiä rivejä (laatikoita) pinotaan, pystyluettelo (pino) kasvaa *alaspäin* suuntaan, kohti sivun alareunaa. Vaikka TeX/LaTeX yrittävät varmistaa, että kappaleen rivit pinoutuvat siten, että peruslinjojen välinen etäisyys on vakio `\baselineskip`, sitä ei aina ole mahdollista saavuttaa, koska tietyillä riveillä voi olla tavallista suurempi korkeus tai syvyys.

Kunkin kappalerivin korkeus ja syvyys määräytyvät sen mukaan, kuinka kauas rivin sisältö ulottuu peruslinjan ylä- tai alapuolelle; näin ollen kappaleet, jotka sisältävät aineistoa, jolla on suhteellisen suuri korkeus tai syvyys, kuten sisäistä matematiikkaa tai grafiikkaa, tuottavat todennäköisesti yksittäisiä rivejä, joilla on vastaavasti suuret korkeudet ja/tai syvyydet. Tällaisille riveille TeX/LaTeX ei ehkä pysty pinoamaan niitä niin, että niiden peruslinjat ovat erotettuina muista riveistä `\baselineskip` mää­rällä. On selvää, että TeX/LaTeX tarvitsee “varamekanismin” tällaisten rivien käsittelyyn *laskemalla* sopivan määrän tilaa, joka lisätään kunkin suurista korkeuksista ja/tai syvyyksistä kärsivän riviparin väliin.

#### \lineskip ja \lineskiplimit (TeXin primitiivit)

Tuo varamekanismi sisältää parametrikomennot `\lineskip` ja `\lineskiplimit` sekä kolmannen parametrin nimeltä `\prevdepth`. Lisätiedoista kiinnostuneet lukijat voivat siirtyä eteenpäin artikkelin osioon [*Miten kappalerivien välinen tila (liima) lasketaan*](#how-the-space-glue-between-paragraph-lines-is-calculated).

Alla oleva esimerkkiprojekti latoo yhden kappaleen, jonka viimeisellä rivillä on suhteellisen suuri syvyys siirretyn tekstilaatikon vuoksi (`\hbox`). Kappale ladotaan näillä asetuksilla:

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

Käytä seuraavan koodin alla olevaa linkkiä avataksesi Overleaf-projektin:

```latex
\documentclass{article}
% Käytä sopivan pientä sivukokoa
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Aseta joitakin tärkeitä parametreja
\setlength{\baselineskip}{12pt}
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% Syötetiedosto, joka määrittää \testpar
\input testpar.tex
\title{Esimerkkikappale lineskipille}
\begin{document}
\testpar % Overleaf-projektissa luotu makro
\end{document}
```

&#x20;[Avaa tämä esimerkki Overleafissa.](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Esimerkki \lineskip-liiman havainnollistamiseksi](/files/52b9d4faaf68ac6a9899c43a1dc66a6d87ece6b6)

Seuraava kuva käyttää merkityn version aiemmassa Overleaf-projektissa tuotetusta kappaleesta. Tässä zoomaamme viimeiseen kappaleriviin ja osoitamme `\lineskip` liiman (näytetty punaisella), jonka siirretyn tekstilaatikon syvyys aiheuttaa:

![Kuva, joka näyttää TeXin \lineskip-liiman](/files/549a26c3cc23f9c94245c34ca1d06f0f19066cab)

Kappaleen tekstin viimeisellä rivillä on tavallista suurempi syvyys, mikä estää TeXiä säilyttämästä arvon määräämää vakioista peruslinjasta peruslinjaan -etäisyyttä `\baselineskip` (12pt). Kuten kuvan oikean reunan nuolet osoittavat, TeX/LaTeX yrittävät varmistaa kiinteän etäisyyden (12pt) riviparien välillä—arvo `\baselineskip`. Kuitenkin viimeisen riviparin kohdalla TeX on erottanut ne yli 12pt:n verran ja käyttää arvoa `\lineskip` riviväli-liimana arvon sijasta, joka olisi laskettu käyttämällä `\baselineskip`.

Seuraavat osiot tutkivat ja selittävät TeXin riviväli-liima-arvojen laskennan yksityiskohtia.

### Miten kappalerivien välinen tila (liima) lasketaan

Nykyistä tarkoitusta varten *hyvin lyhyesti* mainitsemme TeXin sivunrakennusprosessin, tosin hyvin yksinkertaistetulla tavalla! Kun TeX on saanut kappaleen ladonnan valmiiksi, eli suorittanut tavutuksen ja määrittänyt rivinvaihdot, voit ajatella, että kappaleen tiedot on tallennettu tilapäiseen muistipaikkaan. TeXin on sitten siirrettävä nämä kappaletiedot rivi riviltä uuteen muistipaikkaan, joka tallentaa nykyiselle tulossivulle tarkoitetun materiaalin.

Kun TeX siirtää kappaletietoja rivi riviltä, se käytännössä rakentaa pystysuoraa rivipinoa (TeX-laatikoita), joka kasvaa *alaspäin* kohti sivun alareunaa. Kun TeX siirtää kappalerivejä nykyiselle sivulle, se yrittää varmistaa, että rivit ovat tasavälein siten, että niiden pystysuora väli (peruslinjasta peruslinjaan) on yhtä suuri kuin arvo `\baselineskip`. Kun uusi rivi siirretään nykyiselle sivulle, TeX-moottori tallentaa tilapäisesti kyseisen rivin *syvyyden* koska sitä käytetään laskemaan riviväli-liiman (tyhjän tilan) määrä kyseisen rivin ja sen jälkeen sijoitetun rivin välille.

#### Liiman koon laskenta

Aloitetaan tiivistämällä TeX-moottoreiden tarjoamat rivivälitoiminnot:

* peruslinjojen välisen etäisyyden pitäminen vakiona, etäisyyden ollessa yhtä suuri kuin `\baselineskip`;
* tarjota väliä kaikille riveille, joilla on suhteellisen suuri korkeus tai syvyys;
* kyky kytkeä riviväli-liiman lisääminen pois päältä—joko automaattisesti tai käyttäjän ohjauksella. Esimerkiksi:
  * TeX-moottorit poistavat automaattisesti riviväli-liiman lisäämisen pois käytöstä pystymoodissa olevan viivan jälkeen;
  * makrot `\offinterlineskip` ja `\nointerlineskip` antavat käyttäjille mahdollisuuden tilapäisesti kytkeä riviväli-liiman lisääminen pois—näillä makroilla on erilaiset vaikutukset, kuten alla näemme.

Päätös siitä, lisätäänkö riviväli-liimaa ja jos lisätään, kuinka paljon ja mitä tyyppiä, etenee näin:

* Pitäisikö riviväli-liimaa lisätä? TeX päättää tämän testaamalla, onko *viimeksi lisätyn rivin syvyys* listaan pienempi kuin erityinen arvo `–1000pt` (pistettä). Huomaa, että `–1000pt` on mielivaltainen “sentinel-arvo”, jota TeX-moottorit käyttävät sisäisesti.
  * **Huomaa**: TeXin sisäisesti tallentama arvo “viimeksi lisätyn rivin syvyys” tunnetaan myös nimellä “edellinen syvyys”. TeX-moottorit tarjoavat parametrikomennon `\prevdepth`—jota voidaan tietyissä olosuhteissa käyttää *saada* tai *set* “edellisen syvyyden” arvon `\nointerlineskip` hyödyntää `\prevdepth`.
* TeX testaa, onko `edellisen rivin syvyys suurempi kuin –1000pt`?
  * ***Kyllä on*** (liimaa on lisättävä):
    * laske arvo Δ, missä Δ = \baselineskip – (edellisen rivin syvyys) – (seuraavan rivin korkeus)
    * vertaa Δ:tä arvoon `\lineskiplimit`, parametri, jota käytetään määrittämään kahden rivin välinen vähimmäishyväksyttävä etäisyys, mitattuna ylemmän rivin alareunan ja alemman rivin yläreunan välisenä etäisyytenä.
    * Jos Δ < `\lineskiplimit`:
      * rivit ovat liian lähellä toisiaan, joten lisää vähimmäishyväksyttävä väli, joka on `\lineskip`
    * Jos Δ >= `\lineskiplimit`:
      * rivit eivät ole liian lähellä, joten käytä Δ:tä lisättävän liiman määränä
  * ***Ei ole*** (älä lisää liimaa):
    * Lisää seuraava rivi (laatikko) lisäämättä mitään liimaa

Seuraava kuva tiivistää riviväli-liiman prosessin:

![Miten TeX määrittää riviväli-liiman arvot](/files/c9713d9edb47112f59643442b87ffb6feb7d5918)

### Esimerkki riviväli-liiman laskennasta

Seuraavassa esimerkissä oletamme, että TeX/LaTeX käyttää seuraavia komentoarvoparametreja:

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

Tarkastelemme tämän kappaleen kahden ensimmäisen rivin riviväli-liiman laskentaa:

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

Seuraavassa kuvassa TeX-moottori on käsitellyt kappaleen ensimmäisen rivin ja siirtänyt sen rakentamaansa pystyluetteloon. Se pitää kirjaa kyseisen rivin syvyydestä (`d<sub>1</sub>`), joka on `2.1528` (pistettä):

![OLV2glue-calcs-step1.png](/files/598faf9469b07eef48d61301e552dcf474bced2a)

Seuraavaksi TeX on valmis lisäämään toisen rivin rakentamaansa luetteloon: kyseisellä rivillä on korkeus (`h<sub>2</sub>`), joka on `6.9444` (pistettä) ja lisäksi syvyys, `d<sub>2</sub>` kohteelle `0` (pistettä):

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

Tässä vaiheessa TeXin on laskettava tilan määrä (liima, `g<sub>1</sub>`), joka lisätään näiden kahden rivin väliin:

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

Seuraava kuva näyttää tämän riviparin liimalaskelmat:

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

Viimeinen kuva näyttää kaksi riviä siirrettynä nykyiselle sivulle siten, että niiden väliin on sijoitettu laskettu määrä riviväli-liimaa:

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

### Vielä yksi parametri: \prevdepth

Kuten edellä todettiin, kun TeX luo laatikoiden pystysuuntaista pinoa (luetteloa), se tallentaa viimeksi tähän luetteloon lisätyn laatikon syvyyden. Tämä tallennettu syvyysarvo tunnetaan nimellä “edellinen syvyys”, johon voidaan päästä käsiksi parametrikomennolla `\prevdepth`.

Se `\prevdepth` komentoa voidaan käyttää ***vain*** kun TeX on pystymoodissa; eli kappaleiden välissä tai pystylaatikoiden sisällä: `\vbox`, `\vtop` tai `\vcenter` (huomaa: `\vcenter` laatikoita voidaan käyttää vain matematiikkatilassa).

`\prevdepth` tarjoaa luku- ja kirjoitusoikeuden “edellisen syvyyden” arvoon:

* voidaksesi lukea nykyisen arvon `\prevdepth` voit kirjoittaa:

```latex
\the\prevdepth
```

* asettaaksesi nykyisen arvon `\prevdepth` kohteeseen `jokin arvo`, pituus pisteinä, mm:nä jne., voit kirjoittaa:

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

Jos yrität käyttää \verb`\prevdepth` olosuhteissa, joihin sitä ei ole suunniteltu, kuten kappaleen sisällä tai `\hbox` saat virheen

```latex
Virheellinen \prevdepth.
```

sekä lisätiedon, jonka mukaan sitä voidaan käyttää vain pystymoodissa.

#### Riviväli-liiman estäminen: \prevdepth ja \nointerlineskip

Yksi `\prevdepth` käyttötapa on *estää* TeXiä suorittamasta peruslinjalaskelmia, joita käytetään riviväli-liiman lisäämiseen pystyluettelon alkioiden, kuten kappaleen rivien, väliin. Käyttämällä `\prevdepth` esittämään `edellisen rivin syvyys` voimme ilmaista liimalaskelmat (yllä kuvattu) uudelleen seuraavasti:

```latex
jos(\prevdepth > –1000pt)
{
     Δ = \baselineskip — \prevdepth — (nykyisen rivin korkeus)

     jos(Δ < \lineskiplimit)
       riviväli-liima = \lineskip
     muuten
       riviväli-liima = Δ
}
muuten
{
     Pinoa laatikko lisäämättä
     mitään riviväli-liimaa
}
```

Sisäisesti TeX-moottorit tunnistavat niin sanotun “sentinel-arvon” `\prevdepth` jota voidaan käyttää riviväli-liiman laskennan ja lisäämisen poistamiseen käytöstä. Tämä santurisarvo on `–1000pt`, kuten yllä olevan pseudokoodin ensimmäisellä rivillä näkyy:

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

TeX ei lisää riviväli-liimaa, ellei `\prevdepth` ole suurempi kuin `–1000pt`—mikä tarjoaa mekanismin, jota `\nointerlineskip` makro käyttää estääkseen peruslinja-liiman lisäämisen pystyluettelon seuraavan laatikkoparin väliin.

`\nointerlineskip` on määritelmältään seuraavanlainen:

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

Huomaa, että `\nointerlineskip` tarjoaa *kertaluonteisen poiskytkennän* riviväli-liimalaskelmista, koska arvon `\prevdepth` arvoa päivitetään jatkuvasti, kun uusia laatikoita lisätään nykyiseen pystyluetteloon, kuten seuraavassa esimerkissä osoitetaan:

```latex
\noindent Seuraavat \verb|\hbox|-laatikot käsitellään, kun \TeX{} on niin sanotussa \textit{outer vertical mode} -tilassa. Käsittelyn (ladonnan) jälkeen nämä laatikot liitetään nykyiselle sivulle ja pinotaan pystysuunnassa siten, että niiden väliin lisätään riviväli-liima:

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

Nyt, heti laatikon \verb|\hbox{j}| jälkeen, asetamme \verb|\prevdepth| arvoksi \texttt{-1000pt}, mikä estää riviväli-liiman sijoittamisen laatikoiden \verb|\hbox{j}| ja \verb|\hbox{p}| väliin:

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

Huomaa, että riviväli-liima \textit{on} sijoitettu laatikoiden \verb|\hbox{p}| ja \verb|\hbox{g}| väliin, koska \verb|\prevdepth|-arvo päivitetään sen jälkeen, kun \verb|\hbox{p}| on käsitelty ja lisätty luetteloon: \verb|\prevdepth|-arvosta tulee laatikon \verb|\hbox{p}| syvyys. Kun \verb|\hbox{g}| lisätään pystyluetteloon, \verb|\prevdepth|-arvo ei enää ole \texttt{-1000pt}; näin ollen riviväli-liimaa voidaan nyt lisätä.
```

&#x20;[Avaa tämä esimerkki Overleafissa](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)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Esimerkki, joka havainnollistaa TeXin parametria \prevdepth](/files/7d0b6fa973e8ac637068b171f5d21c4cf3e66040)

#### Nollakokoinen riviväli-liima: \offinterlineskip

Kaikki riviväli voidaan poistaa makrokomennolla `\nointerlineskip`, რომლის määritelmä on seuraavanlainen:

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

Huomaa, että `\maxdimen` on `16383.99998pt`, suurin pituus, jota TeX voi käyttää.

Seuraava kuva näyttää riviväli-liiman ydinalaskelmat ja eri parametriarvot, joita makro `\nointerlineskip`:

![offinterlineskip](/files/06722321416b334ae9be9660bf3ed78ccb2eddf2)

Seuraava kuva näyttää pseudokoodikatkelman, joka saadaan korvaamalla `\nointerlineskip` makroarvot liimalaskelmiin. Se osoittaa, miten `\nointerlineskip` makro toimii asettamalla arvot `\baselineskip` ja `\lineskiplimit` niin, että riviväli-liima on aina `\lineskip` liimaa arvoltaan `0pt`.

![offinterlineskip](/files/6b6abcc3bdab14d482cb16a54f95b0900dd3f8f2)

#### \offinterlineskip ja ei-nolla \lineskip

Se `\nointerlineskip` makro asettaa `\lineskip` nollaksi, mutta kuten seuraava Overleaf-projekti osoittaa, voit yhdistää `\nointerlineskip` ei-nollan arvoihin `\lineskip` saadaksesi rivivälivaikutuksia.

```latex
\documentclass{article}
\title{Ei-nollaisen lineskipin havainnollistaminen}
% Valitse sopivan pieni sivukoko
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
\begin{document}

\offinterlineskip % Tämä asettaa \lineskipin arvoon 0pt

\setlength{\lineskip}{5pt} % Haluamme ei-nollaisen \lineskipin

\input text.tex % Luotu TeX-tiedosto, joka määrittää makrot
% \mytextA ja \mytextB, joista kumpikin latoo kappaleen

\mytextA % Lado kappale

% Nyt muuta \lineskip joustavaksi liima-arvoksi ja lado
% toinen kappale

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

\mytextA

\end{document}
```

&#x20;Avaa tämä esimerkki Overleaf LaTeX -projektina

Tämä esimerkki tuottaa seuraavan tuloksen:

![LaTeXin \offinterlineskip-makron havainnollistaminen](/files/9c727b93e5e3490c0ee1b3007e73ea4d012e7121)

Voit rajata `\offinterlineskip` ja `\lineskip` (ja muiden välikomentojen) käytön vaikutukset rajaamalla ne ryhmään:

```latex
\begingroup
\offinterlineskip
\setlength{\lineskip}{5pt}
...kappaleesi(t) tähän

\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/fi/muotoilu/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.
