sfnet.atk.tex FAQ

Tekijä: Jouni K. Seppänen
Yhteystiedot: jks+satfaq@iki.fi
Päiväys: 6.2.2005
URL:http://www.iki.fi/jks/satfaq/

Tämä dokumentti on uutisryhmän sfnet.atk.tex FAQ eli usein esitettyjen kysymysten ja niiden parhaiden tunnettujen vastausten luettelo. Olen keskittynyt erityisesti suomen kirjoittamiseen liittyviin erityiskysymyksiin. Mielipiteet ja suositukset ovat omiani, paitsi missä olen viitannut johonkuhun muuhun. Teknisistä vastauksista kiitokset kuuluvat uutisryhmän kirjoittajille, joista varsinkin Martti Nikunen on usein vastannut kysymyksiin asiantuntevasti.

Parannusehdotuksia toivon lähetettävän minulle tai mieluummin uutisryhmään, jotta ryhmän lukijoilla on tilaisuus kommentoida.

Jouni K. Seppänen

Sisällys

Yleistä

Mitä ovat TeX, LaTeX, CTAN jne.?

TeX on ladontaohjelmisto, joka on etenkin matemaatikkojen ja tietojenkäsittelytieteilijöiden suosiossa. Useimmista muista ladontaohjelmista TeX eroaa selvimmin siinä, että se ei ole WYSIWYG, vaan teksti ja ladontakomennot kirjoitetaan tiedostoon, joka ajetaan kerralla TeXin läpi. Se tuottaa dvi-tiedoston, jota voi katsella joillakin ohjelmilla suoraan tai muuntaa PostScriptiksi tai PDF:ksi.

Sana TeX kirjoitetaan ja lausutaan erikoisesti. Sanan oikea ulkoasu on

\TeX

mutta jos sitä ei pystytä tuottamaan, kirjoitetaan yleensä TeX; niin myös tässä FAQ:ssa. TeXin kehittäjän Donald Knuthin mukaan sana koostuu kreikan suuraakkosista tau, epsilon ja khii, joilla alkavasta sanasta on johdettu sellaiset sanat kuin teknologia. Sana on arvatenkin τέχνη, joka merkitsee mm. taidetta ja taitoja. Knuth antaa TeXbookissa seuraavan ääntämysohjeen:

Insiders pronounce the χ of TEX as a Greek chi, not as an 'x', so that TEX rhymes with the word blecchhh. It's the 'ch' sound in Scottish words like loch or German words like ach; it's a Spanish 'j' and a Russian 'kh'. When you say it correctly to your computer, the terminal may become slightly moist.

Luetellut äänteet ovat soinnittomia velaarisia tai uvulaarisia frikatiiveja; eri lähteiden kuvaukset vaihtelevat. Klassillisessa kreikassa khii ääntyy aspiroituneena k:na ja nykykreikassa ilmeisesti uvulaarisena frikatiivina. Anglosaksisessa maailmassa klassillisen kreikan khii äännetään usein velaarisena frikatiivina. Suomalaiset lausuvat joka tapauksessa yleensä "teh", "tek" tai "teks".

Pelkkää TeXiä käyttää nykyään harva, vaan sen makrokielellä on rakennettu ladontajärjestelmiä, joista suosituin on LaTeX. Tämänkin FAQ:n kaikki esimerkit ovat LaTeXia. Muita järjestelmiä ovat ConTeXt ja Texinfo.

LaTeXin luoja Leslie Lamport on antanut kirjassaan luvan lausua sanan LaTeX miten tahansa, mutta se kirjoitetaan, jos mahdollista,

\LaTeX

CTAN on ftp-palvelimien verkosto, jonka tarkoituksena on kerätä täydellinen ja ajantasainen TeXiin liittyvien ohjelmien ja tiedostojen arkisto. Suomalaisten kannattaa käyttää Funetin CTAN-peiliä osoitteessa ftp://ftp.funet.fi/pub/TeX/CTAN/.

Miten pääsee alkuun?

