- CS-A0100
- Tekstin ladontaa LaTeXilla
- 2 Suomenkielisen tekstin ladonta
Suomenkielisen tekstin ladonta¶
Siirrytään nyt suomenkieliseen tekstiin; otetaan pätkä Aleksis Kiven teoksesta ”Seitsemän veljestä” (koko kirja on vapaasti saatavilla Projekti Lönnrot-palvelussa; e-kirjan ovat tuottaneet Riikka Talonpoika, Tapio Riikonen ja Projekti Gutenbergin DP oikolukijat).
Heikko yritys¶
Yritetään samaan tapaan kuin englanninkielisen tekstin kohdalla. Valitaan taas A4-paperikoko ja esimerkin vuoksi 11 pisteen fontti:
\documentclass[a4paper,11pt]{article}
\begin{document}
Siitä seuraavana päivänä he lähettivät veli Eeron astelemaan
oppiretkellensä, varustettuna vahvasti. Tuohikontti seljässä, haarapussi
olalla ja aapiskirja poijussa läksi hän vaeltamaan kohden jahtivoudin
asuntoa. Mutta muut hankkivat itsellensä kuokkia ja rautalapioita ja
rupesivat kuokkimaan pelloksi ahoa heidän pirttinsä ympärillä. Päivä
päivältä lisääntyi siihen yhä enemmin ja enemmin turpeiksi pienennettyä
maata; ja niin puolainvarsille ja kissankääpille rakettiin ikuinen
hauta. Mutta koska olivat kuokkineet ahon pinnasta valtaisen piirin,
arvaten siinä olevan kyllin kylvö-alaa seitsemän miehen elannoksi,
siirtyivät he aholta korpeen alas ja rupesivat raivaamaan nutuksi
satavuotista kuusistoa, joka torkkuen seisoi alapuolella ahoa,
käärittynä sammaleiseen turkkiin. Silloin taasen kirves kajahteli
ympäri, ja rytinällä kaatui kuusi kosteiseen maahan. Kuuset he karsivat,
kokosivat oksat kasoihin, vedettäviksi talvella talon tarhaan, mutta
hirret kantoivat he ylös kantoiselle aholle uuden riihen ja ometan
rakennuspuiksi. Silloinpa kantaessa miehet vakaasti astelivat toinen
toisensa jäljessä; ja kuudella lujalla olkapäällä lepäsi jykevä hirsi.
Mutta tultuansa ylös töyrylle, laskivat he, Juhanin huudon mukaan,
yht'aikaa taakkansa alas, ja putosi hirsi jyrinällä, että maa tömähti,
ja kohahtaen vastasi korpi. Niin, laajeni heidän niittunsa korven
rannalta yhä kauemmas päivään päin, ja niin saivat he aineita rakettavia
huoneita varten.
\end{document}
Lopputulos näyttää aika kamalalta:

Pahiten pistää silmään sana "aapiskirja", joka ulottuu pitkälle yli oikean marginaalin reunojen. Eikö tämä nyt olisi ollut helppo tavuttaa? Ja kun tarkemmin dokumenttia tutkii, huomaa, että tavutus on tosiaan pielessä: LaTeX on jakanut sanan "enemmin" kahdelle riville muodossa "en-emmin", mikä ei millään tapaa ole suomen kielen mukaista.
pdflatex: Yritä kääntää em. dokumentti normaaliin tapaan komennolla pdflatex -interaction=nonstopmode lapio.tex
. Käännöksen pitäisi onnistua normaalisti, mutta kun tarkasti katsot LaTeXin tuottamia viestejä, näet ilmoituksen Overfull \hbox (16.67035pt too wide) in paragraph at lines 3--25
. Tämä on LaTeXin tapa kertoa, että se ei onnistunut mitenkään mahduttamaan tekstiä marginaaleihin, vaan teksti meni reunojen ulkopuolelle. Nyt tämän ongelman näki helposti silmälläkin, mutta pikkuruiset marginaalin yritykset huomaa lähinnä vain LaTeXin tulostamia viestejä lukemalla.
Overleaf: Kokeile kopioida lähdekoodi Overleafiin ja käännä se. Overleafin pitäisi näyttää lähdekoodin vasemmassa marginaalissa varoituskolmio, ja kun siirrät hiiren varoituskolmion päälle, näet jälleen varoituksen Overfull \hbox
.
Kieliasetukset¶
Tärkein ongelma on se, että LaTeX olettaa, että teksti on kirjoitettu englanniksi, ja yrittää tavuttaa sitä englannin tavutussääntöjen mukaan. Mutta tähän liittyy toinenkin ongelma, jossa näkyy LaTeXin historiallinen painolasti: LaTeXin tavutusmoottori ei oletuksena pysty käsittelemään sellaisia erikoismerkkejä kuin ä ja ö, joita suomenkielinen teksti on täynnä. Tarvitaan tämän korjaamiseksi kaksi komentoa:
\usepackage[finnish]{babel}
: kerrotaan LaTeXille, että dokumentti on kirjoitettu suomeksi, ja esimerkiksi tavutussäännöt tulisi valita sen mukaisesti.\usepackage[T1]{fontenc}
: kerrotaan LaTeXille, että sen tulisi sisäisesti käsitellä erikoismerkkejä kuten ä ja ö sellaisessa muodossa, että myös ääkkösiä sisältävät sanat pystytään tavuttamaan oikein.
Tässä vaiheessa tietysti hyvä kysymys on se, miksi \usepackage[T1]{fontenc}
pitää käyttäjän osata itse kirjoittaa; eikö tämä voisi olla oletuksena päällä? Ilmeisesti tämä olisi liian radikaali muutos ja rikkoisi muinaisten LaTeX-dokumenttien toimivuuden, joten me suomalaiset joudumme muistamaan jatkossakin tämän kummallisen komennon lisäämisen.
Näillä korjauksilla dokumentti olisi tällainen:
\documentclass[a4paper,11pt]{article}
\usepackage[finnish]{babel}
\usepackage[T1]{fontenc}
\begin{document}
Siitä seuraavana päivänä he lähettivät veli Eeron astelemaan
oppiretkellensä, varustettuna vahvasti. Tuohikontti seljässä, haarapussi
olalla ja aapiskirja poijussa läksi hän vaeltamaan kohden jahtivoudin
asuntoa. Mutta muut hankkivat itsellensä kuokkia ja rautalapioita ja
rupesivat kuokkimaan pelloksi ahoa heidän pirttinsä ympärillä. Päivä
päivältä lisääntyi siihen yhä enemmin ja enemmin turpeiksi pienennettyä
maata; ja niin puolainvarsille ja kissankääpille rakettiin ikuinen
hauta. Mutta koska olivat kuokkineet ahon pinnasta valtaisen piirin,
arvaten siinä olevan kyllin kylvö-alaa seitsemän miehen elannoksi,
siirtyivät he aholta korpeen alas ja rupesivat raivaamaan nutuksi
satavuotista kuusistoa, joka torkkuen seisoi alapuolella ahoa,
käärittynä sammaleiseen turkkiin. Silloin taasen kirves kajahteli
ympäri, ja rytinällä kaatui kuusi kosteiseen maahan. Kuuset he karsivat,
kokosivat oksat kasoihin, vedettäviksi talvella talon tarhaan, mutta
hirret kantoivat he ylös kantoiselle aholle uuden riihen ja ometan
rakennuspuiksi. Silloinpa kantaessa miehet vakaasti astelivat toinen
toisensa jäljessä; ja kuudella lujalla olkapäällä lepäsi jykevä hirsi.
Mutta tultuansa ylös töyrylle, laskivat he, Juhanin huudon mukaan,
yht'aikaa taakkansa alas, ja putosi hirsi jyrinällä, että maa tömähti,
ja kohahtaen vastasi korpi. Niin, laajeni heidän niittunsa korven
rannalta yhä kauemmas päivään päin, ja niin saivat he aineita rakettavia
huoneita varten.
\end{document}
Nyt lopputulos näyttää jo paljon paremmalta; yksikään rivi ei ole ylipitkä:

Kun dokumentin alkuun vielä lisätään \usepackage{microtype}
, tulos alkaa näyttää hyvinkin huolitulta:

Harjoitus¶
Aleksis Kiven teksti jatkuu näin:
Eero teki myös ahkerasti työtä oppiaksensa lukemaan, ja nopeasti edistyi hänen taitonsa. Lauvantai-iltoina palasi hän kotiansa tyhjillä pusseilla; mutta seuraavana maanantaina läksi hän taasen, seljässä täytetty kontti ja olalla pullea haaralaukku, läksi kouluun, aapiskirja povessa. Niin kului syksy, talvi läheni, ja veljekset heittivät sekä pellot että niitut lepoon seuraavaksi kevääksi ja riensivät hankkimaan muonaa niin elikoille kuin itsellensä. Syksyn koleissa metsissä he kaalailivat ristiin, rastiin koirinensa, tehden veristä niitosta; ja alas suon rannalle kohosi taasen korkea heinäsuova vanhaa Valkoa varten.
Luo nyt dokumentti, jossa on molemmat tekstikappaleet kauniisti aseteltuna, A4-paperilla (asetus a4paper
). Käytetään tällä kertaa 10 pisteen fonttia (10pt
). Muista ladata sekä babel
-paketti että fontenc
-paketti, jotta suomen kielen tavutus toimii oikein. Lataa myös microtype
-paketti. Aseta \title
-komennolla dokumentin otsikoksi "Seitsemän veljestä", \author
-komennolla kirjoittajaksi "Aleksis Kivi" ja \date
-komennolla tekstin päiväykseksi vuosi 1891, jolloin tässä käytetty painos ilmestyi. Lisää tekstin alkuun \maketitle
-komento, joka asettelee otsikon. Lopputuloksen pitäisi näyttää nyt tarkalleen tältä:

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.
Lähdekoodin muotoilusta¶
LaTeX ei juurikaan piittaa siitä, miten teksti on aseteltu lähdetiedostossa. Voit käyttää rivinvaihtoja ja välilyöntejä varsin vapaasti. Lopputulos näyttää täsmälleen samalta, vaikka vaihdat yhden välilyönnin tilalle kaksi, lisäät rivien alkuun tai loppuun välilyöntejä tai vaihdat yhden välilyönnin paikalle rivinvaihdon. Kokeile! Overleafissa näet erilaisten muutosten vaikutuksen helposti saman tien. Muista kuitenkin, että kokonaan tyhjä rivi (eli kaksi peräkkäistä rivinvaihtoa) merkitsee LaTeXissa kappaleenvaihtoa.
LaTeX-lähdekoodin muotoiluun on eri tyylejä: jotkut kirjoittavat yhden tekstikappaleen lähdekoodiin yhtenä pitkänä rivinä, toiset taas jakavat pitkän kappaleen lähdekoodissa useammalle riville esimerkiksi virkkeen rajalta. Eri tyyleillä on hiukan vaikutusta esimerkiksi siihen, miten helposti tulee versionhallintajärjestelmien kanssa käsityötä vaativia konflikteja, jos useampi kirjoittaja muokkaa tekstiä samanaikaisesti.
Kommentteja voit kirjoittaa LaTeX-lähdekoodiin erikoismerkin %
jälkeen. LaTeX jättää huomiotta kaikken sen, mitä tiedostossa on %
-merkin perässä, mukaanlukien rivinvaihdon. Kokeile kääntää tämä tiedosto:
\documentclass[a4paper,11pt]{article}
\usepackage[finnish]{babel}
\usepackage[T1]{fontenc}
\usepackage{microtype}
\begin{document}
Lapi% ensimmäinen kommentti
ollinen % toinen kommentti
santaa
\end{document}