%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Contents: Things you need to know % $Id: asiat.tex,v 3.7 1999/04/21 08:05:09 hellgren Exp hellgren $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Asiat, jotka tulisi tietää} \begin{intro} Tämän luvun ensimmäisessä osassa tehdään lyhyt katsaus \LaTeX:n filosofiaan ja historiaan. Luvun toisessa osassa keskitytään \LaTeX-dokumentin perusrakenteeseen. Luvun jälkeen lukijalla pitäisi olla karkea yleiskuva \LaTeX:n toiminnasta. Jatkossa tämä auttaa yhdistämään uutta tietoa kokonaiskuvaan. \end{intro} \section{Pelin henki} \subsection{\TeX} \TeX{} on \index{Knuth, Donald E.}Donald E.~Knuthin~\cite{texbook} tekemä tietokoneohjelma. Se on tarkoitettu tekstin ja matemaattisten kaavojen ladontaan. Knuth alkoi kirjoittaa \TeX:iä 1977 turhautuneena American Mathematical Societyn julkaisujen laatuun. Hän itse asiassa lopetti aineiston toimittamisen joskus 1974 paikkeilla, koska ''lopputulosta oli yksinkertaisesti liian tuskallista katsella''. Nykyinen \TeX julkaistiin 1982 ja sitä on hieman paranneltu vuosien varrella. Viime vuosina \TeX:stä on tullut hyvin vakaa. Nykyään Knuth väittää, että ohjelmassa ei enää ole käytännöllisesti katsoen lainkaan virheitä. \TeX:n versionumero lähestyy $\pi$:n arvoa, sen ollessa nyt $3,14159$. \TeX{} luetaan 'Teh', jossa 'h' äännetään kuten 'ch' saksan sanassa ''Ach'' tai skotin sanassa ''Loch''. \texttt{ASCII}-ympäristössä \TeX{} kirjoitetaan \texttt{TeX}. \subsection{\LaTeX} \LaTeX{} on makropakkaus, jonka avulla kirjoittajat voivat latoa ja tulostaa typografialtaan korkealaatuisia töitä. Pakkaus käyttää etukäteen määriteltyä, ammattimaista taittomallia. \LaTeX:n teki alunperin \index{Lamport, Leslie}Leslie Lamport~\cite{manual}. \LaTeX{} käyttää ladonnassa \TeX{}-ohjelmaa. Muutama vuosi sitten \index{Mittelbach, Frank}Frank Mittelbachin johtama \index{LaTeX3@\LaTeX 3}\LaTeX 3 ryhmä teki uuden version \LaTeX{}-makroista. Mukaan otettiin pitkään kaivattuja parannuksia ja kaikki korjaukset, jotka olivat kasaantuneet sitten \index{LaTeX 2.09@\LaTeX{} 2.09}\LaTeX{} 2.09:n julkaisemisen. Jotta uusi versio erottuisi vanhasta, sitä kutsutaan nimellä \index{LaTeX 2e@\LaTeXe}\LaTeXe. Tämä ohje käsittelee \LaTeXe-makropakkausta. \LaTeX{} luetaan 'lateh'. \texttt{ASCII}-ympäristössä \LaTeX{} kirjoitetaan muodossa \texttt{LaTeX}. \LaTeXe{} luetaan 'lateh kaksi epsilon' tai 'lateh kaks e' ja kirjoitetaan \texttt{LaTeX2e}. Kaavio \ref{components} sivulla \pageref{components} näyttää miten \TeX{} ja \LaTeXe{} toimivat yhdessä. Alkuperäinen kaavio on Kees van der Laanin tiedostosta \texttt{wots.tex}. \begin{figure}[!hbp] \begin{lined}{0.8\textwidth} \begin{center} \input{keesin.fig} \end{center} \end{lined} \caption{\TeX-järjestelmän osat} \label{components} \end{figure} \section{Perusteita} \subsection{Kirjoittaja, taittaja ja latoja} Ennen vanhaan kirjoittajat lähettivät kirjoituskoneella kirjoitetut käsikirjoituksensa kustantamolle. Kustantajan taittaja suunnitteli sitten teoksen ulkoasun eli leiskan (palstan leveys, kirjasimet, välit ennen otsikoita ja niiden jälkeen,~\ldots). Taittaja kirjoitti ohjeensa käsikirjoitukseen ja antoi sen sitten latojalle, joka latoi kirjan näiden ohjeiden perusteella. Kun ihminen toimii taittajana hän yrittää selvittää mitä kirjoittajalla oli mielessään käsikirjoitusta tehdessään. Hän päättää lukujen otsikoista, lainauksista, esimerkeistä, kaavoista jne.\ ammatillisen kokemuksensa ja käsikirjoituksen sisällön pohjalta. \LaTeX-systeemissä \LaTeX:lla on taittajan rooli ja \TeX{} on latojana. Mutta koska \LaTeX{} on ''vain'' ohjelma, se tarvitsee enemmän työohjeita. Kirjoittajan täytyy lisätä ylimääräistä tietoja, joka kuvaa työn loogista rakennetta. Nämä tiedot kirjoitetaan tekstiin ''\LaTeX{}:n käskyinä.'' Tällainen lähestymistapa eroaa huomattavasti useimpien nykyisten \emph{MS Wordin} tai \emph{Corelin WordPerfectin} kaltaisten tekstinkäsittelyohjelmien ns. \wi{WYSIWYG}\footnote{'What you see is what you get' eli suomeksi suunnilleen 'Näet mitä teet'} ideologiasta. Näissä ohjelmissa kirjoittaja määrittelee kirjoittaessaan dokumentin ulkoasun interaktiivisesti. Samalla kirjoittaja näkee näytöllä, miltä lopullinen työ näyttää tulostettuna. Normaalisti \LaTeX:ssa ei ole mahdollista nähdä lopullista tulosta tekstiä kirjoitettaessa. Kun tiedosto on käsitelty \LaTeX:lla, on kuitenkin mahdollista nähdä esikatselun avulla lopullinen tulos näytöllä. Näin korjaukset voidaan tehdä ennen dokumentin tulostamista. \subsection{Taiton suunnittelu} Typografinen suunnittelu vaatii käsityötaitoa. Kokemattomat kirjoittajat tekevät usein pahoja muotoiluvirheitä olettaessaan, että kirjan suunnittelussa on kyse lähinnä estetiikasta: ''jos dokumentti näyttää taiteellisessa mielessä hyvältä, on se hyvin suunniteltu''. Mutta painettua tekstiä luetaan eikä ripusteta taidegallerian seinille. Luettavuus ja ymmärrettävyys on paljon tärkeämpää kuin kaunis ulkonäkö. Esimerkkejä: \begin{itemize} \item Otsikoiden kirjasimen koon ja numeroinnin tarkoituksena on selventää lukijalle tekstin rakennetta. \item Rivin pituuden tulisi olla kyllin lyhyt, jotta se ei rasittaisi lukijan silmiä, ja samalla kyllin pitkä, jotta se täyttäisi sivun kauniisti. \end{itemize} \wi{WYSIWYG}-systeemeissä kirjoittajat saavat usein aikaan esteettisesti miellyttäviä dokumentteja, joilla on kuitenkin epäjohdonmukainen rakenne tai ei lainkaan rakennetta. \LaTeX{} estää tämäntapaiset muotoiluvirheet pakottamalla kirjoittajan määrittelemään työn \emph{loogisen} rakenteen. \LaTeX{} puolestaan valitsee sopivimman ulkoasun. \subsection{Etuja ja haittoja} Kun \wi{WYSIWYG}- ja \LaTeX{}-kirjoittajat kohtaavat, käydään usein keskusteluita \index{LaTeX:n edut} \LaTeX:n eduista tavallisiin tekstinkäsittelyohjelmiin verrattuna ja päinvastoin. Sellaisen keskustelun alkaessa on parasta pitää matalaa profiilia, sillä homma yleensä karkaa käsistä. Joskus on kuitenkin vastattava mielipiteistään \ldots \medskip\noindent Niinpä tässä on hieman ruutia keskusteluun. \LaTeX:n edut tavallisiin tekstinkäsittelyohjelmiin verrattuna ovat seuraavat: \begin{itemize} \item Saatavilla on ammattilaisten tekemiä taittopohjia, jotka saavat dokumentin näyttämään todella ''painetulta''. \item Matemaattisten kaavojen ladonta onnistuu vaivattomasti. \item Käyttäjän ei tarvitse oppia kuin muutama dokumentin loogisen rakenteen määrittelevä komento. Itse ulkoasuun tarvitsee tuskin koskaan puuttua. \item Jopa monimutkaiset rakenteet, kuten alaviitteet, ristiviitteet, sisällysluettelot ja kirjallisuusluettelot voidaan generoida helposti. \item Monille typografisille ongelmille, joita perus-\LaTeX ei tue, löytyy ilmaisia lisämakroja. On olemassa esimerkiksi makropakkauksia PostScript-kuvien lisäämistä tai tiettyjen tarkkojen standardien mukaisten kirjallisuusluetteloiden latomista varten. Monia näistä lisäpakkauksista kuvataan kirjassa \companion. \item \LaTeX{} kannustaa kirjoittamaan rakenteellisesti hyviä tekstejä, sillä tämä on \LaTeX:n tapa toimia. \item \LaTeXe:n ladontaohjelma, \TeX, on ilmainen ja saatavilla melkein kaikkin mahdollisiin käyttöjärjestelmiin. % % Add examples ... % \end{itemize} \medskip \noindent\LaTeX:lla on myös puutteensa, mutta minun taitaa olla hieman vaikea löytää yhtään vakavasti otettavaa. Muut varmaankin pystyvät kertomaan niitä sadoittain \texttt{;-)} \begin{itemize} \item \LaTeX:sta ei ole apua niille, jotka ovat myyneet sielunsa \ldots \item Vaikka valmiin taittopohjan joitakin määrityksiä voidaan muuttaa, on kokonaan uuden taittomallin suunnittelu vaikeaa ja aikaa vievää.\footnote{Huhu kertoo, että tämä on yksi pääongelmista, joita yritetään ratkoa tulevassa \LaTeX 3 "=järjestelmässä}\index{LaTeX3@\LaTeX 3} \item Epäloogisten ja sekavien dokumenttien kirjoittaminen on hyvin vaikeaa. \end{itemize} \section{\LaTeX:n käsikirjoitustiedostot} Käsikirjoitus syötetään \LaTeX:lle tavallisina \texttt{ASCII}-tekstitiedostoina. Sellaisen voi tehdä millä tahansa tekstieditorilla. Tiedosto sisältää dokumentin tekstin ja komennot, jotka kertovat miten \LaTeX:n tulee latoa teksti. \subsection{Välilyönnit} Välilyöntiä ja tabulaattoria eli ''tyhjän tilan'' merkkejä käsitellän \LaTeX:ssa yhtäläisesti \index{välilyönnit} välilyöntinä. \emph{Useat peräkkäiset} \wi{välilyönnit} käsitetään \emph{yhtenä} välilyöntinä. Rivin alussa olevia välilyöntejä ei yleensä huomioida ja yksittäinen rivinvaihto käsitetään myös ''välilyönniksi''.\index{välilyönnit!rivin alussa} Tyhjä rivi tekstissä määrittelee kappaleenvaihdon paikan. \emph{Usea} tyhjä rivi vastaa \emph{yhtä} tyhjää riviä. Alapuolella oleva teksti käyköön esimerkistä. Oikealla puolella on käsikirjoituksen teksti ja vasemmalla on muotoiltu lopputulos. \begin{example} Sillä ei ole merkitystä lisäätkö sanan jälkeen yhden vai monta välilyöntiä. Tyhjä rivi aloittaa uuden kappaleen. \end{example} \subsection{Erikoismerkit} Seuraavat symbolit ovat \index{varatut merkit} varattuja merkkejä, joilla on joko erityinen merkitys \LaTeX:ssa tai sitten niitä ei ole saatavilla kaikissa kirjasimissa. Ne eivät tulostu, vaikka ne lisäisikin tekstiin sellaisenaan, Ne panevat \LaTeX:n tekemään asioita, joita et alunperin tarkoittanut. \begin{code} \verb.$ & % # _ { } ~ ^ \ . %$ \end{code} Näitä merkkejä voidaan kuitenkin käyttää tekstissä lisäämällä niiden eteen kenoviiva: \begin{example} \$ \& \% \# \_ \{ \} \end{example} Lisää symboleja voidaan tulostaa erityisillä komennoilla matemaattisisa kaavoissa tai tekstissä ja uusia voidaan kehitellä aksenttien avulla. Kenoviiva-merkkiä ($\backslash$) \emph{ei} voi tulostaa lisäämällä sen eteen toinen kenoviiva (\verb|\\|) sillä kyseinen merkkiyhdistelmä tarkoittaa rivinvaihtoa.\footnote{Käytä ennemmin komentoa \$\ci{backslash}\$. se tuottaa '$\backslash$'-merkin.} \subsection{\LaTeX:n käskyt} \LaTeX:n \wi{käskyt} erottavat pienet ja isot kirjaimet toisistaan. Niitä on kahdenlaisia: \begin{itemize} \item Käsky voi alkaa \index{kenoviiva} kenoviivalla \verb|\|, jonka perässä on pelkästään kirjaimista koostuva komennon nimi. Välilyönti tai jokin muu merkki kuin kirjain päättää komennon nimen. \item Käsky voi koostua kenoviivasta ja tasan yhdestä %numerosta tai erikoismerkistä. \end{itemize} % % \\* doesn't comply ! % % % Can \3 be a valid command ? (jacoboni) % \LaTeX{} ei noteeraa komentojen perässä olevaa välilyöntiä. Jos komennon jälkeen pitäisi tulostua \index{välilyönti!komentojen perässä} välilyönti, on komennon perään lisättävä joko \verb|{}| ja välilyönti tai erityinen välilyöntikomento. \verb|{}| estää \LaTeX:ia syömästä komennon jälkeisiä välilyöntejä. \begin{example} Knuth kuulemma jakaa \TeX:llä työskentelevät \TeX{}nikoihin ja \TeX pertteihin.\\ Tänään on \today. \end{example} Jotkut komennot tarvitsevat \index{lisämääreet} lisämääreitä, jotka kirjoitetaan \index{aaltosulkeet} aaltosulkeiden \verb|{ }| sisään komennon nimen perään. Jotkut komennot tukevat \index{vapaaehtoisia määreitä} vaihtoehtoisia määreitä, jotka lisätään komennon nimen perään \index{hakasulkeet} hakasulkeisiin~\verb|[ ]|. Seuraavassa esimerkissä on joitain \LaTeX-komentoja. Älä välitä niistä, niiden merkitys selitetään myöhemmin. \begin{example} \textsl{Nojaa} mun olkaan! \end{example} \begin{example} Aloita uusi rivi tästä näin!\newline Kiitos! \end{example} \subsection{Kommentit} \index{kommentit} Kun käsikirjoitustiedostossa on \verb|%|-merkki, \LaTeX{} jättää käsittelemättä sen merkin jälkeen tulevan rivin osan. Tätä voi hyödyntää lisäämällä käsikirjoitukseen muistiinpanoja, jotka eivät näy tulostetussa versiossa. \begin{example} Tämä on % tyhmä % Ennemminkin hyödyllinen <--- esimerkki: Perään% antamatto% muudellansakaan \end{example} \%-merkkiä voidaan käyttää myös jakamaan pitkä, yhtenäiseksi tarkoitettu, rivi. \section{Käsikirjoitustiedoston rakenne} \LaTeXe{} olettaa käsikirjoitustiedoston noudattavan tiettyä rakennetta. Niinpä jokaisen käsikirjoituksen tulee alkaa komennolla \begin{code} \verb|\documentclass{...}| \end{code} Komento määrittää dokumentin tyypin. Sen jälkeen voidaan lisätä komentoja, jotka vaikuttavat koko dokumentin ulkoasuun tai sitten voidaan ottaa käyttöön \index{makropakkaukset} makropakkauksia, jotka lisäävät uusia ominaisuuksia \LaTeX-systeemiin. Pakkaus otetaan käyttöön komennolla \begin{code} \verb|\usepackage{...}| \end{code} Kun asetukset on tehty\footnote{\texttt{\bs documentclass}:n ja \texttt{\bs begin$\mathtt{\{}$document$\mathtt{\}}$}:n välissä olevaa aluetta nimitetään \index{esittelyosa}\emph{esittelyosaksi}.}, tekstiosa aloitetaan komennolla \begin{code} \verb|\begin{document}| \end{code} Nyt voidaan kirjoittaa \LaTeX:n käskyillä höystettyä tekstiä. Dokumentin loppuun lisätään käsky \begin{code} \verb|\end{document}| \end{code} joka pyytää \LaTeX:ia lopettamaan. \LaTeX{} ei noteeraa mitään tämän käskyn perässä tulevaa. Kuva~\ref{mini} esittää minimaalisen englanninkielisen \LaTeXe{}-tiedoston sisällön. Kuvan~\ref{document} suomenkielinen \wi{käsikirjoitustiedosto} onkin sitten jo hieman mutkikkaamman näköinen. Siihen liittyviä käskyjä selitetään jäljempänä. \begin{figure}[!bp] \begin{lined}{6cm} \begin{verbatim} \documentclass{article} \begin{document} Small is beautiful. \end{document} \end{verbatim} \end{lined} \caption{Minimaalinen \LaTeX-tiedosto} \label{mini} \end{figure} \begin{figure}[!tp] \begin{lined}{10cm} \begin{verbatim} \documentclass[a4paper]{article} \usepackage[ansinew]{inputenc} \usepackage[T1]{fontenc} \usepackage[finnish]{babel} \begin{document} Vähän mitään sanottavaa, pöh.. \end{document} \end{verbatim} \end{lined} \caption{Minimalistinen suomalainen teksti} \label{document} \end{figure} \section{Dokumentin ulkoasu} \subsection{Dokumenttiluokat\label{sec:documentclass}} Kun \LaTeX{} alkaa käsitellä käsikirjoitustiedostoa, se tarvitsee ensin tiedon dokumentin tyypistä. Tämä määritellään \ci{documentclass}-komennolla. \begin{command} \ci{documentclass}\verb|[|\emph{optiot}\verb|]{|\emph{luokka}\verb|}| \end{command} \noindent Tässä \emph{luokka} määrittää dokumentin tyypin. Taulukko~\ref{documentclasses} listaa tässä johdannossa selitetyt luokat. \LaTeXe-järjestelmä sisältää myös muita dokumenttiluokkia. Näitä ovat kirjeet ja kalvot. \emph{\wi{optiot}} toimivat lisämääreinä dokumenttiluokalle. Optiot erotetaan toisistaan pilkulla. Taulukossa~\ref{options} listataan standardiluokkien yleisimmät optiot. \begin{table}[!bp] \caption{Dokumenttiluokat} \label{documentclasses} \begin{lined}{12cm} \begin{description} \item [\normalfont\texttt{article}] sopii tiedelehtien artikkeleille, esitelmille, lyhyille raporteille, ohjelmien käyttöohjeisiin, kutsuihin, \ldots \index{article-luokka} \item [\normalfont\texttt{report}] sopii pitemmille raporteille, jotka sisältävät useita lukuja, pienille kirjoille, opinnäytteille, \ldots \index{report-luokka} \item [\normalfont\texttt{book}] sopii oikeille kirjoille \index{book-luokka} \item [\normalfont\texttt{slides}] sopii piirtoheitinkalvoille. Luokka käyttää isoja groteskikirjaimia. Tämän luokan tilalla voidaan käyttää Foil\TeX:iä\footnote{\texttt{CTAN:/tex-archive/macros/latex/packages/supported/foiltex}}. \index{slides-luokka}\index{foiltex} \end{description} \end{lined} \end{table} \begin{table}[!bp] \caption{Dokumenttiluokkien optiot} \label{options} \begin{lined}{12cm} \begin{flushleft} \begin{description} \item[\normalfont\texttt{10pt}, \texttt{11pt}, \texttt{12pt}] \quad Nämä optiot asettavat dokumentin peruskirjasimen koon. Mikäli kokoa ei määritellä, käyttöön tulee \texttt{10pt}. \index{dokumentin kirjasimen koko} \index{peruskirjasimen koko} \item[\normalfont\texttt{a4paper}, \texttt{letterpaper}, \ldots] \quad Nämä optiot määrittelevät paperin koon. Oletuksena on amerikkalainen \texttt{letterpaper}. Näiden lisäksi optiona voidaan antaa \texttt{a5paper}, \texttt{b5paper}, \texttt{executivepaper} ja \texttt{legalpaper}. \index{legal paper} \index{paper size}\index{A4 paper}\index{letter paper} \index{A5 paper}\index{B5 paper}\index{executive paper} \item[\normalfont\texttt{fleqn}] \quad Optio latoo matemaattiset kaavat vasempaan reunaan tasattuina eikä keskitettyinä. \item[\normalfont\texttt{leqno}] \quad Asettaa kaavojen numeroinnnin vasempaan reunaan oikean sijasta. \item[\normalfont\texttt{titlepage}, \texttt{notitlepage}] \quad Optiolla voidaan muuttaa oletuskäytäntöä siitä, tuleeko \wi{dokumentin nimiö} omalle sivulleen vai ei. \texttt{article}-luokassa nimiö ei tule omalle sivulleen oletusarvoisesti, kuten \texttt{report}- ja \texttt{book}-luokissa. \index{nimiö} \item[\normalfont\texttt{twocolumn}] \quad Panee \LaTeX:n latomaan tekstin \index{kaksipalstainen teksti} kahdelle palstalle. \item[\normalfont\texttt{twoside, oneside}] \quad Määrittelee käyttöön joko kaksi- tai yksipuolisen tulostuksen. Luokissa \texttt{article} ja \texttt{report} tulostus on oletusarvoisesti \index{yksipuolinen tulostus} yksipuolista ja \texttt{book}-luokassa tulostus on \index{kaksipuolinen tulostus} kaksipuolista. \item[\normalfont\texttt{openright, openany}] \quad Luvut alkavat joko vain oikeanpuoleiselta sivulta tai miltä tahansa seuraavalta sivulta. Tämä ei toimi \texttt{article}-luokassa, sillä siinä ei lukuja ole käytössä lainkaan. \texttt{report}-luokka aloittaa luvut oletusarvoisesti heti seuraavalla sivulla ja \texttt{book}-luokka aloittaa luvut oikeanpuoleisilta sivuilta. \end{description} \end{flushleft} \end{lined} \end{table} Esimerkki: käsikirjoitustiedosto voisi alkaa rivillä: \begin{code} \ci{documentclass}\verb|[11pt,twoside,a4paper]{article}| \end{code} joka pyytää \LaTeX:ia latomaan dokumentin \emph{artikkelina}, jonka peruskirjasimen koko on \emph{11 pistettä} sekä määrittelemään taiton \emph{kaksipuoleiselle} tulostukselle \emph{A4-kokoiselle paperille}. \pagebreak[2] \subsection{Makropakkaukset} \index{Makropakkukset} Dokumenttia kirjoitettaessa huomataan mahdollisesti, että \LaTeX{} ei pysty tekemään kaikkea. Jos mukaan pitää saada \index{grafiikka} grafiikkaa, \index{värillinen teksti} värillistä tekstiä tai jonkin tiedoston lähdekoodia, täytyy \LaTeX:n ominaisuuksia lisätä. Tällaisia lisäyksiä kutsutaan makropakkauksiksi. Pakkaukset otetaan käyttöön \begin{command} \ci{usepackage}\verb|[|\emph{optiot}\verb|]{|\emph{pakkaus}\verb|}| \end{command} \noindent komennolla, jossa \emph{pakkaus} on makropakkauksen nimi ja \emph{optiot} ovat lisämääreitä, jotka käynnistävät pakkauksen tietyt toiminnot. Osa pakkauksista tulee perus-\LaTeXe:n mukana (Katso taulukkoa~\ref{packages}). Loput voi hankkia erikseen. Paikallisessa systeemissä käytössä olevista makropakkauksista löytyy lisätietoa mahdollisesti \guide:ssa. \LaTeX-pakkausten pääasiallinen tiedonlähde on \companion. Se sisältää kuvaukset sadoista makropakkauksista sekä tietoa siitä, miten voidaan tehdä omia lisäyksiä \LaTeXe:iin. \begin{table}[!hbp] \caption{Joitakin \LaTeX:n mukana tulevia makropakkauksia} \label{packages} \begin{lined}{11cm} \begin{description} \item[\normalfont\pai{doc}] \LaTeX-ohjelmien dokumentointiin.\\ Kuvataan tiedostossa \texttt{doc.dtx}\footnote{Tämä tiedosto pitäisi olla asennettuna paikallisessa järjestelmässä ja siitä pitäisi pystyä saamaan \texttt{dvi}-tiedosto antamalla komento \texttt{latex doc.dtx} missä tahansa hakemistossa, johon sinulla on kirjoitusoikeus. Sama pätee myös muihin tässä taulukossa mainittuihin tiedostoihin.} ja \companion:ssa. \item[\normalfont\pai{exscale}] Tarjoaa matemaattisista laajennetuista kirjasimista skaalatut versiot.\\ Kuvataan tiedostossa \texttt{ltexscale.dtx}. \item[\normalfont\pai{fontenc}] Määrää \LaTeX:n käyttämän kirjasimen \index{merkkivalikoima} merkkivalikoiman.\\ Kuvataan tiedostossa \texttt{ltoutenc.dtx}. \item[\normalfont\pai{ifthen}] Lisää käyttöön komennot\\ 'jos\ldots niin sitten\ldots muuten\ldots.'\\ Kuvataan \texttt{ifthen.dtx}-tiedostossa ja \companion:ssa. \item[\normalfont\pai{latexsym}] Mahdollistaa erityisten \LaTeX-symbolien käytön. Kuvataan tiedostossa \texttt{latexsym.dtx} ja \companion:ssa. \item[\normalfont\pai{makeidx}] Ottaa käyttöön käskyt hakemistojen tekemiseksi. Kuvataan kohdassa~\ref{sec:indexing} ja \companion:ssa. \item[\normalfont\pai{syntonly}] Tarkistaa dokumentin rakenteen sitä latomatta.\\ Kuvataan tiedostossa \texttt{syntonly.dtx} ja \companion:ssa. Hyödyllinen ominaisuus pikaiseen virheiden tarkistamiseen. \item[\normalfont\pai{inputenc}] Käyttäjä voi määritellä mitä merkistöä käsikirjoitus käyttää. Hyödyllinen mm.~suomenkielissä dokumenteissa. Kuvataan tiedostossa \texttt{inputenc.dtx} ja suomen osalta kohdassa~\ref{sec:suomi}. \end{description} \end{lined} \end{table} \clearpage % % Package Info pointer % % \subsection{Sivujen tyylit} \LaTeX:ssa on kolme etukäteen määriteltyä \wi{ylätunniste}/\wi{alatunniste}"-yhdistelmää eli ns.~\wi{sivutyyli}ä. Käskyn \index{sivun tyylit!yksinkertainen@\texttt{plain}}\index{plain@\texttt{plain}} \index{sivun tyylit!ylä- ja alatunnisteet@\texttt{headings}}\index{ylä- ja alatunnisteet@texttt{headings}} \index{sivun tyylit!tyhjä@\texttt{empty}}\index{tyhjä@\texttt{empty}} \begin{command} \ci{pagestyle}\verb|{|\emph{tyyli}\verb|}| \end{command} \noindent \emph{tyyli}-parametri määrittelee mitä tyyliä käytetään. Taulukko~\ref{pagestyle} listaa etukäteen määritellyt sivutyylit. \begin{table}[!hbp] \caption{\LaTeX:n sivutyylit} \label{pagestyle} \begin{lined}{12cm} \begin{description} \item[\normalfont\texttt{plain}] tulostaa sivunumerot sivun alaosaan, keskelle. Tämä sivutyyli on oletuksena. \item[\normalfont\texttt{headings}] tulostaa luvun nimen ja sivunumeron sivun yläosaan. Sivun alaosa jää tyhjäksi. (Tämä tyyli on käytössä tässä dokumentissa.) \item[\normalfont\texttt{empty}] ei tulosta sivunumerointia. \end{description} \end{lined} \end{table} Kirjoitettavana olevan sivun tyyli voidaan muuttaa käskyllä \begin{command} \ci{thispagestyle}\verb|{|\emph{tyyli}\verb|}| \end{command} \companion:ssa kerrotaan, miten voidaan määritellä omia ylä- ja alatunnisteita. % % Pointer to the Fancy headings Package description ! % % % Add Info on page-numbering, ... % \pagenumbering \section{Suuret projektit} Isoja dokumentteja tehtäessä voidaan käsikirjoitus jakaa useampaan tiedostoon. \LaTeX:ssa on kaksi komentoa tämän tekemiseen. \begin{command} \ci{include}\verb|{|\emph{tiedosto}\verb|}| \end{command} \noindent Tätä käskyä voidaan käyttää itse tekstiosassa lisäämään toisen tiedoston sisältö. Huomaa, että \LaTeX{} aloittaa uuden sivun ennen kuin se alkaa käsitellä \emph{tiedoston} sisältöä. Toista käskyä voidaan käyttää esittelyosassa. Se antaa mahdollisuuden ohjata \LaTeX{} lukemaan ainoastaan tietyt tiedostot. \begin{command} \ci{includeonly}\verb|{|\emph{tiedosto1}\verb|,|\emph{tiedosto2}% \verb|,|\ldots\verb|}| \end{command} Kun tämä käsky on annettu esittelyosassa, suoritetaan vain \ci{includeonly}-komennon listassa mainittujen tiedostojen \ci{include}-komennot. Huomaa, että tiedoston nimen ja pilkun välissä ei saa olla välilyöntiä. \ci{include}-käsky aloittaa tiedoston sisällön latomisen uudelta sivulta. Tästä on hyötyä \ci{includeonly}-käskyä käytettäessä, sillä sivun vaihdot eivät muuta paikkaa, vaikka kaikkia tiedostoja ei luettaisi. Joskus tämä ei ole toivottavaa. Silloin voidaan käyttää käskyä \begin{command} \ci{input}\verb|{|\emph{tiedosto}\verb|}| \end{command} \noindent Se yksinkertaisesti ottaa mukaan tiedoston sisällön siihen paikkaan, ilman mitään kommervenkkejä. \section{Suomenkieliset dokumentit}\label{sec:suomi} Kun dokumenttia ei kirjoiteta englanniksi, vaan esimerkiksi suomeksi, \LaTeX:n asetuksia täytyy muuttaa hieman: \begin{enumerate} \item Kaikki automaattisesti generoitavat tekstit\footnote{Sisällysluettelo, Kuvaluettelo, \ldots} täytyy muuttaa suomenkielisiksi. Käyttämällä Johannes Braamsin \pai{babel}-makropakettia nämä muuttuvat automaattisesti halutun kieliseksi. \item \LaTeX:n täytyy saada tietoonsa jostain suomen kielen tavutussäännöt. Tavutussääntöjen lisääminen on hieman hankalampi juttu. Jotta eri tavutussäännöt tulisivat käyttöön täytyy ne lisätä formaattitiedostoon. \guide:n pitäisi antaa tarvittava informaatio. \end{enumerate} Jos järjestelmääsi on jo lisätty suomalaiset tavutussäännöt, voit käynnistää suomalaiset \pai{babel}-makrot lisäämällä \verb|\documentclass|-käskyn jälkeen: \begin{command} \ci{usepackage}\verb|[|\emph{finnish}\verb|]{babel}| \end{command} \noindent Suomen tilalla voidaan käyttää myös muita kieliä. \guide:n pitäisi kertoa mitä kieliä järjestelmäsi tukee. Babel ottaa samalla käyttöön suomalaiset tavutussäännöt. Jos järjestelmäsi \LaTeX-formaatti ei tue suomen tavutusta, babel toimii kyllä, mutta se ottaa tavutuksen pois päältä. Tämä vaikuttaa heikentävästi dokumentin ulkoasuun. \textsf{Babel} lisää käyttöön myös muita käskyjä, jotka liittyvät merkkien syöttöön, tavutukseen jne. Niistä kerrotaan tarkemmin edempänä tässä dokumentissa. \subsection{Ääkköset käsikirjoituksesa} \LaTeX:ssa on useita tapoja kirjoittaa suomessa käytettävät kirjaimet 'ä' ja 'ö'. Helpointa on luonnollisesti käyttää suomalaisen näppäimistön vastaavia kirjaimia suoraan. Tämä onnistuu kyllä \LaTeX:ssa, vaikka se onkin amerikkalaista alkuperää ja olettaa, että käytössä on vain englanninkielen aakkoset. Ongelmana on kuitenkin se, että eri tietokonesysteemeissä käytetään ainakin vielä toistaiseksi erilaisia merkistöjä, joissa 'ä' ja 'ö' sijaitsevat eri paikoissa. Niinpä \LaTeX:lle täytyy kertoa mitä merkistöä käytetään. Se tehdään käskyllä: \begin{command} \ci{usepackage}\verb|[|\emph{merkistö}\verb|]{|inputenc\verb|}| \end{command} joka kannattaa lisätä heti \ci{documentclass}-komennon jälkeen. Hakasulkeiden sisään tulee käytetyn merkistön nimi. Vaikka kirjoittaja ei tietäisi mitään tietokoneiden merkistöistä, voi hän valita helposti oikean merkistön, kunhan käyttöjärjestelmän nimi on tiedossa. Taulukossa~\ref{inputencs} on lueteltu eri käyttöjärjestelmissä käytetyt merkistöt suomen kieltä varten. \begin{table}[!bp] \caption{Eri käyttöjärjestelmien merkistöt} \label{inputencs} \begin{lined}{12cm} \begin{description} \item[\normalfont\texttt{ansinew}] on Windowsin käyttäjille. \item[\normalfont\texttt{cp1252}] on vaihtoehtoinen tapa ilmaista, että käytetään Windowsin merkistöä. Tämä vaihtoehto tuli käyttöön \LaTeXe:ssa vuoden 1997 joulukuun päivityksessä. \item[\normalfont\texttt{latin1}] on \textsc{unix}in ja Amigan käyttäjille. \item[\normalfont\texttt{cp850}] on suomalaisille MS-DOSin käyttäjille. \item[\normalfont\texttt{applemac}] on Macintoshin käyttäjille. \item[\normalfont\texttt{next}] on Next-työasemien käyttäjille. \item[\normalfont\texttt{decmulti}] on DEC-systeemien käyttäjille. \end{description} \end{lined} \end{table} Suomessa \TeX-järjestelmä on joskus asennettu niin, että yllämainittua makropakettia ei tarvitse kirjoittaa dokumentin esittelyosaan. Lisätietoja pitäisi saada \guide:sta tai kokeilemalla toimivatko ääkköset ilman mitään erityisiä käskyjä. Lisäksi tulee huomioida, että kaikki järjestelmät eivät ehkä pysty lukemaan sellaisia käsikirjoitustiedostoja, joissa ääkköset ovat mukana. Jo pelkästään MS-DOSissa ja Windowsissa ääkköset on koodattu eri paikkoihin. Ääkkösistä voi myös olla harmia, jos käsikirjoitus lähetetään amerikkalaiselle kustantajalle, joka haluaa pelkkiä ASCII-tiedostoja ilman mitään eurooppalaisia kirjaimia. Näiden kirjainten esittämiseen on \LaTeX:ssa kuitenkin muitakin tapoja, joista kerrotaan edempänä. \subsection{Oikean merkistön valinta} LaTeX2e käyttää oletusarvoisesti Donald Knuthin tekemiä \emph{Computer Modern} "=kirjasimia, joilla voidaan kyllä esittää 'ä' ja 'ö' "=kirjaimet, mutta suomalainen tavutus ei suostu toimimaan näillä kirjasimilla. Syynä on se, että Knuthin kirjasimissa 'ä' ja 'ö' tulostetaan yhdistämällä 'a' tai 'o' ja ne kaksi pistettä, joita saksalaiset kutsuvat nimellä 'umlaut'. Lopputulos on tulostettuna suht oikean näköinen, mutta tavutusmekanismi ei ymmärrä tällaisia yhdistelmäkirjaimia. Knuthin merkistöä käytettäessä ei tavutus toimi missään muussakaan kielessä, jossa käytetään aksentteja. Englannin lisäksi ainoastaan latinassa voidaan tulla toimeen ilman mitään aksentteja. Niinpä \LaTeXe:ta varten tehtiin uusi merkistö, jolle annettiin nimeksi T1 (Text Encoding 1) ja uudet kirjasimet, joiden nimeksi tuli \emph{European Computer Modern}. Tässä merkistössä on kirjaimia, joissa aksentit ovat valmiina mukana, niinpä tavutus suostuu jälleen toimimaan. T1-merkistö otetaan käyttöön käskyllä: \begin{command} \ci{usepackage}\verb|[|T1\verb|]{|fontenc\verb|}| \end{command} Muitakin merkistöjä on olemassa kuin T1, esim.~Knuthin merkistön tunnus on 'OT1' (Old Text Encoding 1) ja kyrillisen merkistön tunnuksia ovat 'T2A', 'T2B' ja 'T2C'. %%% Local Variables: %%% mode: latex %%% TeX-master: "lyhyt2e" %%% End: