Ohjeita LATEXin käyttöön Kokoelma @CSC-lehdessä ilmestyneitä artikkeleita Juha Haataja (toim.) E-mail: Juha.Haataja@csc.fi CSC Tieteellinen laskenta Oy Versio 1.04 (30.10.2000)
Saatteeksi T ämä kirjanen on tarkoitettu johdatukseksi LATEX-ohjelmiston käyttöön oppaiden, esitelmien ja muiden julkaisujen tuottamisessa. Opas ei sisällä kattavaa kuvausta mistään aihepiiristä, vaan sen tarkoitus on auttaa uutta käyttäjää alkuun ja ohjata hänet yksityiskohtaisemman tiedon lähteille. Taustana artikkeleille on CSC:n laajamittainen LATEXin käyttö kirjamuotoisten julkaisujen tuottamisessa (useita kymmeniä teoksia viimeisen kymmenen vuoden aikana). Opas löytyy PDF-muodossa www-osoitteesta http: //www.csc.fi/oppaat/latex/. Sisältö Aihe Ilmestynyt lehdessä Sivu LATEXin pikaesittely @CSC 2/1998 3 Esityskalvojen teko LATEX-ohjelmistolla @CSC 3/1999 5 Elektroninen julkaiseminen ja LATEX @CSC 4/1999 7 LATEX ja grafiikka @CSC 5/1999 10 LATEX ja kirjallisuusviitteet @CSC 1/2000 12 Kirjan viimeistely LATEXilla @CSC 2/2000 15 LATEXin edistyneempiä mahdollisuuksia @CSC 4/2000 18 LATEX ja MikTEX Windows-ympäristössä @CSC 2/2000 20 Lisätietoja LATEX-järjestelmän käytöstä saa lisätietoja CSC:n koneiden komennolla help tex tai www-osoitteesta http://www.csc.fi/cschelp/sovellukset/julkaisu/tex.html.latexin käyttöoppaaksi sopii teos LATEX A Document Preparation System (Leslie Lamport; Addison-Wesley, 1994, toinen painos). Monipuolinen katsaus LATEXin mahdollisuuksiin löytyy teoksesta The LATEX Companion (Goossens, Mittelbach, Samarin; Addison-Wesley, 1994). Tekijänoikeudet Tämän teoksen tekijänoikeudet kuuluvat CSC Tieteellinen laskenta Oy:lle. Teoksen tai osia siitä voi kopioida ja tulostaa vapaasti henkilökohtaiseen käyttöön sekä Suomen yliopistojen ja korkeakoulujen kurssikäyttöön edellyttäen, että kopioon tai tulosteeseen liitetään tämä ilmoitus teoksen tekijästä ja tekijänoikeuksista. Teosta ei saa myydä tai sisällyttää osaksi muita teoksia ilman CSC:n lupaa. 2
L A TEXin pikaesittely Juha Haataja Juha.Haataja@csc.fi C SC:n koneille on asennettu sivuntaitto-ohjelmistot TEX jalatex. Erityisesti LATEX soveltuu laajojenkin matemaattista tekstiä sisältävien teosten toimittamiseen painokelpoiseen muotoon. Toisaalta LATEX ei välttämättä ole paras vaihtoehto esimerkiksi @CSC:n tyyppisen uutislehden taittamiseen (tähän onkin käytetty lisäksi muita ohjelmistoja). LATEXin tuottama tulostustiedosto voisi näyttää esimerkiksi seuraavalta: 1 Ensimmäinen kappale Hiukan maistiaisia uuden LATEXin käytöstä. Tämä kappale tavutetaan suomenkielisen tavutuksen mukaan. Aäkkösiä sisältävät sanat tavutetaan myös. 2 Kuvien sijoittelu Esimerkki LATEXin käytöstä Seuraavassa on esimerkki uuden LATEX-version (LATEX2ε) mukaisesta dokumentista. Tiedosto alkaa komennolla \documentclass, jolla valitaan dokumentin tyyppi ja asetetaan globaaleja valitsimia kuten paperin ja kirjasimen koko. Komennolla \usepackage voidaan ottaa käyttöön erilaisia LATEXpaketteja, jotka mahdollistavat esimerkiksi suomenkielisen tekstin tavuttamisen ja kuvien sijoittelemisen. \documentclass[a4paper,12pt]{article} \usepackage[finnish]{babel} \usepackage[latin1]{inputenc} \usepackage[t1]{fontenc} \usepackage{graphicx} \begin{document} \section{ensimmäinen kappale} Hiukan maistiaisia uuden {\LaTeX}in käytöstä. Tämä kappale tavutetaan suomenkielisen tavutuksen mukaan. Aäkkösiä sisältävät sanat tavutetaan myös. \section{kuvien sijoittelu} Seuraavassa otetaan mukaan PostScript"-kuva (katso kuva~\ref{fg:esm}). \begin{figure}[h] \centering \includegraphics[width=40mm]{csclogo.eps} \caption{csc:n logo.}\label{fg:esm} \end{figure} \section{lisätietoja} CSC:n koneiden käytöstä on julkaistu opas~\cite{cscmeta}. \bibliography{csctest} \bibliographystyle{cscalpha} Seuraavassa otetaan mukaan PostScript-kuva (katso kuvaa 1). 3 Lisätietoja C S C Kuva 1: CSC:n logo. CSC:n koneiden käytöstä on julkaistu opas [Lou97]. Viitteet [Lou97] Kirsti Lounamaa, toim. Metakoneen käyttöopas. CSC Tieteellinen laskenta Oy, 1997. 1 Dokumenttiin sisällytettiin EPS-tiedostosta (Encapsulated PostScript) csclogo.eps löytyvä CSC:n logon kuva, jolle annettiin kuvateksti. Kuvaan voidaan viitata tekstissä käyttämällä komentoja \label ja \ref. Kirjallisuusviitteisiin voidaan viitata komennolla \cite. CSC:n metakoneoppaaseen viitataan kohdassa Lisätietoja komennolla \cite{cscmeta}. Esimerkin viitteet on luotu käyttämällä tiedostosta csctest.bib löytyviä kirjallisuustietoja, jotka voisivat olla muotoa @STRING{csc = {{CSC -- Tieteellinen laskenta Oy}} @book{cscmeta, title = {{Metakoneen käyttöopas}}, year = {1995}, editor = {Kirsti Lounamaa}, publisher = csc} \end{document} 3
L A TEX-dokumentin käsittely LATEXin ja TEXin saa käyttöön CSC:n koneiden komennolla use tex. Komennolla help tex saa lisätietoja ohjelmistojen käytöstä. Jos edellä listattu LATEX-dokumentti on tiedostossa csctest.tex ja kirjallisuusviitteet ovat tiedostossa csctest.bib,käytetään dokumentin käsittelyyn komentoja latex csctest bibtex csctest latex csctest latex csctest Komento latex käy dokumentin kerran läpi, ja komento bibtex poimii tarvittavat kirjallisuusviittaukset. Lopuksi tarvitaan vielä kaksi LATEX-ajoa, jotta viittaukset saadaan varmasti ajan tasalle. Tämän jälkeen dokumenttia voidaan katsella X-ikkunointijärjestelmällä komennolla xdvi csctest. Dokumentti voidaan tulostaa PostScript-muodossa tiedostoon csctest.ps komennolla dvips csctest -o csctest.ps Tiedosto csctest.ps voidaan tulostaa PostScriptkirjoittimelle kirjoitin komennolla lpr -Pkirjoitin csctest.ps L A TEXin tyylitiedostot Edellisessä esimerkissä käytettiin LATEX-komennon \documentclass argumenttina tyyliä article. Muitakin vaihtoehtoja on, esimerkiksi report ja book. Lisäksi voi komennolla \usepackage ottaa käyttöön esimerkiksi matematiikan esittämiseen soveltuvan amstex-paketin. Fyysikkojen revtex-pakettia ja tähtitieteilijöiden aastex-pakettia käyttävät dokumentit täytyy aloittaa komennolla \documentstyle uuden LATEXin komennon \documentclass sijaan. Useimmat CSC:n julkaisemat oppikirjat ja oppaat on taitettu LATEXilla. Tätä varten on CSC:ssä kehitetty oma dokumenttityyli, jonka avulla teoksille saadaan yhtenäinen asu. Esimerkiksi teos Matemaattiset ohjelmistot (toim. Juha Haataja, 1998), joka on saatavissa www:stä osoitteesta http://www. csc.fi/oppaat/mat.ohj/, noudattaa CSC:n dokumenttityyliä. Tietenkin myöstämä juttu on taitettu LATEXilla. Lisätietoja LATEX-järjestelmän käytöstä saa lisätietoja CSC:n koneiden komennolla help tex. LATEXin käyttöoppaaksi sopii teos LATEX A Document Preparation System (Leslie Lamport; Addison-Wesley, 1994, toinen painos). Monipuolinen katsaus LATEXin mahdollisuuksiin löytyy teoksesta The LATEX Companion (Goossens, Mittelbach, Samarin; Addison-Wesley, 1994). 4
Esityskalvojen teko L A TEX-ohjelmistolla Juha Haataja Juha.Haataja@csc.fi S ivuntaitto-ohjelmisto LATEX soveltuu varsin hyvin esityskalvojen tuottamiseen. Erityisen kätevää tämä on silloin, kun esityksen pohjana on aihepiiristä aiemmin kirjoitettu artikkeli, raportti tai kirja tällöin suurin osa tarvittavasta materiaalista on luultavasti jo valmiina LATEXmuodossa. Toisaalta usein helpoin tapa tehdä esityskalvoja on käyttää mikrotietokoneiden esitysgrafiikkaohjelmistoja. Nämä ohjelmistot ovat helppokäyttöisiä varsinkin, jos kalvot sisältävät pääasiassa tekstiä. LATEXin saat käyttöön CSC:n koneiden komennolla use tex. Komennolla help tex saat lisätietoja ohjelmiston käytöstä. Olen esitellyt LATEXin käyttöä aiemmin @CSC-lehden numerossa 2/1998. Yksinkertainen esimerkki LATEX-dokumentti aloitetaan komennolla \documentclass[valitsimet]{tyyli } LATEX-tyylin seminar avulla voi esityskalvojen ulkoasun määritellä haluamakseen. Seuraavassa käytetty valitsin a4 soveltuu A4-kokoiselle paperille. \documentclass[a4]{seminar} \usepackage[finnish]{babel} \usepackage[t1]{fontenc} \slidesmag{6} \begin{document} \begin{slide} \section*{numeroitu lista} \begin{enumerate} \item Ajankohtaista mutta totta \item Toinen kerta toden sanoo? \item Vai oliko se kolmas? \end{enumerate} \[ \hat{f}(\omega) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty} f(t) \, e^{-i\omega t} \, dt \] \end{itemize} \end{slide} \end{document} Suomenkielinen tavutus otetaan edellä käyttöön komennolla \usepackage[finnish]{babel} Komento \usepackage[t1]{fontenc} ottaa käyttöön LATEXin 8-bittiset fontit, jolloin ääkköset tulostuvat oikein. Komento \slidesmag{6} suurentaa kalvotulostusta 6 askelta verrattuna normaalitekstiin. Esityskalvon sisältö aloitetaan LATEX-komennolla \begin{slide} ja lopetetaan vastaavalla \end-komennolla. Jos edellinen LATEX-esimerkki on tiedostossa kalvot.tex, saa kalvot tulostettua PostScript-muodossa tiedostoon kalvot.ps komennoilla latex kalvot dvips -t landscape kalvot \ -o kalvot.ps Koska tässä tehdyt kalvot ovat vaakasuuntaisia, täytyy PostScript-tulostukseen käyttää Dvips-ohjelmiston valitsinta -t landscape. Vaakasuuntaisia sivuja voi katsella X-ikkunointijärjestelmässä komennolla xdvi -paper a4r kalvot.dvi Tulos voisi näyttää seuraavalta: \end{slide} \begin{slide} \section*{matematiikkaa} \begin{itemize} \item Kätevä kaava: 5
Numeroitu lista 1. Ajankohtaista mutta totta 2. Toinen kerta toden sanoo? 3. Vai oliko se kolmas? Tässä käytetty seminar-tyylin valitsin article sijoittaa siis kaksi kalvoa paperiarkille. Komento \slidelabel tulostaa annetun nimikkeen (tässä Kalvo 1, Kalvo 2 jne.) jokaiselle kalvosivulle. Komento \articlemag{2} kertoo, kuinka paljon kalvoja suurennetaan. Edellisten komentojen tulos voisi olla seuraavan näköinen: Esimerkkiesitelmä 1 ' $ Numeroitu lista Matematiikkaa Kalvo 1 1. Ajankohtaista mutta totta 2. Toinen kerta toden sanoo? Kätevä kaava: f ˆ(ω) = 1 f (t)e iωt dt 2π & 3. Vai oliko se kolmas? % ' $ Monipuolisempi esimerkki Käytimme edellisessä esimerkissä seminar-tyylin perusasetuksia. Kalvojen ulkoasua voi kuitenkin muokata monella tavalla. Esimerkkidokumenttiin voisi lisätä vaikkapa seuraavat määrittelyt ennen komentoa \begin{document}: Kalvo 2 Matematiikkaa Kätevä kaava: f ˆ(ω) = 1 & f (t)e iωt dt 2π % \newpagestyle{omatyyli}% {Esimerkkiesitelmä\hfill\thepage}{} \pagestyle{omatyyli} Tässä määrittelimme kalvotyylin nimeltä omatyyli, joka tulostaa jokaisen sivun yläreunaan esitelmän nimen ja sivun numeron. Seuraavassa käytetty paketti fancybox puolestaan mahdollistaa esimerkiksi pyöristettyjä kulmia sisältävien raamien piirtämisen kalvoihin: \usepackage{fancybox} \slideframe{oval} Seuraavien LATEX-komentojen avulla saa tulostettua kaksi esityskalvoa yhdelle sivulle: \documentclass[a4,article]{seminar} \renewcommand{\slidelabel}{kalvo \theslide} \articlemag{2} Lisätietoja LATEX-tyylin seminar käyttöopas on CSC:n koneiden Voxopm, Caper ja Cedar hakemistossa $DOC/tetex-doc/latex/seminar/ Tässä hakemistossa on myös esimerkkejä seminartyylin käytöstä esitelmäkalvojen tekemiseen. LATEX-järjestelmän käytöstä saa lisätietoja CSC:n koneiden komennolla help tex. LATEXin käyttöoppaaksi sopii teos LATEX A Document Preparation System (Leslie Lamport; Addison-Wesley, 1994, toinen painos). Monipuolinen katsaus LATEXin mahdollisuuksiin löytyy teoksesta The LATEX Companion (Goossens, Mittelbach, Samarin; Addison-Wesley, 1994). 6
Elektroninen julkaiseminen ja L A TEX Juha Haataja Juha.Haataja@csc.fi E lektroninen julkaiseminen on noussut varteenotettavaksi vaihtoehdoksi perinteisten paperijulkaisujen ohelle. Matematiikkaa sisältävien dokumenttien taitossa lienee LATEX käytetyin ja tehokkain väline, joten seuraavassa kerron elektronisesta julkaisemisesta LATEXia käyttäen. LATEX-ohjelmisto on asennettu CSC:n koneille ja sen saa käyttöön komennolla use tex. Komennolla help tex saat lisätietoja ohjelmiston käytöstä. Olen esitellyt LATEXin käyttöä myös @CSC-lehden numeroissa 2/1998 ja 3/1999. PDF ja LATEX Nykyisen TEXin pohjalta kehitetty pdftex mahdollistaa PDF-tiedostojen tuottamisen suoraan TEX- ja LATEX-dokumenteista. Seuraavassa on malliesimerkki suomenkielisestä LATEX-dokumentista, joka soveltuu PDF:n tuottamiseen: \documentclass[pdftex,a4paper]{article} \usepackage[finnish]{babel} \usepackage[latin1]{inputenc} \usepackage[t1]{fontenc} \usepackage{times} \usepackage{graphicx} \begin{document} \section{ensimmäinen kappale} Tiedostoformaateista Www lienee nykyisin käytetyin elektronisen julkaisun muoto, vaikka myös CD-ROM ja DVD voivat olla varteenotettavia vaihtoehtoja. Tiedostoformaattien osalta CD-ROM tarjoaa tietenkin paremmat mahdollisuudet räätälöidä julkaisu halutulle käyttäjäkunnalle: levylle on suhteellisen helppo sisällyttää tarvittavat asennus- ja lukuohjelmat dokumenttien käyttöä varten. Www:ssä puolestaan on otettava huomioon potentiaalisesti paljon suurempi yleisö ja pyrittävä rajoittumaan yleisesti käytössä oleviin tiedostostandardeihin. LATEX-dokumentit voi tietenkin laittaa sellaisinaan verkkoon, mutta niistä ei ole paljon iloa muille kuin LATEXin käytön osaaville. Myöskään dvi-tiedostoja ei kannata laittaa verkkoon, ellei ole aivan varma, että lukijoilla on käytettävissään identtinen TEX-järjestelmä.Täten elektroniseen julkaisuun jää käytännössä seuraavat mahdollisuudet: muunnos LATEXista HTML:ään (matemaattiset kaavat esim. bittikarttakuvina) dokumentin tulostus PDF:ksi ja lukeminen Adobe Acrobat -ohjelmistolla jonkin TEXin pohjalta kehitetyn erikoisohjelmiston käyttö (esim. IBM:n techexplorer, http://www.software.ibm.com/network/ techexplorer). Tulevaisuudessa saattaa olla mahdollista muuntaa LATEX-dokumentteja XML- tai MathML-muotoon, mutta tämä ei ole vielä ajankohtaista. Hiukan maistiaisia uuden {\LaTeX}in käytöstä. Tämä kappale tavutetaan suomenkielisen tavutuksen mukaan. Seuraavassa otamme mukaan PostScript-kuvan (katso kuva \ref{fg:esm}). \begin{figure}[h] \centering \includegraphics[width=4cm]{csclogo.pdf} \caption{esimerkkikuva.}\label{fg:esm} \end{figure} \end{document} Tiedosto doku.tex ajetaan LATEXin läpi komennolla pdflatex. Tuloksena on PDF-tiedosto doku.pdf, jota voi selata Acrobat Reader -ohjelmistolla (komento acroread doku.pdf). Komento pdflatex pystyy käsittelemään PDF- ja PNG-muotoisia kuvaformaatteja, mutta valitettavasti ei esim. EPS-kuvia. Näiden muuntamiseen voi käyttää apuohjelmaa epstopdf. 7
Hakemistossa $DOC/tetex-doc/local/ on esimerkki pdflatex-komennon käytöstä (tiedostot pdfdoku.tex ja pdfdoku.pdf). Adobe Acrobatin käyttö Adobe Acrobat -ohjelmisto sisältää Distiller-ohjelman, jonka avulla PostScript-tiedostoja voi konvertoida PDF:ksi. Täten elektroninen julkaiseminen voisi tapahtua seuraavasti: LATEX-dokumentti PS-tiedosto dvips-komennolla PDF-tiedosto Distillerin avulla. PDF-tiedostoihin saa mukaan myös hyperlinkit käyttämällä LATEX-pakettia hyperref. Paketista löytyy tietoa hakemistosta $DOC/tetex-doc/latex/hyperref/. PostScript-kirjasimet Elektronisen julkaisun eräs ongelma on matemaattisten fonttien huono saatavuus. LATEX-ohjelmisto perustuu 70-luvun lopussa kehitettyyn TEX-ohjelmistoon. Tällöin ei vielä ollut käytettävissä PostScriptkirjasimia, joten perus-latexin voi katsoa edustavan hiukan vanhahtavaa tekniikkaa. Toisaalta nykyisistä ohjelmistoista ei millään muulla kuin TEXillä saa lähes automaattisesti aikaan hyvin ladottuja matemaattisia kaavoja. TEXin ja LATEXin peruskirjasimet ovat bittikarttafontteja, jotka on optimoitu tietyn kokoiselle pistekoolle. Esimerkiksi valitsemalla LATEXissa artikkelin pistekooksi 11pt saat automaattisesti käyttöön toisiinsa sopivat teksti- ja otsikkofontit sekä matemaattiset symbolit. Toisaalta TEXin peruskirjasimet eivät miellytä kaikkia. Lisäksi perus-latexilla tai TEXillä taitettu dokumentti voi näyttää ulkoasultaan antiikkiselta. Onneksi TEX ja LATEX ovat hyvin monipuolisia ohjelmistoja. Pienellä vaivalla on mahdollista saada aikaan hyvää jälkeä myös käytettäessä PostScript-kirjasimia. Tämä artikkeli on esimerkki Times-kirjasinperheen käytöstä. L A TEX ja PS-fontit LATEXissa on mahdollista muuttaa oletusfontit globaalisti PostScript-fonteiksi: \renewcommand{\sfdefault}{phv} \renewcommand{\ttdefault}{pcr} \renewcommand{\rmdefault}{ptm} Tässä muutimme sans serif -kirjasimeksi Helvetican, konekirjoitusfontiksi Courierin ja tekstifontiksi Times Romanin. Edellä käytetty kirjasinyhdistelmä ei kuitenkaan ole typografisesti kovin hyvä: Times Roman on samalla pistekoolla huomattavasti Helvetica-kirjasinta pienempi ja hennompi.myöskään Courier ei näytä oikein hyvältä Times-kirjasimen yhteydessä. LATEXissa on mahdollista luoda uusia fonttiperheitä käyttämällä pohjana olemassaolevia fontteja. Voimme esimerkiksi luoda Helvetica-fontista version, joka on pienempi kuin normaali saman pistekoon Helvetica. Tämä tapahtuu helpoiten käyttämällä ns. font definition -tiedostoa. Olkoon tiedoston T1cscphv.fd sisältö seuraava (tiedosto on hakemistossa $DOC/tetex-local/): \ProvidesFile{T1cscphv.fd} [1995/08/12 Fontinst v1.335 font definitions for T1/cscphv.] \DeclareFontFamily{T1}{cscphv}{} \DeclareFontShape{T1}{cscphv}{b}{n}{ <-> s * [0.86]phvb8t}{} \DeclareFontShape{T1}{cscphv}{bx}{n}{ <->ssub * cscphv/b/n}{} \DeclareFontShape{T1}{cscphv}{b}{it}{ <->ssub * cscphv/b/sl}{} \endinput Määrittelimme uuden T1-kirjasinperheen nimeltä cscphv (normaali, lihavoitu, kallistettu kirjasin jne.). Uusi fontti on 86% alkuperäisen Helvetican koosta tällöin x-kirjaimen korkeus uudessa kirjasinperheessä on sama kuin Times-kirjasimessa. Saamme tämän kirjasimen käyttöömme LATEXin komennoilla \RequirePackage[T1]{fontenc} \renewcommand{\sfdefault}{cscphv} Kun otamme käyttöön sans serif -kirjasimen vaikkapa komennolla \textsf{}, tuloksena on 86% pienennetty Helvetica-kirjasin. PS-kirjasimet ja matematiikka Ongelmana normaalien PS-kirjasimien käytössä on se, että PS-matematiikkafontteja ei juuri ole vapaasti saatavissa, ainakaan sellaisia joita voisi sanoa kunnollisiksi matematiikkafonteiksi (Symbol-kirjasin nyt ei ainakaan sellainen ole). Vaihtoehdoiksi jää Computer Modern -perheen PS-version käyttö (kirjasinperhe tulee mm. tetex-järjestelmän mukana) PS-tekstifonttien yhdistäminen TEXin omiin matematiikkafontteihin kaupallisen PS-matematiikkafontin käyttö. Seuraavassa käytämme Helvetica-kirjasinta Computer Modern -matematiikkafonttien kanssa: \documentclass{article} \usepackage[finnish]{babel} 8
y Ohjeita LAT E Xin käyttöön \usepackage[latin1]{inputenc} \usepackage[t1]{fontenc} \usepackage{graphicx} \usepackage{psfrag} \newcommand{\hv}{% \usefont{t1}{cscphv}{m}{n}} \begin{document} \begin{figure} \centering \psfrag{x}[][]{$x$}\psfrag{y}[][]{$y$} \psfrag{sovitus}[][]{\hv Suorien sovitus dataan $(x_i, y_i)$} \includegraphics[width=70mm]{datafit2.eps} \caption{ps-esimerkki.}\label{fg:1} \end{figure} \end{document} Käytimme oletusfontteja, mutta vaihdoimme tekstifontin komennolla \Hv. Kuvan otsikkotekstissä käytetään edellä luotua cscphv-kirjasinta. Tulos voisi olla seuraavan näköinen: 3 2.5 2 1.5 Suorien sovitus dataan (x i ;y i ) 1 0 0.2 0.4 0.6 0.8 1 x Kuva 1: PS-esimerkki. Kaupallisia PS-kirjasimia CSC:n sisäiseen käyttöön on hankittu MathTimefontit, jotka näyttävät hyviltä yhdistelmän Times, Helvetica ja Courier kanssa. CSC:n oppaissa on puolestaan käytetty Lucida Bright ja Lucida New Math -kirjasimia, jotka ovat varsin tyylikkäitä ja selkeitä. Myös Lucida-fontit ovat lisenssiehtojen vuoksi vain CSC:n sisäisessä käytössä. Seuraavissa kuvissa on esimerkit kolmen eri fonttiyhdistelmänkäytöstä. 1. MathTime, Times ja Courier: Seuraavassa on esimerkki LATEXin tuottamasta kaavasta: f ˆ(ω) = 1 2π Saamme tämän aikaan komennoilla f (t)e iωt dt. \[ \hat{f}(\omega) = \frac{1}{\sqrt{2\pi}} 2. Lucida Bright ja Lucida New Math: Seuraavassa on esimerkki L A T E Xin tuottamasta kaavasta: ˆf(ω)= 1 2π f(t)e iωt dt. Saamme tämän aikaan komennoilla \[ \hat{f}(\omega) = \frac{1}{\sqrt{2\pi}} 3. MathTime, Times ja Lucida Teletype: Seuraavassa on esimerkki LATEXin tuottamasta kaavasta: f ˆ(ω) = 1 2π Saamme tämän aikaan komennoilla f (t)e iωt dt. \[ \hat{f}(\omega) = \frac{1}{\sqrt{2\pi}} Lisätietoja LATEX-järjestelmän käytöstä saa lisätietoja CSC:n koneiden komennolla help tex. Olen kertonut aiheesta myös artikkeleissa Matematiikan tiedostostandardia etsimässä (@CSC 4/1997) ja Tekstinikkarin linkkuveitset (Tietoyhteys 2/1998). Monipuolinen katsaus LATEXin mahdollisuuksiin löytyy teoksesta The LATEX Companion (Goossens, Mittelbach, Samarin; Addison-Wesley, 1994). Elektronista julkaisua on kuvailtu teoksessa The LATEX Web Companion (Goossens, Rahtz; Addison- Wesley, 1999). CSC:n www:ssä julkaisemia oppaita löydät osoitteesta http://www.csc.fi/suomi/ julkaisut.html. PDF:stä kerrotaan mm. teoksessa Acrobat PDF julkaisijan työvälineenä (Lukkarila; CredoNet 1999). Elektronista julkaisemista TEXin ja LATEXin avulla käsitellään www-osoitteesta http://hutchinson. belmont.ma.us/tth/ löytyvissä artikkeleissa. Apua on myös artikkelista TEX to Web Fast and Easy (Computing in Science and Engineering, July/August 1999). 9
L A TEX jagrafiikka Juha Haataja Juha.Haataja@csc.fi E dellisissä @CSC-lehdissä olen kertonut LATEX-ohjelmiston käytöstä mm. elektroniseen julkaisuun ja esittelykalvojen tekoon. Tässä jutussa kerron grafiikan sisällyttämisestä LATEX-dokumentteihin, mikä on usein tärkeä osa raportin, artikkelin tai miksei esittelykalvojenkin tekoa. EPS-kuvat EPS-muodossa (Encapsulated PostScript) olevien kuvien sijoittaminen osaksi LATEX-dokumenttia on yleensä melko helppoa. LATEX tarjoaa tähän tarkoitukseen kaksi pakettia: graphics ja graphicx. Jälkimmäinen paketti on monipuolisempi ja käytänkin sitä seuraavissa esimerkeissä. Olkoon EPS-kuva tiedostossa datafit.eps samassa hakemistossa LATEX-dokumentin kanssa. Kuvan saa sijoitettua dokumenttiin LATEX-komennolla \includegraphics seuraavasti \documentclass{article} \usepackage{graphicx} \begin{document} \begin{center} \includegraphics[width=60mm]{datafit.eps} \end{center} \end{document} Tässä otettiin grafiikkapaketti käyttöön komennolla \usepackage{graphicx}. Tässä käytetty EPSkuva on tuotettu Matlabilla, jolla on melko hankala saada akseleille ja kuvan otsikkoon matemaattisia merkkejä. Onneksi asian voi hoitaa LATEXin avulla. Edelliseen LATEX-esimerkkiin tulee lisätä komento \usepackage{psfrag} ennen komentoa \begin{document}. Akseli- ja otsikkotekstien korvaus tapahtuu tämänjälkeen seuraavasti: \begin{center} \psfrag{x}[][]{$x$}% \psfrag{y}[][]{$y$}% \psfrag{sovitus}[][]% {Suorien sovitus dataan $(x_i, y_i)$} \includegraphics[width=50mm]{datafit.eps} \end{center} Tässä korvasimme Matlabin tulostamat merkkijonot x, y ja sovitus LATEXin merkkijonoilla käyttämällä komennon \psfrag mahdollisuuksia. Tulos voisi näyttää seuraavalta: Kuvien teko LATEXilla Yksinkertaisia (ja miksei monimutkaisempiakin) kaavioita voi luoda suoraan LATEXin avulla. Valmiita kuvantekopaketteja löytyy monenlaisiin erikoistarkoituksiin. Yleisimmin käytetään picture-ympäristöä. Pakettiin picture on tehty joukko laajennuksia, esimerkiksi epic ja eepic. Seuraavassa on yksinkertainen käyttöesimerkki: \usepackage{eepic,epic} \begin{picture}(100,50)(-10,-10) \thicklines \put(-10,26){$\mathrm{id}=0$} \put(-10,15){(\emph{recv})} \put(25,25){\circle*{5}} \put(32,24){\vector(-2,0){3}} \put(32,24){\line(50,22){35}} \put(32,25){\vector(-2,0){3}} \put(32,25){\line(50,0){35}} \put(32,26){\vector(-2,0){3}} \put(32,26){\line(50,-22){35}} \put(69,40){\circle*{5}} \put(79,38){$\mathrm{id}=1$ (\emph{send})} \put(69,25){\circle*{5}} \put(79,23){$\mathrm{id}=2$ (\emph{send})} \put(69,10){\circle*{5}} \put(79,8){$\mathrm{id}=3$ (\emph{send})} \end{picture} Tulos voisi näyttää seuraavalta: id = 0 (recv) ff id = 1(send) id = 2(send) id = 3(send) MetaPost-järjestelmä MetaPost on määrittelykieli, jonka avulla voi tuottaa kuvia ja kaavioita käytettäväksi LATEXin kanssa. Me- 10
tapost perustuu Donald Knuthin kehittämään META- FONT-kieleen, mutta tulostuksena on bittikarttojen sijaan PostScript-kuvatiedostoja. MetaPostin opettelu vaatii jonkin verran aikaa, mutta sitä voi suositella, kun tarvitsee korkealuokkaista kuvitusta esim. oppikirjaan tai laajaan artikkeliin. Tosin jotkin asiat on helpompi hoitaa hyvällä piirrosohjelmalla, esimerkiksi Adobe Illustratorilla. Seuraavassa on pieni esimerkki MetaPostin käytöstä: Seuraavassa on vielä muutamia esimerkkejä Meta- Postilla tuotetuista kuvista: taaksepäinen virhe f x A f A (x) = f (x A ) x f A f eteenpäin laskettu virhe f (x) pääohjelma satunnaistesti verbatimtex % LaTeX-määrittelyt \documentclass{article} \begin{document} etex beginfig(1); u = 1mm; pair p[]; p1 = (0,0); p2 = (0,-5u) shifted p1; p3 = (0,-5u) shifted p2; p4 = (-15u,0) shifted p2; 42 USE satunnaisluvut USE tarkkuus k k O C O m O m C m O 41 40 41 50 49 48 49 50 65 64 65 pickup pencircle scaled 4bp; draw p1; draw p2; draw p3; draw p4; 43 46 44 45 39 38 42 37 43 44 46 45 47 68 68 67 51 52 66 53 63 62 66 61 pickup pencircle scaled 0.8bp; drawarrow p1{dir -180}..{dir -130} p4 shifted (1u,1u); drawarrow p2..p4 shifted (1u,0); drawarrow p3{dir -180}..{dir 130} p4 shifted (1u,-1u); 47 62 61 60 48 49 50 59 53 52 51 52 36 35 34 53 69 68 33 54 66 67 32 57 65 64 31 30 66 63 62 61 67 68 57 58 54 55 56 59 63 64 57 22 60 59 58 21 label.lft(btex $\mbox{id} = 0$ etex, p4 shifted (-2u,2u)); label.lft(btex (\emph{recv})etex, p4 shifted (-2u,-2u)); label.rt(btex $\mbox{id} = 1$ (\emph{send}) etex, p1 shifted (2u,0)); label.rt(btex $\mbox{id} = 2$ (\emph{send}) etex, p2 shifted (2u,0)); label.rt(btex $\mbox{id} = 3$ (\emph{send}) etex, p3 shifted (2u,0)); endfig; end Komentotiedosto send.mp ajetaan MetaPost-ohjelman läpi seuraavasti: % use -q tex % setenv TEX latex % mpost send.mp This is MetaPost, (send.mp [1]) 1 output file written: send.1 Transcript written on send.log. Kuvatiedosto send.1 näyttää seuraavalta: id = 0 (recv) id = 1(send) id = 2(send) id = 3(send) 61 62 3 2 1 58 5 4 33 32 57 6 35 34 31 56 7 8 9 30 55 60 59 10 29 56 57 58 11 28 Lisätietoja Tässä artikkelissa käytettyjen LATEX-pakettien ja MetaPostin käyttöoppaat löytyvät CSC:n koneiden hakemistoista 29 28 59 12 27 $DOC/tetex-doc/latex/ $DOC/tetex-doc/metapost/ LATEX-järjestelmän käytöstä saat lisätietoja CSC:n koneiden komennolla help tex. LATEXin käyttöoppaaksi sopii teos LATEX A Document Preparation System (Leslie Lamport; Addison-Wesley, 1994, toinen painos). Monipuolinen katsaus LATEXin mahdollisuuksiin löytyy teoksesta The LATEX Companion (Goossens, Mittelbach, Samarin; Addison-Wesley, 1994). Grafiikan käytöstä kerrotaan monipuolisesti teoksessa The LATEX Graphics Companion (Goossens, Rahtz, Mittelbach; Addison-Wesley, 1997). 60 27 60 13 26 59 26 61 14 25 24 25 16 15 24 23 18 17 22 23 20 19 20 21 24 11
L A TEX ja kirjallisuusviitteet Juha Haataja Juha.Haataja@csc.fi E dellisissä @CSC-lehdissä olen kertonut LATEX-ohjelmiston käytöstä mm. elektroniseen julkaisuun sekä esittelykalvojen ja grafiikan tekoon. Tässä artikkelissa keskityn artikkelien ja kirjojen julkaisemisessa tärkeään kirjallisuusviitteiden käsittelyyn. Kirjallisuusviitteet L A TEXissa Seuraavassa LATEX-dokumentissa viitataan kolmeen CSC:n julkaisuun. Viittaus tapahtuu komennolla \cite{tunnus}, missä tunnusta vastaavan teoksen tiedot määritellään ympäristön thebibliography komennolla \bibitem. \documentclass[a4paper,12pt]{article} \usepackage[finnish]{babel} \usepackage[latin1]{inputenc} \usepackage[t1]{fontenc} \begin{document} \section*{csc:n oppaita} Rinnakkaislaskentaa on käsitelty Korkeakoulujen atk"-uutisissa~\cite{katku-rinnakkais}. Rinnakkaisohjelmointia käsitellään CSC:n oppaissa~\cite{cscmpi,cscpvm}. \begin{thebibliography}{1} \bibitem{katku-rinnakkais} Juha Haataja, Esko Järvinen ja Jussi Rahola. \newblock {Rinnakkaislaskenta. Nyt!} \newblock \emph{korkeakoulujen atk-uutiset}, 2/1991, sivut 14--17. \bibitem{cscmpi} Juha Haataja ja Kaj Mustikkamäki. \newblock \emph{rinnakkaisohjelmointi MPI:llä}. \newblock CSC -- Tieteellinen laskenta Oy, 1996. \bibitem{cscpvm} Sami Saarinen. \newblock \emph{rinnakkaislaskennan perusteet PVM-ympäristössä}. \newblock CSC -- Tieteellinen laskenta Oy, 1996. \end{thebibliography} \end{document} Jos edellinen LATEX-lähdekoodi on tiedostossa biblio.tex, dokumentti saadaan ladottua komennoilla latex biblio; latex biblio Tässä tarvitaan kaksi ajoa LATEXin läpi, jotta kirjallisuusviittaukset saadaan ajan tasalle. Tulos voisi näyttää esimerkiksi seuraavalta: CSC:n oppaita Rinnakkaislaskentaa on käsitelty Korkeakoulujen atk-uutisissa [1]. Rinnakkaisohjelmointia käsitellään CSC:n oppaissa [2, 3]. Viitteet [1] Juha Haataja, Esko Järvinen ja Jussi Rahola. Rinnakkaislaskenta. Nyt! Korkeakoulujen atk-uutiset, 2/1991, sivut 14 17. [2] Juha Haataja ja Kaj Mustikkamäki. Rinnakkaisohjelmointi MPI:llä. CSC Tieteellinen laskenta Oy, 1996. [3] Sami Saarinen. Rinnakkaislaskennan perusteet PVM-ympäristössä. CSC Tieteellinen laskenta Oy, 1996. 1 Tässä kirjallisuusviitteet on numeroitu tekijöiden nimen mukaan aakkosjärjestyksessä. BibTEX-ohjelmiston käyttö Jos käytät samoja kirjallisuusviitteitä usein tai joudut muokkaamaan kirjallisuusviitteiden esitystapaa esimerkiksi tieteellisen sarjajulkaisun vaatimuksia vastaavaksi, on BibTEX-ohjelmiston käyttö suositeltavaa. BibTEX erottaa toisistaan kirjallisuusviitteet sisältävän tietokannan ja viitteiden tyylimäärittelyt. Samaa tietokantaa voi käyttää kaikkien julkaisujen kanssa. Lisäksi tarjolla on suuri joukko tyylimäärittelyjä, joilla kirjallisuusviitteet saadaan automaattisesti oikeaan muotoon. Helpointa tämä on englanninkieli- 12
sen tekstin kohdalla, mutta suomenkielisen BibTEXtyylin tekeminen ei sekään ole erityisen vaikeaa. Edellisen esimerkin ympäristö thebibliography voitaisiin korvata komennoilla \bibliography{viitteet} \bibliographystyle{cscalpha} Tässä LATEX-dokumentissa käytetään tiedostosta viitteet.bib löytyviä kirjallisuustietoja. Viiteluettelo ladotaan käyttäen CSC:ssä tehtyä tyyliä cscalpha. Kirjallisuustietokannan viitteet.bib sisältö voisi olla seuraava: @STRING{csc = "{CSC -- Tie\-teel\-li\-nen laskenta Oy}"} @book{cscmpi, author = {Juha Haataja and Kaj Mustikkam{\"a}ki}, title = {{Rinnakkaisohjelmointi MPI:ll{\"a}}}, year = {1996}, publisher = csc, pages = {56} } @book{cscpvm, author = {Sami Saarinen}, title = {{Rinnakkaislaskennan perusteet {PVM}-ymp{\"a}rist{\"o}ss{\"a}}}, year = {1995}, publisher = csc, pages = {264} } @article{katku-rinnakkais, author = {Juha Haataja and Esko J{\"a}rvinen and Jussi Rahola}, title = {{Rinnakkaislaskenta. Nyt!}}, journal = {Korkeakoulujen atk-uutiset}, year = {1991}, volume = {10}, number = {2}, pages = {14-17} } Tietokannassa on käytetty 7-bittisiä merkkejä, koska normaali BibTEX-ohjelmisto ei osaa käsitellä 8-bittisiä ääkkösiä. Dokumentti biblio.tex voidaan käsitellä tulostuskuntoon seuraavilla komennoilla: latex biblio bibtex biblio latex biblio; latex biblio Tulos voisi olla seuraava: CSC:n oppaita Rinnakkaislaskentaa on käsitelty Korkeakoulujen atk-uutisissa [HJR91]. Rinnakkaisohjelmointia käsitellään CSC:n oppaissa [HM96, Saa95]. Viitteet [HJR91] Juha Haataja, Esko Järvinen ja Jussi Rahola, Rinnakkaislaskenta. Nyt!, Korkeakoulujen atk-uutiset, 2/1991, Volume 10, sivut 14 17. [HM96] Juha Haataja ja Kaj Mustikkamäki. Rinnakkaisohjelmointi MPI:llä. CSC Tieteellinen laskenta Oy, 1996. [Saa95] Sami Saarinen. Rinnakkaislaskennan perusteet PVM-ympäristössä. CSC Tieteellinen laskenta Oy, 1995. 1 Uusien tyylien luominen Edellä käytetyn kirjallisuusviitetyylin cscalpha sijaan voi kirjallisuusluettelon tekoon käyttää LATEXin standardityylejä plain tai alpha. Nämä tyylit sopivat kuitenkin vain englanninkielisiin dokumentteihin. Kun on tarvetta luoda uusi esimerkiksi suomenkielinen tyyli kirjallisuusviitteille, voi tähän käyttää pakettia natbib.sty. Lisäksi käytettävissä on paketti custom-bib, joka kyselee halutun tyylin ominaisuudet (mm. käytetyn kielen) ja tuottaa halutun tyylitiedoston. Tämä paketti löytyy CSC:n koneiden hakemistosta $DOC/tetex-doc/latex/custom-bib/ Seuraavassa esimerkki custom-bib-paketilla luodun tyylitiedoston finn.bst käytöstä: % \usepackage{natbib} \begin{document} \section*{csc:n oppaita} \cite{katku-rinnakkais} on esitellyt rinnakkaislaskentaa Korkeakoulujen atk"-uutisissa. Rinnakkaisohjelmointia käsitellään CSC:n oppaissa~\cite[]{cscpvm,cscmpi}. \bibliography{viitteet} \bibliographystyle{finn} % 13
Tyylitiedosto finn.bst vaatii natbib-paketin käytön. Dokumentissa on havainnollistettu komennon \cite eri muotoja. Tulos on seuraavan näköinen: CSC:n oppaita Haataja et al. (1991) on esitellyt rinnakkaislaskentaa Korkeakoulujen atk-uutisissa. Rinnakkaisohjelmointia käsitellään CSC:n oppaissa (Saarinen, 1995; Haataja ja Mustikkamäki, 1996). Viitteet Juha Haataja, Esko Järvinen ja Jussi Rahola. Rinnakkaislaskenta. Nyt! Korkeakoulujen atkuutiset, 10, no. 2, 14 17, 1991. Tämä tyyli erottelee viitteet tekijöiden ja vuosiluvun perusteella. Jos tekijöitä on kolme tai enemmän, tulostuu viittauksessa vain ensimmäisen tekijän nimi. Lisätietoja LATEX-järjestelmän käytöstä saa lisätietoja CSC:n koneiden komennolla help tex. LATEXin perusteet on kuvattu käsikirjassa LATEX A Document Preparation System (Leslie Lamport, Addison-Wesley, 1994, toinen painos). Monipuolinen katsaus LATEXin mahdollisuuksiin löytyy teoksesta The LATEX Companion (Goossens, Mittelbach, Samarin; Addison-Wesley, 1994). Juha Haataja ja Kaj Mustikkamäki. Rinnakkaisohjelmointi MPI:llä. CSC Tieteellinen laskenta Oy, 1996. Sami Saarinen. Rinnakkaislaskennan perusteet PVM-ympäristössä. CSC Tieteellinen laskenta Oy, 1995. 1 14
Kirjan viimeistely L A TEXilla Juha Haataja Juha.Haataja@csc.fi T aitto-ohjelmisto LATEX soveltuu hyvin kirjojen toimittamiseen painokuntoon. CSC:ssä on käytetty LATEXia kymmenien oppaiden ja oppikirjojen tuottamiseen, puhumattakaan väitöskirjoista ja muista opinnäytteistä. Olen kertonut aiemmissa @CSC-lehdissä mm. kuvien sijoittamisesta LATEX-dokumentteihin sekä kirjallisuusviitteiden käsittelystä. Tässä jutussa käyn katsausluontoisesti läpi kirjan viimeistelyssä tarvittavia apuneuvoja. Aluksi esittelen hakemiston tekemistä. Tämän jälkeen kerron dokumentin rakenteen kuvaamisesta sekä dokumentin tyylin määrittelystä. Hakemiston tekeminen Seuraavassa LATEX-dokumentissa sijoitetaan joukko hakusanoja dokumentin loppuun tulevaan hakemistoon. \documentclass[a4paper,12pt]{report} \usepackage[finnish]{babel} \usepackage[latin1]{inputenc} \usepackage[t1]{fontenc} \usepackage{makeidx} \makeindex \newcommand{\emix}[1]{\index{#1@\emph{#1}}} \begin{document} \section*{esimerkki hakemistosta} Hakemiston tekemistä varten otetaan käyttöön paketti \texttt{makeidx}% \index{makeidx@\texttt{makeidx}} ja annetaan komento \verb:\makeindex:% \index{makeindex@\verb:\makeindex:} dokumentin alussa. Hakemisto sijoitetaan teokseen komennolla \verb:\printindex:.% \index{printindex@\verb:\printindex:} Hakusanan\index{hakemisto} määrittelyyn käytetään \verb:\index:"-komentoa% \index{index@\verb:\index:}. Hakemistoon tulevat termit voidaan muotoilla käyttämällä symbolia \verb:@:.% \index{"@@\verb:"@:-symboli} Hierarkkisia hakemistoviittauksia% \index{hakemisto!hierarkkinen} saadaan aikaan symbolilla \verb:!:.% \index{"!@\verb:"!:-symboli} Hakemistoa varten voi määritellä uusia komentoja\index{komento!määrittely}. Esimerkiksi määrittelyllä% \begin{verbatim} \newcommand{\emix}[1]{\index{#1@\emph{#1}}} \end{verbatim} luodaan komento\index{komento}, joka sijoittaa annetun termin hakemistoon \emph{korostettuna}\emix{korostus}. \printindex \end{document} Hakusana sijoitetaan hakemistoon siis komennolla \index{hakusana}. Jos hakusana täytyy muotoilla (vaikkapa konekirjoitusfontilla), käytetään merkkiä @: \index{makeidx@\texttt{makeidx}} Tässä aakkosjärjestyksessä sanan makeidx kohdalle sijoitetaan komennon \texttt{makeidx} tulostus. Ohjelman makeindex käyttö Jos edellä esitetty LATEX-lähdekoodi on tiedostossa kirja.tex, dokumentti saadaan ladottua komennoilla latex kirja; makeindex kirja; latex kirja Tässä tarvitaan kaksi ajoa LATEXin läpi, jotta hakemisto saadaan ajan tasalle. Tulos voisi näyttää esimerkiksi seuraavalta: Esimerkki hakemistosta Hakemiston tekemistä varten otetaan käyttöön paketti makeidx ja annetaan komento \makeindex dokumentin alussa. Hakemisto sijoitetaan teokseen komennolla \printindex. Hakusanan määrittelyyn käytetään \index-komentoa. Hakemistoon tulevat termit voidaan muotoilla käyttämällä symbolia @. Hierarkkisia hakemistoviittauksia saadaan aikaan symbolilla!. Hakemistoa varten voi määritellä uusia komentoja. Esimerkiksi määrittelyllä \newcommand{\emix}[1]{\index{#1@\emph{#1}}} luodaan komento, joka sijoittaa annetun termin hakemistoon korostettuna. 1 15
Hakemisto!-symboli, 1 @-symboli, 1 hakemisto, 1 hierarkkinen, 1 \index,1 komento, 1 määrittely, 1 korostus, 1 makeidx,1 \makeindex,1 \printindex,1 Ohjelman makeindex huono puoli on se, että se ei tunne skandimerkkejä. Eräs tapa kiertää tämä rajoitus on käyttää kirjainta z skandinaavisten merkkien paikalla. Tällöin sana tulee jotakuinkin oikealle paikalleen. Siten hakusanan määritelmä voisi sijoittaa hakemistoon komennolla \index{mzzritelmz@määritelmä} Ohjelman makeindex tuottamia.ind-tiedostoja voi myös jälkikäsitellä vaikkapa Emacsilla tai Perl-ohjelmistolla. Hakemistoviittaukset siis tulevat aakkosjärjestykseen dokumentin loppuun. Hakemistotyylien luominen Edellä käytettiin ohjelman makeindex oletustyyliä hakemiston tekemiseen. Hakemistolle voi määritellä myös oman tyylitiedoston tyyli.ist, josta on seuraavassa esimerkki: headings_flag 1 heading_prefix "{\\bfseries " heading_suffix "\\hfil}\\nopagebreak\n" symhead_positive "Symbolit" Tässä määriteltiin tyylitiedosto, jossa hakemistoon tulee lihavoituna otsikkokirjaimet sekä symbolien otsikoksi teksti Symbolit. Hakemisto saadaan luotua komennolla makeindex -s tyyli kirja Tulos voisi olla seuraavan näköinen: Hakemisto Symbolit!-symboli, 1 @-symboli, 1 H hakemisto, 1 hierarkkinen, 1 I \index,1 2 K komento, 1 määrittely, 1 korostus, 1 M makeidx,1 \makeindex,1 P \printindex,1 2 Ohjelmasta makeindex saa lisätietoa CSC:n koneiden komennoilla use tex man makeindex Dokumentin rakenteen kuvaaminen Kirjan taitto pyrkii tuomaan esille kirjoittajan ajatukset. Jotta teksti olisi helposti luettavaa, sen ulkoasun tulisi vastata loogista rakennetta. Tekstinkäsittelyohjelmissa suunnitellaan dokumentin ulkoasu visuaalisesti. Tämä soveltuu oivallisesti lyhyisiin dokumentteihin kuten kirjeet tai muistiot. Monimutkaisiin dokumentteihin kuten kirja tai tieteellinen julkaisu tämä lähestymistapa sopii paljon huonommin. LATEX pyrkii automatisoimaan dokumentin taiton. Täten kirjoittaja voi keskittyä tekstin sisällön ja rakenteen suunnitteluun. LATEX myös tarjoaa hyvät mahdollisuudet sisällysluettelon, hakemiston ja kirjallisuusluettelon luomiseen sekä kaavojen, taulukkojen ja kuvien numerointiin ja ristiviittausten tekemiseen. Lisäksi LATEX-dokumentista mahdollista tuottaa pienellä vaivalla myös verkkoversio Internetiin esim. PDF-muodossa. Kirjoittettaessa on syytä pitää mielessä tekstin rakenne, ei visuaalinen ulkoasu. LATEXin komennoilla tulisi siis kuvata tekstin loogista rakennetta, ei visuaalisia yksityiskohtia: \chapter{luvun otsikko} \section{kappaleen otsikko} \begin{quote} Tämä on lainattua tekstiä. \end{quote} LATEXissakin voi käyttää tulostusasun määrääviä komentoja. Esimerkiksi komento \textsl{teksti} tulostaa annetun tekstin kallistetulla fontilla. Jos kuitenkin myöhemmin päätämme, että haluamme tulostaa vaikkapa kaikki uusien termien esittelyt kursiivilla, joudumme korvaamaan termien esittelyihin liittyvät \textsl-komennot komennoilla \textit.tämän sijaan olisi alunperin voitu määritellä komento \termi{teksti}, joka kertoo, että tässä määritellään uusi käsite: \newcommand{\termi}[1]{\textit{#1}} 16
Komentoa \termi muuttamalla saadaan dokumentin ulkoasu halutun mukaiseksi. Visuaalisen taiton etuna on nopeus: näet lähestulokoon heti, miltä dokumentti suunnilleen näyttää tulostettuna. Tämä etu on vähenemässä tietokoneiden nopeutuessa. Nopealla RISC-koneella vie 300-sivuisen teoksen ladonta LATEXilla pari sekuntia, jonka jälkeen dokumentin uusi päivitetty versio on nähtävissä kuvaruudulla. CSC:n opastyyli Kirjaa viimeisteltäessä tulee esiin loogisen rakenteen suurin etu: dokumentin ulkoasu voidaan määrätä loogisen rakenteen pohjalta, jolloin suurtenkin muutosten tekeminen onnistuu tehokkaasti. LATEXin avulla voi dokumentin ulkoasun suunnitella erillään kirjoitusprosessista. CSC:ssä on käytössä vuosien kuluessa kehitetty oppaiden LATEX-tyylimäärittely, jonka avulla oppaille saadaan yhtenäinen ulkoasu. CSC:n opastyyliä on käytetty usean kymmenen kirjan tuottamiseen. Osa näistä on tietokonejärjestelmien käyttöoppaita ja loput eri tieteenalojen oppikirjoja ja oppaita. CSC:n nykyinen opastyyli rakentuu book-standardiluokan pohjalle. Opastyylin määrittelyt on jaettu useaan erilliseen tyylitiedostoon, joten tyylimäärittelyjen muokkaaminen on mahdollista pienissä osasissa. Opasluokka cscopas tuntee useita valitsimia esimerkiksi kielen (suomi tai englanti), kirjasinperheen ja matemaattisen esitystavan valitsemiseksi. CSC:n opastyylissä on määritelty uusia komentoja tiettyjen usein esiintyvien rakenteiden esittämiseen. Esimerkiksi kahdesta sarakkeesta koostuvan taulukon esittämiseen on määritelty ympäristö twocol: \begin{twocol}{termi}{selitys} MPI & Message-Passing Interface \\ PVM & Parallel Virtual Machine \\ HPF & High-Performance Fortran \\ \end{twocol} Dokumenttityylissä määritellään, miltä tällaisen taulukon tulisi näyttää. Täten oppaan taulukoille saadaan automaattisesti yhtenäinen ulkoasu. Tulos voisi olla esimerkiksi seuraava: Termi MPI PVM HPF Selitys Message-Passing Interface Parallel Virtual Machine High-Performance Fortran Teoksen jakaminen osiin Isoa teosta kirjoitettaessa on hyödyllistä jakaa teksti vaikkapa luvun kokoisiin osiin. Jos kirjoittajia on useita, voidaan samalla jakaa kirjoitustyö: kullakin on editoitavana tietyt luvut. Jos teoksen luvut ovat vaikkapa tiedostoissa luku1.tex, luku2.tex jne., voi ne sisällyttää teokseen komennolla \include{luku1} jne. Tyypillisesti teos koostuu siten tiedostosta kirja.tex, jossa otetaan käyttöön tyylitiedosto sekä luetaan sisään \include-komennoilla lukujen ja liitteiden tekstit. Mikäli teoksesta halutaan taittaa vain osa, onnistuu tämä komennolla \includeonly. Lisätietoja LATEX-järjestelmän käytöstä saa lisätietoja CSC:n koneiden komennolla help tex. LATEXin perusteet on kuvattu käsikirjassa LATEX A Document Preparation System (Leslie Lamport, Addison-Wesley, 1994, toinen painos). Monipuolinen katsaus LATEXin mahdollisuuksiin löytyy teoksesta The LATEX Companion (Goossens, Mittelbach, Samarin; Addison- Wesley, 1994). Olen esitellyt LATEXin käyttöä @CSC-lehden aiemmissa numeroissa: LATEX ja kirjallisuusviitteet (@CSC 1/2000) LATEX ja grafiikka (@CSC 5/1999) Elektroninen julkaiseminen ja LATEX (@CSC 4/1999) Esittelykalvojen teko LATEX-ohjelmistolla (@CSC 3/1999) LATEXin pikaesittely (@CSC 2/1998). 17
L A TEXin edistyneempiä mahdollisuuksia Juha Haataja Juha.Haataja@csc.fi O len kertonut LATEX-ohjelmiston käytöstä muiden muassa elektroniseen julkaisuun sekä esittelykalvojen ja grafiikan tekoon aiemmissa @CSC-lehdissä. Nämä artikkelit ovat luettavissa ja tulostettavissa PDF-muodossa www-osoitteesta http://www.csc.fi/oppaat/latex/ Värien käyttö LATEX-järjestelmän mukana on saatavilla color-paketti, jonka avulla värejä voidaan käyttää kaikenlaisen tiedon esittämiseen. Dokumentti voisi alkaa esimerkiksi seuraavasti: \documentclass[a4paper,10pt]{article} \RequirePackage[english]{babel} \RequirePackage[dvips]{color} \definecolor{mygray}{gray}{0.85} \definecolor{lightblue}{rgb}{0.1,0.5,0.9} \definecolor{darkblue}{rgb}{0.0,0.1,0.5} \setlength{\parindent}{0pt} \setlength{\parskip}{0pt} \pagestyle{empty} \begin{document} Tässä otetaan käyttöön englanninkielinen tavutus babel-paketista. Värien käytön mahdollistaa colorpaketti. Lisäksi määrittellään uusia värejä käyttäen harmaasävynotaatiota (mygray) ja rgb-notaatiota (lightblue ja darkblue). Lopuksi määritellään muutamia taittoon liittyviä asetuksia: sisennys, kappaleiden väli ja sivun ulkoasu. Seuraavaksi voidaankin esittää esimerkiksi teksti ja tausta eri väreillä: { \setlength{\fboxrule}{0.4mm}% \setlength{\fboxsep}{2mm}% \fcolorbox{black}{black}{% \begin{minipage}{95mm} \color{white}\centerline{\textbf{\large All I Really Need to Know I Learned in Kindergarten}} {\hrulefill} \raisebox{-0.4ex}{% \emph{by Robert L. Fulghum}} {\hrulefill} \end{minipage} } Edellä käytettiin valmiiksi määriteltyjä värejä black ja white. Komennon \fcolorbox avulla saadaan aikaan laatikko, jonka taustan värin, reunan leveys ja väri voidaan määritellä. Edelleen määritellään laatikon sisällön etäisyys laatikon reunasta. Edellisten komentojen tulos näyttää seuraavalta: All I Really Need to Know I Learned in Kindergarten By Robert L. Fulghum Jatketaan esimerkkiä seuraavasti: \end{minipage} }\\[-1ex] \setlength{\fboxsep}{2mm} \fcolorbox{black}{mygray}{% \begin{minipage}{95mm} \hspace{5mm} \begin{minipage}{90mm} \raggedright \setlength{\parindent}{-1.5em}% \setlength{\parskip}{1ex}% \color{lightblue}\textsc{share everything.} \color{darkblue}\textsc{play fair.} \color{red}\textsc{don t hit people.} \color{blue}\textsc{be aware of wonder.} \end{minipage} \end{minipage} } } Edellä käytettiin värejä black, blue ja red sekä itse määritteltyjä värejä mygray, lightblue ja darkblue. Ympäristön minipage avulla voidaan sijoittaa teksti halutulla tavalla. Lopputulos on esitetty kuvassa 1. Omien komentojen määrittely Eräs hyödyllisimmistä LATEXin mahdollisuuksista on määritellä omia komentoja. Tämän artikkelin alussa on sijoitettu www-osoite harmaareunaiseen laatikkoon. Tämä on toteutettu määrittelemällä ympäristö 18
Boxedminipage, jossa käytetään hyväksi fancyboxpaketista peräisin olevia määrittelyjä. Tarvittavat komennot ovat: \RequirePackage[dvips]{color} \RequirePackage{fancybox} \newenvironment{boxedminipage}% {\begin{sbox}\begin{minipage}}% {\end{minipage}\end{sbox}% \setlength{\fboxrule}{0.75mm}% \setlength{\fboxsep}{1mm}% \fcolorbox{miugray}{white}{\thesbox}} Näiden määrittelyjen jälkeen voi www-osoitteen esittää seuraavasti: \begin{boxedminipage}{70mm} \texttt{http://www.csc.fi/oppaat/latex/} \end{boxedminipage} Tulos on artikkelin alussa esitetyn näköinen. LATEXissa on tehokas komentojoukko esimerkiksi erilaisten käyttöohjeiden taittamiseen. Tarkastellaan esimerkkinä seuraavan näköistä LATEX-koodia: \merkkaa{opastus}{% \begin{minipage}{50mm}\raggedright \begin{smallitems} \item \textbf{help} \emph{aihe} (CSC:n opastus) \item \textbf{man} \emph{komento} (manuaalisivut) \item \textbf{msgs} (ylläpitoviestit) \item \textbf{lynx}, \textbf{netscape} (verkkotiedotus) \item CSC Help -palvelu: \textbf{http://www.csc.fi/cschelp/} \end{smallitems} \end{minipage} } Näiden komentojen tulos näyttää seuraavalta: Opastus help aihe (CSC:n opastus) man komento (manuaalisivut) msgs (ylläpitoviestit) lynx, netscape (verkkotiedotus) CSC Help -palvelu: http://www.csc.fi/cschelp/ Komennon \merkkaa ja ympäristön smallitems määrittely vaatii kohtalaisen paljon LATEX-koodia, joten en esitä määrittelyjä tässä. Lisätietoja LATEX-järjestelmän käytöstä saa lisätietoja CSC:n koneissa komennolla help tex. LATEXin alkeet on kuvattu käsikirjassa LATEX A Document Preparation System (Leslie Lamport, Addison-Wesley, 1994, toinen painos). Perusteellinen esitys LATEXin mahdollisuuksista löytyy teoksesta The LATEX Companion (Goossens, Mittelbach, Samarin; Addison-Wesley, 1994). Grafiikan teossa on hyötyä kirjasta The LATEX Graphics Companion (Goossens, Rahtz, Mittelbach; Addison-Wesley, 1997). All I Really Need to Know I Learned in Kindergarten By Robert L. Fulghum SHARE EVERYTHING. PLAY FAIR. DON T HIT PEOPLE. PUT THINGS BACK WHERE YOU FOUND THEM. CLEAN UP YOUR OWN MESS. DON T TAKE THINGS THAT AREN T YOURS. SAY YOU ARE SORRY WHEN YOU HURT SOMEBODY. WASH YOUR HANDS BEFORE YOU EAT. FLUSH. WARM COOKIES AND COLD MILK ARE GOOD FOR YOU. LIVE A BALANCED LIFE LEARN SOME AND THINK SOME AND DRAW AND PAINT AND SING AND DANCE AND PLAY AND WORK EVERY DAY SOME. TAKE A NAP EVERY AFTERNOON. WHEN YOU GO OUT INTO THE WORLD, WATCH OUT FOR TRAFFIC, HOLD HANDS AND STICK TOGETHER. BE AWARE OF WONDER. Kuva 1: Esimerkki LATEXin mahdollisuuksista. 19
L A TEX ja MikTEX Windows-ympäristössä Mikko Lyly Mikko.Lyly@csc.fi M iktex on Internetistä vapaasti saatavilla oleva TEX- ja LATEX-ohjelmistopaketti Windows-ympäristössä työskentelyä varten. MikTEX-projektin kotisivut löytyvät osoitteesta http://www.miktex.de/. Sivuilta on vapaasti haettavissa paketin uusin versio 1.20e, joka sisältää muun muassa seuraavat TEX- ja LATEXperustyökalut: Työkalu TeX 3.14159 Yap 0.97 LaTeX2e (99/06/01) Dvips 5.86 Dvipdfm 0.12.6e BibTeX 0.99c Selitys TEX-kääntäjä DVI-esikatseluohjelma Yet Another Previewer makropaketti postscript-kääntäjä PDF-kääntäjä kirjallisuusviitteiden käsittelijä MikTEXin asennus MikTEXin asennus on kokemuksiemme mukaan hyvin yksinkertaista, eikä epäonnistumisen riskiä juuri ole. Peruspaketin asennusohjelma setupwiz.exe sijoittaa ohjelman kirjastoineen automaattisesti oikeille paikoilleen, eikä hankalia ja monimutkaisia määrittelyjä tarvita. Asennuksen jälkeen käyttöjärjestelmän tiedostoon c:/autoexec.bat tulee kuitenkin räätälöidä rivi, joka määrittää ohjelmiston hakemistopolun, esimerkiksi: > set PATH=%PATH%;e:/texmf/miktex/bin Tarkemmat asennusohjeet löytyvät MikTEXin käyttöohjeista osoitteessa http://www.miktex.de/doc/manual/miktex. pdf MikTEXiä voi käyttää DOS-ikkunasta komentorivipohjaisesti samaan tapaan kuin CSC:n Voxopm-, Caper- ja Cedar-koneille asennettuja LATEX-ohjelmistoja. Ohjelmaan on saatavilla myös käyttöä helpottavia ja käyttöönottokynnystä madaltavia graafisia käyttöliittymiä. Näitä voi hakea esimerkiksi osoitteesta http://www.winedt.com. Liittymien rekisteröinnistä veloitetaan yleensä nimellinen korvaus. Lisätietoja Lopuksi mainittakoon, että LATEX-ohjelmiston käyttöön liittyvää oheismateriaalia on saatavilla runsaasti esimerkiksi osoitteesta http://tug2.cs.umb. edu/ctan/ josta löytyy linkki CTAN- (Comprehensive TEX Archieve Network) -kotisivuille. CSC:n ympäristössä LATEX-ohjelmiston käytöstä saa lisätietoa myös komennolla help tex tai tiedostosta $DOC/tetex-doc/local/lyhyt2e.pdf. LATEXin käyttöä on esitelty myös useissa @CSC-lehtien artikkeleissa... 20