%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Contents: Typesetting Part of LaTeX2e Introduction % $Id: ladonta.tex,v 3.7 1999/04/21 08:05:09 hellgren Exp hellgren $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Tekstin ladonta} \begin{intro} Edellisen kappaleen luettuasi tiedät mistä perusaineksista \LaTeXe-dokumentti koostuu. Tässä luvussa saat tietää loputkin oikeissa dokumenteissa tarvittavista asioista. \end{intro} \section{Tekstin ja kielen rakenne} Kirjoitetun tekstin pääasiana (lukuunottamatta jotain postmodernia kirjallisuutta, jossa image on tärkein\footnote{En nyt tarkoita samannimistä lehteä.}) on välittää ideoita, aatteita tai tietoa lukijalle. Lukija ymmärtää tekstin paremmin, jos ideat on rakenteellisesti muotoiltu hyvin ja hän näkee sekä tuntee tämän rakenteen, jos typografinen muotoilu heijastaa sisällön loogista ja semanttista rakennetta. \LaTeX{} eroaa muista ladontajärjestelmistä siinä, että pelkkä tekstin loogisen ja semanttisen rakenteen kertominen riittää. Se johtaa sitten tekstin typografisen muodon dokumentin luokkatiedoston ja erilaisten tyylitiedostojen sääntöjen pohjalta. \LaTeX:n (ja typografian) tarkein tekstiyksikkö on \wi{kappale}. Kutsukaamme sitä ''tekstiyksiköksi'', sillä kappale on typografinen muoto, jonka pitäisi heijastaa yhtä selvää ajatusta. Seuraavissa osioissa opitaan, miten rivinvaihto voidaan määritellä tiettyyn kohtaan kirjoittamalla esim.~\texttt{\bs\bs} ja kappaleen vaihto jättämällä esim.~tyhjä rivi käsikirjoitukseen. Niinpä, kun uusi ajatus alkaa, myös uusi kappale alkaa. Päinvastaisessa tapauksessa käytetään vain rivinvaihtoa. Jos et ole varma kappalevaihdosta, kuvittele tekstiäsi aatteiden ja ajatusten välittäjänä. Mikäli sama ajatus jatkuu seuraavassa kappaleessa, tulisi kappaleet yhdistää. Jos kesken kappaletta esiin tulee uusi ajatus, pitäisi kappale jakaa. Useimmat ihmiset aliarvioivat hyvin asemoitujen kappeleenvaihtojen merkityksen. Monet eivät edes tiedä kappaleenvaihdon merkitystä ja käyttävät niitä, erityisesti \LaTeX:ssa, merkitystä tuntematta. Katso seuraavia esimerkkejä ja yritä selvittää miksi joskus kaavojen eteen ja jälkeen jätetään tyhjät rivit (kappaleenvaihdot) ja miksi taas joskus ei. (Jos et vielä tunne komentoja kyllin hyvin ymmärtääksesi esimerkkejä, lue tämä ja seuraava luku ennenkuin luet tämän osion uudelleen.) \begin{code} \begin{verbatim} % Example 1 \ldots kun Einstein esitti kaavansa \begin{equation} e = m \cdot c^2 \; , \end{equation} joka on samalla tunnetuin ja vähiten ymmärretty fysiikan kaava. % Example 2 \ldots josta seuraa Kirchhoffin laki: \begin{equation} \sum_{k=1}{n} I_k = 0 \; . \end{equation} Kirchhoffin jännitteen laki voidaan johtaa \ldots % Example 3 \ldots josta on useita etuja. \begin{equation} I_D = I_F - I_R \end{equation} on hyvin erilaisen transistorimallin ydin. \ldots \end{verbatim} \end{code} Seuraava pienempi tekstiyksikkö on lause. Englanninkielisissä teksteissä lauseen päättävän pisteen perässä on pitempi väli kuin silloin, kun piste on lyhenteen perässä. Suomessa ja useissa muissa kielissä ei tätä tapaa kuitenkaan noudateta. Niinpä \textsf{Babelin} suomalaismakrot kytkevät tämän ominaisuuden pois päältä. Englanninkielisessä tekstissä \LaTeX{} yrittää arvata minkalaisesta pisteestä on kysymys. Jos \LaTeX{} erehtyy, täytyy kirjoittajan kertoa, mitä hän haluaa. Tämä selitetään myöhemmin tässä luvussa. Tekstin rakenteisiin kuuluu myös lauseen osia. Monissa kielissä on hyvin monimutkaiset välimerkkisäännöt. Suomessa pilkkua käytetään pelkästään kieliopillisten sääntöjen mukaan. Koulussa opittiin minkä sanojen jälkeen tulee aina pilkku ja milloin taas ei. Monissa muissa kielissä (kuten saksassa ja englannissa) pilkku esittää tekstissä lyhyttä taukoa. Näissä kielissä kannattaa epävarmoissa tapauksissa lukea lause ääneen ja vetää henkeä. Jos jossain kohtaa tauko tuntuu omituiselta, pilkun voi poistaa, jos taas jossain kohtaa pitäisi vetää henkeä (tai pitää lyhyt tauko), siihen lisätään pilkku. Lisäksi teksti jaetaan kappaleita ylemmällä tasolla loogisesti lukuihin, osioihin, alaosioihin jne. Näiden ylemmän tason rakenteiden käyttö on lähes itsestään selvää, sillä kirjoittamalla esim.~\verb|\section{|\texttt{Tekstin ja kielen rakenne}\verb|}| on sen typografinen vaikutelma kyllin selvä. \section{Rivin- ja kappaleenvaihto} \subsection{Tasatut kappaleet} Kirjat ladotaan usein niin, että jokainen rivi on yhtä pitkä. \LaTeX{} lisää tarpeelliset \wi{rivinvaihdot} ja välilyönnit sanojen väliin optimoidessaan koko kappaleen sisältöä. Tarpeen vaatiessa se myös tavuttaa sanat, jotka eivät mahdu kokonaan riville. Kappaleiden ladonta riippuu dokumenttiluokasta. Normaalisti kappaleen ensimmäinen rivi on sisennetty eikä kappaleiden välissä ole tyhjää riviä. Katso osasta~\ref{parsp} lisätietoja. Erikoistapauksissa voi olla tarpeen pakottaa \LaTeX{} katkaisemaan rivi: \begin{command} \ci{\bs} tai \ci{newline} \end{command} \noindent aloittaa uuden rivin, mutta ei uutta kappaletta. \begin{command} \ci{\bs*} \end{command} \noindent estää lisäksi sivun vaihdon rivin katkaisun jälkeen. \begin{command} \ci{newpage} \end{command} \noindent aloittaa uuden sivun. \begin{command} \ci{linebreak}\verb|[|\emph{n}\verb|]|, \ci{nolinebreak}\verb|[|\emph{n}\verb|]|, \ci{pagebreak}\verb|[|\emph{n}\verb|]| ja \ci{nopagebreak}\verb|[|\emph{n}\verb|]| \end{command} \noindent tekevät vastaavasti seuraavaa: rivinvaihto, rivinvaihdon esto, sivun vaihto, sivunvaihdon esto. Nämä käskyt antavat kirjoittajalle mahdollisuuden vaikuttaa niiden toimintaan vaihtoehtoisella argumentilla \emph{n}. Sille voidaan antaa arvo nollan ja neljän väliltä. Alle neljän olevalla arvolla \LaTeX{} saa luvan jättää käsky huomioimatta, jos lopputulos olisi liian ruman näköinen. Näitä ''katkaisu''-käskyjä ei tule sekoittaa ''uusi''-käskyihin. Vaikka ''katkaisu''-käskyä käytettäisiinkin, \LaTeX{} yrittää silti tasata sivun oikean reunan ja sivun kokonaispituuden seuraavassa osioissa kuvatulla tavalla. Jos todella halutaan aloittaa ''uusi rivi'', on käytettävä vastaavaa komentoa. Arvaa minkä nimistä!\footnote{Kääntäjän vihje: ''uusi rivi'' on englanniksi \emph{new line}.} \LaTeX{} yrittää katkaista rivin aina parhaasta mahdollisesta paikasta. Jos se ei löydä tapaa katkaista rivi sen korkeatasoisten vaatimusten mukaisesti, se antaa rivin sojottaa ulos kappaleen oikeasta reunasta. \LaTeX{} antaa lisäksi valituksen (``\wi{overfull hbox}'') käsikirjoitusta työstäessään. Tällainen tilanne tulee yleensä silloin kun \LaTeX{} ei löydä sopivaa tavutuskohtaa sanasta.\footnote{Vaikka \LaTeX{} antaa näissä tapauksissa varoituksen (Overfull hbox), ei tällaisia rivejä ole aina helppo löytää. Jos \ci{documentclass}-komennon yhteydessä käytetään optiota \texttt{draft}, \LaTeX merkitsee nämä rivit mustalla palkilla oikeassa marginaalissa.} LaTeX:ia voi pyytää alentamaan tasoaan käskyllä \ci{sloppy}. Se estää ylipitkien rivien syntymisen lisäämällä sanojen välejä, vaikka lopputulos ei olisi paras mahdollinen eikä yleensä kovin hyvän näköinen. Siltä varalta, että haluat \LaTeX:n valittavan vähän joka asiasta, on olemassa komento \ci{fussy}, joka on siis edellisen komennon vastakohta. \subsection{Tavutus} \label{hyph} \LaTeX{} tavuttaa sanat tarpeen vaatiessa. Jos tavutusalgoritmi ei löydä sopivaa tavutuskohtaa, voidaan tilannetta helpottaa kertomalla \TeX:lle seuraavilla komennoilla, että kyseessä on poikkeus. Komento \begin{command} \ci{hyphenation}\verb|{|\emph{sanalista}\verb|}| \end{command} \noindent aiheuttaa sen, että sanalistassa luetellut sanat tavutetaan ainostaan kohdista, jotka on merkitty ''\verb|-|''. Tätä komentoa tulee käyttää käsikirjoituksen esittelyosassa ja siinä pitäisi käyttää ainoastaan normaalikirjaimista koostuvia sanoja. Kirjainkokoa ei huomioida. Alapuolella oleva esimerkki kertoo, että ''tavutus'' samoin kuin ''Tavutus'' tavutetaan, mutta ''FORTRAN'' ei. Mitään erityismerkkejä tai symboleja ei argumenttiosassa sallita. Example: \begin{code} \verb|\hyphenation{FORTRAN Ta-vu-tus}| \end{code} Komennolla \ci{-} lisätään sanaan tavutusohje. Englanninkielisissä dokumenteissa tästä tulee samalla ainoa kohta, jossa tavutus sallitaan. \textsf{Babelin} \texttt{finnish}-optio, kuitenkin muuttaa komennon merkitystä niin, että tavutus sallitaan edelleen tarvittaessa muuallakin. Tästä komennosta on hyötyä erityisesti ulkomaisten sanojen kohdalla. Niissä voi olla erikoismerkkejä (esim.~aksenttimerkkejä), joita suomen kielen tavutus ei tunne. Ääkköset kuitenkin tavuttuvat oikein jos käytetään \textsf{Babelin} suomen kielen tukea ja \texttt{T1}-koodausta käyttäviä kirjasimia.\footnote{Sekä lisäksi suomen kielen tavutussäännöt on asennettu järjestelmään.} \begin{example} Tavutus toimii jär\-jes\-tel\-% mäl\-li\-syy\-del\-lään\-kin \end{example} Koska suomen pitkät sanat vaativat jatkuvasti tavuttamista, on suomalaisessa typografiassa hieman joustavammat säännöt tavutuksen kohdalla kuin englannissa. \textsf{Babelin} suomen kielen tuki lisää muutaman ylimääräisen ominaisuuden, jotka ovat tarpeen suomalaisissa dokumenteissa. Huomaa kuitenkin, että ne toimivat vain \textsf{Babelin} \texttt{finnish}-option kanssa. Normaalisti kun sanassa on tavuviiva (esim.~noita-akka) \LaTeX tavuttaa sanan vain tämän tavuviivan kohdalta. Tarkoituksena välttää samassa sanassa kahta tavuviivaa. Suomen pitkien sanojen kohdalla on kuitenkin parempi luistaa tästä periaatteesta. Kirjoittamalla esim.~\verb|noita"-akka| sallitaan tavutus myös muualla sanassa. Toinen ongelmatapaus on esim.~''pakastekaapit ja "=arkut'', jossa tavuviiva tulee sanan eteen. Normaalisti \LaTeX{} olettaa, että tavuviiva jää rivin loppuun ja sana ''arkut'' tulisi seuraavalle riville. Koska suomessa näin ei aina ole, on esimerkki kirjoitettava seuraavasti: \texttt{pakastekaapit ja} \verb|"=arkut|. Joskus sana pitää katkaista ilman tavutusviivaa. Silloin voi käyttää \textsf{Babelin} merkintää \verb|""|, esim.~''entrada/""salida''. Peräkkäiset sanat saa pysymään samalla rivillä komennolla: \begin{command} \ci{mbox}\verb|{|\emph{tekstiä}\verb|}| \end{command} \noindent Se saa argumenttina olevan tekstin pysymään samalla rivillä kaikissa tilanteissa. \begin{example} Puhelinnumeroni vaihtuu piakkoin. Siitä tulee \mbox{0116 291 2319}. Parametrin \mbox{\emph{tiedostonnimi}} pitäisi sisältää tiedoston nimi. \end{example} \section{Erikoismerkit ja symbolit} % % Rewrite Section to be more logical. % \subsection{Lainausmerkit} Kirjoituskoneen \verb|"|-symbolia ei pitäisi käyttää \index{lainausmerkit} lainausmerkkinä. \index{""@\texttt{""}} Painetussa tekstissä Suomessa ja Ruotsissa käytetty lainausmerkki saadaan \LaTeX:ssa kirjoittamalla kaksi peräkkäistä '-merkkiä. Anglo-amerikkalaisessa typografiassa lainauksen aloitus"- ja lopetusmerkki ovat erilaiset. Siellä lainauksen aloittaa kaksi peräkkäistä \verb|`|-merkkiä. Suomessa käytetään joissain kirjoissa myös \UseTextSymbol{OT1}{\guillemotright}toisenlaisia\UseTextSymbol{OT1}{\guillemotright} lainausmerkkejä. Nämä saadaan kirjoittamalla kaksi peräkkäistä \verb|>|-merkkiä. Muissa kielissä on vielä toisenlaisia käytäntöjä. \begin{example} ''Paina 'x'-näppäintä.'' ``Please press the `x' key.'' \end{example} \subsection{Väli"-, yhdys"- ja ajatusviivat} \LaTeX{} tuntee neljä erilaista \index{väliviivat} viivaa. Kolme niistä saadaan eri määrällä peräkkäisiä tavuviivoja. Neljäs viiva on matemaattinen miinusmerkki: \index{-} \index{--} \index{---} \index{-@$-$} \index{matemaattinen!miinus} \begin{example} kuu-ukko, X-kirjain\\ sivut 13--67\\ Will Hunting --- syntynyt neroksi \\ $0$, $1$ ja $-1$ \end{example} Nimet näille viivoille ovat: '-' \index{tavuviiva}\index{yhdysmerkki} tavu"- tai yhdysviiva, '--' \wi{väliviiva}, '---' \wi{ajatusviiva} ja '$-$' \wi{miinusmerkki}. Muista lisäksi mitä tavutuksen kohdalla todettiin yhdysviivasta. Lisäksi on todettava, että suomalaisissa painotuotteissa näkee joskus käytettävän väliviivaa ajatusviivana. Esa Saarimaan Kielenoppaan kuudes painos vuodelta 1964 taas käskee käyttäämään ajatusviivaa myös väliviivana! En nyt ota sen kummemmin tässä kantaa ajatusviivan oikeaan pituuteen suomen kielessä.\footnote{Venäläiset kinastelivat Internetissä kuukauden verran ajatusviivan oikeasta pituudesta venäjässä pääsemättä asiassa yhteisymmärrykseen.} Varmaa ainakin on, että ajatusviivan kummallekin puolelle tulee suomessa välilyönti. Englannissa taas ajatusviiva kirjoitetaan ilman välilyöntejä. \subsection{Ellipsi ( \ldots )} Kirjoituskoneessa \wi{pilkku} tai \wi{piste} vie yhtä paljon tilaa kuin mikä tahansa muu kirjain. Painetuissa kirjoissa nämä merkit vievät vain vähän tilaa ja ne sijaitsevat hyvin lähellä edeltävää kirjainta. Niinpä \index{ellipsi}''\wi{ellipsiä}'' ei voi lisätä kirjoittamalla yksinkertaisesti kolme pistettä, sillä välistys olisi väärin. Sitäpaitsi näille pisteille on oma komento. Sen nimi on \begin{command} \ci{ldots} \end{command} \index{...@\ldots} \begin{example} Ei näin ... vaan näin:\\ New York, Tokio, Budapest, \ldots \end{example} \subsection{Ligatuurit} Anglo-amerikkalaisessa typografiassa joitakin kirjainyhdistelmiä ei ladota panemalla kirjain toisensa perään, vaan käyttämällä erityisiä kirjainmerkkejä. \begin{code} {\large ff fi fl ffi\ldots}\quad instead of\quad {\large f{}f f{}i f{}l f{}f{}i \ldots} \end{code} Nämä niin sanotut \wi{ligatuuri}t voidaan estää lisäämällä \ci{mbox}\verb|{}| kyseessä olevien kirjainten väliin. Tämä voi olla tarpeen joissain englannin yhdyssanoissa. \begin{example} Not shelfful\\ but shelf\mbox{}ful \end{example} \subsection{Aksentit ja erikoismerkit} \LaTeX:ssa on mahdollista latoa sellaisia eri kielissä käytettyjä \index{aksentit} aksentteja ja \index{erikoismerkit} erikoismerkkejä, joita ei löydy suomalaiselta näppäimistöltä. Taulukossa~\ref{accents} listataan erilaisia aksentteja o-kirjaimen kanssa käytettynä. \LaTeX:ssa aksentin voi liittää mihin tahansa muuhun kirjaimeen. Kun i:n ja j:n päälle pannaan aksentti, täytyy niissä oleva piste poistaa. Tämä tehdään kirjoittamalla \verb|\i| ja \verb|\j|. \begin{example} H\^otel, na\"\i ve, \'el\`eve,\\ sm\o rrebr\o d, !`Se\~norita!,\\ Sch\"onbrunner Schlo\ss{} Stra\ss e \end{example} \begin{table}[!hbp] \caption{Aksentteja ja erikoismerkkejä} \label{accents} \begin{lined}{10cm} \begin{tabular}{*4{cl}} \A{\`o} & \A{\'o} & \A{\^o} & \A{\~o} \\ \A{\=o} & \A{\.o} & \A{\"o} & \B{\c}{c}\\[6pt] \B{\u}{o} & \B{\v}{o} & \B{\H}{o} & \B{\c}{o} \\ \B{\d}{o} & \B{\b}{o} & \B{\t}{oo} \\[6pt] \A{\oe} & \A{\OE} & \A{\ae} & \A{\AE} \\ \A{\aa} & \A{\AA} & \A{\ss}\\[6pt] \A{\o} & \A{\O} & \A{\l} & \A{\L} \\ \A{\i} & \A{\j} & \textexclamdown & \verb|!`| & \textquestiondown & \verb|?`| \end{tabular} \index{\i{} ja \j{} ilman pistettä}\index{aksentit!Ääkköset} \index{ae@\ae}\index{umlaut}\index{grave}\index{akuutti} \index{oe@\oe} \bigskip \end{lined} \end{table} Edellä oli puhetta suomen kielen tuen yhteydessä T1-merkistöstä. Se lisää käyttöön muutaman uuden aksentin ja kirjainmerkin. Katso taulukosta~\ref{T1}. \begin{table}[!htp] \caption{T1-merkistön lisäämät aksentit ja kirjainmerkit}\label{T1} \begin{lined}{10cm} \begin{tabular}{*4{cl}} \B{\r}{u} & \B{\k}{o} \\[6pt] \A{\DH} & \A{\DJ} & \A{\NG} & \A{\TH} \\ \A{\dh} & \A{\dj} & \A{\ng} & \A{\th} \end{tabular} \bigskip \end{lined} \end{table} \section{Sanavälit} Jotta \LaTeX{} saisi oikean reunan tasattua, se lisää sanojen väliin eripituisiä välejä. Englantia ladottaessa se lisää lauseiden perään hieman suuremman välin, luettavuuden helpottamiseksi. \LaTeX{} olettaa, että lause päättyy pisteeseen, kysysmerkkiin tai huutomerkkiin. Mikäli pistettä edeltää iso kirjain, ei piste päätä lausetta, sillä piste seuraa isoja kirjaimia vain lyhenteissä. Kirjoittaja voi määritellä kuitenkin poikkeuksia. Kenoviiva välilyönnin edessä latoo tavallisen sanavälin. \verb|~|-merkki latoo sanavälin joka estää rivinvaihdon. \verb|\@|-komento pisteen edessä kertoo, että piste lopettaa lauseen, vaikka se seuraisi isoa kirjainta. \cih{"@} \index{~@ \verb.~.} \index{tilde@tilde ( \verb.~.)} \index{., space after} \begin{example} Mr.~Smith oli iloinen\\ ks.~Kuva 5\\ I like BASIC\@. What about you? \end{example} Pisteen jälkeisen ylimääräisen välin voi estää komennolla \begin{command} \ci{frenchspacing} \end{command} \noindent joka kertoo \LaTeX:lle, että pisteen jälkeen ei tarvita pitempää väliä. Tämä on yleinen käytäntö muissa kielissä kuin englannissa, paitsi kirjallisuusluetteloissa. Kun \ci{frenchspacing}-käskyä käytetään ei \verb|\@|-käsky ole tarpeen. \textsf{Babelin} \texttt{finnish}-optio lisää automaattisesti \ci{frenchspacing}-käskyn käyttöön. \section{Nimiöt, luvut ja osiot} Helpottaakseen lukijaa suunnistamaan tekstin läpi, kirjoittaja jakaa sen lukuihin, osioihin ja alaosioihin. \LaTeX:ssa on tätä varten erityiset käskyt, joiden argumenteiksi annetaan otsikon teksti. Kirjoittajan tehtävä on käyttää niitä oikeassa järjestyksessä. \texttt{article}-luokassa on käytössä seuraavat otsikointikäskyt: \nopagebreak \begin{code} \ci{section}\verb|{...} |\ci{paragraph}\verb|{...}|\\ \ci{subsection}\verb|{...} |\ci{subparagraph}\verb|{...} |\\ \ci{subsubsection}\verb|{...} |\ci{appendix} \end{code} \texttt{report}- ja \texttt{book}-luokissa voidaan käyttää paria muuta otsikointikäskyä: \begin{code} \ci{part}\verb|{...} |\ci{chapter}\verb|{...}| \end{code} Koska \texttt{article}-luokka ei käytä lukuja, voidaan artikkeleita lisätä helposti kirjaan lukuina. \LaTeX hoitaa automaattisesti otsikoiden asemoinnin, numeroinnin ja kirjasimen koon valinnan. \pagebreak[3] Otsikointikäskyistä pari on hieman erikoisia: \begin{itemize} \item \ci{part}-komento ei vaikuta lukujen numerointiin. \item \ci{appendix}-komennolle ei anneta argumentteja. Sen tehtävänä on ainoastaan vaihtaa lukujen numerointi kirjaimiksi.\footnote{Artikkeleissa se vaihtaaa osioiden numeroinnin.} \end{itemize} \LaTeX{} tekee sisällysluettelon otsikoiden teksteistä ja sivunnumeroista dokumentin edellisen prosessoinnin perusteella. Komento \begin{command} \ci{tableofcontents} \end{command} \noindent luo sisällysluettelon siihen paikkaan, jossa se annetaan. Uusi dokumentti täytyy ajan \LaTeX:n läpi kahdesti, jotta \wi{sisällysluettelo} saadaan tulostumaan oikein. Joskus dokumentti täytyy kääntää kolmasti. \LaTeX{} kertoo kyllä, milloin tämä on tarpeen. Kaikista yllä mainituista otsikkokäskyistä on olemassa myös ''tähti''"-versiot. Komennon ''tähti''"-versio saadaan lisäämällä \verb|*| komennon nimen perään. Se luo otsikon, joka ei näy sisällysluettelossa ja jota ei numeroida. Komennosta \verb|\section{Apuva}| tulisi \verb|\section*{Apuva}|. Normaalisti otsikot tulostuvat sisällysluetteloon samalla tavoin kuin ne on kirjoitettu tekstiin. Joskus tämä ei ole mahdollista, kun otsikko on liian pitkä mahtuakseen sisällysluetteloon. Sisällysluetteloon menevä teksti voidaan antaa ylimääräisenä argumenttina varsinaisen otsikon edellä. \begin{code} \verb|\chapter[Lue! Tärkeää!]{Tämä on hyvin pitkä|\\ \verb| ja tylsä otsikko}| \end{code} Koko dokumentin nimiö tulostetaan käskyllä \begin{command} \ci{maketitle} \end{command} \noindent Nimiön sisältö täytyy ensin määritellä komennoilla \begin{command} \ci{title}\verb|{...}|, \ci{author}\verb|{...}| ja mahdollisesti \ci{date}\verb|{...}| \end{command} \noindent \ci{author}:n argumenteiksi voidaan antaa useita nimiä jotka on eroteltu komennolla \ci{and}. Esimerkki yllämainituista käskyistä löytyy kuvasta~\ref{document} sivulla~\pageref{document}. Näiden otsikkokäskyjen lisäksi \LaTeX{} lisää \verb|book|-luokassa käyttöön kolme lisäkäskyä. \begin{command} \ci{frontmatter}, \ci{mainmatter} and \ci{backmatter} \end{command} Niistä on hyötyä julkaisun jakamisessa osiin. Nämä komennot muuttavat lukujen otsikointia ja sivunnumerointia niin kuin kirjoissa on tapana. \section{Ristiviitteet} Kirjoissa, raporteissa ja artikkeleissa on usein \index{ristiviittaukset} ristiviittauksia kuviin, taulukoihin ja tiettyihin tekstin osiin. \LaTeX tarjoaa ristiviittaamiseen seuraavat komennot \begin{command} \ci{label}\verb|{|\emph{tunniste}\verb|}|, \ci{ref}\verb|{|\emph{tunniste}\verb|}| ja \ci{pageref}\verb|{|\emph{tunniste}\verb|}| \end{command} \noindent joissa \emph{tunniste} on käyttäjän valitsema nimi viitattavalle kohteelle. \LaTeX{} korvaa \verb|\ref|:n sen otsikon, alaotsikon, kuvan, taulukon tai teoreeman numerolla, jonka perässä on vastaavanniminen \verb|\label|-komento. \verb|\pageref| tulostaa sen sivun numeron, jossa vastaava \verb|\label|-komento on.\footnote{Huomaa, että nämä komennot eivät tiedä viittaamistaan kohteista mitään. \ci{label} yksinkertaisesti tallentaa viimeksi automaattisesti generoidun numeron.} Ristiviittausten saamiseksi ajan tasalle on dokumentti ajettava \LaTeX:in läpi ainakin kahdesti. \begin{example} Viittaus tähän alaotsikkoon \label{sec:this} näyttää tältä: ''katso osiota~\ref{sec:this} sivulla~\pageref{sec:this}.'' \end{example} \section{Alaviitteet} Komennolla \begin{command} \ci{footnote}\verb|{|\emph{alaviitteen teksti}\verb|}| \end{command} \noindent alaviite tulostuu saman sivun alareunaan. Alaviitteet pitäisi aina panna\footnote{''panna'' on yleinen suomalainen kaksimielinen sana.} sen sanan tai lauseen perään, johon ne viittaavat.\footnote{Selvyyden vuoksi lauseeseen tai osaan viittavat alaviitteet tulisi panna pilkun tai pisteen jälkeen.} \begin{example} Alaviitteitä\footnote{Tämä on alaviite} käyttävät usein \LaTeX:n käyttäjät. \end{example} \section{Korostetut sanat} Kun teksti kirjoitetaan kirjoituskoneella, \texttt{\underline{alleviivausta} käytetään ko\-ros\-ta\-maan tärkeitä sanoja.} Painetuissa kirjoissa sanoja korostetaan kuitenkin latomalla ne \emph{kursiivilla}. \LaTeX:ssa voi käyttää komentoa \begin{command} \ci{emph}\verb|{|\emph{tekstiä}\verb|}| \end{command} \noindent tekstin korostamiseen. Komennon varsinainen tulos riippuun siitä, missä yhteydessä sitä on käytetty: \begin{example} \emph{Jos käytät korostusta korostetun tekstin sisällä, \LaTeX{} käyttää \emph{normaalia} kirjasinta korostamiseen.} \end{example} On eri asia käskeä \LaTeX:ia \emph{korostamaan} jotain ja käskeä sitä käyttämään erilaista \emph{kirjasinta}: \begin{example} \textit{Voit myös \emph{korostaa} tekstiä, joka on ladottu kursiivilla,} \textsf{\emph{groteskilla},} \texttt{tai \emph{kirjoituskone} tyylillä.} \end{example} \section{Ympäristöt} \label{env} Erityisten tekstien latomiseksi \LaTeX:ssa voidaan määritellä eri tavalla muotoiltuja \index{ympäristöt} ympäristöjä: \begin{command} \ci{begin}\verb|{|\emph{nimi}\verb|}|\quad \emph{tekstiä}\quad \ci{end}\verb|{|\emph{nimi}\verb|}| \end{command} \noindent joissa \emph{nimi} on ympäristön nimi. Ympäristöjä voidaan kutsua toistensa sisällä kunhan kutsujärjestys säilytetään. \begin{code} \verb|\begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa}| \end{code} \noindent Seuraavissa osioissa selitetään kaikki tärkeät ympäristöt. \subsection{Numeroimaton, numeroitu ja määrittelyluettelo} \ei{itemize}-ympäristö sopii yksinkertaisiin luetteloihin, \ei{enumerate}-ympäristö numeroituihin luetteloihin ja \ei{description}-ympäristö määrittelyjen luetteloon. \cih{item} \begin{example} \flushleft \begin{enumerate} \item Voit sekoittaa makusi mukaan luetteloympäristöjä: \begin{itemize} \item Mutta se voi näyttää typerältä. \item[--] Ranskalainen viiva. \end{itemize} \item Muista siis: \begin{description} \item[Typeryys] ei muutu viisaudeksi luettelossa. \item[Viisaus] voidaan silti esittää kauniisti luettelossa. \end{description} \end{enumerate} \end{example} \subsection{Tasaus vasemmalle, oikealle ja keskitys} Ympäristöt \ei{flushleft} ja \ei{flushright} luovat joko vasemmalle tai \index{oikealle tasattu} oikealle tasattuja kappaleita. \index{vasemalle tasattu} \ei{center}-ympäristö luo keskitettyä tekstiä. Mikäli \ci{bs}-käskyä ei käytetä rivinvaihdon merkitsemiseen, \LaTeX{} vaihtaa riviä automaattisesti. \begin{example} \begin{flushleft} Tämä teksti on\\ vasemmalle tasattu. \LaTeX{} ei yritä tehdä kaikista riveistä saman pituisia. \end{flushleft} \end{example} \begin{example} \begin{flushright} Tämä teksti on oikealle\\ tasattu. \LaTeX{} ei yritä tehdä kaikista riveistä saman pituisia. \end{flushright} \end{example} \begin{example} \begin{center} Maapallon\\ keskustassa. \end{center} \end{example} \subsection{Lainaus, sitaatti ja säkeet} \ei{quote}-ympäristö on käyttökelpoinen lainausten, sitaattien ja esimerkkien esittämiseen. \begin{example} Typografinen nyrkkisääntö rivin pituudesta on: \begin{quote} Rivissä ei tulisi olla enemmän kuin 66~merkkiä. Tästä syystä \LaTeX:n sivuissa on oletuksena niin isot marginaalit \end{quote} Tästä syystä sanomalehdissä käytetään usein useampaa palstaa. \end{example} Samanlaisia ympäristöjä ovat \ei{quotation} ja \ei{verse}. \texttt{quotation}-ympäristö on hyödyllinen pitemmissä lainauksissa, jotka jatkuvat usean kappaleen verran, sillä se sisentää kappaleet. \texttt{verse}-ympäristö on hyödyllinen runoissa, joissa rivin vaihto on tärkeää. Säkeet erotetaan \ci{\bs}:llä rivin lopussa ja säkeistöt tyhjällä rivillä. \begin{example} Tiedän ulkoa vain yhden englantilaisen runon. Se kertoo Humpty Dumptysta. \begin{flushleft} \begin{verse} Humpty Dumpty sat on a wall:\\ Humpty Dumpty had a great fall.\\ All the King's horses and all the King's men\\ Couldn't put Humpty together again. \end{verse} \end{flushleft} \end{example} \subsection{Sananmukainen tulostus} \verb|\begin{|\ei{verbatim}\verb|}|:n ja \verb|\end{verbatim}|:n väliin jäävä teksti tulostuu niin kuin se on kirjoitettu käsikirjoitukseen ja niinkuin se olisi kirjoitettu kirjoituskoneella. Kaikki välilyönnit tulostuvat välilyönteinä. \LaTeX:n komentoja ei suoriteta. Kappaleen sisällä sama vaikutus saadaan komennolla \begin{command} \ci{verb}\verb|+|\emph{tekstiä}\verb|+| \end{command} \noindent \verb|+| on vain esimerkki rajana käytettävästä merkistä. Mitä tahansa muuta merkkiä voidaan käyttää paitsi kirjainta, \verb|*| tai välilyöntiä. Useat tämän kirjasen \LaTeX-esimerkeistä on ladottu tällä komennolla. \begin{example} \verb|\ldots|-komento \ldots \begin{verbatim} 10 PRINT "HELLO WORLD "; 20 GOTO 10 \end{verbatim} \end{example} \begin{example} \begin{verbatim*} verbatim-ympäristön tähtiversio korostaa välilyöntejä tekstissä \end{verbatim*} \end{example} \ci{verb}-komentoa voidaan käyttää samalla tavoin tähden kanssa: \begin{example} \verb*|näin ikkään :-) | \end{example} \texttt{verbatim}-ympäristöä ja \verb|\verb|-komentoa ei voida käyttää muiden komentojen parametreina. \subsection{Sarkaimet} \ei{tabular}-ympäristöllä voidaan latoa kauniita \index{taulukot} taulukoita, joissa on mahdollisesti vaaka"- tai pystyviivoja. \LaTeX{} laskee sarakkeiden leveyden automaattisesti. Komennon \begin{command} \verb|\begin{tabular}{|\emph{table spec}\verb|}| \end{command} \noindent \emph{table spec}"=argumentti määrittelee taulukon muodon. \texttt{l} käytetään sarakkeisiin, joissa teksti on tasattu vasemalle, \texttt{r} oikealle tasattuun tekstiin ja \texttt{c} keskitettyyn tekstiin; \verb|p{|\emph{leveys}\verb|}| on sarakkeeseen, jossa on molemmilta puolilta tasattua tekstiä ja rivinvaihtoja ja \verb.|. on pystysuoralle viivalle. \texttt{tabular}-ympäristössä \verb|&| siirtää seuraavaan sarakkeeseen, \ci{\bs} aloittaa uuden rivin ja \ci{hline} lisää vaakasuoran viivan. \index{"|@ \verb."|.} \begin{example} \begin{tabular}{|r|l|} \hline 7C0 & heksadesimaali \\ 3700 & oktaali \\ 11111000000 & binääri \\ \hline \hline 1984 & desimaali \\ \hline \end{tabular} \end{example} \begin{example} \begin{tabular}{|p{4.7cm}|} \hline Tervetuloa Kaken kappaleeseen. Toivomme että kaikki nauttivat esityksestä.\\ \hline \end{tabular} \end{example} Sarakkeiden erotin voidaan määritellä \verb|@{...}| rakenteella. Tämä komento korvaa sarakkeiden välisen tyhjän tilan aaltosulkeiden välissä olevalla materiaalilla. Komennon tyypillinen käyttöesimerkki on annettu alla desimaalisarkainta esiteltäessä. Toinen tyypillinen käyttötapa on poistaa edeltävät välilyönnit komennolla \verb|@{}|. \begin{example} \begin{tabular}{@{} l @{}} \hline ei edeltäviä välilyöntejä\\ \hline \end{tabular} \end{example} \begin{example} \begin{tabular}{l} \hline välit vasemalla ja oikealla\\ \hline \end{tabular} \end{example} % % This part by Mike Ressler % \index{desimaalisarkain} Koska LaTeX:ssa ei ole mitään sisäänrakennettua tapaa tasata numerosarakkeita desimaalipilkun kohdalta,\footnote{Jos 'tools'-makrokokoelma on asennettu systeemiin, kannattaa tutustua \pai{dcolumn}-makropakettiin.} täytyy turvautua ''huijaamiseen'' ja tehdä se kahta saraketta käyttämällä: tasaamalla kokonaisosa oikealle ja murto-osat vasemmalle. \verb|@{,}|-komento \verb|\begin{tabular}|-ympäristössä korvaa normaalin sarakkeiden välisen välin pilkulla, jolloin saadaan vaikutelma yhdestä, desimaalipilkkuun tasatusta sarakkeesta. Ei pidä unohtaa desimaalipilkun korvaamista numeroissa sarake-erottimella (\verb|&|)! Sarakkeen nimi voidaan asettaa numeerisen ''sarakkeen'' yläpuolelle \ci{multicolumn}-komennolla. \begin{example} \begin{tabular}{c r @{,} l} Piin merkintätapa & \multicolumn{2}{c}{Arvo} \\ \hline $\pi$ & 3&1416 \\ $\pi^{\pi}$ & 36&46 \\ $(\pi^{\pi})^{\pi}$ & 80662&7 \\ \end{tabular} \end{example} \section{Kelluvat osat} Nykyään useimmissa julkaisuissa on paljon kuvia ja taulukoita. Nämä elementit kaipaavat erikoiskohtelua, sillä niitä ei voi jakaa eri sivuille. Eräs tapa olisi aloittaa uusi sivu aina kun kuva tai taulukko on liian iso mahtuakseen sivulle. Tämä tapa kuitenkin jättäisi sivut osittain tyhjäksi, mikä näyttää pahalta. Ratkaisu on siirtää mikä tahansa sivulle sopimaton kaavio tai taulukko, johonkin myöhemmälle sivulle ja samalla täyttää tyhjäksi jäävä tila tekstillä. \LaTeX:ssa on kaksi ympäristöä \index{kelluvat objektit} kelluville objekteille. Yksi taulukoille ja yksi kaavioille. Näiden ympäristöjen hyödyntämiseksi on ymmärrettävä suunnilleen kuinka \LaTeX{} käsittelee kelluvia osia. Muutoin niistä voi tulla turhautumisen kohde, sillä \LaTeX{} ei koskaan pane niitä siihen, mihin haluat. \bigskip Katsotaanpa ensiksi mitä komentoja \LaTeX{} tarjoaa kelluvalle materiaalille: Mikä tahansa aineisto, joka on \ei{figure}- tai \ei{table}-ympäristön sisällä, käsitellään kelluvana materiaalina. Kumpikin ympäristö tarjoaa vaihtoehtoisen parametrin \begin{command} \verb|\begin{figure}[|\emph{sijoituksen määrittely}\verb|]| tai \verb|\begin{table}[|\emph{sijoituksen määrittely}\verb|]| \end{command} \noindent jota kutsutaan \emph{sijoituksen määrittelyksi}. Tämä parametri kertoo \LaTeX:lle minne kelluvan objektin sallitaan siirtyvän. \emph{sijoituksen määrittely} rakentuu \emph{kelluvan objektin sallittujen sijaintien} merkkijonosta. Katso taulukko~\ref{tab:permiss}. \begin{table}[!bp] \caption{Kelluvan objektin sallitut sijainnit}\label{tab:permiss} \noindent \begin{minipage}{\textwidth} \medskip \begin{center} \begin{tabular}{@{}cp{10cm}@{}} Määrite&Sallittu sijainti \ldots\\ \hline \rule{0pt}{1.05em}\texttt{h} & juuri \emph{tässä} paikassa tekstiä. Tämä sopii pääasiassa pieniin kelluviin objekteihin.\\[0.3ex] \texttt{t} & sivun \emph{yläosassa}\\[0.3ex] \texttt{b} & sivun \emph{alaosassa}\\[0.3ex] \texttt{p} & erityisellä \emph{sivulla}, jossa on ainoastaan kelluvia objekteja\\[0.3ex] \texttt{!} & kyseisen kelluvan objektin asettelun estävistä sisäisistä parametreista\footnote{Kuten yhdellä sivulla sallittujen kelluvien objektien maksimimäärä} riippumatta. \end{tabular} \end{center} \end{minipage} \end{table} \pagebreak[3] Taulukko voisi alkaa esim. seuraavalla rivillä: \begin{code} \verb|\begin{table}[!hbp]| \end{code} \noindent \index{objektien sijoitus} Sijoituksen määrittely \verb|[!hbp]| sallii \LaTeX:n sijoittaa taulukko juuri tähän (\texttt{h}) tai jonkin sivun alaosaan (\texttt{b}) tai erityiselle sivulle (\texttt{p}) ja vieläpä niin, että lopputuloksen ei tarvitse näyttää erityisen hyvältä (\texttt{!}). Jos mitään määrityksiä paikan suhteen ei anneta, standardiluokat olettavat määrityksiksi \verb|[tbp]|. \LaTeX{} sijoittaa kaikki kelluvat objektit kirjoittajan antamien paikkamääritysten mukaisesti. Jos objektia ei voi sijoittaa samalle sivulle se pannaan joko \emph{kuvien} tai \emph{taulukoiden} jonoon\footnote{Nämä ovat ''ensimmäisenä sisään, ensimmäisenä ulos'' jonoja!}. Kun uusi sivu alkaa \LaTeX{} tarkistaa ensin, onko mahdollista täyttää kelluvilla objekteilla oma sivu. Jos tämä ei ole mahdollista joka jonon ensimmäistä objektia käsitellään aivan kuin se olisi juuri esiintynyt tekstissä: \LaTeX{} yrittää jälleen asemoida sitä paikanmäritysten mukaisesti (paitsi 'h':n, joka ei ole enää mahdollinen). Kaikki uudet tekstissä esiintyvät objektit siirtyvät vastaavaan jonoon. \LaTeX{} säilyttää kunkin objektityypin alkuperäisen järjestyksen. Tästä syystä, jos jotain kuvaa ei voida sijoittaa, se siirtää kaikkia muita kuvia dokumentin loppua kohden. Niinpä: \begin{quote} Jos \LaTeX{} ei sijoita objekteja odotetulla tavalla, on syynä usein yksi kelluva objekti joka tukkii jommankumman jonoista. \end{quote} \bigskip \noindent Vaikean osan jäädessä taakse on jäljellä vielä muutama mainittava asia \ei{table}- ja \ei{figure}-ympäristöistä. Komennolla \begin{command} \ci{caption}\verb|{|\emph{kuvateksti}\verb|}| \end{command} \noindent voidaan kelluvalle objektille määritellä kuvateksti. LaTeX{} lisää juoksevan numeron ja tekstin ''Kuva'' tai ''Taulukko''.\footnote{Englannin kielisissä dokumenteissa vastaavasti ''Figure'' ja ''Table''.} Komennot \begin{command} \ci{listoffigures} ja \ci{listoftables} \end{command} \noindent toimivat samoin kuin \verb|\tableofcontents|-komento tulostaen vastaavasti luettelon kuvista ja taulukoista. Jos käytät pitkiä kuvatekstejä, on luetteloon saatava lyhyempi versio. Tämä on mahdollista lisäämällä lyhyt versio hakasulkeisiin \verb|\caption|-komennon perään. \begin{code} \verb|\caption[Lyhyt]{Piiiiiiiitkääääääää}| \end{code} Komennoilla \verb|\label| ja \verb|\ref| voidaan luoda viittaus kelluvaan objektiin. Seuraava esimerkki piirtää neliön ja lisää sen dokumenttiin. Tätä voidaan käyttää varaamaan tilaa kuville, jotka liimataan lopulliseen dokumenttiin. \begin{code} \begin{verbatim} Kuva~\ref{white} on esimerkki pop-taiteesta. \begin{figure}[!hbp] \makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}} \caption{Viisi kertaa viisi cm} \label{white} \end{figure} \end{verbatim} \end{code} \noindent Yllä olevassa esimerkissä \LaTeX{} yrittää \emph{todella kovasti}~(\texttt{!}) asettaa kuvan juuri \emph{tähän}~(\texttt{h}).\footnote{Olettaen, että kuvien jono on tyhjä.} Mikäli tämä ei ole mahdollista, se yrittää asemoida kuvan sivun \emph{alaosaan}~(\texttt{b}). Jos kuva ei sovi sivulle, \LaTeX{} tarkistaa, olisiko mahdollista tehdä erillinen sivu kuvaa ja jonossa olevia taulukoita varten. \LaTeX{} aloittaa uuden sivun ja käsittelee kuvaa jälleen ikäänkuin se esiintyisi ensimmäistä kertaa. Jossain tilanteissa on tarpeen käyttää \begin{command} \ci{clearpage}- tai jopa \ci{cleardoublepage} \end{command} \noindent "=komentoa. Se pakottaa \LaTeX:n asemoimaan kaiken jonoissa olevan kelluvan materiaalin välittömästi ja aloittamaan sitten uuden sivun. Vasemanpuoleiselle sivulle saman tekee \ci{cleardoublepage}. Myöhemmin tässä johdannossa opetetaan lisäämään Postscript"-kuvia \LaTeX-dokumentteihin. %%% Local Variables: %%% mode: latex %%% TeX-master: "lyhyt2e" %%% End: