Dokumentin jakaminen tiedostoihin

Latex-dokumentit koostuvat yleensä useasta tiedostosta. Tällöin yksi tiedostoista on päätiedosto, loput alitiedostoja. Päätiedosto on se tiedosto, joka käännetään pdf-dokumentiksi. Alitiedostot voivat olla esimerkiksi tyyli- tai kuvatiedostoja, mutta ne voivat sisältää myös osia tekstistä. Tyylitiedostoja käsitellään alempana ja kuvatiedostojen liittämiseen palataan myöhemmässä luvussa.

Laajoja dokumentteja kuten opinnäytetöitä tai kirjoja kirjoittaessa kannattaa itse leipätekstikin jakaa useampaan tiedostoon esimerkiksi luvuittain. Tällöin dokumentin muokkaaminen on helpompaa, kun voi keskittyä yhteen osaan kerrallaan. Liitettävät tekstitiedostot ovat tavallisia .tex-päätteisiä lähdetiedostoja, ja niillä voi olla myös omia alitiedostojaan. Tekstitiedosto liitetään päätiedostoon \input-komennolla.

Ohessa on kaaviokuva erään dokumentin tiedostorakenteesta.

Seuraavassa esimerkissä on kuvan päätiedoston dokumentti.tex sisältö. Huomaa, miten yksinkertainen päätiedoston rakenne on. (Esimerkki ei käänny Overleafissa, koska se viittaa alitiedostoihin.)

Alla on vielä alitiedostojen sisällöt. Ensin luku1.tex:

\section{Ensimmäinen luku}

Tämä luku on tiedostossa ''luku1.tex''. Omat matematiikkakomennot toimivat: $\pi\in\R$, $\syt(8,12)=4$.

\begin{center}
\includegraphics{kuva1.png}
\hspace{1cm}
\includegraphics{kuva2.png}
\end{center}
Sitten luku2.tex:
\section{Toinen luku}

Tämä luku on tiedostossa ''luku2.tex''. Myös enumitem-pakkaus on ladattu:
\begin{enumerate}[label=(\roman*)]
\item ensimmäinen kohta
\item toinen kohta
\end{enumerate}

\begin{center}
\includegraphics{kuva3.png}
\end{center}

Pakkaukset eli tyylitiedostot

Pakkaukset ovat Latexin lisäosia. Ne sisältävät johonkin käyttötarkoitukseen liittyviä uusien komentojen ja ympäristöjen määrittelyjä. Käytännössä pakkaus on yleisimmin .sty-tiedostopäätteellä varustettu tiedosto. Tällaista pakkausta nimitetään myös tyylitiedostoksi. (Jotkut kutsuvat pakkauksiksi myös eri dokumenttityyppien määrittelyjä sisältäviä .cls-päätteisiä tiedostoja.)

Pakkausten tarkoitus on helpottaa dokumentin lähdekoodin hallintaa. Kun usein käytettävät komennot määritellään erillisessä tiedostossa, niitä ei tarvitse määritellä uudestaan jokaisen dokumentin esittelyosassa. Riittää kun valitsee haluamansa pakkaukset ja kutsuu näitä dokumentin esittelyosassa komennolla \usepackage. Tästä on nähty esimerkkejä jo aiemmissa luvuissa. Pakkauksia kutsuttaessa .sty-tiedostopäätettä ei kirjoiteta näkyviin.

Latexin käyttäjälle muodostuu yleensä melko pian lista pakkauksista, joita hän kutsuu kaikkien dokumenttiensa esittelyosassa. Tällaisia pakkauksia ovat esimerkiksi kieliasetukset sekä AMS-matematiikkapakkaukset. Näitä pakkauskutsuja varten kannattaa laatia oma tyylitiedosto. Samassa tyylitiedostossa voi määritellä omia usein tarvitsemiaan komentoja. Dokumentin esittelyosassa tarvitsee tällöin kutsua vain omaa tyylitiedostoa, joka sisältää tavallisimmat pakkauskutsut ja komentojen määrittelyt, sekä mahdollisesti muutamaa lisäpakkausta. Tämä tekee lähdekoodista tiiviimpää ja helppolukuisempaa.

Seuraavassa on yllä olevassa esimerkissä kutsutun omatyyli.sty-tiedoston sisältö:

% kieliasetukset suomelle
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[finnish]{babel}

% kuvien lisäämistä varten
\usepackage{graphicx}

% matematiikkapakkaukset
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}

% luetelmien muotoiluun
\usepackage{enumitem}

% lyhennyskomentoja lukujoukkojen kirjoittamiseen
\newcommand{\N}{\mathbb{N}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\C}{\mathbb{C}}

% omia matematiikkaoperaattoreita
\DeclareMathOperator{\syt}{syt}

Pakkauksia käytettäessä ja varsinkin omaa tyylitiedostoa laadittaessa kannattaa kirjoittaa pakkausten yhteyteen kommentteina, mitä mikin pakkaus tekee. Tällöin on helpompaa myöhemmin jättää pois ne pakkaukset, joita ei haluakaan käyttää tai jotka eivät toimi oikein.

Suurin osa normaalikäytössä tarvittavista pakkauksista on saatavilla automaattisesti, kun Latex-järjestelmä on asennettu tietokoneelle. On myös olemassa pakkauksia, jotka eivät sisälly Latexin perusversioon. Näitä voi löytää verkosta ja ladata lisäosina omalle koneelle. Yleensä riittää, kun pakkausta vastaava .sty-tiedosto lisätään samaan kansioon dokumentin lähdekoodin kanssa. Monimutkaisempaan pakkausten asentamiseen ei tässä ohjeessa syvennytä.

Pakkauksien käyttöön löytyy ohjeita verkosta. Toisinaan jotkin pakkaukset ovat ristiriidassa keskenään: kahdessa eri pakkauksessa voidaan yrittää määritellä uudelleen samoja komentoja. Tällaisissa tapauksissa pakkaukset eivät toimi toivotulla tavalla ja Latex voi antaa kääntäessä virheilmoituksen. Ristiriitatilanteet on yleensä dokumentoitu kyseisten pakkauksien ohjeisiin, mutta apua löytyy yleensä helposti myös syöttämällä Latexin virheilmoitus johonkin hakukoneeseen.

Yleisimmin käytettyjä pakkauksia

Alla on taulukko eräistä yleisimmin käytettävistä pakkauksista.

PakkausKäyttötarkoitus
kielipakkaukset kirjoituskieleen liittyvät erikoismerkki- ja tavutusasetukset
verbatim mm. pitkien kommenttien merkitsemiseen käytettävä comment-ympäristö
ams-pakkaukset matematiikan ladonnassa tarvittavia symboleja sekä yhtälö-, lause- ja todistusympäristöjä
enumitem luettelojen muokkaaminen
graphicx kuvien lisääminen dokumenttiin
booktabs tyylikkäiden taulukoiden laatiminen
fonttipakkaukset fontin valinta
geometry sivun ja marginaalien koon asettaminen
fancyhdr sivun ylä- ja alatunnisteiden muotoilu
titlesec lukujen otsikoiden muotoilu

Vastaavia listoja löytyy helposti verkosta hakemalla.

Omat komennot

Usein toistuva vähänkään pidempi tai muuten erityislaatuinen teksti tai muotoilu kannattaa määritellä omaksi komennokseen. Oma komento määritellään kirjoittamalla

\newcommand{\nimi}{tulos}
tai
\newcommand[1]{\nimi}{tulos}

Ensimmäinen versio luo komennon nimeltä \nimi, jonka kirjoittaminen tuottaa mitä kohdassa tulos on määritelty. Jälkimmäinen versio on samanlainen, mutta nyt komennolla on argumentti, jota voidaan käyttää tulosta määriteltäessä. Argumenttien lukumäärä on ilmoitettu hakasuluissa, ja niitä voi olla myös enemmän kuin yksi. Komentojen määrittelystä on esimerkkejä alla.

Omien komentojen käyttämisestä on ainakin seuraavat hyödyt:

  1. välttyy kirjoittamasta pitkiä komentoja toistuvasti
  2. lähdeteksti pysyy helpommin luettavana
  3. jos muotoilua haluaa myöhemmin muuttaa, riittää tehdä muutos yhdessä paikassa
  4. voi erotella samannäköiset mutta eri tarkoituksissa tehdyt muotoilut.

Nämä edut vielä korostuvat, jos dokumenttia muokkaa useampi kuin yksi henkilö. Tarkastellaan aiheesta seuraavaa esimerkkiä.

Esimerkissä puhutaan toistuvasti matriisiryhmistä GL(n) ja SL(n). Näiden ryhmien nimet on usein tapana latoa pystykirjasimin. Latexissa tämän voisi tehdä kirjoittamalla esimerkiksi \mathrm{GL}(n). Tällaiset komennot ovat kuitenkin pitkiä ja vaikealukuisia. Esimerkissä onkin määritelty komennot \GL ja \SL helpottamaan sekä lähdekoodin kirjoittamista että lukemista (yllä mainitut edut 1 ja 2). Näitä komentoja varten kirjoittaja on luonut myös komennon \matr, joka määrittää tyylin, jolla kyseiset nimet ladotaan. Komento \matr käyttää yhtä argumenttia.

Oletetaan nyt, että kirjoittaja haluaa jostain syystä vaihtaa matriisiryhmien nimitykset kursiiviin. Tämä käy nyt helposti määrittelemällä uudelleen pelkästään komento \matr (yllä mainittu etu 3). Hän haluaa myös muuttaa ykkösmatriisin merkintätavan, joten hän määrittelee uudelleen myös komennon \I. Vaikka alkuperäisessä tekstissä sekä matriisiryhmien nimet että ykkösmatriisi ladottiin samalla tavalla, niitä vastasivat eri komennot. Näppärä omien komentojen käyttö mahdollistaa sen, että matriisiryhmien nimet pysyvät aina samannäköisinä mutta tuota ulkoasua voi muuttaa ykkösmatriisin ulkoasusta riippumatta (yllä mainittu etu 4). Alla vielä muokattu lähdekoodi.

Monimutkaisten dokumenttirakenteiden käyttö Overleafissa

Tämän luvun ensimmäinen esimerkki ei käänny Overleafissa, koska se viittaa alitiedostoihin, joista Overleaf ei tiedä mitään. Overleafissa voi kyllä käsitellä monimutkaisiakin dokumenttirakenteita, mutta tätä varten kaikki tarvittavat tiedostot on ladattava sivustolle. Tiedostojen lataamista varten on sivustolle kirjauduttava. Lataaminen tapahtuu tämän jälkeen dokumentin muokkaussivun ylälaidassa olevan ”Project”-valikon kautta.