TeXin kanssa tarvitaan paljon apuohjelmia ja makro- ja muita tiedostoja, joten käytännössä on järkevää hankkia jokin valmiiksi koottu TeX-järjestelmä. Unix-ympäristöissä suosittu on Thomas Esserin teTeX, Windowsissa MikTeX ja Macissa Gerben Wierdan järjestelmä. Kätevä tapa kokeilla ja asentaa näitä järjestelmiä on TeX Live -CD-ROM.

Hyvää luettavaa aluksi on Timo Hellgrenin suomentama kirjoitelma Pitkänpuoleinen johdanto LaTeX2ε:n käyttöön. Se on pdf-tiedosto, jota lienee helpointa lukea paperille tulostettuna. Selaimella luettavissa olevia hyviä suomenkielisiä johdatuksia ovat ainakin seuraavat:

Englanninkielisiä johdatuksia on lueteltu englanninkielisessä FAQ:ssa.

Mitä kirjoja kannattaa hankkia?

  • Antti-Juhani Kaijanahon teosta LaTeX ja AMS-LaTeX: Opus asiatekstin ladonnasta ovat kehuneet ainakin Juhapekka Tolvanen ja Erno Similä. Se on tiettävästi ainoa suomenkielinen TeX-kirja.

  • Helmut Kopkan ja Patrick W. Dalyn kirjaa Guide to LaTeX suositellaan usein. Esimerkiksi Sampo Smolander, Jussi Piitulainen ja Timo Korvola ovat sanoneet sitä hyväksi.

  • Leslie Lamportin LaTeX: A Document Preparation System on klassinen johdatus LaTeXiin mutta ei mene kovin pitkälle. Vaativammassa kuin aivan peruskäytössä sitä on syytä täydentää LaTeX Companionilla.

  • Frank Mittelbachin ja muiden kirjoittajien The LaTeX Companion luettelee valtavan määrän LaTeXin lisäpaketteja, jotka ovat usein tarpeellisia, varsinkin jos kirjoitettavana on jotain muuta kuin matemaattinen lehtiartikkeli. Kannattaa hankkia toinen laitos, koska ensimmäinen on monilta osin vanhentunut. Toisesta laitoksesta on kuulemma tulossa uudempi painos, jossa on korjattu monia virheitä.

    Kirjasta on saatavilla webissä sisällysluettelo, esimerkkiluku ja hakemisto. Kirjan mukana tulee CD-ROM, jolla on TeX Live -järjestelmästä versio, jonka avulla voi kokeilla kaikkia esimerkkejä.

  • LaTeXilla voi sopivien pakettien avulla latoa ristisanatehtäviä, šakkilautoja, Feynmanin diagrammeja ja vaikka mitä. Tällaisissa tarkoituksissa The LaTeX Graphics Companion on hyödyllinen, mutta tavalliselle käyttäjälle varmaan riittävät graphicx-paketti ja jokin piirto-ohjelma.

  • The LaTeX Web Companion neuvoo, miten LaTeXilla kirjoitetuista dokumenteista tehdään verkkosivuja. Aiheita ovat mm. PDF, LaTeX2HTML- ja TeX4ht-muuntimet, selainten pluginit, XML ja MathML. Kirja kuvailee välttämättä ohjelmien joitakin tiettyjä versioita ja uhkaa siis jäädä vanhaksi aika pian. Kirja ei myöskään vaikuttanut niin kattavalta kuin olisin toivonut.

  • Donald Knuthin The TeXbook on hieman omalaatuisella tavalla kirjoitettu johdatus TeXiin ja samalla varsin kattava kuvaus TeXin matalan tason toiminnasta. TeX-guruiksi aikoville tämä, kuten muutkin Computers and Typesetting -sarjan kirjat, on tietysti pakollinen hankinta.

Katso myös englanninkielisen FAQ:n kirjakysymystä.

Mitä muita tiedonlähteitä on?

  • Yhdistyneen Kuningaskunnan TeX-käyttäjien yhdistys on koonnut hyödyllisen FAQ-listan.
  • Pohjoismainen TeX-käyttäjäyhdistys ei vaikuta tekevän juuri mitään, mutta sen sähköpostilistalla keskustellaan joskus TeXistä.
  • TeX-järjestelmän mukana pitäisi tulla ohjeita. Esimerkiksi teTeXin ohjeet ovat saatavilla myös webistä.
  • Monet LaTeX-paketit ovat CTANissa dtx-tiedostoina, jotka sisältävät sekä koodin että dokumentaation: tiedosto on LaTeX-koodia, ja komento latex tiedosto.dtx tuottaa ohjeen. Ohjeet ovat usein varsin teknisiä ja keskittyvät siihen, miten paketti on toteutettu, mutta yleensä mukana on ainakin jonkinlainen käyttöohje.

Mitä on huomattava, kun kirjoitetaan TeXillä suomea?

Tavutuskielen valinta

TeX osaa tavuttaa monia kieliä, mutta koska tavutustiedot vievät paljon muistia, suomen kaltaisten harvinaisten kielten tavutus on erikseen otettava käyttöön. Tämä tehdään esimerkiksi teTeX-järjestelmässä texconfig-ohjelman hyphenation-valinnan avulla: rivistä

%finnish fi8hyph.tex

pitää poistaa %-merkki. MikTeXissä on tähän graafinen käyttöliittymä, jossa mahdollisesti on valittavana fihyph.tex, jonka tilalle pitää vaihtaa fi8hyph.tex.

Dokumenttikohtaiset asetukset

Heti \documentclass-rivin jälkeen kannattaa kirjoittaa rivit

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[finnish]{babel}

Fontenc-paketti ottaa käyttöön ns. T1-koodatut fontit, joita ilman ääkkösiä sisältävien sanojen tavutus ei toimi.

Inputenc-paketti mahdollistaa ääkkösten kirjoittamisen Latin 1 -koodauksella eikä vanhanaikaisesti \"a\"akk\"osin\"a. Windows-ympäristössä latin1:n voinee korvata cp1252:lla, jolloin voi käyttää joitakin Windowsin merkkejä, jotka eivät kuulu Latin 1:een. Unicodea TeX ei osaa.

Babel-paketti valitsee suomen tavutuksen, suomalaiset otsikot (esimerkiksi "Sisällys") ja määrittelee joukon makroja:

- yhdysviiva; sanaa ei tavuteta muualta
"- yhdysviiva; sanan voi tavuttaa muualtakin
\- tavutusvihje; sanan voi tavuttaa muualtakin
"" sanan katkaisuvihje, ei tuota tavuviivaa
"= sananalkuinen yhdysviiva
"| ligatuurin esto
"` ja "' yhdenlaiset lainausmerkit: „ ja ”
"< ja "> toisenlaiset lainausmerkit: « ja »

Lainausmerkit ja viivat

Tavallinen lainausmerkki kirjoitetaan kahtena puolilainausmerkkinä:

''näin''

Yhdysviivana käytetään ASCII-merkistön viivaa. Matematiikkatilassa viiva tuottaa miinusmerkin. Puolipitkän, ns. n-viivan saa kahdella viivamerkillä ja pitkän m-viivan kolmella viivamerkillä. Jos viivaa ennen kirjoitetaan välilyönti, kannattaa käyttää tildeä ~, joka tuottaa TeXissä sitovan välilyönnin.

matka-avustus\par
15--20 kappaletta\par
ajatusviiva~--- pitkä\par
$-2\:^\circ\mathrm{C}$

Yleensä TeX tavuttaa suomea oikein, mutta sen epäonnistuessa tavutusvihjeen voi lisätä makrolla \-. Jos sanan alkuun tarvitaan yhdysviiva (esimerkiksi ilmaisussa tapahtuma-aika ja -paikka), kannattaa käyttää Babelin makroa "=, joka estää viivan jäämisen rivin loppuun.

Siitä, miten lainausmerkkejä ja erilaisia viivoja pitäisi käyttää, katso Jukka Korpelan artikkeleita Lainausmerkit suomen kielessä ja niiden kirjoittaminen tietokoneella ja Onko viivoissa ajatusta ja pituutta?

Desimaalipilkku matematiikkatilassa

Jos TeXin matematiikkatilassa kirjoitetaan desimaalilukuja, TeX lisää desimaalipilkun jälkeen liikaa väliä:

$\pi\approx3,14$

Tämä johtuu siitä, että pilkkua on ajateltu käytettävän sellaisissa lausekkeissa kuin

$f(x,y,z)$ ja $a,b,\dots,z$

joissa väli on tarpeellinen. Ongelman voi ratkaista ainakin neljällä tavalla, joilla on hyvät ja huonot puolensa.

Ratkaisu 1

Helpointa, jos desimaalilukuja ei kirjoiteta usein, on ympäröidä pilkku aaltosulkeilla:

$\pi\approx3{,}14$

Ratkaisu 2

Toinen tapa, joka on hyvä, jos desimaalilukuja esiintyy jossakin pienessä osassa dokumenttia, on muuttaa pilkun matemaattista roolia paikallisesti:

{\mathcode`,="013B $\pi\approx3,14$}
mutta $f(x,y,z)=0$.

Ratkaisu 3

Jos desimaalilukuja esiintyy paljon ja pilkkua tarvitaan muuhunkin, mutta pistettä ei tarvita matematiikkamoodissa, voidaan muuttaa piste näkymään pilkkuna:

\DeclareMathSymbol{.}{\mathord}{letters}{"3B}
...
$f(x,y,z)=3.14$

Tällöin siis kirjoitetaan desimaalilukuihin piste, mutta lopputuloksessa näkyy pilkku. Jos pistettäkin tarvitaan johonkin, voidaan tehdä sille oma makro:

\DeclareMathSymbol{.}{\mathord}{letters}{"3B}
\DeclareMathSymbol{\piste}{\mathord}{letters}{"3A}
...
$f(x,y,z)=3.14$
ja $c=299\piste792.458$ km/s.

Tämä on mukailtu ratkaisusta, joka löytyy webistä monesta paikasta (ja sisältää rivin, joka toistaa turhaan LaTeXin määritelmän pilkulle).

Ratkaisu 4

Neljäs ratkaisu on käyttää icomma-pakettia, joka muuttaa matematiikkamoodin syntaksia niin, että pilkku ladotaan tavalliseen tapaan, jos sen jälkeen on kirjoitettu välilyönti, ja desimaalipilkkuna muuten.

\usepackage{icomma}
...
$f(x, y, z)=3,14$
ja $c=299.792,458$ km/s.

Määrätyn integraalin sijoitusmerkki

Määrätty integraali lasketaan usein analyysin peruslauseen avulla: jos funktiolla f on antiderivaatta F, niin eräin oletuksin

\[\intop_a^b f(x) \,\mathrm{d}x = F(b)-F(a)\]

Jos funktion F lauseke on monimutkainen, sitä ei mielellään kirjoittaisi kahdesti. Tätä varten käytetään erilaisia lyhennysmerkintöjä, esimerkiksi

\[F(b)-F(a) = \biggl[ F(x) \biggr]_{x=a}^b\]

tai

\[F(b)-F(a) =  F(x) \biggr|_a^b\]

Suomessa on vakiintunut sijoitusmerkinnäksi kauttaviiva, jonka ala- ja yläpuolelle luvut a ja b kirjoitetaan. Tätä on yllättävän vaikea tehdä TeXillä, mikä johtuu TeXin matematiikkafontista: siinä on kyllä määritelty, mihin kohtiin integraalimerkin ala- ja yläpuolelle ala- ja yläindeksit sijoitetaan, mutta ei vastaavia kohtia kauttaviivalle. Niinpä seuraava ratkaisu, jonka luulisi toimivan, ei näytä kovin hyvältä:

\def\sijoitus{\mathop{\Big/}\limits}
\[ \intop_0^{10} \frac{x}{x^2+1} \,\mathrm{d}x 
= \sijoitus_0^{10} \frac{1}{2}\ln(x^2+1) \]

Parempi on seuraava Martti Nikusen ehdottama makro:

\newcommand{\vii}{\mathop{\Big/}}
\newcommand{\viiva}[2]{\vii\limits_{\!\!\!\!{#1}}^{\>\,{#2}}}
\[ \intop_0^{10} \frac{x}{x^2+1} \,\mathrm{d}x 
= \viiva{0}{10} \frac{1}{2}\ln(x^2+1) \]

Tämä makro käyttää TeXin matematiikkamoodin makroja, jotka on tarkoitettu kaavojen hienosäätämiseen. Eripituisilla integrointirajoilla tulos ei ehkä näytä yhtä hyvältä, joten hienosäätöön voi joutua turvautumaan käyttäjäkin:

\, lyhyt väli
\: tai \> hieman pidempi väli
\; vielä pidempi väli
\quad melko pitkä väli
\qquad kaksi kertaa edellinen
\! negatiivinen väli, yhtä pitkä kuin \,

Lähdeviitteet suomeksi

BibTeX on hyvä väline lähdeviitteiden muotoilemiseen, mutta sen tavalliset tyylitiedostot tuottavat englanninkieliset viitteet. Suomenkielisiä tyylitiedostoja on vähän:

  • Antti-Juhani Kaijanahon finplain.bst on tekijänsä mukaan "saatavilla lähinnä testausta ja kokeiluja varten".
  • Simo K. Kivelän skk.bst noudattaa hänen mieltymyksiään.

Jos mikään näistä ei tuota sopivaa tulosta, on laadittava oma tyylitiedosto. Tähän on neuvoja englanninkielisessä FAQ:ssa.

Hakemisto suomeksi

Hakemistojen tekemisessä käytetään usein apuna Makeindex-ohjelmaa. Se ei osaa suomen aakkosjärjestystä vaan aakkostaa Å:n, Ä:n ja Ö:n erikoismerkkien tavoin ennen A:ta (ja V:n ja W:n erikseen). Ratkaisukeinoja on muutama.

Helppo temppu, joka ei varsinaisesti ratkaise ongelmaa, on käyttää Makeindexin aakkostusavaimia. Ne on tarkoitettu esimerkiksi tilanteeseen, jossa hakusanaksi halutaan kreikan pii-kirjain mutta sen halutaan löytyvän samasta kohtaa kuin sanan "pii":

\index{pii@$\pi$}

Temppu on lisätä aakkostusavaimet ääkkösiä sisältäviin sanoihin: korvataan hakusanan ääkköset z-kirjaimella, jolloin se aakkostuu ainakin suunnilleen oikeaan paikkaan:

\index{hzzyz@hääyö}

Tätä käsin tehtävää virittelyä kehittyneempi ratkaisu on Hannu Väisäsen Lix, joka lisää automaattisesti aakkostusavaimia niin, että aakkostus sujuu oikein.

Paras ratkaisu lienee käyttää Makeindexin sijasta ohjelmaa, joka osaa järjestää sanat oikein. Tällaisia ovat Makeindex 3.0 ja Xindy. Makeindex 3:a ei kehitetä enää ja Xindy on melko uusi, joten kumpaakaan ei ole sisällytetty yleisimpiin TeX-järjestelmiin. Jarmo Niemelän viestissä on ohjeita molempien ohjelmien käyttöön.

FAQ:n historia

28.11.2004
Ensimmäinen versio
30.11.2004
Laajennettu TeX-sanan selitystä, lisätty linkkejä suomenkielisiin johdatuksiin
2.1.2005
Lisätty suomenkielisiä lähdeviitteitä koskeva kysymys ja linkki Simo K. Kivelän LaTeX-kurssimateriaaliin
6.2.2005
Lisätty suomenkielistä hakemistoa koskeva kysymys ja linkki Oulun yliopiston LaTeX-kurssin sivuun