<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% TekijĂ¤:   Teemu Likonen &lt;tlikonen@iki.fi&gt;
% Lisenssi: Creative Commons NimeĂ¤-JaaSamoin 4.0 KansainvĂ¤linen (CC BY-SA 4.0)
% https://creativecommons.org/licenses/by-sa/4.0/legalcode.fi

\chapter{MerkintĂ¤kieli ja perustekniikka}

Latex on merkintĂ¤kieli, mikĂ¤ tarkoittaa, ettĂ¤ se sisĂ¤ltĂ¤Ă¤ omat tapansa
dokumentin rakenteen ja sisĂ¤llĂśn kuvaamiseen. Kaikkea ei kirjoiteta
lĂ¤hdedokumenttiin sellaisenaan, vaan tĂ¤ytyy kĂ¤yttĂ¤Ă¤ tiettyjĂ¤ kielen
sĂ¤Ă¤ntĂśjen mukaisia merkintĂ¤tapoja tai komentoja.

TĂ¤ssĂ¤ luvussa kĂ¤sitellĂ¤Ă¤n merkintĂ¤kielen perusasioita, joita on tarpeen
ymmĂ¤rtĂ¤Ă¤ ennen kuin voi tehokkaasti toimia Latexin parissa. Kaikkea ei
tarvitse opetella ulkoa, mutta tĂ¤hĂ¤n lukuun on hyvĂ¤ palata vĂ¤lillĂ¤
kertaamaan perustekniikkaa.

\section{MerkistĂś}

Latex\-/lĂ¤hdetiedostoon voi kirjoittaa tekstiĂ¤ Unicode\-/ merkistĂśllĂ¤ ja
sen \textsc{utf}\=/8\-/ koodauksella, jos kĂ¤Ă¤ntĂ¤jĂ¤nĂ¤ on Unicoden osaava
ohjelma kuten Lualatex tai Xelatex. PĂ¤Ă¤asiassa siis merkit kirjoitetaan
sellaisenaan lĂ¤hdetiedostoon, mutta on kuitenkin monenlaisia
poikkeuksia, ja niitĂ¤ kĂ¤sitellĂ¤Ă¤n tĂ¤ssĂ¤ alaluvussa.

\subsection{Varatut erikoismerkit}

Muutamalla merkillĂ¤ on perus Latexissa erikoismerkitys, eikĂ¤ niitĂ¤ voi
kĂ¤yttĂ¤Ă¤ normaalilla tavalla. Merkit ovat seuraavat:

\begin{koodilohkosis}
% $ ^ _ # &amp; { } ~ \
\end{koodilohkosis}

\noindent
Useimmat nĂ¤istĂ¤ merkeistĂ¤ voi suojata erikoismerkitykseltĂ¤Ă¤n
kirjoittamalla niiden eteen kenoviivan (\koodi{\keno}). TildeĂ¤
(\textasciitilde), sirkumfleksia (\textasciicircum) eikĂ¤ kenoviivaa
itseĂ¤Ă¤n ei voi suojata pelkĂ¤n kenoviivan avulla, koska kenoviivan kanssa
ne muodostavat erĂ¤itĂ¤ muita komentoja. Taulukossa
\ref{tlk/merkkien-suojaus} on koottuna, kuinka edellĂ¤ mainitut
erikoismerkit suojataan eli saadaan ladottua dokumenttiin sellaisenaan.

\leijutlk{
  \begin{tabular}{cll}
    \toprule
    \ots{Merkki} &amp; \multicolumn{2}{l}{\ots{Kirjoittaminen}} \\
    \midrule
    \koodi{\%} &amp; \komento{\%} \\
    \koodi{\$} &amp; \komento{\$} &amp; \komento{textdollar} \\
    \koodi{\^{}} &amp; \komento{\^{}}\komentoarg{} &amp; \komento{textasciicircum} \\
    \koodi{\_} &amp; \komento{\_} &amp; \komento{textunderscore} \\
    \koodi{\#} &amp; \komento{\#} \\
    \koodi{\&amp;} &amp; \komento{\&amp;} \\
    \koodi{\{} &amp; \komento{\{} &amp; \komento{textbraceleft} \\
    \koodi{\}} &amp; \komento{\}} &amp; \komento{textbraceright} \\
    \koodi{\~{}} &amp; \komento{\~{}}\komentoarg{} &amp; \komento{textasciitilde} \\
    \koodi{\keno} &amp;&amp; \komento{textbackslash} \\
    \bottomrule
  \end{tabular}
}{
  \caption{Varattujen erikoismerkkien kirjoittaminen}
  \label{tlk/merkkien-suojaus}
}

Jotkin paketit mĂ¤Ă¤rittelevĂ¤t muitakin erikoismerkkejĂ¤. Esimerkiksi
kieliasetuksiin (luku \ref{luku/kieliasetukset}) liittyvĂ¤t
\paketti{polyglossia}\-/{} ja \paketti{babel}\-/paketit voivat
mĂ¤Ă¤ritellĂ¤ pari lainausmerkillĂ¤ (\koodi{\textquotedbl}) alkavaa,
tavutuksen hallintaan liittyvĂ¤Ă¤ komentoa tai erikoismerkkiĂ¤ (luvut
\ref{luku/tavutus-polyglossia} ja \ref{luku/tavutus-babel}).

\subsection{SanavĂ¤li}
\label{luku/sanavĂ¤li}

VĂ¤lilyĂśnti, sarkainmerkki ja yksi rivinvaihto ovat kaikki tavallisia
sanavĂ¤lejĂ¤ Latex\-/dokumentissa, ja nĂ¤illĂ¤ kolmella on sama merkitys.
Esimerkiksi rivin lopussa oleva rivinvaihto tarkoittaa samaa kuin
sanojen vĂ¤lissĂ¤ oleva vĂ¤lilyĂśnti. VĂ¤lilyĂśntejĂ¤ ja sarkainmerkkejĂ¤ voi
kirjoittaa useita perĂ¤kkĂ¤in, mutta ne ovat sama asia kuin yksi vĂ¤li.

\begin{koodilohkosis}
NĂ¤mĂ¤      kaikki
     ovat            vain
sanoja  perĂ¤kkĂ¤in  ja               kuuluvat
    samaan kappaleeseen.
\end{koodilohkosis}

\begin{tulossis}
  NĂ¤mĂ¤ kaikki ovat vain sanoja perĂ¤kkĂ¤in ja kuuluvat samaan
  kappaleeseen.
\end{tulossis}

\noindent
SanavĂ¤lien leveys ei ole vakio. Silloin kun tekstipalsta tasataan
molemmista reunoista -- kuten tĂ¤mĂ¤nkin oppaan leipĂ¤tekstissĂ¤ \==,
rivillĂ¤ olevia sanavĂ¤lejĂ¤ venytetĂ¤Ă¤n sopivasti, jotta tekstipalstan
molemmat reunat saadaan tasaiseksi.

SanavĂ¤lit eivĂ¤t kuitenkaan veny loputtomasti, ainakaan
oletusasetuksilla, koska kovin suuret sanavĂ¤lit olisivat
tekstikappaleessa rumia. Jos sanavĂ¤leille haluaa antaa
''hĂ¤tĂ¤tilanteissa'' lisĂ¤Ă¤ venymisvaraa, tĂ¤ytyy kĂ¤yttĂ¤Ă¤ mittaa
\mitta{emergencystretch}, jota kĂ¤sitellĂ¤Ă¤n tarkemmin tekstikappaleiden
yhteydessĂ¤ luvussa \ref{luku/kappale}. Mittoihin liittyvĂ¤Ă¤ tekniikkaa
kĂ¤sitellĂ¤Ă¤n puolestaan luvussa \ref{luku/mitat}.

Matalatasoinen sanavĂ¤lejĂ¤ ja niiden venymistĂ¤ sĂ¤Ă¤televĂ¤ mitta on
\mitta{spaceskip}, johon voi asettaa haluamansa leveyden ja mahdolliset
venymisen rajat. TĂ¤tĂ¤ mittaa ei ole suositeltavaa kĂ¤yttĂ¤Ă¤ tavallisen
tekstin kanssa, mutta se sopii tilanteisiin, joihin tarvitaan hyvin
poikkeukselliset sanavĂ¤lit.

\komentoi{setlength}
\mittai{spaceskip}
\begin{koodilohkosis}
\setlength{\spaceskip}{0.8em plus 0.3em minus 0.2em}
\end{koodilohkosis}

\noindent
MyĂśs kirjainperheelle voi asettaa oman sanavĂ¤likertoimensa fontin
asetusten \koodi{Word\-Space}\-/valitsimella. TĂ¤tĂ¤ asetusta kĂ¤sitellĂ¤Ă¤n
fonttien yhteydessĂ¤ luvussa \ref{luku/fontit-vĂ¤listys}.

\subsection{Rivinvaihto lĂ¤hdedokumentissa}
\label{luku/rivinvaihtomerkit}

LĂ¤hdedokumentissa olevat rivinvaihdot tulkitaan vain sanavĂ¤leiksi
eivĂ¤tkĂ¤ ne vaihda riviĂ¤ lopullisessa dokumentissa. Jos ladottuun
dokumenttiin tarvitaan rivinvaihto, kirjoitetaan lĂ¤hdedokumenttiin kaksi
kenoviivaa (\komento{\keno}). TĂ¤tĂ¤ komentoa kĂ¤sitellĂ¤Ă¤n tarkemmin
tekstikappaleiden yhteydessĂ¤ luvussa \ref{luku/rivinvaihtokomennot}.

On kuitenkin mahdollista saada myĂśs lĂ¤hdedokumentin rivinvaihdot
toteutumaan automaattisesti ladotussa tekstissĂ¤. Sellainen tila
kytketĂ¤Ă¤n pĂ¤Ă¤lle komennolla \komento{obeycr}; normaaliin tilaan
palataan taas komennolla \komento{restorecr}. NĂ¤istĂ¤ komennoista voi
olla hyĂśtyĂ¤ vĂ¤liaikaisesti ja erityistilanteissa, mutta pysyvĂ¤ksi koko
dokumentin tilaksi \komento{obeycr} ei yleensĂ¤ sovi.

\subsection{Kappaleen vaihtuminen}
\label{luku/kappaleen-vaihtuminen}

TyhjĂ¤ rivi lĂ¤hdetiedostossa tarkoittaa kappaleen vaihtumista. Rivi on
tyhjĂ¤ silloin, kun se ei sisĂ¤llĂ¤ mitĂ¤Ă¤n muuta kuin rivinvaihdon tai kun
se sisĂ¤ltĂ¤Ă¤ vain vĂ¤lilyĂśntejĂ¤ tai sarkainmerkkejĂ¤ ja lopuksi
rivinvaihdon. TyhjiĂ¤ rivejĂ¤ voi olla useita perĂ¤kkĂ¤in, mutta ne
tarkoittavat samaa kuin yksi tyhjĂ¤ rivi. Uuden tekstikappaleen voi
aloittaa myĂśs komennolla \komento{par}.

\begin{koodilohkosis}
NĂ¤mĂ¤ rivit kuuluvat
samaan kappaleeseen.

TĂ¤ssĂ¤ on toinen tekstikappale.
Nyt ei oteta kantaa siihen, miten
rivit ja kappaleet muotoillaan.
\end{koodilohkosis}

\noindent
Ladotuissa teksteissĂ¤ uuden tekstikappaleen alkaminen ilmaistaan usein
sisennetyllĂ¤ rivillĂ¤, mutta sisennyksiĂ¤ eikĂ¤ muitakaan muotoiluja ei
tehdĂ¤ tekstieditorissa vĂ¤lien avulla. Kappaleiden muotoiluun on omat
keinonsa, ja niistĂ¤ kĂ¤sitellĂ¤Ă¤n luvussa \ref{luku/kappale}.

\subsection{Kommentit ja muistiinpanot}

Latex\-/dokumentissa prosentin merkki (\koodi{\%}) on kommenttimerkki,
jonka jĂ¤lkeisen rivinosan kĂ¤Ă¤ntĂ¤jĂ¤ jĂ¤ttĂ¤Ă¤ huomioimatta. Merkki on
tarkoitettu kirjoittajan omien kommenttien ja muistiinpanojen
kirjoittamiseen.

\begin{koodilohkosis}
% Nyt ei tosin ole
% mitĂ¤Ă¤n kommentoitavaa.
\end{koodilohkosis}

\noindent
Kommenttimerkki vaikuttaa kĂ¤Ă¤ntĂ¤jĂ¤Ă¤n myĂśs siten, ettĂ¤ se syĂś kaikki
vĂ¤lilyĂśnnit ja sarkainmerkit, jotka tulevat kyseisen kommentin jĂ¤lkeen.
TĂ¤mĂ¤n vuoksi kommenttimerkin avulla voi yhdistĂ¤Ă¤ eri riveillĂ¤ olevan
tekstin. Seuraava esimerkki tuottaa ladottuna ehjĂ¤n sanan \emph{Latex}:

\begin{koodilohkosis}
La% NĂ¤mĂ¤ rivit
  t% yhdistyvĂ¤t.
    ex
\end{koodilohkosis}

\begin{tulossis}
  La% NĂ¤mĂ¤ rivit
    t% yhdistyvĂ¤t.
      ex
\end{tulossis}

\subsection{Aaltosulkeet}
\label{luku/aaltosulkeet}

Aaltosulkeet \mbox{\koodi{\{\}}} muodostavat erĂ¤Ă¤nlaisen nĂ¤kymĂ¤ttĂśmĂ¤n
ympĂ¤ristĂśn, jonka sisĂ¤llĂ¤ voi olla vĂ¤liaikaisesti voimassa erilaiset
asetukset kuin ulkopuolella. Aaltosulkeiden sisĂ¤llĂ¤ suoritetut komennot,
uusien komentojen mĂ¤Ă¤rittelyt (luku \ref{luku/komennot}) tai asetetut
mittojen arvot (luku \ref{luku/mitat}) ovat voimassa vain kyseisen
ympĂ¤ristĂśn sisĂ¤puolella. Seuraavassa esimerkissĂ¤ aaltosulkeilla rajataan
kursivointikomennon \komento{itshape} vaikutusaluetta.

\begin{koodilohkosis}
tavallinen {\itshape kursiivi} tavallinen
\end{koodilohkosis}

\begin{tulossis}
  tavallinen {\itshape kursiivi} tavallinen
\end{tulossis}

\subsection{Sitova vĂ¤lilyĂśnti}

Sitova vĂ¤lilyĂśnti on samanlainen tyhjĂ¤ merkki kuin tavallinenkin
vĂ¤lilyĂśnti, mutta rivinvaihtoa ei sallita sen kohdalta. Sitovalla
vĂ¤lilyĂśnnillĂ¤ kannattaa estĂ¤Ă¤ esimerkiksi pienistĂ¤ osista koostuvan
ilmauksen hajoaminen eri riveille (esimerkki: \emph{osa~5}). Latexissa
sitova vĂ¤lilyĂśnti saadaan joko tildemerkillĂ¤ (\koodi{\textasciitilde})
tai nimenomaan siihen tarkoitetulla merkillĂ¤, jonka Unicode\-/tunnus on
\uctunnus{u+00a0 no-break space}.

NĂ¤mĂ¤ kaksi eri merkkiĂ¤, tilde ja \uctunnus{u+00a0}, toimivat hieman eri
tavoin. Molemmat estĂ¤vĂ¤t rivinvaihdon, mutta tildemerkki sallii vĂ¤lin
venymisen samalla tavalla kuin tavallinenkin sanavĂ¤li sallii (luku
\ref{luku/sanavĂ¤li}). Sen sijaan merkki \uctunnus{u+00a0} on
vakiolevyinen eikĂ¤ siis veny muiden sanavĂ¤lien tavoin. MerkkiĂ¤
\uctunnus{u+00a0} tĂ¤ytyy kĂ¤yttĂ¤Ă¤ ainakin vuorosanaviivan (\==) ja sitĂ¤
seuraavan sanan vĂ¤lissĂ¤, koska se vĂ¤li ei saa venyĂ¤.

\subsection{Ohuke}
\label{luku/ohuke}

Ohuke on tavallista sanavĂ¤liĂ¤ kapeampi vĂ¤li, ja se tehdĂ¤Ă¤n
komennolla~\komento{,} (kenoviiva ja pilkku). Ohukkeen leveys Latexissa
on \murtoluku{1}{6} typografisen neliĂśn leveydestĂ¤ eli em-mitasta (luku
\ref{luku/mitat}). Ohuke on tasalevyinen ja sitova, eli se ei veny
muiden sanavĂ¤lien tavoin, ja se estĂ¤Ă¤ rivinvaihdon. Siksi ohuke sopii
esimerkiksi pitkien lukujen ja puhelinnumeroiden ryhmittelyyn paremmin
kun sanavĂ¤li.

\komentoi{,}
\begin{koodilohkosis}
12\,750\,000
J.\,R.\,R. Tolkien
\end{koodilohkosis}

\noindent
MyĂśs henkilĂśn etunimen alkukirjainten vĂ¤lissĂ¤ voi kĂ¤yttĂ¤Ă¤ ohuketta, jos
tavallinen sanavĂ¤li vie kirjaimet turhan kauas toisistaan. Sukunimi
erotetaan kuitenkin aina sanavĂ¤lillĂ¤. Joskus myĂśs pĂ¤ivĂ¤yksissĂ¤ kĂ¤ytetĂ¤Ă¤n
ohuketta jĂ¤rjestysluvun pisteiden jĂ¤lkeen. Taulukossa \ref{tlk/ohuke}
vertaillaan sanavĂ¤liĂ¤, ohuketta ja yhteen kirjoittamista.

\leijutlk{
  \komentoi{,}
  \begin{tabular}{lrll}
    \toprule
    &amp; \ots{Luku} &amp; \ots{PĂ¤ivĂ¤ys} &amp; \ots{Nimi} \\
    \midrule
    \otsrivi{SanavĂ¤li} &amp; 12 750 000 &amp; \sout{9. 5. 2020} &amp; J. R. R. Tolkien \\
    \otsrivi{Ohuke} &amp; 12\,750\,000 &amp; 9.\,5.\,2020 &amp; J.\,R.\,R. Tolkien \\
    \otsrivi{Yhteen} &amp; 12750000 &amp; 9.5.2020 &amp; \sout{J.R.R. Tolkien} \\
    \bottomrule
  \end{tabular}
}{
  \caption{SanavĂ¤lin, ohukkeen ja yhteen kirjoittamisen vertailu. Suomen
    kielen vastaiset kirjoitusasut on viivattu yli}
  \label{tlk/ohuke}
}

\subsection{Lainausmerkit ja heittomerkki}
\label{luku/lainausmerkit}

Suomalaisessa nĂ¤ppĂ¤inasettelussa \textsc{shift} eli vaihtonĂ¤ppĂ¤in ja 2
tuottaa yleislainausmerkin eli niin sanotun \textsc{ascii}\-/
lainausmerkin (\textquotedbl), mutta se ei taida olla minkĂ¤Ă¤n kielen
varsinainen lainausmerkki. On siis syytĂ¤ kĂ¤yttĂ¤Ă¤ oikeita
lainausmerkkejĂ¤, ja se kĂ¤y Latexissa varsin helposti.

Eri kielissĂ¤ lainausmerkkikĂ¤ytĂ¤nnĂśt ovat erilaiset. Suomen kielessĂ¤
kĂ¤ytetĂ¤Ă¤n ''tĂ¤llaisia'' lainausmerkkejĂ¤ ja joskus &gt;&gt;tĂ¤llaisia&gt;&gt;
kulmalainausmerkkejĂ¤. Jos lainauksen sisĂ¤Ă¤n tarvitaan lainaus, tĂ¤ytyy
sisempi lainaus kirjoittaa 'tĂ¤llaisten' puolilainausmerkkien avulla.
YksittĂ¤in kĂ¤ytettynĂ¤ se on nimeltĂ¤Ă¤n heittomerkki. Englannin kielessĂ¤
lainauksen alussa ja lopussa on erilainen merkki, ja ``tĂ¤ssĂ¤'' siitĂ¤
esimerkki. Samoin on puolilainausmerkin kohdalla: `nĂ¤in'.

Latexissa voi kĂ¤yttĂ¤Ă¤ Unicode\-/merkistĂśĂ¤ ja lĂ¤hdedokumenttiin voi
kirjoittaa suoraan ne lainausmerkit, jotka halutaan ladottavaksi, mutta
edellĂ¤ mainituille merkeille on myĂśs omat merkintĂ¤tapansa.
NĂ¤ppĂ¤imistĂśltĂ¤ kirjoitettava yleisheittomerkki (\koodi{'}) tuottaa
ladottuna automaattisesti oikean kaarevan heittomerkin ('). Kun
kirjoittaa kaksi heittomerkkiĂ¤ perĂ¤kkĂ¤in (\koodi{''}), on
lopputuloksena yksi kaareva lainausmerkki (''). Kahdella suurempi kuin
\=/merkillĂ¤ (\koodi{&gt;&gt;}) saadaan kulmalainausmerkki~(&gt;&gt;).

\begin{koodilohkosis}
''Lainaus, jonka 'sisĂ¤llĂ¤' on lainaus.'' \\
&gt;&gt;Lainaus, jonka 'sisĂ¤llĂ¤' on lainaus.&gt;&gt;
\end{koodilohkosis}

\begin{tulossis}
  ''Lainaus, jonka 'sisĂ¤llĂ¤' on lainaus.'' \\
  &gt;&gt;Lainaus, jonka 'sisĂ¤llĂ¤' on lainaus.&gt;&gt;
\end{tulossis}

\noindent
EdellĂ¤ mainitut riittĂ¤vĂ¤t suomen kieleen, mutta englantia ja muita
kieliĂ¤ varten tarvitaan myĂśs toisinpĂ¤in oleva merkki (``), joka tehdĂ¤Ă¤n
kahdella gravisaksentilla (\koodi{``}). Vastaava puolilainausmerkki (`)
tehdĂ¤Ă¤n yhdellĂ¤ aksentilla (\koodi{`}). Joissakin kielissĂ¤ kĂ¤ytetĂ¤Ă¤n
erilaisia kulmalainausmerkkejĂ¤ lainauksen alussa ja lopussa. Vasemmalle
osoittava merkki (&lt;&lt;) tehdĂ¤Ă¤n kahdella pienempi kuin \=/merkillĂ¤
(\koodi{&lt;&lt;}).

Joskus todella halutaan latoa yleislainausmerkki (\textquotedbl) tai
yleisheittomerkki (\textquotesingle). Ne saadaan komennoilla
\komento{textquotedbl} ja \komento{textquotesingle}. YksittĂ¤inen
gravisaksentti (\`{}) tehdĂ¤Ă¤n komennolla \komento{`}\komentoarg{}.
Lainausmerkkien merkintĂ¤tapoja ja komentoja on koottu taulukkoon
\ref{tlk/erikoismerkit-lainaus}
(s.~\pageref{tlk/erikoismerkit-lainaus}). Toisaalta kielikohtaiset
asetukset (luku \ref{luku/kieliasetukset}) voivat tuoda mukanaan myĂśs
kielikohtaisia keinoja lainausmerkkien kirjoittamiseen.

EdellĂ¤ kuvatut Latexin omat lainausmerkkien merkintĂ¤tavat (\koodi{''},
\koodi{&gt;&gt;} ym.) eli niin sanotut Tex\-/ligatuurit voi kytkeĂ¤ pĂ¤Ă¤lle ja
pois pĂ¤Ă¤ltĂ¤ fontin asetuksista eli \paketti{fontspec}\-/ pakettiin
kuuluvien toimintojen avulla. Fonteissa on yleensĂ¤ oletuksena pĂ¤Ă¤llĂ¤
Tex\-/ligatuurit eli asetus \koodi{Liga\-tures=\katk TeX}, mutta sen saa
poistettua asetuksella \koodi{Liga\-tures=\katk TeX\-Off}. Asetusta
muutetaan kirjainperheen mĂ¤Ă¤rittelyn yhteydessĂ¤ tai vĂ¤liaikaisesti
komennolla \komento{addfontfeatures}.

\komentoi{addfontfeatures}
\begin{koodilohkosis}
{\addfontfeatures{Ligatures=TeXOff} `` '' &gt;&gt; '}
\end{koodilohkosis}

\begin{tulossis}
  {\addfontfeatures{Ligatures=TeXOff} `` '' &gt;&gt; '}
\end{tulossis}

\noindent
TasalevyisessĂ¤ fontissa Tex\-/ligatuurit eivĂ¤t ole pĂ¤Ă¤llĂ¤ oletuksena,
joten yksittĂ¤isissĂ¤ sanoissa tai lyhyissĂ¤ ilmauksissa voi estĂ¤Ă¤
Tex\-/ligatuurit esimerkiksi komennolla \komento{texttt}. Samalla
tietysti fonttikin vaihtuu tasalevyiseksi. Fontteja kĂ¤sitellĂ¤Ă¤n
tarkemmin luvussa \ref{luku/kirjaintyypit}.

\komentoi{texttt}
\begin{koodilohkosis}
\texttt{`` '' &gt;&gt; '}
\end{koodilohkosis}

\begin{tulossis}
  \texttt{`` '' &gt;&gt; '}
\end{tulossis}

\noindent
Paketti \pakettictan{csquotes} sisĂ¤ltĂ¤Ă¤ lainausmerkkeihin liittyviĂ¤
komentoja ja kielikohtaista logiikkaa. Paketissa olevan
\komento{enquote}\-/ komennon avulla voi jĂ¤ttĂ¤Ă¤ paketin huoleksi, miten
aloittava ja lopettava lainausmerkki tai ulommat ja sisemmĂ¤t
lainausmerkit kirjoitetaan missĂ¤kin kielessĂ¤. Kielipaketti
\paketti{polyglossia} tai \paketti{babel} tĂ¤ytyy olla ladattuna.

\komentoi{usepackage}
\pakettii{polyglossia}
\pakettii{csquotes}
\komentoi{setdefaultlanguage}
\komentoi{enquote}
\begin{koodilohkosis}
\usepackage{polyglossia} \setdefaultlanguage{finnish}
\usepackage[autostyle=true]{csquotes}
% ...
\enquote{Lainauksen \enquote{sisĂ¤llĂ¤} lainaus.}
\end{koodilohkosis}

\begin{tulossis}
  \enquote{Lainauksen \enquote{sisĂ¤llĂ¤} lainaus.}
\end{tulossis}

\subsection{Yhdysmerkki, ajatusviiva ja miinusmerkki}
\label{luku/yhdys-ajatus-miinus}

Yhdyssanan osien vĂ¤lissĂ¤ kĂ¤ytettĂ¤vĂ¤ yhdysmerkki on Latexissa tavallinen
nĂ¤ppĂ¤imistĂśltĂ¤ saatava yleisyhdysmerkki (\=/). MerkillĂ¤ on vaikutusta
myĂśs sanan tavutukseen, josta on tarkempaa tietoa luvussa
\ref{luku/tavutus}.

Ajatusviivaa tarvitaan esimerkiksi Ă¤Ă¤rikohtien (27--29,
Oulu--Rova\-niemi), luetelmien, vuorosanojen ja virkkeen irrallisen
lisĂ¤ysten merkitseminen. Suomen kielessĂ¤ kĂ¤ytetĂ¤Ă¤n yleensĂ¤ vain lyhyttĂ¤
ajatusviivaa \mbox{(--)}, joka tehdĂ¤Ă¤n Latexissa kahdella perĂ¤kkĂ¤isellĂ¤
yhdysmerkillĂ¤ (\koodi{--}). PitkĂ¤ ajatusviiva \mbox{(---)} tehdĂ¤Ă¤n
kolmella yhdysmerkillĂ¤ (\koodi{---}). Ajatusviivat vaikuttavat sanan
tavutukseen samoin kuin yhdysmerkki.

\begin{koodilohkosis}
Oulu--Rovaniemi-yhteys
\end{koodilohkosis}

\begin{tulossis}
  Oulu--Rovaniemi-yhteys
\end{tulossis}

\noindent
MyĂśs Unicoden ajatusviivamerkit \uctunnus{u+2013 en dash} ja
\uctunnus{u+2014 em dash} toimivat, mutta tavutuksen kannalta ne ovat
kĂ¤yttĂ¤ytyneet eri tavoin Lualatex\-/\ ja Xelatex\-/ kĂ¤Ă¤ntĂ¤jillĂ¤.
YhteensopivuussyistĂ¤ on parasta tehdĂ¤ ajatusviivat Texin omilla
merkintĂ¤tavoilla eikĂ¤ Unicode\-/ merkeillĂ¤.

Silloin kun todella tĂ¤ytyy latoa kaksi tai kolme perĂ¤kkĂ¤istĂ¤
yhdysmerkkiĂ¤, voi kĂ¤yttĂ¤Ă¤ tasalevyistĂ¤ fonttia
(\komento{texttt}\komentoarg{--}), joka oletuksena kytkee pois Latexin
ajatusviivatoiminnon. Saman asetuksen saa kyllĂ¤ mihin tahansa fonttiin,
kun poistaa fontista niin sanotut Tex\-/ligatuurit asetuksella
\koodi{Liga\-tures=\katk TeX\-Off}. VĂ¤liaikaisesti asetus tehdĂ¤Ă¤n
seuraavasti:

\komentoi{addfontfeatures}
\begin{koodilohkosis}
{\addfontfeatures{Ligatures=TeXOff} -- ---}
\end{koodilohkosis}

\begin{tulossis}
  {\addfontfeatures{Ligatures=TeXOff} -- ---}
\end{tulossis}

\noindent
Miinusmerkille (â) ei Latexissa ole erityistĂ¤ merkintĂ¤tapaa muuten kuin
matematiikkatilassa (luku \ref{luku/matematiikka}). Tavallisessa
tekstitilassa lyhyttĂ¤ ajatusviivaa voi ja saa kĂ¤yttĂ¤Ă¤ myĂśs
miinusmerkkinĂ¤, mutta vielĂ¤ parempi olisi kĂ¤yttĂ¤Ă¤ varsinaista Unicoden
miinusmerkkiĂ¤ \uctunnus{u+2212 minus sign}, koska se on fonteissa
suunniteltu typografisesti yhteensopivaksi muiden matemaattisten
merkkien kanssa.

\subsection{Kolme pistettĂ¤ eli ellipsi}

Ajatuksen katkeamista ja muuta sellaista ilmaisevalle kolmelle pisteelle
eli ellipsille (\ldots) on oma merkkinsĂ¤, ja fontissa se saattaa nĂ¤yttĂ¤Ă¤
hieman erilaiselta kuin kolme perĂ¤kkĂ¤istĂ¤ pistemerkkiĂ¤. Tyypillisesti
ellipsimerkissĂ¤ pisteet ovat hieman harvemmassa ja erottuvat toisistaan
paremmin kuin kolmena erillisenĂ¤ merkkinĂ¤ ladotut pisteet. Ellipsi
tehdĂ¤Ă¤n Latexissa komennoilla \komento{dots}, \komento{ldots},
\komento{textellipsis} tai Unicode\-/merkillĂ¤ \uctunnus{u+2026
  horizontal ellipsis}.

\subsection{YlĂ¤- ja alaindeksi}
\label{luku/ylĂ¤-alaindeksit}

YlĂ¤indeksit (a\textsuperscript{2}) tehdĂ¤Ă¤n komennolla
\komento{textsuperscript} ja alaindeksit (a\textsubscript{2})
komennolla \komento{textsubscript}.

\komentoi{textsuperscript}
\komentoi{textsubscript}
\begin{koodilohkosis}
a\textsuperscript{2} a\textsubscript{2}
\end{koodilohkosis}

\noindent
Oletusasetuksilla Latex toteuttaa indeksit mekaanisesti pienentĂ¤mĂ¤llĂ¤
fonttia ja sijoittamalla pienennetyn tekstin alas peruslinjan tuntumaan
tai ylĂśs gemenalinjan ylĂ¤puolelle.\footnote{Katso typografinen viivasto
  eli kuva \ref{kuva/kirjainmitat} sivulla \pageref{kuva/kirjainmitat}.}
Lopputulos ei ole typografisesti vĂ¤lttĂ¤mĂ¤ttĂ¤ kovin hyvĂ¤, koska fontin
pienentĂ¤minen ohentaa samalla merkkien viivoja ja ohuimmat hiusviivat
voivat lĂ¤hes kadota.

\englanti{Open Type} \=/fontit sisĂ¤ltĂ¤vĂ¤t usein tuen oikeille ylĂ¤- ja
alaindekseille, jotka fontin suunnittelija on toteuttanut. NiitĂ¤
kannattaa kĂ¤yttĂ¤Ă¤, koska suunnittelija tuntee oman fonttinsa ja on
saanut todennĂ¤kĂśisesti parempaa jĂ¤lkeĂ¤ kuin Latex mekaanisesti.
\englanti{Open Type} \=/fonttien indeksit on kĂ¤tevintĂ¤ ottaa kĂ¤yttĂśĂśn
\pakettictan{realscripts}\-/ paketin avulla.

Paketti \paketti{realscripts} mĂ¤Ă¤rittelee uudelleen Latexin ylĂ¤- ja
alaindeksikomennot, niin ettĂ¤ ne ensisijaisesti pyrkivĂ¤t kĂ¤yttĂ¤mĂ¤Ă¤n
\englanti{Open Type} \=/fontin ominaisuutta. Jos kĂ¤ytĂśssĂ¤ oleva fontti
ei sisĂ¤llĂ¤ haluttujen merkkien ylĂ¤- tai alaindeksiĂ¤,
\paketti{realscripts}\-/ paketin komennot kĂ¤yttĂ¤vĂ¤t automaattisesti
Latexin mekaanista keinoa. Paketti mĂ¤Ă¤rittelee pari muutakin hyĂśdyllistĂ¤
komentoa, muun muassa tĂ¤hdelliset versiot edellĂ¤ mainituista:
\komento{textsuperscript*} ja \komento{textsubscript*}. NĂ¤mĂ¤ komennot
toteuttavat aina mekaanisen ylĂ¤- tai alaindeksin eli toimivat kuten
Latexin alkuperĂ¤iset komennot.

\leijutlk{
  \gemenanum
  \begin{tabular}{lll}
    \toprule
    \ots{Komento}
    &amp; \ots{\englanti{Open Type}}
    &amp; \ots{Mekaaninen} \\
    \midrule
    \komento{textsuperscript}
    &amp; \Large x\textsuperscript{ab36}
    &amp; \Large x\textsuperscript*{ab36} \\
    \midrule
    \komento{textsubscript}
    &amp; \Large H\textsubscript{2}SO\textsubscript{4}
    &amp; \Large H\textsubscript*{2}SO\textsubscript*{4} \\
    \bottomrule
  \end{tabular}
}{
  \caption{YlĂ¤- ja alaindeksien vertailua. Oikeat Open Type \=/fonttien
    indeksit saadaan \paketti{realscripts}\-/ paketin avulla. Mekaaninen
    toteutus perustuu fontin pienentĂ¤miseen}
  \label{tlk/indeksien-vertailu}
}

Taulukossa \ref{tlk/indeksien-vertailu} vertaillaan oikeita ja
mekaanisia ylĂ¤- ja alaindeksejĂ¤. Taulukon esimerkit paljastavat, ettĂ¤
lopputuloksessa on eroa. Mekaaninen ylĂ¤- ja alaindeksitoiminto jĂ¤ttĂ¤Ă¤
merkit turhan suurikokoisiksi mutta saattaa silti ohentaa merkkien
viivoja liian paljon. Se ei myĂśskĂ¤Ă¤n ymmĂ¤rrĂ¤ poistaa gemenanumeroita
(3624) kĂ¤ytĂśstĂ¤ vaan latoo ne sellaisenaan suunnilleen oikeaan paikkaan.

YlĂ¤- ja alaindeksejĂ¤ kĂ¤ytettĂ¤essĂ¤ on siis syytĂ¤ ladata
\paketti{realscripts}\-/ paketti ja kĂ¤yttĂ¤Ă¤ indeksit hallitsevaa
\englanti{Open Type} \=/fonttia. Fonttien ominaisuuksia voi tutkia
kĂ¤yttĂśjĂ¤rjestelmĂ¤n komentotulkissa komennolla \koodi{otfinfo}. Toisaalta
fonttiin sisĂ¤ltyviĂ¤ ylĂ¤- ja alaindeksejĂ¤ voi myĂśs kirjoittaa
Unicode\-/merkistĂśn avulla sellaisenaan. Lopputulos on sama.

\subsection{Tavutusvihje}

Komento \komento{-} on tavutusvihje, joka neuvoo rivejĂ¤ latovalle
algoritmille, ettĂ¤ sanan voi katkaista tĂ¤stĂ¤ kohdasta rivin lopussa.
Tavutusvihje ei normaalisti nĂ¤y ladotussa dokumentissa, mutta jos sana
katkaistaan sen kohdalta rivin lopussa, ladotaan yhdysmerkki~(-).
Tavutusvihjeen kĂ¤yttĂś voi estĂ¤Ă¤ sanan katkaisemisen muista kohdista.

\begin{koodilohkosis}
tavutus\-algo\-ritmi
\end{koodilohkosis}

\noindent
MyĂśs sanassa olevat yhdysmerkit ja ajatusviivat vaikuttavat sanan
tavuttamiseen. Perusteellisemmin tavutusta ja sen asetuksia kĂ¤sitellĂ¤Ă¤n
luvussa \ref{luku/tavutus}.

\subsection{Tarkkeet ja erikoismerkit}
\label{luku/tarkkeet}

Latexissa on useita komentoja tarkkeellisten kirjainten
(\'a\,\v{s}\,\c{c}\,\~o) kirjoittamiseen sekĂ¤ muille merkeille, joita ei
ehkĂ¤ ihan helposti saa suoraan nĂ¤ppĂ¤imistĂśltĂ¤. Komentoja on koottu
taulukoihin \ref{tlk/tarkkeet}, \ref{tlk/erikoismerkit-lainaus} ja
\ref{tlk/erikoismerkit-muut}. Taulukon tarkekomennoissa on kĂ¤ytetty
a\=/kirjainta esimerkkinĂ¤, mutta tarke voi liittyĂ¤ muihinkin kirjaimiin.
Merkit voi kirjoittaa Latex\-/lĂ¤hdedokumenttiin myĂśs sellaisenaan, eli
nĂ¤iden komentojen kĂ¤yttĂś ei ole vĂ¤lttĂ¤mĂ¤tĂśntĂ¤.

\leijutlk{
  \providecommand{\rivi}{}
  \renewcommand{\rivi}[4][]{#3 &amp; \komento{#2}\komentojatko{#1} &amp; #4}
  \begin{tabular}{*{2}{cll}}
    \toprule
    \multicolumn{2}{l}{\ots{Merkki}}
    &amp; \ots{Merkitys}
    &amp; \multicolumn{2}{l}{\ots{Merkki}}
    &amp; \ots{Merkitys} \\
    \cmidrule(r){1-3}
    \cmidrule(l){4-6}
    \rivi[a]{`}{\`a}{gravis}
    &amp; \rivi{O}{\O}{poikkiviiva-O} \\
    \rivi[a]{'}{\'a}{akuutti}
    &amp; \rivi{o}{\o}{poikkiviiva-o} \\
    \rivi[a]{\^{}}{\^a}{sirkumfleksi}
    &amp; \rivi{DJ}{\DJ}{poikkiviiva-D} \\
    \rivi[a]{\~{}}{\~a}{tilde}
    &amp; \rivi{dj}{\dj}{poikkiviiva-d} \\
    \rivi[a]{\textquotedbl}{\"a}{treema}
    &amp; \rivi{DH}{\DH}{versaali-eth} \\
    \rivi[ a]{H}{\H a}{kaksoisakuutti}
    &amp; \rivi{dh}{\dh}{gemena-eth} \\
    \rivi[ a]{r}{\r a}{ylĂ¤ympyrĂ¤}
    &amp; \rivi{NG}{\NG}{versaali-Ă¤ng} \\
    \rivi[ a]{v}{\v a}{hattu}
    &amp; \rivi{ng}{\ng}{gemena-Ă¤ng} \\
    \rivi[ a]{u}{\u a}{lyhyysmerkki}
    &amp; \rivi{SS}{\SS}{versaali kaksois-s} \\
    \rivi[a]{=}{\=a}{pituusmerkki}
    &amp; \rivi{ss}{\ss}{gemena kaksois-s} \\
    \rivi[ a]{b}{\b a}{alaviiva}
    &amp; \rivi{TH}{\TH}{versaali thorn} \\
    \rivi[ a]{c}{\c a}{sedilji}
    &amp; \rivi{th}{\th}{gemena thorn} \\
    \rivi[a]{.}{\.a}{ylĂ¤piste}
    &amp; \rivi{i}{\i}{pisteetĂśn i} \\
    \rivi[ a]{d}{\d a}{alapiste}
    &amp; \rivi{j}{\j}{pisteetĂśn j} \\
    \rivi[ a]{k}{\k a}{ogonek}
    &amp; \rivi{AE}{\AE}{AE-ligatuuri} \\
    % \rivi{t\{ae\}}{\t{ae}}{sidontakaari}
    &amp;&amp;&amp; \rivi{ae}{\ae}{ae-ligatuuri} \\
    \rivi{L}{\L}{poikkiviiva-L}
    &amp; \rivi{OE}{\OE}{OE-ligatuuri} \\
    \rivi{l}{\l}{poikkiviiva-l}
    &amp; \rivi{oe}{\oe}{oe-ligatuuri} \\
    \bottomrule
  \end{tabular}
}{
  \caption{Komentoja tarkkeellisten ja muiden kirjainten
    kirjoittamiseen}
  \label{tlk/tarkkeet}
}

\leijutlk{
  \providecommand{\rivi}{}
  \renewcommand{\rivi}[3]{ #1 &amp; \komento{#2} &amp; #3 \\}

  \begin{tabular}{cll}
    \toprule
    \multicolumn{2}{l}{\ots{Merkki ja komennot}}
    &amp; \ots{Merkitys} \\
    \midrule

    \textquotedblleft
    &amp; \komento{textquotedblleft}, \koodi{`{}`}
    &amp; vasen lainausmerkki \\

    \textquotedblright
    &amp; \komento{textquotedblright}, \koodi{'{}'}
    &amp; oikea lainausmerkki \\

    \rivi{\textquotedbl}{textquotedbl}{yleislainausmerkki}

    \textquoteleft
    &amp; \komento{textquoteleft}, \komento{lq}, \koodi{`}
    &amp; vasen puolilainausmerkki \\

    \textquoteright
    &amp; \komento{textquoteright}, \komento{rq}, \koodi{'}
    &amp; oikea puolilainausmerkki, heittomerkki \\

    \rivi{\textquotesingle}{textquotesingle}
    {yleispuolilainausmerkki ja -heittomerkki}

    \guillemotleft
    &amp; \komento{guillemotleft}, \koodi{&lt;{}&lt;}
    &amp; vasen kulmalainausmerkki \\

    \guillemotright
    &amp; \komento{guillemotright}, \koodi{&gt;{}&gt;}
    &amp; oikea kulmalainausmerkki \\

    \rivi{\guilsinglleft}{guilsinglleft}{vasen kulmapuolilainausmerkki}
    \rivi{\guilsinglright}{guilsinglright}
    {oikea kulmapuolilainausmerkki}
    \rivi{\quotedblbase}{quotedblbase}{rivinalinen lainausmerkki}
    \rivi{\quotesinglbase}{quotesinglbase}{rivinalinen puolilainausmerkki}

    \bottomrule
  \end{tabular}
}{
  \caption{Komentoja lainausmerkkien kirjoittamiseen}
  \label{tlk/erikoismerkit-lainaus}
}

\leijutlk{
  \providecommand{\rivi}{}
  \renewcommand{\rivi}[3]{ #1 &amp; \komento{#2} &amp; #3 \\}
  \providecommand{\textbigcirclekorvike}{}
  \renewcommand{\textbigcirclekorvike}{%
    \begin{tikzpicture}
      \draw (0,0) circle [radius=.65ex];
    \end{tikzpicture}}

  \begin{tabular}{cll}
    \toprule
    \multicolumn{2}{l}{\ots{Merkki ja komennot}}
    &amp; \ots{Merkitys} \\
    \midrule

    \textendash
    &amp; \komento{textendash}, \koodi{--}
    &amp; lyhyt ajatusviiva \\

    \textemdash
    &amp; \komento{textemdash}, \koodi{---}
    &amp; pitkĂ¤ ajatusviiva \\

    \textexclamdown
    &amp; \komento{textexclamdown}, \koodi{!`}
    &amp; ylĂśsalainen huutomerkki \\

    \textquestiondown
    &amp; \komento{textquestiondown}, \koodi{?`}
    &amp; ylĂśsalainen kysymysmerkki \\

    \rivi{\textgreater}{textgreater}{suurempi kuin -merkki}
    \rivi{\textless}{textless}{pienempi kuin -merkki}

    \textellipsis
    &amp; \komento{textellipsis}, \komento{ldots}, \komento{dots}
    &amp; kolme pistettĂ¤, ellipsi \\

    \rivi{\texteuro}{texteuro}{euron merkki}

    \textsterling
    &amp; \komento{textsterling}, \komento{pounds}
    &amp; punnan merkki \\

    \textdollar
    &amp; \komento{textdollar}, \komento{\$}
    &amp; dollarin merkki \\

    \textsection
    &amp; \komento{textsection}, \komento{S}
    &amp; pykĂ¤lĂ¤n merkki \\

    \textparagraph
    &amp; \komento{textparagraph}, \komento{P}
    &amp; kappaleen merkki \\

    \textcopyright
    &amp; \komento{textcopyright}, \komento{copyright}
    &amp; tekijĂ¤noikeusmerkki \\

    \rivi{\textregistered}{textregistered}{rekisterĂśity tavaramerkki}
    \rivi{\texttrademark}{texttrademark}{tavaramerkki}

    \textdagger
    &amp; \komento{textdagger}, \komento{dag}
    &amp; risti \\

    \textdaggerdbl
    &amp; \komento{textdaggerdbl}, \komento{ddag}
    &amp; kaksoisristi \\

    \textasciicircum
    &amp; \komento{textasciicircum}, \komento{\^{}}\komentoarg{}
    &amp; sirkumfleksi \\

    \textasciitilde
    &amp; \komento{textasciitilde}, \komento{\~{}}\komentoarg{}
    &amp; tilde \\

    \rivi{\textasteriskcentered}{textasteriskcentered}
    {rivinkeskinen asteriski, tĂ¤hti}
    \rivi{\textbackslash}{textbackslash}{kenoviiva}
    \rivi{\textbar}{textbar}{pystyviiva}
    \rivi{\textbardbl}{textbardbl}{kaksoispystyviiva}

    \textbraceleft
    &amp; \komento{textbraceleft}, \komento{\{}
    &amp; vasen aaltosulje \\

    \textbraceright
    &amp; \komento{textbraceright}, \komento{\}}
    &amp; oikea aaltosulje \\

    \rivi{\textbullet}{textbullet}{luetelmaympyrĂ¤}
    \rivi{\textbigcirclekorvike}{textbigcircle}{suuri ympyrĂ¤}
    \rivi{\textleftarrow}{textleftarrow}{nuoli vasemmalle}
    \rivi{\textrightarrow}{textrightarrow}{nuoli oikealle}
    \rivi{\textordfeminine}{textordfeminine}
    {feminiininen jĂ¤rjestysluvun merkki}
    \rivi{\textordmasculine}{textordmasculine}
    {maskuliininen jĂ¤rjestysluvun merkki}
    \rivi{\textperiodcentered}{textperiodcentered}{rivinkeskinen piste}

    \textunderscore
    &amp; \komento{textunderscore}, \komento{\_}
    &amp; alaviiva \\

    \rivi{\textvisiblespace}{textvisiblespace}{nĂ¤kyvĂ¤ vĂ¤lilyĂśnti}
    \bottomrule
  \end{tabular}
}{
  \caption{Komentoja erikoismerkkien kirjoittamiseen}
  \label{tlk/erikoismerkit-muut}
}

Tarke- ja erikoismerkkikomentojen lisĂ¤ksi on olemassa sekalaisia muita
komentoja erikoisempien asioiden latomiseen. \marginaali{\TeX}
\marginaali{\LaTeX} LadontajĂ¤rjestelmĂ¤n logojen kirjoittamiseen on
komennot \komento{TeX} ja \komento{LaTeX}. Suorakulmioita voi tehdĂ¤
\komento{rule}\-/ komennolla, jolle annetaan argumenteiksi ainakin kaksi
mittaa: leveys ja korkeus. MyĂśs yksi hakasulkeissa annettu valinnainen
argumentti on mahdollinen. Sekin on mitta ja ilmaisee, kuinka paljon
suorakulmiota nostetaan tekstin peruslinjasta. Negatiivinen mitta laskee
suorakulmiota alaspĂ¤in. Latexin mittoja ja mittayksikĂśitĂ¤ kĂ¤sitellĂ¤Ă¤n
luvussa \ref{luku/mitat}.

\komentoi{rule}
\begin{koodilohkosis}
\rule{1ex}{1ex} abc \rule{3em}{.5bp} abc \rule[1ex]{3em}{.5bp}
\end{koodilohkosis}

\begin{tulossis}
  \rule{1ex}{1ex} abc \rule{3em}{.5bp} abc \rule[1ex]{3em}{.5bp}
\end{tulossis}

\noindent
Komento \komento{strut} latoo nĂ¤kymĂ¤ttĂśmĂ¤n, leveydettĂśmĂ¤n merkin, jonka
korkeus on rivikorkeuden eli mitan \mitta{baselineskip} mukainen.
Komentoa voi tarvita joskus esimerkiksi laatikoiden sisĂ¤llĂ¤ (luku
\ref{luku/laatikot}).

KĂ¤ytĂ¤nnĂśssĂ¤ \komento{strut}\-/ komento hyĂśdyntĂ¤Ă¤ sisĂ¤isesti
\komento{rule}\-/ komentoa ja latoo sen avulla leveydettĂśmĂ¤n
suorakulmion. Tarkemmin sanottuna korkeus eli tekstin peruslinjan
ylĂ¤puolinen osa on 0,7 kertaa \mitta{baselineskip}\-/ mitta ja syvyys
eli peruslinjan alapuolinen osa on 0,3 kertaa \mitta{baselineskip}.

\komentoi{rule}
\mittai{baselineskip}
\begin{koodilohkosis}
\rule[-0.3\baselineskip]{0bp}{\baselineskip}
\end{koodilohkosis}

\section{Komennot}
\label{luku/komennot}

Latexin komennot alkavat kenoviivalla (\koodi{\textbackslash}), jonka
jĂ¤lkeen tulee komennon nimi. Nimi koostuu yleensĂ¤ pienistĂ¤ tai isoista
kirjaimista, mutta komento voi koostua myĂśs muista merkeistĂ¤.

Komennot voivat ottaa vastaan argumentteja eli lisĂ¤tietoa, jota komento
kĂ¤sittelee ja tarvitsee toimintaansa. Jotkin argumentit voivat olla
pakollisia ja jotkin valinnaisia. Pakolliset kirjoitetaan
aaltosulkeisiin \koodi{\{}\ldots\koodi{\}} ja valinnaiset hakasulkeisiin
\koodi{[}\ldots\koodi{]}.

\begin{koodilohkosis}
\komento
\komento{argu}{mentteja}
\komento[valinnainen]{argu}{mentteja}
\end{koodilohkosis}

\noindent
Jos pakolliseen argumenttiin haluaa sisĂ¤llyttĂ¤Ă¤ aaltosulkeen, tĂ¤ytyy sen
eteen kirjoittaa kenoviiva \komento{\{}~\komento{\}}, tai voi myĂśs
kĂ¤yttĂ¤Ă¤ taulukossa \ref{tlk/erikoismerkit-muut} mainittuja komentoja
aaltosulkeiden tuottamiseen. Sama pĂ¤tee aaltosulkeiden latomiseen
muutenkin.

Hakasulkeet sen sijaan ladotaan tekstiin normaalisti, eikĂ¤ niiden kanssa
kĂ¤ytetĂ¤ kenoviivaa. Poikkeustilanne on komennon valinnaisen argumentin
sisĂ¤llĂ¤, koska valinnainen argumentti jo sinĂ¤nsĂ¤ kirjoitetaan
hakasulkeiden sisĂ¤Ă¤n. Hakasulkeita ei voi suojata kenoviivalla, koska
\komento{[} ja \komento{]} ovat jo muuhun tarkoitettuja komentoja:
niillĂ¤ luodaan matematiikkatilassa (luku \ref{luku/matematiikka}) oleva
tekstilohko. Valinnaisen argumentin sisĂ¤Ă¤n saa hakasulkeen, kun sen
kirjoittaa aaltosulkeiden sisĂ¤Ă¤n. Esimerkiksi komennon
\komentox{komento}\komentoargv{\{]\}} valinnaiseksi argumentiksi tulee
lopulta yksi \koodi{]}-merkki.

Komennon yhteydessĂ¤ sanavĂ¤lejĂ¤ kĂ¤sitellĂ¤Ă¤n hieman poikkeuksellisesti.
Esimerkiksi komennon nimen perĂ¤ssĂ¤ olevat sanavĂ¤lit syĂśdĂ¤Ă¤n pois, jos
komennolle ei anneta yhtĂ¤Ă¤n argumenttia. Seuraavassa esimerkissĂ¤ sana
\emph{Latex} ladotaan ehjĂ¤nĂ¤, jos vain \komentox{komento} itsessĂ¤Ă¤n ei
kirjoita mitĂ¤Ă¤n eikĂ¤ vaikuta tekstin latomiseen.

\begin{koodilohkosis}
La\komento   tex
\end{koodilohkosis}

\begin{tulossis}
  Latex
\end{tulossis}

\noindent
Jos tĂ¤ytyy saada komennon nimen jĂ¤lkeinen sanavĂ¤li nĂ¤kyviin, tĂ¤ytyy
kirjoittaa komennon nimen perĂ¤Ă¤n aaltosulkeet
(\komentox{komento}\komentoarg{}) tai kenoviiva
(\komentox{komento}\komentojatko{\keno}).

Komennon nimen ja argumenttien vĂ¤lissĂ¤ voi olla sanavĂ¤lejĂ¤, ja ne kaikki
syĂśdĂ¤Ă¤n pois. Komennon ja sen argumentit voi siis kirjoittaa vaikka
seuraavalla tavalla:

\begin{koodilohkosis}
\komento  [valinnainen]
   {argu-}   {mentteja}
\end{koodilohkosis}

\subsection{Omat komennot ja abstrahointi}
\label{luku/komennot-abst}

Omien komentojen tĂ¤rkein tarkoitus on merkintĂ¤tapojen abstrahointi eli
teknisen toteutuksen ja yksityiskohtien piilottaminen. Sopiva
abstrahointi helpottaa lĂ¤hdedokumentin kĂ¤sittelemistĂ¤.

Esimerkiksi jos kirjoittaa Latexia kĂ¤sittelevĂ¤Ă¤ kirjaa, kannattaa heti
aluksi luoda komento, jolla merkitĂ¤Ă¤n kaikki Latexin komennot. Komennon
nimi voisi olla vaikka \komentox{komento}, ja sen voisi mĂ¤Ă¤ritellĂ¤
siten, ettĂ¤ se lisĂ¤Ă¤ automaattisesti komennon nimen alkuun kenoviivan
(\koodi{\keno}) ja latoo koko ilmauksen tasalevyisellĂ¤ fontilla.
Seuraavassa on esimerkki tĂ¤llaisen komennon mĂ¤Ă¤rittelemisestĂ¤ ja
kĂ¤ytĂśstĂ¤:

\komentoi{newcommand}
\komentoi{texttt}
\komentoi{textbackslash}
\begin{koodilohkosis}
\newcommand{\komento}[1]{\texttt{\textbackslash #1}}

Komennolla \komento{section} tehdĂ¤Ă¤n otsikoita.
\end{koodilohkosis}

\begin{tulossis}
  Komennolla \texttt{\textbackslash section} tehdĂ¤Ă¤n otsikoita.
\end{tulossis}

\noindent
EdellĂ¤ mainitun komennon mĂ¤Ă¤ritelmĂ¤Ă¤n voi olla tarpeen lisĂ¤tĂ¤ myĂśhemmin
muitakin asioita. Latexin komentojen nimet ovat suunnilleen englantia,
ja jos nimen tavuttaa, tĂ¤ytyisi se tehdĂ¤ englannin sĂ¤Ă¤ntĂśjen mukaisesti.
EsimerkkinĂ¤ olleen \komentox{komento}\-/ komennon mĂ¤Ă¤ritelmĂ¤ssĂ¤ voisi
siis vaihtaa myĂśs kielen komennolla \komento{textenglish}.%
\footnote{Kieliasetuksista kĂ¤sitellĂ¤Ă¤n luvussa
  \ref{luku/kieliasetukset}.}

Jos ollaan kirjoittamassa laajaa tietoteosta, Latex\-/ komennot halutaan
ehkĂ¤ lisĂ¤tĂ¤ automaattisesti kirjan lopussa olevaan asiahakemistoon (ks.
s.~\pageref{luku/asiahakemisto}). NiinpĂ¤ komennon mĂ¤Ă¤ritelmĂ¤Ă¤n lisĂ¤tĂ¤Ă¤n
vielĂ¤ sitĂ¤kin varten komento \komento{index}.%
\footnote{Asiahakemistoja kĂ¤sitellĂ¤Ă¤n luvussa \ref{luku/asiasanat}.}
Lopulta Latex\-/ komentojen merkitsemiseen tarkoitettu
\komentox{komento} mĂ¤Ă¤riteltĂ¤isiin seuraavalla tavalla:

\komentoi{newcommand}
\komentoi{textbackslash}
\komentoi{texttt}
\komentoi{textenglish}
\komentoi{index}
\begin{koodilohkosis}
\newcommand{\komento}[1]{%
  \texttt{\textbackslash\textenglish{#1}}%
  \index[komennot]{#1@\texttt{\textbackslash #1}}}
\end{koodilohkosis}

% Asiahakemistot-luvussa on viittaus tĂ¤hĂ¤n lukuun ja maininta
% \index-komennon sisĂ¤llyttĂ¤misestĂ¤ toisen komennon mĂ¤Ă¤ritelmĂ¤Ă¤n.

\noindent
NĂ¤in oma \komentox{komento} ilmaisee tiiviisti ja havainnollisesti
tarkoituksen eli sen, ettĂ¤ kyseessĂ¤ on Latex\-/ komento. Se piilottaa
monimutkaisen teknisen toteutuksen eli fontin ja kielen vaihtamiseen
sekĂ¤ asiahakemistoon liittyvĂ¤t toiminnot. LisĂ¤ksi komennon teknistĂ¤
toteutusta on helppoa muuttaa myĂśhemmin, koska komennon mĂ¤Ă¤rittely on
vain yhdessĂ¤ paikassa lĂ¤hdedokumentin alussa.

\subsection{Komentojen mĂ¤Ă¤rittely}
\label{luku/komennot-mĂ¤Ă¤rittely}

Komentojen mĂ¤Ă¤rittelyyn on kolme erilaista komentoa, ja niille kaikille
annetaan samanlaiset argumentit. Komennot ovat seuraavat:

\komentoi{newcommand}
\komentoi{renewcommand}
\komentoi{providecommand}
\begin{koodilohkosis}
\newcommand     {\nimi}[n][oletus]{mĂ¤Ă¤ritelmĂ¤}
\renewcommand   {\nimi}[n][oletus]{mĂ¤Ă¤ritelmĂ¤}
\providecommand {\nimi}[n][oletus]{mĂ¤Ă¤ritelmĂ¤}
\end{koodilohkosis}

\noindent
EnsimmĂ¤inen pakollinen argumentti on komennon nimi (\komentox{nimi}), ja
se voi koostua vain kirjaimista. Komento \komento{newcommand}
mĂ¤Ă¤rittelee uuden komennon. MikĂ¤li komento on jo olemassa, annetaan
virheilmoitus. Toinen komento \komento{renewcommand} mĂ¤Ă¤rittelee
olemassa olevan komennon uudelleen. Se antaa virheilmoituksen, jos
komentoa ei ollut olemassa. Kolmas komento \komento{providecommand}
puolestaan mĂ¤Ă¤rittelee uuden komennon vain siinĂ¤ tapauksessa, ettĂ¤
sellaista ei ollut ennen olemassa. Se ei anna virheilmoitusta.

Komentojen toinen pakollinen argumentti \koodi{mĂ¤Ă¤ritelmĂ¤} sisĂ¤ltĂ¤Ă¤
komennon mĂ¤Ă¤ritelmĂ¤n eli mitĂ¤ tahansa tekstiĂ¤ tai komentoja.
Suoritusvaiheessa komento ikĂ¤Ă¤n kuin vaihdetaan sen mĂ¤Ă¤ritelmĂ¤ksi.

\komentoi{newcommand}
\begin{koodilohkosis}
\newcommand{\komento}{Minua komennettiin!}
\komento
\end{koodilohkosis}

\begin{tulossis}
  Minua komennettiin!
\end{tulossis}

\noindent
Komentojen ensimmĂ¤inen valinnainen argumentti \koodi{n} on luku, joka
kertoo, kuinka monta argumenttia mĂ¤Ă¤riteltĂ¤vĂ¤ komento kĂ¤sittelee.
MĂ¤Ă¤ritelmĂ¤ssĂ¤ voi kĂ¤yttĂ¤Ă¤ parametreja \koodi{\#1}, \koodi{\#2},
\koodi{\#3} jne., ja ne korvautuvat komennon suoritusvaiheessa
ensimmĂ¤isellĂ¤, toisella, kolmannella jne. argumentilla.

\komentoi{newcommand}
\begin{koodilohkosis}
\newcommand{\komento}[2]{Sanoit #1 ja #2!}
\komento{hip}{hei}
\end{koodilohkosis}

\begin{tulossis}
  Sanoit hip ja hei!
\end{tulossis}

\noindent
Toinen valinnainen argumentti \koodi{oletus} -- jos se on mukana --
kertoo, ettĂ¤ mĂ¤Ă¤riteltĂ¤vĂ¤n komennon ensimmĂ¤inen argumentti on
valinnainen ja ettĂ¤ tĂ¤mĂ¤ on sen oletusarvo. Oletusarvoa kĂ¤ytetĂ¤Ă¤n
silloin, kun valinnaista argumenttia ei ole annettu.

\komentoi{newcommand}
\begin{koodilohkosis}
\newcommand{\komento}[3][tyyppi]{Hei #1, sanoit #2 ja #3!}
\komento{hip}{hei} \\
\komento[Leslie]{hip}{hei}
\end{koodilohkosis}

\begin{tulossis}
  Hei tyyppi, sanoit hip ja hei! \\
  Hei Leslie, sanoit hip ja hei!
\end{tulossis}

\noindent
Joskus yhden komennon mĂ¤Ă¤ritelmĂ¤ sisĂ¤ltĂ¤Ă¤ komennon
\komento{renewcommand}, joka sitten mĂ¤Ă¤rittelee uudelleen jonkin toisen
komennon. Silloin parametrit \koodi{\#1}, \koodi{\#2} jne. on
tarkoitettu ensimmĂ¤isen eli uloimman kerroksen kĂ¤siteltĂ¤vĂ¤ksi. Sisempi
kerros kĂ¤yttĂ¤Ă¤ parametreja \koodi{\#\#1}, \koodi{\#\#2} jne.

Kaikista kolmesta komentojen mĂ¤Ă¤rittelykomennosta on olemassa
tĂ¤hdellinen versio eli sellainen, jonka komennon nimen lopussa on tĂ¤hti
(\koodi{*}). Latexin komennoissa on tapana, ettĂ¤ tĂ¤hdellinen versio --
jos sellainen on olemassa -- tarjoaa samaan asiaan jonkin toisenlaisen
nĂ¤kĂśkulman.

\komentoi{newcommand*}
\komentoi{renewcommand*}
\komentoi{providecommand*}
\begin{koodilohkosis}
\newcommand*     {\nimi}[n][oletus]{mĂ¤Ă¤ritelmĂ¤}
\renewcommand*   {\nimi}[n][oletus]{mĂ¤Ă¤ritelmĂ¤}
\providecommand* {\nimi}[n][oletus]{mĂ¤Ă¤ritelmĂ¤}
\end{koodilohkosis}

\noindent
Komentojen mĂ¤Ă¤rittelyssĂ¤ tĂ¤hdelliset versiot toimivat muuten samalla
tavalla, mutta ne antavat virheilmoituksen, jos komennolle annetut
argumentit sisĂ¤ltĂ¤vĂ¤t enemmĂ¤n kuin yhden tekstikappaleen. NiinpĂ¤
esimerkin \ref{esim/newcommand} koodi tuottaa kĂ¤Ă¤nnettĂ¤essĂ¤ virheen.

\begin{esimerkki*}
  \komentoi{newcommand*}
\begin{koodilohko}
\newcommand*{\komento}[1]{Teksti: #1}

\komento{
  EnsimmĂ¤inen tekstikappale.

  Toinen tekstikappale.
}
\end{koodilohko}
  \caption{\komento{newcommand*}\-/ komennolla mĂ¤Ă¤ritelty komento ei
    salli argumentteja, joissa on useita tekstikappaleita. TĂ¤mĂ¤
    esimerkki tuottaa kĂ¤Ă¤nnettĂ¤essĂ¤ virheilmoituksen}
  \label{esim/newcommand}
\end{esimerkki*}

\komento{newcommand*}\-/komennolla mĂ¤Ă¤ritelty \komentox{komento} ei siis
suostu ottamaan vastaan argumentteja, jotka sisĂ¤ltĂ¤vĂ¤t kappaleen
vaihtumisen eli enemmĂ¤n kuin yhden tekstikappaleen. TĂ¤mĂ¤ voi olla
hyĂśdyllinen suojausominaisuus.

\subsection{KestĂ¤vĂ¤t ja hauraat komennot}
\label{luku/komennot-hauraat}

Kaikki Latex\-/ komennot ovat joko kestĂ¤viĂ¤ (\englanti{robust}) tai
hauraita (\englanti{fragile}). TĂ¤llĂ¤ ei ole yleensĂ¤ kĂ¤ytĂ¤nnĂśn
merkitystĂ¤, mutta hauraat komennot eivĂ¤t vĂ¤lttĂ¤mĂ¤ttĂ¤ toimi toisen
komennon argumentissa.

Hauraita komentoja ovat sellaiset, jotka sisĂ¤ltĂ¤vĂ¤t tietoa, jota Latex
kirjoittaa vĂ¤liaikaistiedostoon ja lukee sieltĂ¤ takaisin. Kyse on
esimerkiksi sisĂ¤llysluetteloon tai muihin automaattisiin luetteloihin
kirjoitettavasta tiedosta. Hauraita ovat myĂśs rivinvaihdot ja
valinnaisia argumentteja eli hakasulkeissa annettavia argumentteja
sisĂ¤ltĂ¤vĂ¤t komennot.

KĂ¤ytĂ¤nnĂśssĂ¤ ongelmia aiheuttavat esimerkiksi otsikkokomennot
(\komento{section} ym.) sekĂ¤ kuvatekstikomento \komento{caption}. NĂ¤iden
argumenttina oleva teksti (ja mahdolliset komennot) kirjoitetaan
tiedostoon ja ladataan sieltĂ¤ myĂśhemmin takaisin. Hauraat komennot eivĂ¤t
toimi edellĂ¤ mainittujen komentojen argumentissa, ja lĂ¤hdetiedoston
kĂ¤Ă¤ntĂ¤minen johtaa virheilmoitukseen. Ongelman voi ainakin joskus
korjata kirjoittamalla hauraan komennon eteen komennon
\komento{protect}.

\subsection{Muita vinkkejĂ¤}

Komennon viimeistĂ¤ argumenttia ei vĂ¤lttĂ¤mĂ¤ttĂ¤ tarvitse kirjoittaa
aaltosulkeisiin, jos argumentiksi halutaan vain yksi merkki. TĂ¤llaisessa
tilanteessa komento poimii argumentiksi seuraavan merkin, joka ei ole
sanavĂ¤li.

\komentoi{newcommand}
\begin{koodilohkosis}
\newcommand{\x}[1]{Argumentti: &lt;#1&gt;}
\x abc \\
\x.abc
\end{koodilohkosis}

\begin{tulossis}
  Argumentti: &lt;a&gt;bc \\
  Argumentti: &lt;.&gt;abc
\end{tulossis}

\noindent
MikĂ¤li argumenttina on kenoviivalla alkava komento, sitĂ¤kĂ¤Ă¤n ei tarvitse
kirjoittaa aaltosulkeisiin. Latex\-/koodin lukemisen kannalta tĂ¤llainen
ei vĂ¤lttĂ¤mĂ¤ttĂ¤ ole hyvĂ¤ kĂ¤ytĂ¤ntĂś, koska joskus voi hĂ¤mĂ¤rtyĂ¤, onko kyse
kahdesta perĂ¤kkĂ¤isestĂ¤ komennosta vai onko toinen komento vain
argumenttina toiselle.

\komentoi{newcommand}
\begin{koodilohkosis}
\newcommand{\x}[1]{Argumentti: &lt;#1&gt;}
\newcommand{\yyy}{abc}
\x\yyy
\end{koodilohkosis}

\begin{tulossis}
  Argumentti: &lt;abc&gt;
\end{tulossis}

\noindent
TĂ¤tĂ¤ merkintĂ¤tapaa esiintyy jokin verran komentojen mĂ¤Ă¤rittelyssĂ¤, niin
ettĂ¤ jĂ¤tetĂ¤Ă¤n \komento{newcommand}\-/komennon ensimmĂ¤isenĂ¤ argumenttina
oleva komennon nimi ilman aaltosulkeita.

\komentoi{newcommand}
\begin{koodilohkosis}
\newcommand\yyy{abc}
\end{koodilohkosis}

\noindent
Komennon mĂ¤Ă¤rittelyssĂ¤ on vĂ¤lillĂ¤ hyĂśtyĂ¤ \komento{ignorespaces}\-/
komennosta, joka jĂ¤ttĂ¤Ă¤ sanavĂ¤lit huomioimatta komennon jĂ¤lkeen. Ilman
tĂ¤tĂ¤ komentoa tulisi seuraavassa esimerkissĂ¤ sanojen vĂ¤liin yksi
vĂ¤lilyĂśnti.

\komentoi{newcommand}
\komentoi{ignorespaces}
\begin{koodilohkosis}
\newcommand{\komento}[1]{#1\ignorespaces}
\komento{yhdys}       sana
\end{koodilohkosis}

\begin{tulossis}
  yhdyssana
\end{tulossis}

\begin{esimerkki*}
  \komentoi{newcommand}
  \komentoi{renewcommand}
\begin{koodilohko}
\newcommand{\komento}{alkuperĂ¤inen}
\komento
{%
  \renewcommand{\komento}{\textit{muutettu}}
  \komento
}
\komento
\end{koodilohko}
\begin{tulos}
  alkuperĂ¤inen \textit{muutettu} alkuperĂ¤inen
\end{tulos}
\caption{Aaltosulkeilla voi rajata komennon mĂ¤Ă¤rittelyn
  vaikutusaluetta}
\label{esim/aaltosulkeet-rajaaminen}
\end{esimerkki*}

\noindent
Aaltosulkeilla (luku \ref{luku/aaltosulkeet}) voi rajata
komentomĂ¤Ă¤rittelyn vaikutusaluetta. Esimerkin
\ref{esim/aaltosulkeet-rajaaminen} alussa asetetaan \komentox{komento}
tiettyyn alkuperĂ¤ismĂ¤Ă¤ritelmĂ¤Ă¤n. Aaltosulkeiden sisĂ¤llĂ¤ se mĂ¤Ă¤ritellĂ¤Ă¤n
vĂ¤liaikaisesti uudestaan. Aaltosulkeilla rajatun ympĂ¤ristĂśn jĂ¤lkeen
komennon uusi mĂ¤Ă¤ritelmĂ¤ lakkaa ja komento palautuu alkuperĂ¤iseksi.

Monimutkaisiin komentoihin voidaan tarvita ehtorakenteita. Ne saa
toteutettua \pakettictan{ifthen}\-/ paketin tarjoaman
\komento{ifthenelse}\-/ komennon avulla. Se on ohjelmointikielistĂ¤
tuttu ehtorakenne: jos annettu ehtolauseke on tosi, kĂ¤sitellĂ¤Ă¤n
then\-/haara; muussa tapauksessa kĂ¤sitellĂ¤Ă¤n else-haara.

\section{YmpĂ¤ristĂśt}
\label{luku/ympĂ¤ristĂśt}

YmpĂ¤ristĂśt ovat rakenteita, joilla on aloittava \komento{begin}\-/
komento ja lopettava \komento{end}\-/ komento sekĂ¤ nimi. YmpĂ¤ristĂśjen
ajatuksena on, ettĂ¤ jokin ominaisuus tai jotkin toiminnot ovat voimassa
vain ympĂ¤ristĂśn sisĂ¤llĂ¤ ja asiat palautuvat ennalleen ympĂ¤ristĂśn
jĂ¤lkeen. TĂ¤ssĂ¤ mielessĂ¤ ne toimivat samalla tavalla kuin aaltosulkeet
(luku \ref{luku/aaltosulkeet}). Jos esimerkiksi fonttiasetusta (luku
\ref{luku/kirjaintyypit}) muuttaa ympĂ¤ristĂśn sisĂ¤puolella, asetus
palautuu ympĂ¤ristĂśn jĂ¤lkeen samaksi kuin se oli ennen ympĂ¤ristĂśn alkua.
Samoin ympĂ¤ristĂśn sisĂ¤llĂ¤ mĂ¤Ă¤ritellyt komennot ovat voimassa vain
kyseisessĂ¤ ympĂ¤ristĂśssĂ¤.

\komentoi{begin}
\komentoi{end}
\begin{koodilohkosis}
\begin{nimi}
  % ympĂ¤ristĂśn
  % vaikutusalue
\end{nimi}
\end{koodilohkosis}

\noindent
Yleisin ympĂ¤ristĂś on nimeltĂ¤Ă¤n \ymparisto{document}, jonka sisĂ¤Ă¤n koko
dokumentin sisĂ¤ltĂś kirjoitetaan. Muita ympĂ¤ristĂśjĂ¤ kĂ¤ytetĂ¤Ă¤n
tavallisesta leipĂ¤tekstistĂ¤ poikkeavien rakenteiden ilmaisemiseen,
esimerkiksi luetelmiin ja taulukoihin (luvut \ref{luku/luetelmat} ja
\ref{luku/taulukot}). YmpĂ¤ristĂśjĂ¤ voi tehdĂ¤ itsekin mihin hyvĂ¤nsĂ¤
tarkoitukseen. NiitĂ¤ mĂ¤Ă¤ritellĂ¤Ă¤n seuraavilla komennoilla:

\komentoi{newenvironment}
\komentoi{renewenvironment}
\begin{koodilohkosis}
\newenvironment   {nimi}[n][oletus]{aloitus}{lopetus}
\renewenvironment {nimi}[n][oletus]{aloitus}{lopetus}
\end{koodilohkosis}

\noindent
Komento \komento{newenvironment} mĂ¤Ă¤rittelee uuden ympĂ¤ristĂśn. Se antaa
virheilmoituksen, jos samanniminen ympĂ¤ristĂś on jo olemassa. Komento
\komento{renewenvironment} puolestaan mĂ¤Ă¤rittelee uudelleen ympĂ¤ristĂśn,
joka on jo olemassa. Se antaa virheilmoituksen, jos ympĂ¤ristĂśĂ¤ ei
ollutkaan olemassa.

Argumentit ovat lĂ¤hes samanlaiset kuin komentojen mĂ¤Ă¤rittelyssĂ¤ (luku
\ref{luku/komennot-mĂ¤Ă¤rittely}). YmpĂ¤ristĂśjen mĂ¤Ă¤rittelykomennoilla on
kolme pakollista argumenttia: ensimmĂ¤inen on ympĂ¤ristĂśn nimi, toinen on
ympĂ¤ristĂśn aloitusmĂ¤Ă¤ritelmĂ¤ (\koodi{aloitus}) ja kolmas on
lopetusmĂ¤Ă¤ritelmĂ¤ (\koodi{lopetus}).

\komentoi{newenvironment}
\komentoi{begin}
\komentoi{end}
\begin{koodilohkosis}
\newenvironment{ymp}{TĂ¤stĂ¤ se alkaa.}{TĂ¤hĂ¤n se pĂ¤Ă¤ttyy.}

\begin{ymp}
  YmpĂ¤ristĂśn sisĂ¤ltĂśĂ¤.
\end{ymp}
\end{koodilohkosis}

\begin{tulossis}
  TĂ¤stĂ¤ se alkaa. YmpĂ¤ristĂśn sisĂ¤ltĂśĂ¤. TĂ¤hĂ¤n se pĂ¤Ă¤ttyy.
\end{tulossis}

\noindent
Tavallisesti ympĂ¤ristĂśn aloitusmĂ¤Ă¤ritelmĂ¤Ă¤n kirjoitetaan jonkin toisen
ympĂ¤ristĂśn aloituskomento sekĂ¤ mahdollisesti suoritetaan joitakin
asetuskomentoja. Vastaavasti lopetusmĂ¤Ă¤ritelmĂ¤ssĂ¤ lopetetaan ympĂ¤ristĂś
eli palataan normaaliin tilaan. Tarkoituksena on abstrahoida jokin
monimutkaisempi kokonaisuus eli tehdĂ¤ uusi helppokĂ¤yttĂśinen ympĂ¤ristĂś, joka
piilottaa teknisen toteutuksen.

\komentoi{newenvironment}
\komentoi{begin}
\komentoi{end}
\begin{koodilohkosis}
\newenvironment{ymp}
{\begin{mahtavuus}
    \omia\hienoja\asetuksia}
  {\end{mahtavuus}}
\end{koodilohkosis}

\noindent
Omille ympĂ¤ristĂślle voi mĂ¤Ă¤ritellĂ¤ argumentteja samalla tavalla kuin
komennoillekin. EnsimmĂ¤inen valinnainen argumentti \koodi{n} on luku
joka kertoo, kuinka monta argumenttia mĂ¤Ă¤riteltĂ¤vĂ¤ ympĂ¤ristĂś kĂ¤sittelee.
YmpĂ¤ristĂśn aloitusmĂ¤Ă¤ritelmĂ¤ssĂ¤ voi argumentteihin viitata parametreilla
\koodi{\#1}, \koodi{\#2}, \koodi{\#3} jne.

Jos toinen valinnainen argumentti \koodi{oletus} on mukana, se
ilmaisee, ettĂ¤ mĂ¤Ă¤riteltĂ¤vĂ¤n ympĂ¤ristĂśn ensimmĂ¤inen argumentti on
valinnainen ja ettĂ¤ tĂ¤mĂ¤ on sen oletusarvo. Oletusta kĂ¤ytetĂ¤Ă¤n silloin,
kun valinnaista argumenttia ei ole annettu. Argumentit annetaan
ympĂ¤ristĂśn aloittavan \komento{begin}\-/ komennon yhteydessĂ¤.

\komentoi{begin}
\komentoi{end}
\begin{koodilohkosis}
\begin{ymp}[valinnainen]{argu}{mentteja}
  % ympĂ¤ristĂśn
  % vaikutusalue
\end{ymp}
\end{koodilohkosis}

\noindent
YmpĂ¤ristĂśn mĂ¤Ă¤rittelykomennoille on myĂśs tĂ¤hdelliset versiot
\komento{newenvironment*} ja \komento{renewenvironment*}. Ne toimivat
samoin kuin edellĂ¤ kuvatut tavallisetkin komentoversiot, mutta ne eivĂ¤t
salli, ettĂ¤ mĂ¤Ă¤ritellylle ympĂ¤ristĂślle annetut argumentit sisĂ¤ltĂ¤vĂ¤t
enemmĂ¤n kuin yhden tekstikappaleen. Toiminta on siis sama kuin
komentojenkin mĂ¤Ă¤rittelyn tĂ¤hdellisissĂ¤ versioissa (luku
\ref{luku/komennot-mĂ¤Ă¤rittely}).

\komentoi{newenvironment*}
\komentoi{renewenvironment*}
\begin{koodilohkosis}
\newenvironment*   {nimi}[n][oletus]{aloitus}{lopetus}
\renewenvironment* {nimi}[n][oletus]{aloitus}{lopetus}
\end{koodilohkosis}

\begin{esimerkki*}
  \komentoi{newenvironment}
  \komentoi{ignorespaces}
  \komentoi{ignorespacesafterend}
  \komentoi{begin}
  \komentoi{end}

\begin{koodilohko}
\newenvironment{ymp}
{Yhdys\ignorespaces}
{esi\ignorespacesafterend}

\begin{ymp}
  sana% Kommentti poistaa seuraavan sanavĂ¤lin.
\end{ymp}   merkki.
\end{koodilohko}
\begin{tulos}
  Yhdyssanaesimerkki.
\end{tulos}
\caption{SanavĂ¤lien kĂ¤yttĂ¤ytyminen ympĂ¤ristĂśjen yhteydessĂ¤. Komennoilla
  \komento{ignorespaces} ja \komento{ignorespacesafterend} voi poistaa
  seuraavat sanavĂ¤lit}
\label{esim/ignorespacesafterend}
\end{esimerkki*}

\noindent
Joskus ympĂ¤ristĂśjen mĂ¤Ă¤rittelyyn on hyĂśdyllistĂ¤ sisĂ¤llyttĂ¤Ă¤ komento
\komento{ignorespaces}, joka jĂ¤ttĂ¤Ă¤ huomioimatta tĂ¤mĂ¤n komennon
jĂ¤lkeiset sanavĂ¤lit. Toinen hyĂśdyllinen on
\komento{ignorespacesafterend}, joka jĂ¤ttĂ¤Ă¤ huomioimatta ympĂ¤ristĂśn
lopettavan \komento{end}\-/ komennon jĂ¤lkeiset sanavĂ¤lit. Esimerkki
\ref{esim/ignorespacesafterend} selventĂ¤Ă¤ nĂ¤iden toimintaa.

\section{Mitat}
\label{luku/mitat}

\subsection{MittayksikĂśt}

Koska typografia on pitkĂ¤lti teksti- ja muiden elementtien sijoittelua,
tarvitaan sitĂ¤ varten mittavĂ¤lineitĂ¤. NiinpĂ¤ TexissĂ¤kin on pituusmittoja
ja useita pituuden mittayksikĂśitĂ¤. Taulukkoon \ref{tlk/mittayksikĂśt} on
koottu mittayksikĂśiden lyhenteet ja merkitykset. Teknisesti on
samantekevĂ¤Ă¤, mitĂ¤ yksikĂśitĂ¤ kĂ¤yttĂ¤Ă¤, sillĂ¤ ne ovat vain vĂ¤lineitĂ¤
pituuden ilmaisemiseen. SisĂ¤isesti Tex kĂ¤yttĂ¤Ă¤ sp-yksikkĂśĂ¤, joka
ilmaisee samalla mittojen tarkkuuden: pienin jakamaton mitta on 1\,sp
(5,36\,nm).

\leijutlk{
  \begin{tabular}{ll}
    \toprule
    \ots{Lyh.} &amp; \ots{Merkitys} \\
    \midrule
    bp &amp; piste uudessa pica-jĂ¤rjestelmĂ¤ssĂ¤, 1/72 tuumaa, 0,3528 mm \\
    pt &amp; piste vanhassa pica-jĂ¤rjestelmĂ¤ssĂ¤, 1/72,27 tuumaa, 0,3515 mm \\
    pc &amp; pica eli 12 pt-pistettĂ¤ \\
    sp &amp; 1/65536 pt-pistettĂ¤ (5,36\,nm), Texin sisĂ¤isesti kĂ¤yttĂ¤mĂ¤ yksikkĂś \\
    dd &amp; piste Didot-jĂ¤rjestelmĂ¤ssĂ¤, 0,376 mm \\
    cc &amp; cicero eli 12 dd-pistettĂ¤ \\
    mm &amp; millimetri \\
    cm &amp; senttimetri \\
    in &amp; tuuma, 25,4 mm \\
    ex &amp; nykyisen fontin x-korkeus, perus- ja gemenalinjan etĂ¤isyys \\
    em &amp; typografisen neliĂśn sivun pituus, sama kuin fontin koko \\
    \bottomrule
  \end{tabular}
}{
  \caption{Texin mittayksikĂśiden lyhenteet ja merkitykset}
  \label{tlk/mittayksikĂśt}
}

Usein tietyt yksikĂśt ovat vakiintuneet tiettyihin tilanteisiin.
Esimerkiksi fonttien kokoja ja rivikorkeuksia on tapana mitata
pistemittojen avulla. NykyĂ¤Ă¤n typografiassa kĂ¤ytetĂ¤Ă¤n lĂ¤hinnĂ¤
bp\-/yksikĂśn mukaista pistettĂ¤, joka tuli kĂ¤yttĂśĂśn Post Script
\=/standardin myĂśtĂ¤ vuonna 1984 ja jota kĂ¤ytetĂ¤Ă¤n julkaisuohjelmissa.
Sivun mittoja kuten leveyttĂ¤, korkeutta ja marginaaleja ilmaistaan
tavallisesti metrijĂ¤rjestelmĂ¤n avulla eli senttimetreissĂ¤ tai
millimetreissĂ¤.

Latexin mittojen mittaluvuissa desimaalierottimena on piste, ja
mittayksikĂśn lyhenne kirjoitetaan kiinni mittalukuun. Seuraavassa
esimerkissĂ¤ tehdĂ¤Ă¤n vaakasuuntaisia ja pystysuuntaisia vĂ¤lejĂ¤
komennoilla \komento{hspace} ja \komento{vspace}:

\komentoi{hspace}
\komentoi{vspace}
\begin{koodilohkosis}
Sanat\hspace{1.2cm}hassusti
\vspace{2mm}

\hspace{1.75em}erillĂ¤Ă¤n.
\end{koodilohkosis}

\begin{tulossis}
  Sanat\hspace{1.2cm}hassusti  \nopagebreak
  \vspace{2mm}

  \hspace{1.75em}erillĂ¤Ă¤n.
\end{tulossis}

\noindent
Jos pystysuuntaisen vĂ¤lin tekevĂ¤ komento \komento{vspace} sattuu
sivunvaihdon kohdalle, vĂ¤li jĂ¤tetĂ¤Ă¤n kokonaan tekemĂ¤ttĂ¤. Komennosta on
olemassa tĂ¤htiversio \komento{vspace*}, joka tekee vĂ¤lin myĂśs
sivunvaihdon kohdalle eli ennen tai jĂ¤lkeen sivunvaihdon.

Vastaavalla tavalla toimii myĂśs vaakasuuntainen vĂ¤li \komento{hspace}.
Jos komento sattuu rivinvaihdon kohdalle, komentoa ei huomioida eli vĂ¤li
jĂ¤tetĂ¤Ă¤n tekemĂ¤ttĂ¤. TĂ¤htiversio \komento{hspace*} tekee vĂ¤lin joka
tapauksessa.

\subsection{Mittakomennot ja typografinen viivasto}

Mittoja tallennetaan erĂ¤Ă¤nlaisiin muuttujiin, jotka nĂ¤yttĂ¤vĂ¤t pĂ¤Ă¤llepĂ¤in
komennoilta eli niiden alussa on kenoviiva (\koodi{\keno}) ja sitten
kirjaimista koostuva nimi. Esimerkiksi mitta \mitta{textwidth} on
tekstialueen leveys nykyisellĂ¤ sivulla. Komentomaisesta ulkoasustaan
huolimatta mittoja ei voi suorittaa komentoina; ne sopivat vain komennon
argumentiksi, silloin kun tarvitaan mitta.

Uusia mittoja luodaan komennolla \komento{newlength} ja olemassa olevia
mittoja asetetaan esimerkiksi komennoilla \komento{setlength} ja
\komento{addtolength}. Omien mittoja on tarpeen luoda silloin, kun
halutaan mĂ¤Ă¤ritellĂ¤ tietynsuuruinen mitta, jota kĂ¤ytetĂ¤Ă¤n Latex\-/
koodissa useita kertoja.

\komentoi{newlength}
\komentoi{setlength}
\komentoi{addtolength}
\begin{koodilohkosis}
\newlength{\omamitta}         % Luodaan mitta.
\setlength{\omamitta}{2.3em}  % Asetetaan mitta.
\addtolength{\omamitta}{1em}  % LisĂ¤tĂ¤Ă¤n mittaan.
\addtolength{\omamitta}{-1em} % VĂ¤hennetĂ¤Ă¤n mitasta.
\end{koodilohkosis}

\noindent
NĂ¤in luotuja mittoja voi kĂ¤yttĂ¤Ă¤ mittayksikĂśiden tavoin, eli niille voi
asettaa eteen kertoimen. Esimerkiksi seuraava \komento{hspace}\-/
komento luo vaakasuuntaisen vĂ¤lin, jonka pituus on 0,7 kertaa
\mittax{omamitta}:

\komentoi{hspace}
\begin{koodilohkosis}
\hspace{0.7\omamitta}
\end{koodilohkosis}

\noindent
Vaakasuuntaisten vĂ¤lien tekeminen on typografiassa varsin tavallista,
joten niitĂ¤ varten on olemassa omia komentoja. Typografisen neliĂśn
levyisen (1\,em) vĂ¤lin voi tehdĂ¤ komennolla \komento{quad}. Sen
puolikkaan (\murtoluku{1}{2}\,em) saa komennolla \komento{enspace}.
Ohuke eli \murtoluku{1}{6}\,em-vĂ¤li tehdĂ¤Ă¤n \komento{,}\-/ komennolla,
josta on tarkempaa tietoa luvussa \ref{luku/ohuke}.

Perus Latexissa ei voi tehdĂ¤ laskutoimituksia mittojen avulla, mutta
\pakettictan{calc}\-/ paketti laajentaa \komento{setlength}\-/{} ja
\komento{addtolength}\-/ komentoja siten, ettĂ¤ niiden argumentissa voi
toteuttaa yhteen\-/, vĂ¤hennys\-/, kerto- ja jako\-las\-kuja
operaattoreilla \koodi{+-*/}. MyĂśs sulkeita \koodi{()} voi kĂ¤yttĂ¤Ă¤
laskujĂ¤rjestyksen muuttamiseen samoin kuin matemaattisissa lausekkeissa
tavallisestikin. Jos samassa lausekkeessa on sekĂ¤ mittoja (esim.
\mitta{parindent} tai \koodi{1em}) ettĂ¤ vakiotermejĂ¤ (esim.~\koodi{2}),
tĂ¤ytyy mitta mainita lausekkeessa ensin. Seuraava esimerkki
havainnollistaa \paketti{calc}\-/ paketin laskutoimituksia:

\komentoi{setlength}
\mittai{parindent}
\begin{koodilohkosis}
\setlength{\omamitta}{\parindent + 1em}
\setlength{\omamitta}{\parindent * 2}  % ei: 2 * \parindent
\end{koodilohkosis}

\noindent
Latex sisĂ¤ltĂ¤Ă¤ myĂśs komennot mittojen poimimiseen kirjaimista tai muista
merkeistĂ¤. Mittoja on kolme: leveys (\englanti{width}), korkeus
(\englanti{height}) ja syvyys (\englanti{depth}). Leveys on merkin
viemĂ¤ tila leveyssuunnassa. Korkeus tarkoittaa merkin korkeutta
peruslinjan ylĂ¤puolella, ja syvyys on merkin korkeus peruslinjan
alapuolella. Kuva \ref{kuva/kirjainmitat} havainnollistaa nĂ¤itĂ¤ kolmea
mittaa sekĂ¤ typografista viivastoa.

\leijukuva{
  \rmfamily
  \begin{tikzpicture}
    [viiva/.style={line width=.7bp, densely dotted, color=apuviiva},
    nuoli/.style={&lt;-&gt;, line width=1bp, color=mittanuoli}, xscale=1.1,
    yscale=1.9, baseline=0pt]

    \node at (.04,.25) {\fontsize{120bp}{120bp}\selectfont p};

    \draw [viiva] (-1,.98) rectangle (1,-.5);
    \draw [viiva] (1,.98) -- (2.25,.98);
    \draw [viiva] (-1,.02) -- (2.25,.02);
    \draw [viiva] (1,-.5) -- (2.25,-.5);

    \draw [nuoli] (1.2,.02) -- (1.2,.98);
    \node at (1.9,.5) [color=mittanuoli] {korkeus};

    \draw [nuoli] (1.2,.02) -- (1.2,-.5);
    \node at (1.9,-.25) [color=mittanuoli] {syvyys};

    \draw [nuoli] (-1,1.1) -- (1,1.1);
    \node at (0,1.25) [color=mittanuoli] {leveys};

    \node at (3.13,1.64) {ylĂ¤linja};
    \node at (3.13,1.44) {versaalilinja};
    \node at (3.13,.98) {gemenalinja};
    \node at (3.13,.02) {peruslinja};
    \node at (3.13,-.5) {alalinja};

    \node at (6.52,.74) {\fontsize{120bp}{120bp}\selectfont H};

    \draw [viiva] (5.05,1.47) rectangle (7.95,.02);
    \draw [viiva] (5.05,.02) -- (4,.02);
    \draw [viiva] (5.05,1.47) -- (4,1.47);
    \draw [viiva] (7.95,1.62) -- (4,1.62);
    \draw [viiva] (7.95,.98) -- (4,.98);

    \draw [nuoli] (4.86,.02) -- (4.86,1.47);
    \node at (4.1,.5) [color=mittanuoli] {korkeus};

    \draw [nuoli] (5.05,-.1) -- (7.95,-.1);
    \node at (6.5,-.3) [color=mittanuoli] {leveys};
  \end{tikzpicture}
}{
  \caption{Kirjainten mitat ja typografinen viivasto}
  \label{kuva/kirjainmitat}
}

Gemenalinja sijaitsee gemenakirjainten eli pienaakkosten korkeudella.
Peruslinjan ja gemenalinjan etĂ¤isyys on fontin x\=/korkeus (1\,ex).
Optisen vaikutelman vuoksi gemenalinja ei tarkoita ehdotonta
gemenakirjainten ylintĂ¤ kohtaa. Esimerkiksi p\=/kirjaimen ylĂ¤pĂ¤Ă¤te ja
silmukan ylĂ¤kaari voivat yltĂ¤Ă¤ hieman gemenalinjan ylĂ¤puolelle ja
silmukan alakaari peruslinjan alapuolelle. Fonttien suunnittelijat
tekevĂ¤t tĂ¤llaisia optisia korjauksia, jotta kirjainten hahmot nĂ¤yttĂ¤vĂ¤t
yhtĂ¤ korkeilta ja tasapainoisilta yhdessĂ¤.

Versaalilinja sijaitsee versaalikirjainten eli suuraakkosten
korkeudella. Jotkin kirjaimet voivat yltĂ¤Ă¤ hieman versaalilinjan
ylĂ¤puolellekin. Esimerkiksi joidenkin fonttien Hk\=/kirjaimia
vertailemalla nĂ¤kee, ettĂ¤ k\=/kirjaimen ylĂ¤pĂ¤Ă¤te yltĂ¤Ă¤ H\=/kirjaimen eli
versaalilinjan ylĂ¤puolelle, ylĂ¤linjan tuntumaan. MyĂśs tarkemerkit (luku
\ref{luku/tarkkeet}) voivat sijaita versaalilinjan ylĂ¤puolella.

Merkkien leveyden, korkeuden ja syvyyden voi mitata seuraavan esimerkin
komennoilla. Esimerkin ensimmĂ¤isellĂ¤ rivillĂ¤ luodaan uudet mitat
\mittax{leveys}, \mittax{korkeus} ja \mittax{syvyys}, joihin sitten
tallennetaan merkkien mitat.

\komentoi{newlength}
\komentoi{settowidth}
\komentoi{settoheight}
\komentoi{settodepth}
\begin{koodilohkosis}
\newlength{\leveys} \newlength{\korkeus} \newlength{\syvyys}
\settowidth{\leveys}{abc} % merkkien âabcâ leveys
\settoheight{\korkeus}{H} % merkin âHâ korkeus
\settodepth{\syvyys}{p}   % merkin âpâ syvyys
\end{koodilohkosis}

\noindent
Mitat saa nĂ¤kyviin kirjoittamalla mitan eteen komennon \komento{the}.
NĂ¤in mitan pituus ladotaan dokumenttiin. YksikkĂśnĂ¤ on typografinen piste
(pt).

\komentoi{the}
\begin{koodilohkosis}
Leveys: \the\leveys, korkeus: \the\korkeus, syvyys: \the\syvyys.
\end{koodilohkosis}

\begin{tulossis}
  Leveys: 14.62865pt, korkeus: 6.81897pt, syvyys: 2.4662pt.
\end{tulossis}

\noindent
Aiemmin mainituista optisista korjauksista johtuu, ettĂ¤ gemenakirjaimet
eivĂ¤t ole vĂ¤lttĂ¤mĂ¤ttĂ¤ tĂ¤smĂ¤lleen samankorkuisia. Gemena\=/x asettuu
perus- ja gemenalinjojen vĂ¤liin, mutta gemena\=/o voi yltĂ¤Ă¤ aavistuksen
verran linjojen ylĂ¤- ja alapuolelle. Ihmisen silmĂ¤Ă¤n ne nĂ¤yttĂ¤vĂ¤t yhtĂ¤
korkeilta.

\subsection{VenyvĂ¤t mitat ja vĂ¤lit}
\label{luku/venyvĂ¤t-mitat}

EdellĂ¤ on puhuttu vain kiinteistĂ¤ mitoista, mutta Latex tuntee myĂśs
venyvĂ¤t mitat. Niiden ajatuksena on, ettĂ¤ Latexille voi antaa luvan
kutistaa tai venyttĂ¤Ă¤ mittaa tietyissĂ¤ rajoissa. VenyviĂ¤ mittoja
kĂ¤ytettĂ¤Ă¤n usein pystysuuntaisissa vĂ¤leissĂ¤, esimerkiksi vĂ¤liotsikon
edellĂ¤ ja jĂ¤lkeen tai tekstikappaleiden vĂ¤lissĂ¤. Latex pystyy latomaan
sivut yleensĂ¤ paremman nĂ¤kĂśiseksi, kun sille antaa venyvien mittojen
avulla hieman sĂ¤Ă¤tĂśvaraa. Alla on esimerkki venyvĂ¤n kappalevĂ¤lin
(\mitta{parskip}) mĂ¤Ă¤rittĂ¤misestĂ¤. Samalla asetetaan kappaleen
ensimmĂ¤isen rivin sisennys (\mitta{parindent}) nollaan (\koodi{0em}).

\komentoi{setlength}
\mittai{parskip}
\mittai{parindent}
\begin{koodilohkosis}
\setlength{\parskip}{2ex plus 0.2ex minus 0.1ex}
\setlength{\parindent}{0em}
\end{koodilohkosis}

\noindent
VenyvissĂ¤ mitoissa mainitaan ensin normaali pituus ja sitten sanoilla
\koodi{plus} ja \koodi{minus} ilmaistaan, kuinka paljon mitta voi venyĂ¤
tai kutistua. Molempia ei vĂ¤lttĂ¤mĂ¤ttĂ¤ tarvitse antaa.

VenyvĂ¤t mitat voivat sisĂ¤ltĂ¤Ă¤ ''Ă¤Ă¤rettĂśmĂ¤n'' mittayksikĂśn \koodi{fill},
joka antaa luvan venyttĂ¤Ă¤ mittaa niin, ettĂ¤ kaikki kĂ¤ytettĂ¤vissĂ¤ oleva
tila tĂ¤yttyy. ĂĂ¤rettĂśmĂ¤n mittayksikĂśn kanssa mittaluku ilmaisee
suhdeluvun muihin Ă¤Ă¤rettĂśmiin mittoihin. Seuraava esimerkki
havainnollistaa asiaa:

\komentoi{hspace}
\begin{koodilohkosis}
x\hspace{0mm plus 1fill}x\hspace{0mm plus 2fill}x
\end{koodilohkosis}

\begin{tulossis}
  x\hspace{0mm plus 1fill}x\hspace{0mm plus 2fill}x
\end{tulossis}

\noindent
Edellisen esimerkin mittojen luonnollinen pituus on nolla (\koodi{0mm}),
mutta \koodi{plus} ja \koodi{fill} \=/mitan vuoksi ne voivat venyĂ¤ ja
tĂ¤yttĂ¤Ă¤ koko kĂ¤ytettĂ¤vissĂ¤ olevan tilan. Ensin mainitulla on suhdeluku 1
(\koodi{1fill}) ja jĂ¤lkimmĂ¤isellĂ¤ suhdeluku 2 (\koodi{2fill}), joten
jĂ¤lkimmĂ¤inen vĂ¤li on kaksinkertainen ensimmĂ¤iseen verrattuna. Saman
Ă¤Ă¤rettĂśmĂ¤sti venyvĂ¤n mitan ja suhdeluvut voi ilmaista myĂśs
\komento{stretch}\-/ mittakomennon avulla seuraavasti:

\komentoi{hspace}
\komentoi{stretch}
\begin{koodilohkosis}
x\hspace{\stretch{1}}x\hspace{\stretch{2}}x
\end{koodilohkosis}

\begin{tulossis}
  x\hspace{\stretch{1}}x\hspace{\stretch{2}}x
\end{tulossis}

\noindent
ĂĂ¤rettĂśmĂ¤sti venyvĂ¤lle, koko tilan tĂ¤yttĂ¤vĂ¤lle mittayksikĂślle on itse
asiassa kolme eri versiota: \koodi{fil}, \koodi{fill} ja \koodi{filll}.
Niiden erona on tĂ¤rkeysjĂ¤rjestys. Ensin mainittu \koodi{fil} on vĂ¤hiten
tĂ¤rkeĂ¤, ja viimeinen eli \koodi{filll} on tĂ¤rkein. Jos samassa
yhteydessĂ¤ kĂ¤ytetĂ¤Ă¤n eri tĂ¤rkeysasteisia yksikĂśitĂ¤, ylemmĂ¤ntasoiset
mitĂ¤tĂśivĂ¤t alemmantasoiset.

\komentoi{hspace}
\begin{koodilohkosis}
x\hspace{0mm plus 1filll}x\hspace{0mm plus 1fill}x
\end{koodilohkosis}

\begin{tulossis}
  x\hspace{0mm plus 1filll}x\hspace{0mm plus 1fill}x
\end{tulossis}

\noindent
EdellisessĂ¤ esimerkissĂ¤ ensimmĂ¤inen venyvĂ¤ mitta \koodi{1filll} mitĂ¤tĂśi
jĂ¤lkimmĂ¤isen \koodi{1fill} kokonaan. YleensĂ¤ lienee parasta kĂ¤yttĂ¤Ă¤
keskimmĂ¤istĂ¤ (\koodi{fill}), mutta eri tĂ¤rkeysasteille voi olla kĂ¤yttĂśĂ¤
esimerkiksi laajennuspaketin koodissa: \koodi{fil} sallii, ettĂ¤
kirjoittaja tai muu koodi syrjĂ¤yttĂ¤Ă¤ asetuksen; \koodi{filll} on ehdoton
sĂ¤Ă¤ntĂś, joka syrjĂ¤yttĂ¤Ă¤ muut.

KĂ¤ytĂ¤nnĂśllisyyssyistĂ¤ Ă¤Ă¤rettĂśmĂ¤sti venyvĂ¤ pituus \koodi{0mm plus 1fill}
on jo valmiiksi asetettu mittaan \mitta{fill}. SitĂ¤ on kĂ¤tevĂ¤Ă¤ kĂ¤yttĂ¤Ă¤
esimerkiksi vaaka- ja pystysuuntaisia vĂ¤lejĂ¤ latovien komentojen
\komento{hspace} ja \komento{vspace} kanssa:

\komentoi{hspace}
\komentoi{vspace}
\mittai{fill}
\begin{koodilohkosis}
\hspace{\fill} % Ă¤Ă¤retĂśn vaakasuuntainen vĂ¤li
\vspace{\fill} % Ă¤Ă¤retĂśn pystysuuntainen vĂ¤li
\end{koodilohkosis}

\noindent
Edellisen esimerkin komennoista on olemassa vielĂ¤kin lyhemmĂ¤t versiot.
Vaakasuuntainen Ă¤Ă¤retĂśn vĂ¤li syntyy myĂśs komennolla \komento{hfill} ja
pystysuuntainen vĂ¤li komennolla \komento{vfill}. Seuraavassa toistetaan
erĂ¤s aiempi esimerkki yksinkertaisemmalla tavalla:

\komentoi{hfill}
\begin{koodilohkosis}
x\hfill x\hfill\hfill x
\end{koodilohkosis}

\begin{tulossis}
  x\hfill x\hfill\hfill x
\end{tulossis}

\section{Laskurit}
\label{luku/laskurit}

Laskureiden avulla Latex pitĂ¤Ă¤ kirjaa esimerkiksi sivunumeroista,
lukujen ja alalukujen sekĂ¤ kuvien ja muiden elementtien numeroinnista.
Esimerkiksi nyt olemme pĂ¤Ă¤luvun~\arabic{chapter}
alaluvussa~\arabic{section}, ja mainitut luvut tulevat Latexin
laskureista automaattisesti.

\leijutlk{
  \laskurii{part}
  \laskurii{paragraph}
  \laskurii{figure}
  \laskurii{enumi}
  \laskurii{chapter}
  \laskurii{subparagraph}
  \laskurii{table}
  \laskurii{enumii}
  \laskurii{section}
  \laskurii{page}
  \laskurii{footnote}
  \laskurii{enumiii}
  \laskurii{subsection}
  \laskurii{equation}
  \laskurii{mpfootnote}
  \laskurii{enumiv}
  \laskurii{subsubsection}

  \begin{tabular}{llll}
    \toprule
    \laskuri{part} &amp; \laskuri{paragraph}
    &amp; \laskuri{figure} &amp; \laskuri{enumi} \\
    \laskuri{chapter} &amp; \laskuri{subparagraph}
    &amp; \laskuri{table} &amp; \laskuri{enumii} \\
    \laskuri{section} &amp; \laskuri{page}
    &amp; \laskuri{footnote} &amp; \laskuri{enumiii} \\
    \laskuri{subsection} &amp; \laskuri{equation}
    &amp; \laskuri{mpfootnote} &amp; \laskuri{enumiv} \\
    \laskuri{subsubsection} \\
    \bottomrule
  \end{tabular}
}{
  \caption{Latexin laskurit}
  \label{tlk/latexin-laskurit}
}

Taulukossa \ref{tlk/latexin-laskurit} ovat Latexin perus laskurit. Monet
niistĂ¤ ovat otsikoiden numerointia varten (\englanti{\laskuri{part},
  \laskuri{chapter}, \laskuri{section}, \laskuri{paragraph}}).
Sivunumeroita varten on \laskuri{page}\-/laskuri ja matemaattisten
kaavojen numerointiin \laskuri{equation}\-/laskuri. Leijuvista kuvista
ja taulukoista (luku \ref{luku/leijuosat}) pidetĂ¤Ă¤n kirjaa laskureissa
\laskuri{figure} ja \laskuri{table}, ja alaviitteiden (luku
\ref{luku/alaviitteet}) numerointi on laskureissa \laskuri{footnote} ja
\laskuri{mpfootnote}. Numeroidut luetelmat (luku \ref{luku/luetelmat})
kĂ¤sitellĂ¤Ă¤n \laskurix{enum}\-/alkuisten laskureiden avulla siten, ettĂ¤
perustasolla kĂ¤ytetĂ¤Ă¤n laskuria \laskuri{enumi}, ja jos sen
luetelmakohta sisĂ¤ltĂ¤Ă¤ toisen numeroidun luetelman, kĂ¤ytetĂ¤Ă¤n siinĂ¤
laskuria \laskuri{enumii}, sen sisĂ¤llĂ¤ laskuria \laskuri{enumiii} jne.

EdellĂ¤ mainituista laskureista ei tarvitse yleensĂ¤ itse huolehtia, sillĂ¤
ne ovat vain tekniikkaa, joka toimii korkeamman tason toimintojen
taustalla. Joskus on kuitenkin kĂ¤yttĂśĂ¤ myĂśs omille laskureille. Seuraava
esimerkki esittelee laskureiden kĂ¤sittelyn peruskomennot. NiissĂ¤
kĂ¤ytetĂ¤Ă¤n laskuria nimeltĂ¤ \laskurix{oma}. Laskurien nimet koostuvat
pelkistĂ¤ kirjaimista, eikĂ¤ niiden alussa ole kenoviivaa niin kuin
komentojen ja mittojen alussa.

\komentoi{newcounter}
\komentoi{setcounter}
\komentoi{addtocounter}
\begin{koodilohkosis}
\newcounter{oma}       % Luodaan uusi laskuri âomaâ.
\setcounter{oma}{3}    % Asetetaan laskurin arvoksi 3.
\addtocounter{oma}{1}  % LisĂ¤tĂ¤Ă¤n laskurin arvoon 1.
\addtocounter{oma}{-1} % VĂ¤hennetĂ¤Ă¤n laskurin arvosta 1.
\end{koodilohkosis}

\noindent
Laskuri on sisĂ¤isesti kokonaisluku, mutta sen arvon voi latoa eri
muodoissa: arabialaisena tai roomalaisena lukuna, kirjaimena tai
symbolien sarjana. Taulukossa \ref{tlk/laskurien-latominen} ovat komennot
laskurin arvon latomiseen. Komennon argumentiksi annetaan laskurin nimi.
Laskurin voi latoa kirjainmuodossa, jos sen arvo on 1--26; symbolit
toimivat vain lukualueella 1--9.

\leijutlk{
  \begin{tabular}{ll}
    \toprule
    \ots{Komento} &amp; \ots{Merkitys} \\
    \midrule
    \komento{arabic} &amp; arabialainen luku: 1, 2, 3\ldots \\
    \komento{roman} &amp; roomalainen luku: i, ii, iii\ldots \\
    \komento{Roman} &amp; roomalainen luku: I, II, III\ldots \\
    \komento{alph} &amp; kirjain: a, b, c\ldots\ (vain 1--26) \\
    \komento{Alph} &amp; kirjain: A, B, C\ldots\ (vain 1--26) \\
    \komento{fnsymbol} &amp; symboli:
                         \textasteriskcentered
                         \textdagger
                         \textdaggerdbl\S\P\ldots\ (vain 1--9) \\
    \bottomrule
  \end{tabular}
}{
  \caption{Komennot laskurien arvon latomiseen}
  \label{tlk/laskurien-latominen}
}

Taulukon \ref{tlk/laskurien-latominen} komentojen lisĂ¤ksi laskuriin
liittyvĂ¤n arvon voi latoa komennolla, joka alkaa kirjaimilla
\komentox{the} ja jatkuu laskurin nimellĂ¤. Esimerkiksi komento
\komento{thepage} latoo sivunumeron eli tekee kĂ¤ytĂ¤nnĂśssĂ¤ saman asian
kuin komento \komento{arabic}\komentoarg{page}. Aina nĂ¤mĂ¤ eivĂ¤t
kuitenkaan ole sama asia, ja \komentox{the}\-/alkuinen komento voi olla
mĂ¤Ă¤ritelty toisellakin tavalla. Esimerkiksi tĂ¤mĂ¤n oppaan leijuvat
taulukot numeroidaan laskurilla \laskuri{table}, mutta komento
\komento{thetable} latoo ensin pĂ¤Ă¤luvun ja sen perĂ¤Ă¤n pisteen ja
taulukon numeron. Viimeisin taulukko on numeroltaan \thetable{} eli
pĂ¤Ă¤luvun~\arabic{chapter} taulukko~\arabic{table}.

Jos laskurin arvoa tarvitaan Latexin teknisessĂ¤ tilanteessa eikĂ¤
tarkoituksena ole latoa sitĂ¤ nĂ¤kyviin itse dokumenttiin, tĂ¤ytyy kĂ¤yttĂ¤Ă¤
komentoa \komento{value}. Seuraava esimerkki luo laskurin nimeltĂ¤
\laskurix{mitta}, jonka arvoa (3) kĂ¤ytetĂ¤Ă¤n \komento{hspace}\-/ komennon
argumenttina mitan ilmaisemiseen (3\,em).

\komentoi{newcounter}
\komentoi{setcounter}
\komentoi{hspace}
\komentoi{value}
\begin{koodilohkosis}
\newcounter{mitta}
\setcounter{mitta}{3}
x\hspace{\value{mitta}em}x
\end{koodilohkosis}

\begin{tulossis}
  x\hspace{3em}x
\end{tulossis}

\noindent
Laskurien avulla voi suorittaa peruslaskutoimituksia, kun lataa paketin
\pakettictan{calc}. Paketti mĂ¤Ă¤rittelee uudelleen komennot
\komento{setcounter} ja \komento{addtocounter} siten, ettĂ¤ komennon
argumentti voi sisĂ¤ltĂ¤Ă¤ yhteen\-/, vĂ¤hennys\-/, kerto- ja
jako\-las\-kuja kĂ¤yttĂ¤mĂ¤llĂ¤ operaattoreita \koodi{+-*/}. Sulkeita
\koodi{()} voi kĂ¤yttĂ¤Ă¤ lausekkeen laskujĂ¤rjestyksen muuttamiseen.

\komentoi{setcounter}
\komentoi{value}
\laskurii{page}
\begin{koodilohkosis}
\setcounter{oma}{\value{page} + 3}
\end{koodilohkosis}

\subsection{Hierarkkiset laskurit}
\label{luku/hierarkkiset-laskurit}

Laskurit voivat olla hierarkkisia ja riippuvaisia toisista laskureista:
kun yhden laskurin arvo kasvaa, nollautuu jokin toinen laskuri
automaattisesti. TĂ¤llaista toimintoa kĂ¤ytetĂ¤Ă¤n dokumentin lukujen eli
otsikoiden numeroinnissa. Kirjan pĂ¤Ă¤luvun~1 alaluvut ovat esimerkiksi
1.1, 1.2, 1.3 jne. Kun alkaa seuraava pĂ¤Ă¤luku~2, nollautuu alaluvun
laskuri, jotta saadaan oikein numeroidut alaluvut 2.1, 2.2, 2.3 jne.
Latex huolehtii lukujen numeroinnista automaattisesti, mutta omille
laskureille tĂ¤ytyy mĂ¤Ă¤ritellĂ¤ riippuvuussuhteet itse. Seuraavassa
esimerkissĂ¤ luodaan oma laskuri, joka nollautuu automaattisesti aina,
kun sivu vaihtuu eli laskurin \laskuri{page} arvo kasvaa.

\komentoi{newcounter}
\laskurii{page}
\begin{koodilohkosis}
\newcounter{oma}[page]
\end{koodilohkosis}

\noindent
YlemmĂ¤n tason laskureita ei kannata kasvattaa komennolla
\komento{addtocounter}, koska se vain muuttaa laskurin arvoa mutta ei
huolehdi alemman tason laskurien nollaamisesta. Hierarkkisten laskurien
kasvattamiseen on seuraavat kaksi komentoa:

\komentoi{stepcounter}
\komentoi{refstepcounter}
\begin{koodilohkosis}
\stepcounter{laskuri}
\refstepcounter{laskuri}
\end{koodilohkosis}

\noindent
EdellĂ¤ mainitut komennot kasvattavat argumenttina annetun laskurin arvoa
yhdellĂ¤ ja nollaavat siitĂ¤ riippuvaiset alemman tason laskurit.
JĂ¤lkimmĂ¤inen komento \komento{refstepcounter} asettaa lisĂ¤ksi
ristiviitteen numeron, joten tĂ¤mĂ¤n komennon jĂ¤lkeen mahdollisesti tuleva
\komento{label}\-/ komento luo ristiviitekohteen. Kun tĂ¤hĂ¤n kohtaan
viitataan muualta kĂ¤yttĂ¤mĂ¤llĂ¤ \komento{ref}\-/ komentoa, viitteessĂ¤
nĂ¤kyy laskurin numero tai oikeastaan \komentox{thelaskuri}\-/ komennon
latoma teksti. RistiviitteitĂ¤ kĂ¤sitellĂ¤Ă¤n tarkemmin luvussa
\ref{luku/ristiviitteet}.

Paketti \pakettictan{chngcntr} helpottaa hierarkkisten laskurien
muuttamista jĂ¤lkikĂ¤teen. Paketin komentojen avulla voi jĂ¤lkikĂ¤teen
asettaa jonkin laskurin riippuvaiseksi toisesta laskurista tai poistaa
riippuvuuden.

\komentoi{newcounter}
\komentoi{counterwithin}
\komentoi{counterwithout}
\begin{koodilohkosis}
\newcounter{oma}           % Luodaan laskuri âomaâ.
\counterwithin {oma}{page} % Asetetaan riippuvuus page-laskurista.
\counterwithout{oma}{page} % Poistetaan riippuvuus.
\end{koodilohkosis}

\noindent
EdellĂ¤ mainitut \paketti{chngcntr}\-/paketin komennot mĂ¤Ă¤rittelevĂ¤t
uudelleen myĂśs \komentox{the\-oma}\-/ komennon, jolla \laskurix{oma}\-/
laskurin arvon voi latoa. Se latoo mukaan myĂśs ylemmĂ¤ntasoisen laskurin
arvon. Jos tĂ¤tĂ¤ \komentox{the}\-/ alkuista komentoa ei halua mĂ¤Ă¤ritellĂ¤
uudelleen, tĂ¤ytyy kĂ¤yttĂ¤Ă¤ tĂ¤hdellisiĂ¤ komennon versioita:
\komento{counterwithin*} ja \komento{counterwithout*}. Laskuriin
liittyvĂ¤n \komentox{the}\-/ komennon voi aina itsekin mĂ¤Ă¤ritellĂ¤
haluamansa laiseksi komennolla \komento{renewcommand} (luku
\ref{luku/komennot-mĂ¤Ă¤rittely}), esimerkiksi seuraavalla tavalla:

\komentoi{renewcommand}
\komentoi{arabic}
\komentoi{alph}
\laskurii{page}
\begin{koodilohkosis}
\renewcommand{\theoma}{\arabic{page}/\alph{oma}}
\end{koodilohkosis}

\subsection{Kokonaislaskurit}

Latex ei tiedĂ¤ etukĂ¤teen, mihin arvoon laskurit lopulta yltĂ¤vĂ¤t. Se vain
latoo sivuja perĂ¤kkĂ¤in eikĂ¤ tiedĂ¤ mitĂ¤Ă¤n tulevasta. Sen vuoksi
esimerkiksi dokumentin sivumĂ¤Ă¤rĂ¤Ă¤ ei voi ihan yksinkertaisella
komennolla latoa dokumentin alkusivuille.

Tekninen vastaus tĂ¤mĂ¤ntyyppisiin ongelmiin lĂśytyy ristiviitteistĂ¤ (luku
\ref{luku/ristiviitteet}). Ne toimivat sisĂ¤isesti niin, ettĂ¤ dokumentin
ensimmĂ¤isellĂ¤ kĂ¤Ă¤ntĂśkerralla kirjoitetaan vĂ¤liaikaistiedostoon muistiin
tarpeellisia asioita ja seuraavalla kĂ¤Ă¤ntĂśkerralla hyĂśdynnetĂ¤Ă¤n
vĂ¤liaikaistiedostoa. Dokumentin sivumĂ¤Ă¤rĂ¤n ja viimeisen sivunumeron
tallentamiseen on olemassa paketti \pakettictan{totpages}, joka lisĂ¤Ă¤
viimeiselle sivulle automaattisesti ristiviitteen nimeltĂ¤
\koodi{Tot\-Pages}. SivumĂ¤Ă¤rĂ¤n ja viimeisen sivun numeron voi latoa
komennoilla \komento{ref} ja \komento{pageref}. Esimerkki
\ref{esim/totpages} havainnollistaa niiden kĂ¤yttĂśĂ¤.

\begin{esimerkki*}
  \luokkai{article}
  \komentoi{documentclass}
  \komentoi{usepackage}
  \pakettii{totpages}
  \komentoi{ref}
  \komentoi{pageref}
  \komentoi{addtocounter}
  \laskurii{page}
  \komentoi{newpage}

\begin{koodilohko}
\documentclass{article}
\usepackage{totpages}

\begin{document}
SivumĂ¤Ă¤rĂ¤: \ref{TotPages}. Viimeinen sivu: \pageref{TotPages}.

\addtocounter{page}{10} % Sivunumerot 11, 12, 13...
\newpage Jotain... \newpage ...sisĂ¤ltĂśĂ¤.
\end{document}
\end{koodilohko}
  \caption{Dokumentin sivumĂ¤Ă¤rĂ¤n ja viimeisen sivun numeron latominen}
  \label{esim/totpages}
\end{esimerkki*}

Muunlaisten kokonaislaskurien toteuttamiseen voi kĂ¤yttĂ¤Ă¤
\pakettictan{totcount}\-/ pakettia. Se tarjoaa komennon, jolla
rekisterĂśidĂ¤Ă¤n olemassa oleva laskuri kokonaislaskuriksi. LisĂ¤ksi on
komento, jolla ladotaan tai palautetaan laskurin lopullinen arvo.

\komentoi{newcounter}
\komentoi{regtotcounter}
\komentoi{addtocounter}
\komentoi{total}
\komentoi{totvalue}
\begin{koodilohkosis}
\newcounter{oma}      % Luodaan laskuri âomaâ.
\regtotcounter{oma}   % RekisterĂśidĂ¤Ă¤n âomaâ kokonaislaskuriksi.
\addtocounter{oma}{1} % Kasvatetaan laskurin arvoa.
\total{oma}           % Ladotaan laskurin lopullinen arvo.
\totvalue{oma}        % Palautetaan laskurin lopullinen arvo.
\end{koodilohkosis}

\noindent
EdellĂ¤ olevan esimerkin viimeistĂ¤ komentoa \komento{totvalue} ei kĂ¤ytetĂ¤
laskurin arvon latomiseen itse dokumenttiin vaan sitĂ¤ kĂ¤ytetĂ¤Ă¤n
teknisissĂ¤ yhteyksissĂ¤ kuten toisen Latex\-/komennon argumenttina.

MyĂśs Latexin valmiita laskureita voi rekisterĂśidĂ¤ kokonaislaskureiksi.
TĂ¤ssĂ¤ oppaassa on yhteensĂ¤ \total{chapter} numeroitua pĂ¤Ă¤lukua, ja
mainittu lukumĂ¤Ă¤rĂ¤ saatiin laskettua seuraavasti:

\komentoi{regtotcounter}
\komentoi{total}
\laskurii{chapter}
\begin{koodilohkosis}
\regtotcounter{chapter} % Sijoitetaan dokumentin esittelyosaan.
\total{chapter}         % Latoo pĂ¤Ă¤lukujen (chapter) lukumĂ¤Ă¤rĂ¤n.
\end{koodilohkosis}

\section{Laatikot}
\label{luku/laatikot}

Tex ajattelee ladottavan tekstin ja muun sisĂ¤llĂśn laatikoina eli
suorakulmioina, joilla on leveys ja korkeus. Esimerkiksi kirjaimet ovat
teknisesti laatikoita, joita ladotaan perĂ¤kkĂ¤in. Samoin monet valmiit
ympĂ¤ristĂśt luovat laatikon, joka sisĂ¤ltĂ¤Ă¤ jotakin ja vie tietyn verran
tilaa sivulta.

Dokumentin kirjoittajalle on vĂ¤lillĂ¤ hyĂśtyĂ¤ luoda omia laatikoita, koska
laatikko toimii yhtenĂ¤ kokonaisuutena, jonka reunoja muut elementit ja
latomiskoneisto kunnioittavat.

\subsection{Pienet laatikot}
\label{luku/laatikot-pienet}

Yksinkertainen peruslaatikko tehdĂ¤Ă¤n \komento{mbox}\-/ komennolla, joka
latoo argumenttina annetun tekstin nĂ¤kymĂ¤ttĂśmĂ¤n laatikon sisĂ¤Ă¤n. NĂ¤in
luotu laatikko pysyy koossa, eli sen sisĂ¤ltĂ¤miĂ¤ sanoja ei esimerkiksi
tavuteta. Komento sopiikin hyvin tavutuksen estĂ¤miseen yksittĂ¤isessĂ¤
tilanteessa.

Toinen laatikkokomento \komento{makebox} toimii samalla tavalla kuin
\komento{mbox} mutta hyvĂ¤ksyy yhden tai kaksi valinnaista argumenttia.
Komentojen muoto on seuraava:

\komentoi{makebox}
\begin{koodilohkosis}
\makebox[leveys]{teksti}
\makebox[leveys][sijainti]{teksti}
\end{koodilohkosis}

\noindent
Argumentti \koodi{leveys} on laatikon leveysmitta ja \koodi{sijainti} on
kirjainkoodi, joka ilmaisee laatikon sisĂ¤llĂśn vaakasuuntaisen
sijoittelun. Kirjain \koodi{c} (\englanti{center}) keskittĂ¤Ă¤ sisĂ¤llĂśn,
\koodi{l} (\englanti{left}) tasaa sisĂ¤llĂśn vasemmalle, \koodi{r}
(\englanti{right}) tasaa sisĂ¤llĂśn oikealle ja \koodi{s}
(\englanti{stretch}) tasaa sisĂ¤llĂśn molemmista reunoista eli venyttĂ¤Ă¤
laatikon sisĂ¤isiĂ¤ sanavĂ¤lejĂ¤ sopivasti.

\komentoi{makebox}
\begin{koodilohkosis}
\makebox[12em][s]{Laatikossa on tilaa.}
\end{koodilohkosis}

\begin{tulossis}
  \makebox[12em][s]{Laatikossa on tilaa.}
\end{tulossis}

\noindent
\komento{makebox}\-/ komennon \koodi{leveys}\-/ argumentissa voi kĂ¤yttĂ¤Ă¤
apuna mittoja \mitta{width} (leveys), \mitta{height} (korkeus),
\mitta{depth} (syvyys) ja \mitta{totalheight} (kokonaiskorkeus:
\mitta{height} + \mitta{depth}), jotka mĂ¤Ă¤rĂ¤ytyvĂ¤t laatikon sisĂ¤llĂśn
luontaisten mittojen perusteella. Kuvassa \ref{kuva/kirjainmitat}
(s.~\pageref{kuva/kirjainmitat}) oleva typografinen viivasto
havainnollistaa nĂ¤itĂ¤ mittoja.

Seuraava esimerkki latoo laatikon, jonka leveys on 1,5\-/ kertainen
sisĂ¤llĂśn luontaiseen leveyteen nĂ¤hden, ja keskittĂ¤Ă¤ tekstin. Pystyviivat
ovat mukana rajojen hahmottamisen vuoksi.

\komentoi{makebox}
\mittai{width}
\begin{koodilohkosis}
|\makebox[1.5\width][c]{Keskitetty}|
\end{koodilohkosis}

\begin{tulossis}
  |\makebox[1.5\width][c]{Keskitetty}|
\end{tulossis}

\noindent
Laatikkokomento \komento{fbox} toimii kuten \komento{mbox} mutta piirtĂ¤Ă¤
laatikolle myĂśs nĂ¤kyvĂ¤t kehykset. Komento \komento{framebox} on
puolestaan kehyksellinen versio \komento{makebox}\-/ komennosta.
Kehysviivan leveyden voi asettaa mitan \mitta{fboxrule} avulla, ja
kehysviivan etĂ¤isyys sisĂ¤llĂśstĂ¤ mĂ¤Ă¤ritellĂ¤Ă¤n mitassa \mitta{fboxsep}.

\komentoi{fbox}
\komentoi{framebox}
\komentoi{setlength}
\mittai{fboxrule}
\mittai{fboxsep}
\mittai{width}
\begin{koodilohkosis}
\setlength{\fboxsep}{3bp}
\setlength{\fboxrule}{.5bp}
\framebox[1.2\width][c]{Laatikossa \fbox{laatikko}}
\end{koodilohkosis}

\begin{tulossis}
  \setlength{\fboxsep}{3bp}
  \setlength{\fboxrule}{.5bp}
  \framebox[1.2\width][c]{Laatikossa \fbox{laatikko}}
\end{tulossis}

\noindent
TekstiĂ¤ sisĂ¤ltĂ¤vien laatikoiden korkeus vaihtelee kirjainten ja muiden
merkkien muodon mukaan. Esimerkiksi kirjainten ala- ja ylĂ¤pidennykset
kasvattavat laatikon kokoa gemenalinjan ylĂ¤puolelle tai peruslinjan
alapuolelle. Seuraavasta esimerkistĂ¤ voi vertailla tekstilaatikoiden
muodostumista:

\komentoi{setlength}
\komentoi{fbox}
\mittai{fboxsep}
\begin{koodilohkosis}
\setlength{\fboxsep}{0bp}
\fbox{sana} \fbox{kirja} \fbox{Ă}
\end{koodilohkosis}

\begin{tulossis}
  \setlength{\fboxsep}{0bp}
  \fbox{sana} \fbox{kirja} \fbox{Ă}
\end{tulossis}

\noindent
Edellisen esimerkin kaltaisissa tilanteissa voi olla tarpeen kĂ¤yttĂ¤Ă¤
laatikon sisĂ¤llĂ¤ komentoa \komento{strut}. Se latoo nĂ¤kymĂ¤ttĂśmĂ¤n,
leveydettĂśmĂ¤n merkin, jonka korkeus on rivikorkeuden mukainen (mitta
\mitta{baselineskip}).

\komentoi{setlength}
\komentoi{fbox}
\komentoi{strut}
\mittai{fboxsep}
\begin{koodilohkosis}
\setlength{\fboxsep}{0bp}
\fbox{\strut sana} \fbox{\strut kirja} \fbox{\strut Ă}
\end{koodilohkosis}

\begin{tulossis}
  \setlength{\fboxsep}{0bp}
  \fbox{\strut sana} \fbox{\strut kirja} \fbox{\strut Ă}
\end{tulossis}

\subsection{Suuret laatikot}
\label{luku/laatikot-isot}

Jos laatikon tĂ¤ytyy sisĂ¤ltĂ¤Ă¤ useita tekstikappaleita tai muuta
pystysuuntaista sisĂ¤ltĂśĂ¤, tarvitaan esimerkiksi \komento{parbox}\-/
komentoa. Se tarvitsee ainakin kaksi argumenttia: laatikon leveyden ja
sisĂ¤llĂśn.

\komentoi{parbox}
\begin{koodilohkosis}
\parbox{leveys}{sisĂ¤ltĂś}
\end{koodilohkosis}

\noindent
\komento{parbox}\-/ laatikon sisĂ¤llĂ¤ teksti ladotaan samoin kuin teksti
normaalistikin eli rivit katkaistaan sanavĂ¤lien kohdalta ja
mahdollisesti tavutuskohdista. Muutkin tekstikappaleen asetukset
pĂ¤tevĂ¤t, ja asetukset voi mĂ¤Ă¤rittĂ¤Ă¤ haluamikseen laatikon sisĂ¤llĂ¤.
LisĂ¤tietoa tekstikappaleista on luvussa \ref{luku/kappale}.

Komento \komento{parbox} hyvĂ¤ksyy myĂśs yhden, kaksi tai kolme
valinnaista argumenttia. NiillĂ¤ mĂ¤Ă¤ritellĂ¤Ă¤n laatikon pystysuuntainen
sijoittelu ympĂ¤ristĂśĂśnsĂ¤ nĂ¤hden, laatikon korkeus ja laatikon sisĂ¤llĂśn
pystysuuntainen sijoittelu. Valinnaiset argumentit toimivat seuraavasti:

\komentoi{parbox}
\begin{koodilohkosis}
\parbox[sijainti]{leveys}{sisĂ¤ltĂś}
\parbox[sijainti][korkeus]{leveys}{sisĂ¤ltĂś}
\parbox[sijainti][korkeus][sisĂ¤sijainti]{leveys}{sisĂ¤ltĂś}
\end{koodilohkosis}

\noindent
Argumentti \koodi{sijainti} on kirjain \koodi{c} (\englanti{center},
keskilinja), \koodi{t} (\englanti{top}, ylĂ¤linja) tai \koodi{b}
(\englanti{bottom}, alalinja). NĂ¤illĂ¤ mĂ¤Ă¤ritetĂ¤Ă¤n, miten laatikko
sijoitetaan pystysuunnassa suhteessa tekstiin. Seuraava esimerkki
havainnollistaa ensimmĂ¤isen valinnaisen argumentin toimintaa. Laatikon
sisĂ¤llĂ¤ on rivinvaihtokomentoja (\komento{\keno}) ja kolme tekstiriviĂ¤.

\komentoi{parbox}
\begin{koodilohkosis}
abc \parbox[c]{1em}{1 \\ 2 \\ 3}
abc \parbox[t]{1em}{1 \\ 2 \\ 3}
abc \parbox[b]{1em}{1 \\ 2 \\ 3} abc
\end{koodilohkosis}

\begin{tulossis}
  abc \parbox[c]{1em}{1 \\ 2 \\ 3}
  abc \parbox[t]{1em}{1 \\ 2 \\ 3}
  abc \parbox[b]{1em}{1 \\ 2 \\ 3} abc
\end{tulossis}

\noindent
Komennon toinen valinnainen argumentti \koodi{korkeus} mĂ¤Ă¤rittĂ¤Ă¤
laatikon korkeuden. Oletuksena korkeus mĂ¤Ă¤rĂ¤ytyy sisĂ¤llĂśn korkeuden
mukaan, mutta tĂ¤llĂ¤ argumentilla korkeus asetetaan kiinteĂ¤sti. Se voi
olla hyĂśdyllistĂ¤ varsinkin silloin, kun sisĂ¤ltĂś halutaan tasata laatikon
sisĂ¤llĂ¤ ylĂśs, keskelle tai alas.

Kolmas valinnainen argumentti \koodi{sisĂ¤sijainti} nimittĂ¤in asettaa
laatikon sisĂ¤llĂśn pystysuuntaisen tasauksen. Argumentiksi annetaan
kirjain \koodi{c} (\englanti{center}, keskelle), \koodi{t}
(\englanti{top}, ylĂśs), \koodi{b} (\englanti{bottom}, alas) tai
\koodi{s} (\englanti{stretch}, ylĂśs ja alas). Viimeksi mainittu eli ylĂśs
ja alas tasaaminen vaatii, ettĂ¤ laatikon sisĂ¤llĂ¤ on venyviĂ¤
pystysuuntaisia vĂ¤lejĂ¤. NiitĂ¤ kĂ¤sitellĂ¤Ă¤n luvussa
\ref{luku/venyvĂ¤t-mitat}.

YmpĂ¤ristĂś \ymparisto{minipage} vastaa toiminnallisesti
\komento{parbox}\-/ komentoa. Se hyvĂ¤ksyy tĂ¤smĂ¤lleen samat argumentit.
Erona on se, ettĂ¤ \ymparisto{minipage}\-/ ympĂ¤ristĂśn sisĂ¤llĂ¤ voi kĂ¤yttĂ¤Ă¤
laatikon omia alaviitteitĂ¤ (luku \ref{luku/alaviitteet}), jotka ladotaan
laatikon alaosaan.

\ymparistoi{minipage}
\begin{koodilohkosis}
\begin{minipage}[sijainti][korkeus][sisĂ¤sijainti]{leveys}
  ...
\end{minipage}
\end{koodilohkosis}

\subsection{Laatikoiden siirtely}

Komennolla \komento{raisebox} voi latoa laatikon tekstin ylemmĂ¤s tai
alemmas kuin se normaalisti sijoittuisi. Komennon ensimmĂ¤inen argumentti
on etĂ¤isyysmitta, kuinka paljon ylemmĂ¤s teksti ladotaan. Negatiivinen
mitta vie tekstin alemmas. Toinen argumentti on laatikon teksti.

\komentoi{raisebox}
\begin{koodilohkosis}
\raisebox{etĂ¤isyysmitta}{teksti}
\end{koodilohkosis}

\noindent
Argumentissa \koodi{etĂ¤isyysmitta} voi kĂ¤yttĂ¤Ă¤ apuna mittoja
\mitta{width}, \mitta{height}, \mitta{depth} ja \mitta{totalheight},
joiden merkitys on sama kuin \komento{makebox}\-/ komennolla (luku
\ref{luku/laatikot-pienet}). \komento{raisebox}\-/ komennolle voi antaa
yhden tai kaksi valinnaista argumenttia, joilla mĂ¤Ă¤ritellĂ¤Ă¤n laatikolle
uusi korkeus ja syvyys. Molemmat ovat mittoja, ja ne korvaavat siirretyn
laatikon tekstin luonnollisen korkeuden ja syvyyden. Komennon argumentit
annetaan seuraavasti:

\komentoi{raisebox}
\begin{koodilohkosis}
\raisebox{etĂ¤isyysmitta}[korkeus]{teksti}
\raisebox{etĂ¤isyysmitta}[korkeus][syvyys]{teksti}
\end{koodilohkosis}

\noindent
Grafiikkaan kuten kuviin ja vĂ¤reihin erikoistunut paketti
\pakettictan{graphicx} sisĂ¤ltĂ¤Ă¤ hyĂśdyllisiĂ¤ laatikkokomentoja:
\komento{scalebox}, \komento{resizebox} ja \komento{rotatebox}. Komento
\komento{scalebox} skaalaa tekstin eri kokoiseksi vaaka- tai
pystysuunnassa.

\komentoi{scalebox}
\begin{koodilohkosis}
\scalebox{vaakaskaalaus}[pystyskaalaus]{teksti}
\end{koodilohkosis}

\noindent
Argumentit \koodi{vaakaskaalaus} ja \koodi{pystyskaalaus} ovat
kertoimia. Pystysuuntainen skaalausargumentti on valinnainen: jos sen
jĂ¤ttĂ¤Ă¤ pois, pystysuuntainen skaalaus on samansuuruinen kuin
vaakasuuntainen. Negatiivisella kertoimella voi kĂ¤Ă¤ntĂ¤Ă¤ tekstin
toisinpĂ¤in.

\komentoi{scalebox}
\begin{koodilohkosis}
\scalebox{2}[1]{leveĂ¤} \scalebox{-1}[1]{kĂ¤Ă¤nnetty}
\end{koodilohkosis}

\begin{tulossis}
  \scalebox{2}[1]{leveĂ¤} \scalebox{-1}[1]{kĂ¤Ă¤nnetty}
\end{tulossis}

\noindent
Samantapainen skaalaustoiminto saadaan myĂśs komennolla
\komento{resizebox}. Sen argumentiksi ei anneta kertoimia vaan mittoja,
eli teksti skaalataan annettuihin mittoihin.

\komentoi{resizebox}
\komentoi{resizebox*}
\begin{koodilohkosis}
\resizebox {vaakamitta}{pystymitta}{teksti}
\resizebox*{vaakamitta}{pystymitta}{teksti}
\end{koodilohkosis}

\noindent
Komennon \komentoi{resizebox} normaali versio kĂ¤sittelee
\koodi{pystymitta}\-/ argumentin siten, ettĂ¤ se tulee olemaan tekstin
korkeus eli kirjainten peruslinjan ylĂ¤puolinen osa. Komennon
\komentoi{resizebox*} tĂ¤hdellinen versio puolestaan toimii siten, ettĂ¤
pystymitta on tekstin kokonaiskorkeus eli peruslinjan ylĂ¤puolinen osa
(korkeus) ja alapuolinen osa (syvyys) yhdessĂ¤. Kuva
\ref{kuva/kirjainmitat} (s.~\pageref{kuva/kirjainmitat}) havainnollistaa
asiaa. \komento{resizebox}\-/ komennon argumenteissa voi kĂ¤yttĂ¤Ă¤ apuna
mittoja \mitta{width}, \mitta{height}, \mitta{depth} ja
\mitta{totalheight} samoin kuin \komento{makebox}\-/ komennossa (luku
\ref{luku/laatikot-pienet}).

Laatikoiden pyĂśrittely kĂ¤y \komento{rotatebox}\-/ komennolla. Sen
argumentiksi tĂ¤ytyy antaa ainakin kĂ¤Ă¤ntĂśkulma asteina ja kĂ¤Ă¤nnettĂ¤vĂ¤
teksti.

\komentoi{rotatebox}
\begin{koodilohkosis}
\rotatebox[asetuksia]{kĂ¤Ă¤ntĂśkulma}{teksti}
\end{koodilohkosis}

\noindent
Valinnainen argumentti \koodi{asetuksia} voi sisĂ¤ltĂ¤Ă¤ asetusvalitsimia
ja niiden arvoja. TĂ¤rkein valitsin on \koodi{origin}, jolla mĂ¤Ă¤ritetĂ¤Ă¤n
kĂ¤Ă¤nnettĂ¤vĂ¤n tekstin kĂ¤Ă¤ntĂśpiste. Valitsimen arvoksi annetaan yksi tai
kaksi seuraavista kirjaimista: \koodi{c} (\englanti{center}, keski),
\koodi{l} (\englanti{left}, vasen), \koodi{r} (\englanti{right}, oikea),
\koodi{t} (\englanti{top}, ylĂ¤), \koodi{b} (\englanti{bottom}, ala) tai
\koodi{B} (\englanti{baseline}, peruslinja).

\komentoi{rotatebox}
\begin{koodilohkosis}
\rotatebox[origin=l] {25}{ylĂ¤mĂ¤ki}
\rotatebox[origin=r]{-25}{alamĂ¤ki}
\end{koodilohkosis}

\begin{tulossis}
  \rotatebox[origin=l] {25}{ylĂ¤mĂ¤ki}
  \rotatebox[origin=r]{-25}{alamĂ¤ki}
\end{tulossis}

\noindent
\komento{rotatebox}\-/ komennon valinnaisen argumentin valitsin
\koodi{units} mĂ¤Ă¤rittelee kĂ¤ytetyn kulmayksikĂśn. Valitsimelle annetaan
arvoksi tĂ¤ysympyrĂ¤n yksikkĂśmĂ¤Ă¤rĂ¤, ja oletusasetus on \koodi{units=\katk
  360}. Jos haluaa kĂ¤yttĂ¤Ă¤ radiaaneja, sopiva asetus on
\koodi{units=\katk 6.283185} (2Ď\,rad).

\section{Tekstin ja laatikoiden vĂ¤rit}
\label{luku/vĂ¤rit}

Latexiin saa vĂ¤rit \pakettictan{xcolor}\-/ paketin
avulla.\footnote{Toinen vaihtoehto on yksinkertaisempi vĂ¤ripaketti
  \paketti{color}, joka sisĂ¤ltĂ¤Ă¤ vĂ¤rien kĂ¤sittelyn perustoiminnot.} Se
tarjoaa muun muassa komentoja, joilla tekstin vĂ¤riĂ¤, tekstin taustavĂ¤riĂ¤
tai sivun taustavĂ¤riĂ¤ (luku \ref{luku/sivun-vĂ¤ri}) voi muuttaa. LisĂ¤ksi
paketti sisĂ¤ltĂ¤Ă¤ vĂ¤rien sekoittamiseen ja muuntamiseen liittyvĂ¤Ă¤
tekniikkaa. Paketin komentojen avulla voi myĂśs vĂ¤rittĂ¤Ă¤ taulukoiden
(luku \ref{luku/taulukot}) rivit vuorottelevin vĂ¤rein.

Omassa dokumentissa kĂ¤ytettĂ¤vĂ¤t vĂ¤rit on hyvĂ¤ mĂ¤Ă¤ritellĂ¤ alussa.
MĂ¤Ă¤rittely tarkoittaa sitĂ¤, ettĂ¤ annetaan vĂ¤reille nimet -- esimerkiksi
kĂ¤yttĂśtarkoituksen mukaan -- ja myĂśhemmin lĂ¤hdedokumentissa viitataan
vĂ¤reihin kĂ¤yttĂ¤mĂ¤llĂ¤ alussa mĂ¤Ă¤riteltyjĂ¤ nimiĂ¤. NĂ¤in vĂ¤ri on mĂ¤Ă¤ritelty
yhdessĂ¤ paikassa ja sen muuttaminen on myĂśhemmin helppoa. On kyllĂ¤
mahdollista kĂ¤yttĂ¤Ă¤ vĂ¤rejĂ¤ ilman etukĂ¤teismĂ¤Ă¤rittelyĂ¤kin.

\leijutlk{
  \providecommand{\rivi}{}
  \renewcommand{\rivi}[3]{\koodi{#1} &amp; #2 &amp; \koodi{#3}
    &amp; \textcolor[#1]{#3}{\rule{.9em}{.9em}} \\}
  \begin{tabular}{llll}
    \toprule
    \ots{Malli}
    &amp; \ots{Parametrit}
    &amp; \multicolumn{2}{l}{\ots{Esimerkki}} \\
    \midrule
    \rivi{rgb}{punainen, vihreĂ¤, sininen}{1,.7,.3}
    \rivi{HTML}{punainen vihreĂ¤ sininen}{33aaf3}
    \rivi{cmyk}{syaani, magenta, keltainen, musta}{.1,1,.5,0}
    \rivi{hsb}{sĂ¤vy, kyllĂ¤isyys, kirkkaus}{.2,1,.6}
    \rivi{gray}{harmaa}{.55}
    \bottomrule
  \end{tabular}
}{
  \caption{Erilaisia vĂ¤rimalleja ja niiden parametreja
    \paketti{xcolor}\-/ paketissa}
  \label{tlk/vĂ¤rimalleja}
}

Omat vĂ¤rit mĂ¤Ă¤ritellĂ¤Ă¤n komennolla \komento{definecolor}. Se tarvitsee
kolme argumenttia: vĂ¤rin nimen, vĂ¤rimallin ja vĂ¤rin parametrit. Komennon
argumenttien rakenne on seuraavanlainen:

\komentoi{definecolor}
\begin{koodilohkosis}
\definecolor{nimi}{vĂ¤limalli}{parametrit}
\end{koodilohkosis}

\noindent
Komennon argumentti \koodi{nimi} on kirjoittajan itse valitsema nimi, ja
se voi liittyĂ¤ esimerkiksi vĂ¤rin kĂ¤yttĂśtarkoitukseen (''otsikko'') tai
vĂ¤rin yleiseen nimeen (''keltainen''). Argumentti \koodi{vĂ¤ri\-malli}
tarkoittaa vĂ¤rin ilmaisemisen tapaa. NiitĂ¤ on useita erilaisia, mutta
yleisimmĂ¤t on koottu taulukkoon \ref{tlk/vĂ¤rimalleja}.

Eri vĂ¤rimalleilla on eri mĂ¤Ă¤rĂ¤ parametreja, joilla ilmaistaan vĂ¤rin
ominaisuuksia. Kunkin parametrin arvo on yleensĂ¤ desimaaliluku 0\==1,
mutta \koodi{HTML}\-/ vĂ¤rimallissa parametrit ilmaistaan yhtenĂ¤ kolmen
kaksinumeroisen heksadesimaaliluvun sarjana \textsc{html}\-/
merkintĂ¤kielen tavoin. VĂ¤rin parametrit kirjoitetaan komennon
argumenttiin \koodi{para\-metrit} ja ne erotetaan toisistaan pilkulla.
Taulukon \ref{tlk/vĂ¤rimalleja} Esimerkki\-/sarakkeessa on parametrien
antamisesta esimerkki. Muista vĂ¤rimalleista voi lukea
\paketti{xcolor}\-/ paketin ohjekirjasta.

Kun vĂ¤rit on mĂ¤Ă¤ritelty, niitĂ¤ voi kĂ¤yttĂ¤Ă¤ eri komentojen yhteydessĂ¤.
Tekstin vĂ¤ri vaihdetaan toiseksi komennolla \komento{color}, josta on
kaksi erilaista versiota. Komento vaihtaa vĂ¤rin pysyvĂ¤sti nykyisen
ympĂ¤ristĂśn (luku \ref{luku/ympĂ¤ristĂśt}) tai aaltosulkeilla (luku
\ref{luku/aaltosulkeet}) rajatun alueen sisĂ¤llĂ¤.

\komentoi{color}
\begin{koodilohkosis}
\color{nimi}                  % vĂ¤riksi ennalta mĂ¤Ă¤ritelty ânimiâ
\color[vĂ¤rimalli]{parametrit} % vĂ¤rimallin ja parametrien avulla
\end{koodilohkosis}

\noindent
Toinen vaihtoehto on kĂ¤yttĂ¤Ă¤ komentoa \komento{textcolor}, jolle
annetaan edelliseen verrattuna vielĂ¤ yksi argumentti lisĂ¤Ă¤. Argumenttina
on teksti, johon vĂ¤rin halutaan vaikuttavan. Vaikutusalueena on siis
vain kyseinen teksti.

\komentoi{textcolor}
\begin{koodilohkosis}
\textcolor{nimi}{teksti}
\textcolor[vĂ¤rimalli]{parametrit}{teksti}
\end{koodilohkosis}

\noindent
Tekstin taustavĂ¤ri vaihdetaan komennoilla \komento{colorbox} ja
\komento{fcolorbox}. Komennot luovat pienen laatikon (luku
\ref{luku/laatikot-pienet}), jonka sisĂ¤llĂ¤ taustavĂ¤ri on voimassa. Ensin
mainittu komento vaihtaa vain taustavĂ¤rin, ja jĂ¤lkimmĂ¤inen sisĂ¤ltĂ¤Ă¤
lisĂ¤ksi vĂ¤rillisen kehyksen, eli sille mĂ¤Ă¤ritellĂ¤Ă¤n kaksi vĂ¤riĂ¤.

\begin{koodilohkosis}
\colorbox{nimi}{teksti} % taustavĂ¤riksi ennalta mĂ¤Ă¤ritelty ânimiâ
\colorbox[vĂ¤rimalli]{parametrit}{teksti}
\fcolorbox{nimi/kehys}{nimi/tausta}{teksti}
\fcolorbox[vĂ¤rimalli]{parametrit/kehys}{parametrit/tausta}{teksti}
\end{koodilohkosis}

\noindent
Kehystetyn laatikon kehysviivan leveys on mitassa \mitta{fboxrule} ja
kehyksen etĂ¤isyys sisĂ¤llĂśstĂ¤ mitassa \mitta{fboxsep}. Seuraavassa on
esimerkki useiden edellĂ¤ mainittujen komentojen kĂ¤ytĂśstĂ¤. TĂ¤stĂ¤ tuskin
kannattaa ottaa mallia vakavaan typografiseen tyĂśhĂśn.

\komentoi{colorbox}
\komentoi{color}
\komentoi{definecolor}
\komentoi{fcolorbox}
\komentoi{setlength}
\komentoi{textcolor}
\mittai{fboxrule}
\mittai{fboxsep}
\begin{koodilohkosis}
\definecolor{pun}{rgb}{1,.2,.2}
\setlength{\fboxrule}{2bp} \setlength{\fboxsep}{1bp}
\fcolorbox[gray]{.4}{.2}{\color[gray]{1}TekstiĂ¤}
\textcolor{pun}{voi korostaa} \colorbox{pun}{vĂ¤reillĂ¤}.
\end{koodilohkosis}

\begin{tulossis}
  \definecolor{pun}{rgb}{1,.2,.2}
  \setlength{\fboxrule}{2bp} \setlength{\fboxsep}{1bp}
  \fcolorbox[gray]{.4}{.2}{\color[gray]{1}TekstiĂ¤}
  \textcolor{pun}{voi korostaa} \colorbox{pun}{vĂ¤reillĂ¤}.
\end{tulossis}
</pre></body></html>