%TeX ja LaTeX pikaohje % Ylimääräisiä tyylitiedostoja, saattavat olla hyödyllisiä: % endnotes.sty : loppuviitteet % drafthead.sty : Sivun yläreunaan DRAFT sekä päiväys ja kellonaika % example.sty : LaTeX output side-by-side with LaTeX input % fancyheadings.sty : Sivun ylä- ja alatunnisteet voi räätälöidä % maillabels.sty : Postitarroja ja osoitekirja % pagefoots.sty : Alaviitteiden numerointi alkaa 1:sta joka sivulla % shading.sty : varjostetut laatikot (p.o. PostScript) %%%\documentstyle[finnish,12pt,A4,multicol,verbatim,drafthead]{artikkeli} %%%\documentstyle[12pt,A4,multicol,verbatim]{artikkeli} %%%\documentstyle[12pt,A4,verbatim,multicol,finnish]{article} %Yllä oleva rivi tarkoittaa: % suomenkielen tavutussäännöt % kirjainten koko 12pt, eli tavallista isompi (muut 10pt ja 11pt) % paperikoko A4 % asiakirjan tyyli artikkeli, eli suomenkielinen article %Näköjään merkkikoon (11pt -> 12pt) muuttaminen muuttaa %vasenta ja oikeaa marginaaliakin. Ilmeisesti LaTeX yrittää %tehdä vakiomäärän merkkejä riville. %%%Nyt käytetään LaTeX versiota 2e \documentclass[12pt,finnish]{article} \usepackage{babel} \usepackage{t1enc} \usepackage{Vmargin} \usepackage{epsfig} \usepackage{fancyheadings} \usepackage{verbatim} \usepackage{multicol} %%%\usepackage{multirow} %%PSBOX mukaan %%\input psbox.tex %%\psfordvips %Seuraava rivi poistaa kappaleiden ekan rivin sisennyksen %\setlength{\parindent}{0pt} %Kappaleiden väliin tyhjä rivi +/- hieman %\setlength{\parskip}{1.0ex plus 0.5ex minus 0.2ex} %Sivun korkeus hieman, eli 15 millimetriä, suuremmaksi %\addtolength{\textheight}{15mm} %\setlength{\partopsep}{0pt plus 1pt} \newcommand{\otsikko}{\LaTeX 2e pikaohje} \newcommand{\tekija}{Tapio Lehtonen} \newcommand{\email}{Tapio.Lehtonen@cs.Helsinki.FI} \newcommand{\termie}[2]{\textbf{#1}~(\textit{#2})} \newcommand{\termi}[1]{\textbf{#1}} \newcommand{\koodi}[1]{\textsf{#1}} \newcommand{\varsana}[1]{\textsf{\bfseries #1}} \newcommand{\maar}[1]{\textit{#1}} \chardef\kenochar="5C \newcommand{\keno}{\texttt{\kenochar}} %%Vmarginin komentoja käytetään asettamaan paperikoko ja marginaalit: \setpapersize[portrait]{A4} \setmarginsrb{25mm}{25mm}{25mm}{25mm} {10mm}{10mm}{10mm}{10mm} \pagenumbering{roman} %Sivunumerot i, ii, iii, iv, ... \pagestyle{myheadings} %Sivunumerot ylös oikeaan reunaan \markright{} %EI haluta luvun nimeä sivun ylätunnisteeseen \begin{document} %%\def\keno{$\tt \backslash$} %%\newcommand{\keno}{\mbox{$\tt\backslash$}} %%\newcommand{\keno}{{\tt \verb+\+}} \chardef\kenochar="5C \def\keno{\tt\kenochar} \title{\otsikko} \author{\tekija \and \email} %\date{10.6.1993} %Jos haluat itse määrätä otsikon päiväyksen... %%\markright{\tiny /home/hydra-2/group/atkjarjestelmat/MikroTuki/Ohjeet/Kansio/TeXohje.tex} \maketitle \thispagestyle{empty} % LaTeX:in bugi. Ilman tätä title tekee sivunumeron \begin{abstract} Lyhyt ohje \LaTeX-ladontaohjelman käytöstä opinnäytetöiden kirjoittamisessa. Ohjeen lukemisen lisäksi on ohje itse \LaTeX-muodossa käytettävissä mallina. Tämä ohje, ja erityisesti luku \ref{lukutulos} on samalla \termi{local guide}, eli geneeristen \LaTeX-ohjeiden lisäosa Tietojenkäsittelytieteen laitoksen käyttöympäristöön sovitettuna. Tavanomaisten tekstinkäsittelypulmien lisäksi käsitellään lyhyesti \begin{enumerate} \item ohjelmakoodien liittämistä tekstin oheen, \item taulukoitujen tulosten esittämistä ja \item kuvien liittämistä tekstin oheen, \end{enumerate} Kehuja sekä haukkuja sopii lähettää sähköpostilla osoitteella \\ {\normalsize \email} Tämä teksti on hydralla tiedostossa\\ /home/hydra-2/group/atkjarjestelmat/MikroTuki/Ohjeet/Kansio/TeXohje.tex, \\ %%luokassa D325 tiedostossa \\ %%{\tt Q:\keno EMTEX\keno ESIMERKI\keno TEXOHJE.TEX} %%ja luokassa D326 tiedostossa \\ %%{\tt D:\keno EMTEX\keno ESIMERKI\keno TEXOHJE.TEX} Linux-saarilla tiedostossa \\ \koodi{/home/contrib/man/TeXohje.tex}\\ ja TKTL:n verkkowindows -koneissa tiedostossa\\ \koodi{Q:\keno mikrotuk\keno jotainjotain} \end{abstract} \newpage \tableofcontents %%%%%\markright{} \newpage % Pakotetaan sivunvaihto %varsinainen teksti alkaa \pagenumbering{arabic} %Numeroidaan tästä eteenpäin sivut 1, 2, 3, ... %%%\thispagestyle{empty} %En halua ensimmäiselle sivulle numeroa näkyviin. \pagestyle{fancy} %%%\chead{\textsl{Luonnos} \today} \section{Miksi \LaTeX?} \TeX\ ja \LaTeX\ ovat {\em ladontaohjelmia}, niihin ei kuulu omaa tekstinkäsittelyohjelmaa kuten esimerkiksi WordPerfectissä on. Teksti on tarkoitus kirjoittaa tek\-stin\-kä\-sit\-te\-ly\-oh\-jel\-mal\-la (editorilla) tiedostoon, voit käyttää esimerkiksi mikroEmacsia (käyn\-nis\-tys\-ko\-men\-to {\tt em tiedosto.tex}). Mitä tahansa editoria voi käyttää, kunhan tehdyn tekstin saa talletettua ASCII-muodossa (eli DOS-tekstinä tms.). Koska \TeX\ ja \LaTeX\ käsittelevät tavallisia tekstitiedostoja, voit kirjoittaa tiedoston sellaisellakin koneella, jossa ei ole \TeX\ ja \LaTeX\ -ohjelmia. Vasta kun haluat katsoa ladottua asiakirjaa tietokoneen ruudulla tai paperilla tarvitaan komentoja {\tt tex} ja {\tt latex}. Lisäetuna tekstitiedostosta on siirrettävyys: \LaTeX-tiedoston voi siirtää toiseen koneeseen jossa on erilainen käyttöjärjestelmä tai lähettää sähköpostina Honoluluun. \TeX\ ei ole niin sanottu WYSIWYG\footnote{What You See Is What You Get} -tekstinkäsittelyohjelma, mutta \TeX\ ei ole myöskään WYSIAYAGTG\footnote{What You See Is All You Are Going To Get}. \TeX:iä käytettäessä keskitytään kirjoitettaessa tekstin sisältöön ja asiakirjan rakenteen kuvaamiseen, ei ole tarpeen pohtia tekstin sijoittelun yksityiskohtia. \TeX\ latoo tekstin paperille omin päin siististi ja selkeän näköiseksi. \TeX\ on {\em erittäin} monipuolinen ja monilla tavoin muokattavissa mitä erikoisimpiin ladontatilanteisiin. Lisäksi \TeX\ on saatavilla ilmaiseksi suunnilleen kaikille vähänkään käyttökelpoisen kokoisille tietokoneille, esimerkiksi MSDOS, Apple, Amiga ja UNIX -koneille, kunhan kiintolevytilaa on noin 12 megatavua. Pelkästään tämän ohjeen perusteella pitäisi pystyä kirjoittamaan harjoitustyön dokumentin tapainen työ. Kaikki \LaTeX 2e:stä löytyy kirjasta {\bf Leslie Lamport: \LaTeX\ A Document Preparation System, toinen painos \cite{Lam94}}. Hankittaessa suomenkielistä \LaTeX-opasta kannattaa tarkistaa kirjan olevan sen verran uusi, että siinä ei kehoiteta kirjoittamaan skandinaavisia aakkosia näin: {\tt \keno "a} olisi ä, {\tt \keno "o} olisi ö jne. Lamportin kirjaa täydentää \LaTeX\ Companion \cite{GMS94}, jossa hyvin laajasti käsitellään kaikkea mahdollista jolla \LaTeX ia voidaan käyttää monipuolisemmin. Jos Lamportin kirja ja tämä ohje tuntuu liian pelkistetyltä, voi \LaTeX\ Companionista löytää lisäjippoja tekstiä piristämään. Tiedostona on saatavissa Tobias Oetiker et. al:in A not very Short Introduction to \LaTeX2e. Sama ohje on saatavilla myös saksankielisenä. Kaikenlaista \LaTeX\ materiaalia löytää CTAN-palvelukoneista (Comprehensive TeX Archive N-something). Suomesta lähimmät CTAN koneet lienevät \koodi{ftp.tex.ac.uk} Brittein saarilla ja \koodi{ftp.dante.de} Saksassa. Esimerkiksi edellä mainittu Tobias Oetikerin ohje:\\ \koodi{ftp.tex.ac.uk:/tex-archive/info/lshort/lshort2e.300.ps} (470798~bytes). \begin{quote} Lamportin alkuperäinen \LaTeX-kirja \cite{Lam86} kuvaa \LaTeX\ version 2.09. Lamportin kirjaa oikeastaan parempikin opas version 2.09 käyttöön on {\bf Helmut Kopka, Patrick W. Daly: A Guide to \LaTeX, Document Preparation for Beginners and Advanced Users} \cite{KoD93}. Kalliiden kirjojen tilalla voi käyttää opasta {\bf Gavin Maltby: An introduction to \TeX\ and friends} \cite{Mal92}. Tämä viimeksimainittu on ATK-keskuksen UNIX-koneissa tiedostossa \\ /usr/global/lib/tex/inputs/latexnotes.ps.Z, ja valmiiksi paperille tulostettuna mikroluokkien Mikrotuki-kansiossa. Jos jokin näistä 2.09 -ohjeista on jo käytössä, pärjää silläkin varsin hyvin. \end{quote} {\bf Paljon} \TeX\ ja LaTeX\ informaatiota löytyy Wolrd Wide Webistä, esimerkiksi \\ {\sf http://jasper.ora.com/ctan.html}. \begin{comment} Tavallisimmat kysymykset ja niiden vastaukset löytyvät luokassa D325 hakemistosta {\tt Q:\keno EMTEX\keno FAQ } ja verkowindowsluokissa hakemistosta {\tt Q:\keno EMTEX\keno FAQ }. Myös World Wide Web eli WWW on kunnostautunut \TeX\ -tiedon keräilyssä. URL {\sf http://jasper.ora.com/ctan.html} on hyvä aloituskohta. \end{comment} Muita kysymyksiä voi esittää %%PortaCOMissa kokouksessa ``TeX ja muu tieteellinen tekstinkäsittely'' sekä newseissä ryhmissä ``comp.text.tex'' ja ``hy.atk.tex''. Jos newseissä esittää kysymyksen suomen kielellä, on syytä rajoittaa viestin leviämistä kirjoittamalla {\sf Distribution:~hy} eli Helsingin yliopisto. %%%\section{Miten kirjoitan artikkelin tai raportin} \section{Miten kirjoitan} \subsection{Tiedoston alku} \LaTeX\ on \TeX:n kesytetty ja helppokäyttöisempi muunnos, %muunnos,versio, osajoukko tässä pikaohjeessa käsitelläänkin \LaTeX:ia. Tavallisen \TeX:n, niin sanotun {\em Plain TeX}:n käyttäjän kannattaa hankkia {\bf Donald E. Knuth}:in kirja {\bf The \TeX book} \cite{Knu90}. Plain \TeX:n järkevään käyttöön tarvitaan asiakirjaan sopivat määrittelyt ja komennot, jotka joko saadaan valmiina jostain tai tehdään itse. \LaTeX\ on tällainen valmiiksi paketoitu kokoelma määrittelyjä ja komentoja. \LaTeX\ tiedosto pitää aloittaa seuraavasti\footnote{Jos käytät vanhempaa versiota 2.09, tiedoston alku kirjoitetaan eri tavalla. Katso tarkemmmin liitteestä \ref{vanhapohja}}: \begin{verbatim} \documentclass[a4paper,12pt,finnish]{article} \usepackage{babel} \usepackage{t1enc} \begin{document} \end{verbatim} %%{\setlength{\parindent}{10mm} \setlength{\parskip}{0pt} Tässä käytetään \termi{paperikoko}a A4, 12 pisteen \termi{tekstikoko}a, suomen kieltä ja suomenkielen \termi{tavutussääntö}jä. Kirjoitelman \maar{laji} on {\tt article} eli suhteellisen lyhyt teksti. Muut lajit ovat {\tt report}, {\tt book} ja {\tt letter}. Ruotsiksi kirjoitettaessa kirjoitetaan sanan {\tt finnish} tilalle {\tt swedish}. Jos ei kirjoiteta mitään kielen nimeä tulee kieleksi englanti. Muidenkin kielten tavutussäännöt ovat käytettävissä, joko valmiiksi asennettuna tai lisäosan hankkimalla. \LaTeX\ tekee normaalisti kappaleita, joissa ensimmäinen rivi on sisennetty, eikä kappaleiden välissä ole tyhjää riviä. %%Tässä on pari %%kappaletta malliksi tästä \LaTeX:n alkuperäisestä muotoilusta. Jos tämä ei miellytä, voidaan kappaleen ensimmäisen rivin sisennys määrätä nollaksi ja kappaleiden väliin halutun korkuinen tyhjä rivi. %%Näitä paria kappaletta lukuunottamatta tämä ohje on kirjoitettu %%tällaisella muotoilulla. Lisäksi sivun tekstiosan korkeutta on %%kasvatettu, siis alareunan marginaali on matalampi. Tällöin tiedoston alkuun lisätään seuraavat rivit: \begin{verbatim} %Seuraava rivi poistaa kappaleiden ekan rivin sisennyksen \setlength{\parindent}{0pt} %Kappaleiden väliin tyhjä rivi +/- hieman \setlength{\parskip}{1.0ex plus 0.5ex minus 0.2ex} \end{verbatim} %%%Sivun korkeus hieman, eli 15 millimetriä, suuremmaksi %%\addtolength{textheight}{15mm} \termi{Rivinväli} on normaalisti 1, eli valitun tekstikoon mukaan suunnilleen merkkilajin nimellinen pistekoko (se ensimmäisen rivin 12pt esimerkiksi). Rivinvälin voi muuttaa puoleksitoista komennolla \begin{verbatim} \renewcommand{\baselinestretch}{1.5} \normalsize \end{verbatim} Rivinväliksi voi antaa minkä tahansa luvun, mutta pienempi kuin 0.75 ja suurempi kuin 2.0 on harvoin tarpeen. Todennäköisesti et tarvitse kuin oletusarvoa 1 ja suurempaa rivinväliä 1.5. Tässä on tärkeää muistaa tuo komento \koodi{\keno normalsize}, sillä rivinvälin muutos vaikuttaa vasta muutosta seuraavan tekstikokoa muuttavan komennon jälkeen. Riviväliä voi muuttaa kesken tekstinkin ja monta kertaa samassa dokumentissa. \textit{ONKO NÄIN???} Mikäli koko asiakirja on tarkoitus tulostaa muutetulla rivivälillä, kannattaa komento kirjoittaa ennen \koodi{\keno begin\{document\}} -riviä. \subsection{Tiedoston loppu} \vbox{ Tiedosto lopetetaan rivillä \begin{verbatim} \end{document} \end{verbatim} } \subsection{Tekstin kirjoittaminen} Varsinainen teksti kirjoitetaan {\tt {\tt \keno }begin\{document\}} ja {\tt {\tt \keno }end\{document\}} -rivien väliin. \LaTeX\ lukee kirjoittamasi tiedoston, latoo sanat, rivit ja sivut kohdalleen, sekä tekee tarvittaessa sisällysluettelon. Tavallista tekstiä kirjoitettaessa ei yleensä tarvitse kiinnittää huomiota tekstin ulkoasuun, kunhan merkitsee kappaleen vaih\-tu\-mi\-sen tyhjällä rivillä. %Jos \LaTeX\ ei tee %jotain kohtaa miellyttävällä tavalla pitää lukea tämä luku loppuun. {\small Joskus pitää kirjoittaa {\em kova rivinvaihto}, esimerkiksi haluttaessa \hfil\break pakottaa jokin sana rivin alkuun. Tämä tehdään kirjoittamalla {\tt\keno }{\tt\keno } rivinvaihtokohtaan (tai {\tt {\tt \keno }hfil{\tt \keno }break}, joka toimii myös plain \TeX:ssä). Kirjoitettaessa runoja tai vastaavaa tekstiä, jossa pitää itse kirjoittaa kaikki rivinvaihdot, on kätevintä käyttää ympäristöä {\tt verse}, eli kirjoittaa \begin{verbatim} \begin{verse} Roses are red\\ violets are blue\\ I think \LaTeX\ is great\\ And so will you! \end{verse} \end{verbatim} \begin{quote} Lainaukset ja vastaavat muusta tekstistä eroaviksi tarkoitetut osat voi kirjoittaa quote-ympäristössä, siis {\tt \keno begin\{quote\}} ja {\tt \keno end\{quote\}} -rivien väliin kuten tämä kappale. Vieraskielisen lainauksen kohdalla tavutussäännöt voi vaihtaa, mahdollisesti kyseiselle kielelle on määritelty komento {\tt \keno kielen\_nimi}, esimerkiksi {\tt \keno english}. \end{quote} Kova sivunvaihto tehdään kirjoittamalla {\tt \keno newpage} sivunvaihtokohtaan. Useimmiten ei ole tarpeen pakottaa \LaTeX:ia tekemään sivunvaihtoja. \LaTeX\ osaa tavuttaa suomenkieltä tyydyttävästi. Vierasperäiset sanat tai erikoistermit saatetaan tavuttaa väärin. Kirjoittamalla oikeisiin tavukohtiin {\em tavutusvihje} {\tt{\tt\keno }-} saadaan virheet korjattua. Esimerkiksi sana tavustusvihje kirjoitettaisiin \emergencystretch=20em {\tt ta{\tt\keno }-vu{\tt\keno }-tus{\tt\keno }-vih{\tt\keno }-je}. \begin{comment} Jos sanassa on tavuviiva, esimerkiksi ``kuorma-auto'', voidaan tavuviiva kirjoittaa {\tt {\tt\keno }?}, siis {\tt kuorma{\tt\keno }?auto}. Tällöin \LaTeX\ etsii sanasta muitakin tavutuspaikkoja. Komento {\tt {\tt\keno }?} ei kuitenkaan sovi tapauksiin joissa sana alkaa tavuviivalla, esimerkiksi ''kansalaisoikeudet ja -velvollisuudet``, koska tavuviiva voi jäädä yksinään edelliselle riville. Tällainen sanan alussa oleva tavuviiva pitää kirjoittaa {\tt {\tt\keno }9}, siis esimerkiksi {\tt {\tt\keno }9velvollisuudet}. \end{comment} Joskus tarvitaan sanaväli sellaiseen kohtaan johon \LaTeX\ ei sitä tee. Kova välilyönti kirjoitetaan {\tt {\tt\keno }\ \ }, eli kenoviiva ja välilyönti. Toisaalta taas tietyt sanat pitää sitoa toisiinsa, jotta \LaTeX\ ei jaa niitä riviltä toiselle. Tämä kirjoitetaan tilde-merkillä, siis esimerkiksi {\tt Kaarle$\tilde{\ }$XII} (\LaTeX\ ymmärtää tilden sidosmerkiksi, jonka paikalle paperilla tulee välilyönti). } Kaikkia tarvittavia merkkejä ei välttämättä saa näppäimistöltä suoraan kirjoitettua. Varsin monet merkit löytää \LaTeX in valmiista komennoista, esimerkiksi kolme pistettä \ldots saadaan komennolla \koodi{\keno ldots}. Tavuviivamerkkejä käytetään seuraavasti: \begin{tabular}{ll} - & tavallinen tavuviiva, esimerkiksi kuorma-auto \\ -- & pidempi viiva, käytetään numeroväleihin, esimerkiksi 1--2 \\ --- & vielä pidempi ajatusviiva --- harvinainen välimerkki \\ \end{tabular} \subsection{Lukujen otsikot} Luvut ja aliluvut numeroidaan automaattisesti, myöskin sisällysluettelo tehdään automaattisesti, jos sisällysluetteloa tarvitaan. Tämä onnistuu, kunhan lukujen otsikot merkitään komennoilla \begin{verbatim} \section{Luvun otsikko} \subsection{Aliluvun otsikko} \subsubsection{Kolmannen tason otsikko} \end{verbatim} Otsikot kirjoitetaan siis juuri kuin tuossa yllä, \LaTeX\ tekee itse lukujen numerot ja valitsee suuremman kirjasinkoon otsikkotekstille. Nämä ovat otsikkotasot dokumenttilajille \koodi{article}. Muissa lajeissa voi olla lisää tasoja \koodi{section}in yläpuolella. Tämä on kätevää, koska artikkelin \koodi{section} voidaan siirtää suoraan kirjan luvuksi. \subsection{Sisällysluettelo} Sisällysluettelo tehdään kirjoittamalla {\tt {\tt \keno }tableofcontents} siihen kohtaan johon sisällysluettelo halutaan. Sisällysluettelon voi tehdä artikkelin alkuun, loppuun tai keskelle, mutta on muistettava ajaa \LaTeX\ kaksi kertaa. Ensimmäisellä kerralla kerätään otsikot ja sivunumerot talteen, toisella ajokerralla tehdään si\-säl\-lys\-luet\-te\-lo\-si\-vut. Toinen ajokerta ei ole tarpeen, jos et edellisen {\tt latex}-komennon jälkeen ole tehnyt sisällysluetteloon vaikuttavia muutoksia. {\bf Siis:} Kun sisällysluettelo pitää saada näkyviin, on ajettava \LaTeX\ kaksi kertaa peräkkäin. {\small \LaTeX\ muodostaa sisällysluettelon tiedostoon, jonka sukunimi on {\tt .toc} ja etunimi sama kuin kirjoittamallasi tiedostolla. Tätä sisällysluettelotiedostoa voi muokata, mutta \LaTeX\ kirjoittaa uuden tiedoston vanhan päälle jolloin muutokset häviävät. Kannattaa tutustua komentoihin {\tt \keno addcontentsline} ja {\tt \keno addtocontents}. Esimerkiksi tässä ohjeessa on sisällysluetteloot lisätty rivit \textbf{Viitteet} ja \textbf{Liitteet} komennoilla \begin{verbatim} . . . \end{thebibliography} \addcontentsline{toc}{section}{Viitteet} \newpage \appendix \pagestyle{headings} \addcontentsline{toc}{section}{Liitteet} \section{Kansilehden pohja} \verbatiminput{Kansilehti.tex} . . . \end{verbatim} } \subsection{Viitteet} \termi{Alaviitteet}\footnote{siis tällaiset} tehdään komennolla {{\tt \keno }footnote}. Tuo alaviite siis tehtiin kirjoittamalla \begin{verbatim} Alaviitteet\footnote{siis tällaiset} tehdään \end{verbatim} Alaviitteet numeroituvat automaattisesti. Alaviitteitä voi olla vaikka kuinka monta\footnote{Tässä esimerkiksi on toinen.}, ja viiteteksti voi olla useitakin rivejä pitkä. Jos alaviitteet pitää saada numeroitua sivukohtaisesti, löytyy apu tyylitiedostosta {\tt pagefoots.sty} tai {\tt footnpag.sty}. {\bf pagefoots} merkitsee alaviitteet merkeillä \newcounter{fnlaskpuppu} \setcounter{fnlaskpuppu}{1} \fnsymbol{fnlaskpuppu}, \setcounter{fnlaskpuppu}{2} $\fnsymbol{fnlaskpuppu}$, \setcounter{fnlaskpuppu}{3} $\fnsymbol{fnlaskpuppu}$, \setcounter{fnlaskpuppu}{4} $\fnsymbol{fnlaskpuppu}$, \setcounter{fnlaskpuppu}{5} $\fnsymbol{fnlaskpuppu}$, \setcounter{fnlaskpuppu}{6} $\fnsymbol{fnlaskpuppu}$, \setcounter{fnlaskpuppu}{7} $\fnsymbol{fnlaskpuppu}$, \setcounter{fnlaskpuppu}{8} $\fnsymbol{fnlaskpuppu}$ \setcounter{fnlaskpuppu}{9} ja $\fnsymbol{fnlaskpuppu}$, mistä syystä alaviitteitä voi olla enintään 9 samalla sivulla. Tätä tyylitiedostoa ei aina ole valmiina käyttämässäsi \LaTeX:ssa, jolloin joudut itse hankkimaan sen. TKTL:n Linux-koneissa \koodi{pagefoots.sty} on hakemistossa \koodi{/home/contrib/lib/TeX}. \termi{Kirjallisuusviitteille} on varta vasten komento {\tt \keno cite\{\em viite\}}. Ensin täytyy esimerkiksi artikkelin loppuun tehdä kirjallisuusluettelo tähän tapaan: \begin{verbatim} \begin{thebibliography}{MMM99} \bibitem[Lam86]{Lam86} Leslie Lamport. {\sl\LaTeX\ -- A Document Preparation system}. Addison--Wesley, 1986. \bibitem[KoD93]{KoD93} Helmut Kopka, Patrick W. Daly. A Guide to \LaTeX. Addison--Wesley, 1993. \bibitem[Mal92]{Mal92} Gavin Maltby. An introduction to \TeX\ and friends. \bibitem[Knu90]{Knu90} Donald E. Knuth. The \TeX book. Addison--Wesley, 1990. \end{thebibliography} \end{verbatim} Tämän jälkeen tekstissä kirjallisuusviite kirjoitetaan esimerkiksi {\tt \keno cite\{Lam86\}}, siis sama viite kuin kirjallisuusluettelossa on \{\ \} -merkkien välissä. Tämän komennon paikalle tulee kirjallisuusluettelosta hakasulkumerkkien [\ ] välissä oleva teksti, joka voi olla jotain muutakin kuin viiteteksti. Jättämällä luettelosta hakasulkumerkit ja niiden välissä oleva teksti pois saadaan viitteet numeroitua juoksevasti. Kirjallisuusviitteistä voi tehdä \termi{kirjallisuusviitetietokannan}. Kirjoitettaessa useita artikkeleita samasta aihepiiristä kannattaa viitteet koota yhteen paikkaan, ja tuottaa tuosta tietokannasta artikkelikohtainen viiteluettelo. Tähän käytetään ohjelmaa {\tt bibtex}, jonka käyttöohjeen löytää \LaTeX -kirjoista. \begin{quote} Käytettäessä kirjallisuustietokantaa, on AUTHOR -kentässä ääkköset kirjoitettava näin: \begin{verbatim} {\"a}, {\"o}, {\"u} \end{verbatim} jne., siis esimerkiksi \begin{verbatim} AUTHOR={P{\"o}ys{\"a}} \end{verbatim} jos on Pöysä niminen tekijä. \end{quote} %%{\em Loppuviitteiden tekeminen onnistuu varmaan sekin, mutten tiedä %%miten. Ehkä artikkelissa ei loppuviitteet ole mahdollisia?} Jos tarvitaan sellaisia loppuviitteitä, joita ei saa tehtyä kirjallisuusviitteinä, on hankittava tyylitiedosto {\bf endnotes.sty}. Tässä tyylitiedostossa on komento \penalty-100{\tt \keno endnote}, jota käytetään kuten komentoa {\tt \keno footnote}, mutta viitetekstit kootaan asiakirjan loppuun. \subsubsection{Ristiviitteet \label{lristiviite}} \termi{Ristiviite} tarkoittaa viittausta saman artikkelin muihin osiin. Esimerkiksi ristiviitteitä käsitellään luvussa \ref{lristiviite} sivulla \pageref{lristiviite}. LaTeX osaa itse tehdä nämä ristiviitteet, jolloin ei tarvitse tehdä korjauksia jos muutokset siirtävät tuon luvun toiselle sivulle tai luvun numero muuttuu. Ristiviitteet tehdään merkitsemällä luku, kuva, taulukko tms. komennolla \koodi{\keno label\{\textit{tunnus}\}} ja viittaamalla näin määriteltyyn tunnukseen komennolla \koodi{\keno ref\{\textit{tunnus}\}} tai \koodi{\keno pageref\{\textit{tunnus}\}}. Viittaus voi olla ennen tai jälkeen tunnuksen määrittelyn, sillä kuten sisällysluettelon yhteydessäkin, \LaTeX\ on ajettava kaksi kertaa. Esimerkiksi tähän tapaan ristiviitteitä voidaan käyttää: \verbatiminput{ristiviite_testi.body} \subsection{Kansilehti ja tiivistelmäsivu} %%%Jos tarvitaan erillinen määrämuotoinen kansilehtisivu, kannattaa käyttää %%%valmiiksi muotoiltua kansilehden pohjaa. Artikkelin otsikon, tekijän nimen ja päiväyksen saa ensimmäiselle sivulle komennoilla \begin{verbatim} \title{TEOKSEN OTSIKKO} \author{Tekijän nimi \and Toisen Tekijän Nimi} \date{\today} \maketitle \end{verbatim} jotka kirjoitetaan heti {\tt {\tt \keno }begin\{document\}} -rivin jälkeen. Tiivistelmän saa vaikkapa samalle sivulle kirjoittamalla tämän jälkeen \begin{verbatim} \begin{abstract} Tähän tulee tiivistelmätekstiä ihan tavallisesti kirjoitettuna enintään noin puolen sivun verran. Muutenhan se ei ole tiivistelmä. \end{abstract} \end{verbatim} Jos tarvitaan erillinen kansilehtisivu, lisätään artikkelin alun {\tt {\tt \keno }documentclass} -riville hakasulkujen sisään sana {\tt titlepage}. Tämä on tarpeen dokumenttilajissa \koodi{\keno article}, muissa on oletusarvona \koodi{titlepage}, ja niissä taas voi estää erillisen kansilehtisivun tulostamisen optiolla \koodi{notitlepage}. Mikäli kansilehdelle pitää saada muutakin informaatiota nimien ja päiväyksen lisäksi, kannattaa käyttää liitteessä \ref{liitekansi} olevaa kansilehden pohjaa, josta muokataan oikeanlainen kansilehti. Kansilehtisivun voi liittää samaan tiedostoon kuin muukin asiakirja, mutta kätevämpää varmaankin on pitää kansilehti omassa tiedostossaan ja tulostaa se vain tarvittaessa. %%\section{Tiivistelmäsivu} \begin{comment} Valmis pohja tietojenkäsittelyopin laitoksen tiivistelmäsivulomakkeelle on luokan D325 mikroverkon tiedostossa \\ {\tt Q:{\tt \keno }EMTEX{\tt \keno }ESIMERKI{\tt \keno }TIIVISTE.TEX }, \\ ja UNIX-järjestelmässä tiedostossa \\ {\tt /usr/local/lib/tex/inputs/tiivistelmapohja.tex} \end{comment} Virallisiin opinnäytetöihin on liitettävä täytetty tiivistelmäsivulomake. Mikäli käytössä ei ole kirjoituskonetta, jolla lomakkeen saisi täytettyä, on valmis pohja kaikkien tiedekuntien tiivistelmäsivulomakkeelle on {\sf HELI}:ssä kohdassa Luetteloita / Asiakirjapohjia , sekä \LaTeX, WordPerfect että Word -muotoisena. Valmiiksi tietojenkäsittelytieteen laitokselle sopiva tiivistelmäsivu \LaTeX2e -muotoisena on TKTL:N laitoskoneessa tiedostossa /usr/local/lib/tex/inputs/Tiivistelmapohja.latex2e. \subsection{Sivunumerot ja sivuotsakkeet} Sivunumerointia säädellään komennoilla {\tt {\tt \keno }pagestyle\{\em tyyli\}} ja {\tt {\tt \keno }thispagestyle\{\em tyyli\}}. Komentojen toiminta on muuten sama, mutta {\tt {\tt \keno }thispagestyle} vaikuttaa vain parhaillaan muodostettavaan sivuun. Mahdolliset arvot sulkujen sisään kirjoitettaville sivunumerointityyleille ovat {\setlength{\parindent}{25mm} \begin{itemize} \item[\tt plain] Sivun yläreuna on tyhjä, alareunassa keskellä on sivunumero. Tämä on oletusarvo. \item[\tt empty] Sekä yläreuna että alareuna ovat tyhjät. Yhdeltä sivulta saa sivunumerot kokonaan pois komennolla {\tt {\tt \keno }thispagestyle\{empty\}}. \item[\tt headings] Sivun alareuna on tyhjä, yläreunassa on sivunumero oikealla ja vasemmalla useimmiten kirjan luvun numero ja nimi. \item[\tt myheadings] Alareuna on tyhjä, yläreunassa on sivunumero oikealla ja vasemmalla komennolla {\tt {\tt \keno }markright\{\}} määritelty teksti. \end{itemize} } Jos sivunumero sivun alareunassa keskellä ei miellytä, sivunumeron saa ylös oikeaan reunaan komennoilla \begin{verbatim} \pagestyle{myheadings} \markright{} \end{verbatim} %%{\em Sivunumeroiden saaminen yläreunaan keskelle varmaankin onnistuu %%sekin, ei vain ole aavistustakaan miten.} Sivunumeroiden saaminen ylös keskelle tai muut erikoisemmat ylä- ja alatunnisteet saa tehtyä tyylitiedoston {\bf fancyheadings} avulla. Tässä tyylitiedostossa on monenlaisia komentoja tunnisterivien muokkaukseen. %%%??? \subsection{Kirjasinlajit} \begin{comment} \LaTeX\ valitsee otsikoihin yms. vastaaviin asiakirjan tyyliin kuuluviin teksteihin sopivat kirjasinleikkaukset (eli fontit) ja kirjainten koot automaattisesti. Muualla tekstissä voidaan tehokeinona käyttää seuraavia kirjasinlajeja: \begin{tabular}{lll} {\tt {\tt \keno }rm} \rm Tavallinen & {\tt {\tt \keno }it} \it kursiivi & {\tt {\tt \keno }sc} \sc pienaakkosten korkuiset isot kirjaimet \\ {\tt {\tt \keno }em} \em Korostettu & {\tt {\tt \keno }sl} \sl kallistettu & {\tt {\tt \keno }tt} \tt Kirjoituskone \\ {\tt {\tt \keno }bf} \bf Lihavoitu & {\tt {\tt \keno }sf} \sf sans serif \\ \end{tabular} \centerline{Taulukko kirjasinlajeista} Näitä kirjasinlajeja saa paperille eri kokoisina. Koot lueteltuna pienimmästä suurimpaan ovat {\tt {\tt \keno }tiny {\tt \keno }scriptsize {\tt \keno }footnotesize {\tt \keno }small {\tt \keno }normalsize \\ {\tt \keno }large {\tt \keno }Large {\tt \keno }LARGE {\tt \keno }huge {\tt \keno }Huge }. Tavallinen teksti on kokoa {\tt \keno normalsize}. Nämä komennot kannattaa kirjoittaa {\tt \{} ja {\tt \}} -merkkien sisään. Tällöin merkkilaji tai -koko palautuu ennalleen {\tt \}}-merkin jälkeen. Esimerkiksi {\tiny tämä on kokoa {\tt \keno }tiny} ja {\Huge tämä on kokoa {\tt \keno }Huge} kirjoitetaan \begin{verbatim} Esimerkiksi {\tiny tämä on kokoa {\tt \keno }tiny} ja {\Huge tämä on kokoa {\tt \keno }Huge} kirjoitetaan \end{verbatim} Sekä kirjasinlajia että -kokoa voi muuttaa samalla kertaa: {\tiny \it Tässä on kokoa tiny kursiivina } kirjoitetaan \begin{verbatim} {\tiny \it Tässä on kokoa tiny kursiivina} \end{verbatim} Huomaa, että ensin muutetaan koko ja sitten vasta tyyli. Jos kirjoittaa käskyt toisinpäin, tulee teksti tavallisella tyylillä. \end{comment} \LaTeX\ valitsee otsikoihin yms. vastaaviin asiakirjan tyyliin kuuluviin teksteihin sopivat \termie{kirjasinlajit}{fontit} ja kirjainkoot automaattisesti. Muualla tekstissä voidaan tehokeinona käyttää \termi{kirjasintyylejä}, taulukon \ref{tauluklaji} mukaisesti. \begin{comment} %%%\begin{center} \begin{table}[htb] \begin{tabular}{|c|l|l|l|}\hline attribuutti &komento & esittely & malliteksti \\ \hline \hline \multirow{4}{20mm}{tyyppi} &\koodi{\keno textup} & \koodi{\keno upshape} & \upshape Tämä on se tavallinen.\\ \cline{2-4} &\koodi{\keno textit} & \koodi{\keno itshape} & \itshape Kursiivi, käytetään korostamaan\\ \cline{2-4} &\koodi{\keno textsl} & \koodi{\keno slshape} & \slshape Hieman erilainen kuin kursiivi\\ \cline{2-4} &\koodi{\keno textsc} & \koodi{\keno scshape} & \scshape Kapiteeli \\ \hline \hline \multirow{2}{20mm}{sarja} &\koodi{\keno textmd} & \koodi{\keno mdseries} & \mdseries Laiha teksti\\ \cline{2-4} &\koodi{\keno textbf} & \koodi{\keno bfseries} & \bfseries Lihavoidut kirjaimet, otsikoihin tms.\\ \hline \hline \multirow{3}{20mm}{perhe} &\koodi{\keno textrm} & \koodi{\keno rmfamily} & \rmfamily Roman, se tavallinen\\ \cline{2-4} &\koodi{\keno textsf} & \koodi{\keno sffamily} & \sffamily Sans serif\\ \cline{2-4} &\koodi{\keno texttt} & \koodi{\keno ttfamily} & \ttfamily Kirjoituskonetekstiä\\ \hline %%%\koodi{\keno } & \koodi{\keno } & \\ \cline{2-4} \end{tabular} \caption{Kirjasinlajit, -paksuudet ja -perheet \label{tauluklaji}} \end{table} %%%\end{center} \end{comment} \LaTeX issa kirjasinlaji määräytyy kolmen attribuutin perusteella: \termie{perhe}{family}, \termie{sarja}{series} ja \termie{tyyppi}{shape}. Kaikille kolmelle attribuutille voi antaa erikseen arvon, arvojen kombinaatioita on siis varsin paljon. \LaTeX-järjestelmä on useimmiten asennettu siten, että puuttuvat kirjasinlajit käydään tekemässä sitä mukaan kun niitä käytetään, tai vaihtoehtoisesti puuttuva kirjasinlaji korvataan \LaTeX in mielestä lähinnä vastaavalla. Kunkin attribuutin arvoa voi muuttaa komennolla tai esittelyllä, esimerkiksi \begin{verbatim} \textsf{\textbf{Kuka}} nyt haluaisi \textbf{lihavoitua \textsf{sans serif}} tekstiä, tai \textit{kursiivia \texttt{kirjoituskonetekstiä}}? {\sffamily\bfseries Kuka} nyt haluaisi {\bfseries lihavoitua {\sffamily sans serif}} tekstiä, tai {\itshape kursiivia {\texttt kirjoituskonetekstiä}}? \end{verbatim} tuottavat molemmat saman lopputuloksen: \textsf{\textbf{Kuka}} nyt haluaisi \textbf{lihavoitua \textsf{sans serif}} tekstiä, tai \textit{kursiivia \texttt{kirjoituskonetekstiä}}? {\sffamily\bfseries Kuka} nyt haluaisi {\bfseries lihavoitua {\sffamily sans serif}} tekstiä, tai {\itshape kursiivia {\ttfamily kirjoituskonetekstiä}}? \vspace{1.0ex} Myös \termi{kirjainkoko} on muutettavissa, pienimmästä on malli tässä: {\tiny hyvin pientä tekstiä}, ja suurimmasta tässä: {\Huge tämä on varsin isokokoista tekstiä}. Kaikki kirjasinlajit ovat käytettävissä kymmenessä eri koossa. Kokoa muuttavat käskyt pienimmästä suurimpaan ovat {\ttfamily \keno tiny \keno scriptsize \keno footnotesize \keno small \keno normalsize \keno large \keno Large \keno LARGE \keno huge \keno Huge }. Tavallinen teksti on kokoa \koodi{\keno normalsize}. \subsubsection{Miten käytetään?} Asiakirjan ulkoasuun vaikuttavia komentoja ei \LaTeX-filosofian mukaan sovi kirjoittaa tekstiin. Kirjasinlajin ja kirjainkoon muutokset on tarkoitus tehdä määrittelemällä oma komento jokaiseen käyttötarkoitukseen. Esimerkiksi tarvittaessa tekstissä esiintyviä uusia termejä ja ohjelmakoodia varten korostusta, voidaan asiakirjan alkuun kirjoittaa komennot \begin{verbatim} \newcommand{\termi}[1]{\textbf{#1}} \newcommand{\koodi}[1]{\textsf{#1}} \chardef\kenochar="5C \newcommand{\keno}{\texttt{\kenochar}} \end{verbatim} joita käytetään seuraavaan tapaan: \begin{verbatim} \LaTeX:in \termi{filosofian} vastaista on komennon \koodi{\keno textbf} esiintyminen tekstin seassa. \end{verbatim} Tästä tulostuu:\\ \LaTeX:in \termi{filosofian} vastaista on komennon \koodi{\keno textbf} esiintyminen tekstin seassa. Tästä tavasta on monta etua: ensinnäkin on helppoa muuttaa kaikki termit tulostumaan esimerkiksi kursiivina kirjoittamalla \begin{verbatim} \newcommand{\termi}[1]{\textit{#1}} \end{verbatim} Toiseksi, asiakirjan yksi elementti on erotettavissa sen kirjoittamiseen käytetystä komennosta, jolloin voidaan vaikkapa tuottaa termeistä rivi hakusanojen joukkoon. Tällöin komento muutettaisiin muotoon \begin{verbatim} \newcommand{\termi}[1]{\textit{#1}\index{#1}} \end{verbatim} \section{Erikoisemmat tilanteet} \subsection{Ohjelmakoodi} Jos tekstin oheen tarvitaan esimerkiksi ohjelmalistauksia tai vastaavaa tekstiä, jossa käytetään paljon erikoismerkkejä ja rivien muotoilua, voidaan tällainen teksti kirjoittaa {\tt {\tt \keno }begin\{verbatim\}} ja {\tt {\tt \keno }end\{verbatim\}} -rivien väliin. Esimerkiksi \begin{verbatim} \begin{verbatim} program Hello(Output); begin {Pääohjelma alkaa} WriteLn('Hello World'); end. \end{verbatim} \koodi{\keno end\{verbatim\}} On myös mahdollista liittää tiedosto verbatim-muodossa tekstiin. Tämä {\bf ei} onnistu kirjoittamalla {\tt {\tt \keno }input \em tiedosto} verbatim-ympäristössä, sillä myös tuo {\tt {\tt \keno }input} ladottaisiin tekstinä eikä suoritettaisi komentona. Ratkaisu: Käytetään tyylitiedostoa \koodi{verbatim.sty}\/ ja sen komentoa \koodi{\keno verbatiminput}. Jos yllä oleva ohjelma olisi levyllä tiedostossa {\tt hello.pas} lisättäisiin \LaTeX-tiedoston alun \hfil {\tt \keno documentstyle}-riville sana {\tt verbatim} ja kirjoitettaisiin haluttuun kohtaan asiakirjaa komento {\tt \keno verbatiminput\{hello.pas\}}. \newcommand{\vsana}[1]{{\sffamily\bfseries #1}} \newcommand{\tunnus}[1]{\textit{#1}} Oppikirjoissa ohjelmalistauksen on usein esitetty siten, että syntaktiset alkiot on tulostettu erilaisella kirjasinlajilla. \LaTeX:lla tämän saa tehtyä monella eri tavalla, esimerkiksi \koodi{program} tyylitiedostolla (joka on saatavilla tavanomaisista CTAN palvelimista). Myös itse voi varsin helposti tehdä tyylikkäistä ohjelmalistauksia seuraavaan tapaan: \begin{quote} Ensin määritellään varatut sanat ja tunnukset muokkaavat komennot artikkelin alussa: \begin{verbatim} \newcommand{\vsana}[1]{{\sffamily\bfseries #1}} \newcommand{\tunnus}[1]{\texit{#1}} \end{verbatim} Sitten kirjoitetaan ohjelmateksti \koodi{tabbing} -ympäristössä tähän tapaan: {\sffamily \begin{tabbing} \hspace*{10mm}\=\hspace*{10mm}\=\hspace*{10mm}\=\hspace*{10mm}\= \kill \vsana{program} \tunnus{Hello}(Output); \\ \vsana{begin} \{ Pääohjelma alkaa \} \\ \> WriteLn('Hello World'); \\ \vsana{end}. \end{tabbing} } \end{quote} \subsection{Kuvat} Varmin tapa käsitellä kuva on komentaa \LaTeX\ varaamaan kuvan korkeuden verran tilaa johon kuva saksia, teippiä ja kopiokonetta käyttäen muodostetaan. Toimiva ratkaisu on paras. Tämä tehdään 8 senttimetriä korkealle kuvalle seuraavasti: \begin{verbatim} \begin{figure}[htb] \vspace*{8.0cm} \caption{Kuvaotsikko, joka tulee kuvan alareunaan} \end{figure} \end{verbatim} Komennolla {\tt \keno caption} saadaan kuvan alareunaan kuvaotsikko. \LaTeX\ numeroi kuvaotsikotkin itse, ja tarvittaessa tekee kuvaluettelon komennolla {\tt \keno listoffigures}. Luetteloon eivät tule ne kuvat joille ei ole {\tt \keno caption}-komentoa. Jos leikkaaminen ja liimaaminen ei kelpaa pitäisi saada kuvat tulostumaan suoraan paperille. \LaTeX:lla {\em voi} tehdä viivapiirroksia {\sf picture}-ympäristössä, mutta luultavasti et halua opetella niiden tekoa. Tee kuvat jollakin erillisellä piirrosohjelmalla tai tuota kuvat jotenkin muuten. \LaTeX:n pitää tällöin vain varata kuvalle tilaa ja kopioida kuvatiedosto kirjoittimelle. Kaikenlaisten kuvien tulostaminen mille tahansa kirjoittimelle on {\em periaatteessa} mahdollista. {\em Käytännössä} kannattaa tyytyä PostScript-kirjoittimiin ja Encapsulated PostScript -kuviin, eli: \begin{enumerate} \item Käytä PostScript-kirjoitinta \item Piirrä kuvat ohjelmalla joka osaa tallettaa kuvat Encapsulated PostScript -muodossa, tai käytä muunnosohjelmaa muuttamaan kuvat Encapsulated PostScriptiksi. \item Käytä valmista makropakettia kuvien liittämiseen \LaTeX-dokumenttiin. \item Käytä komentoa {\tt dvips} muuttamaan \LaTeX:n tekemät .dvi -tiedostot PostScriptiksi tulostusta varten. \end{enumerate} UNIX-ympäristössä hyvä piirrosohjelma kaavioiden piirtämiseen on {\tt xfig}. xfig osaa tallettaa kuvan myös suoraan .eps-muotoon, mutta tällaista tiedostoa ei voi enää xfig:llä muokata. Pitää muistaa tallettaa kuva myös xfig:n omassa talletusmuodossa. %%{\em Mikähän olisi mikroilla hyvä ohjelma? Charisma?.} Mikrojen piirosohjelmista Charisma olisi muuten käyttökelpoinen, mutta Charisman tekemät .eps -tiedostot eivät kelpaa. %\par %\centerline{\psfig{figure=Kuva_xfig.eps,width=6.0in}} %\centerline{Esimerkkikuva xfig:llä piirrettynä ja psfig:llä liimattuna} %\par \begin{figure}[hbt] \begin{center} %%% \mbox{\psboxto(0in;5.0in){Kuva_xfig.eps}} \epsfig{file=Kuva_xfig.eps,width=0.75\textwidth} \end{center} \caption{Esimerkkikuva xfig:llä piirrettynä ja psbox:lla liimattuna} \end{figure} Sopivia makropaketteja kuvien liittämiseen ovat {\bf psbox} ja {\bf psfig}, joista on erilliset muutaman sivun ohjeet. Kumpaakin voi käyttää sekä \LaTeX\ että \TeX -komentojen kanssa. %\LaTeX-käyttäjille %psfig:n ohje on käyttökelpoisempi, siinä kun esimerkit ovat %\LaTeX-muodossa. Vastaavasti Plain \TeX\ ja psbox. %%%%%$$\psbox{Kuva_xfig.eps}$$ Kaikki ohjelmat eivät osaa tehdä kunnollisia .eps -tiedostoja, vaikka niin väit\-tä\-vät\-kin. PostScript on tekstitiedosto, joten on helppo tarkistaa tiedoston ainakin alkavan merkeillä {\tt \%!} ja tiedoston alussa olevan {\tt \%\%BoundingBox} -rivi. Kuvien esikatselu ei aina onnistu suoraan, sillä kaikki \TeX\ ja \LaTeX\ esikatseluohjelmat eivät osaa näyttää PostScript-kuvia. Esikatselun voi tehdä muodostamalla {\tt dvips}-komennolla .ps -tiedoston ja käyttämällä {\tt ghostview}-ohjelmaa PostScript-tiedoston katselemiseen. Uusimmat versiot {\sf xdvi}-ohjelmasta osaavat itse kutsua {\sf ghostview}-ohjelmaa näyttämään {\sf .eps}-kuvat. \subsection{Matemaattiset kaavat} Matematiikan käsittelyn \TeX\ osaa erityisen hyvin. Kaavat tulevat paperille kuin oppikirjoissa. Matematiikka kirjoitetaan erityisessä toimintatilassa, eli \$ -merkkien väliin kun kaava halutaan tekstiriville ja \$\$ -merkkien väliin kun kaava muodostaa kokonaisen kappaleen. Komennot kaavojen kirjoittamiseen on syytä opetella jostakin \TeX\ tai \LaTeX\ oppaasta, esimerkiksi Maltbyn \cite{Mal92}. %%%Kopka \& Dalyn \cite{KoD93}, Lamportin \cite{Lam86} tai %%%Knuthin \cite{Knu90} oppaista. Muutama esimerkki kuvatkoon tässä mahdollisuuksia. Pienet kaavat mahtuvat tekstiriville, muun muassa logaritmeille pätee $ \log xy = \log x + \log y $, joka kirjoitetaan {\tt \$ {\tt \keno }log xy = {\tt \keno }log x + {\tt \keno }log y\$}. \TeX\ ymmärtää logaritmin {\tt log} olevan funktio, joka kirjoitetaan erilaisella merkkilajilla kuin muuttujanimet x ja y. Samoin {\tt xy} tarkoittaa automaattisesti x kertaa y. Isomman kaavan saa mahtumaan niin sanotussa {\em display math} -toimintatilassa. Seuraavassa oleva toteamus $$ \sum_{i=1}^{n} x_{i} = \int_{0}^{1} f(x)dx $$ on kirjoitettu \begin{verbatim} $$ \sum_{i=1}^{n} x_{i} = \int_{0}^{1} f(x)dx $$ \end{verbatim} vaikka tämän kaavan saisi tekstirivillekin muuttamalla \$-merkit yksinkertaisiksi näin $ \sum_{i=1}^{n} x_{i} = \int_{0}^{1} f(x)dx $. \TeX\ ja \LaTeX\ ymmärtävät matematiikan suunnilleen samalla tavalla, \LaTeX:ssa tosin on muutamia hyödyllisiä komentoja joita Plain \TeX:ssä ei ole. \subsection{Luettelot} Luettelot tehdään {\tt itemize}-ympäristössä. Esimerkiksi kirjoittamalla \begin{verbatim} \begin{itemize} \item Vasemman marginaalin saa 10 millimetriä kapeammaksi komennolla \\ {\tt \keno addtolength\{\keno oddsidemargin\}\{-10mm\}} ja leveämmäksi {\tt +}:lla. \item Oikean marginaalin saa 10 millimetriä kapeammaksi komennolla\\ {\tt \keno addtolengt\{\keno textwidth\}\{10mm\}} \\ ja leveämmäksi jos kirjoittaa {\tt -10mm} \item Sivun korkeutta voi kasvattaa komennolla {\tt \keno addtolength\{\keno textheight\}\{10mm\}}. Tässäkin kelpaa myös negatiivinen arvo. \end{itemize} \end{verbatim} saadaan \begin{itemize} \item Vasemman marginaalin saa 10 millimetriä kapeammaksi komennolla \\ {\tt \keno addtolength\{\keno oddsidemargin\}\{-10mm\}} ja leveämmäksi {\tt +}:lla. \item Oikean marginaalin saa 10 millimetriä kapeammaksi komennolla\\ {\tt \keno addtolengt\{\keno textwidth\}\{10mm\}} \\ ja leveämmäksi jos kirjoittaa {\tt -10mm} \item Sivun korkeutta voi kasvattaa komennolla {\tt \keno addtolength\{\keno textheight\}\{10mm\}}. Tässäkin kelpaa myös negatiivinen arvo. \end{itemize} Vaihtamalla sanan {\tt itemize} tilalle {\tt enumerate} saadaan $\bullet$-merkin tilalle numerot; \LaTeX\ siis numeroi luettelon automaattisesti. Jos ei $\bullet$ eikä numero kelpaa, voidaan kirjoittaa haluttu sana tai merkki {\tt description}-ympäristössä, siis kirjoittamalla \begin{verbatim} \begin{description} \item[\tt itemize] Tekee $\bullet$ -luettelon. \item[\tt enumerate] Tekee numeroidun luettelon. \item[\tt description] Tekee luettelon, jossa itse kirjoitetaan luettelotunnus. \end{description} \end{verbatim} saadaan \begin{description} \item[\tt itemize] Tekee $\bullet$ -luettelon. \item[\tt enumerate] Tekee numeroidun luettelon. \item[\tt description] Tekee luettelon, jossa itse kirjoitetaan luettelotunnus. \end{description} Luetteloita voi olla myös sisäkkäin, \LaTeX\ osaa valita eri tasoille erilaiset luettelotunnukset ja sisentää rivit sopivasti. \subsection{Taulukot} Alekkaisten sarakkeitten muodostamiseksi pitää ensin määritellä sarkainkohdat. \LaTeX\ latoo sarakkeet alkamaan kukin omasta sarkaimestaan. Sarakkeisiin ladottava teksti kirjoitetaan {\tt tabbing}-ympäristössä, siis {\tt begin{\tt\keno }\{tabbing\}} ja \emergencystretch=7em {\tt end{\tt\keno }\{tabbing\}} -rivien väliin. Sarkainkohdat asetetaan {\tt \keno=} komennoilla. Kätevä tapa on kirjoittaa {\em mallirivi} ja merkitä sarkainkohdat tähän malliriviin. Sarakkeiden leveydet voidaan merkitä millimetreinä, {\tt \keno hspace*\{30\}} esimerkiksi, tai leveimmällä kyseiseen sarakkeeseen tulevalla tekstillä. Mallirivi lopetetaan komennolla {\tt \keno kill}, jolloin sitä ei näy paperilla. Paperille tulevissa riveissä seuraavaan sarkainkohtaan siirrytään komennolla {\tt\keno\symbol{"3E}}. %Ensimmäiseksi riviksi kirjoitetaan mallirivi, jota ei kirjoiteta %paperille. Mallirivin tarkoituksena on auttaa \LaTeX:ia laskemaan %sarakkeiden leveydet. Malliriville kirjoitetaan sarkainten paikat {\tt %{\tt\keno }=} -merkeillä ja katsotaan paperille tulevilta riveiltä jokaiselle %sarakkeelle levein mahdollinen teksti. Jos jokin sarake on liian kapea, %voi malliriville vastaavaan sarakkeeseen lisätä ylimääräisiä merkkejä. \begin{tabbing} \hspace*{30mm} \= STORE \= R1,DONEMM \= \kill % Tämä on mallirivi T \> DS \> 50 \> ; Tilanvaraus \\ ;T on ARRAY [1 .. 50] of Integer; \\ \\ \> LOAD \> R4,=0 \\ DO \> LOAD \> R1,=50 \\ \> JZER \> R1,DONE \\ \> STORE \> R4,T(R1) \\ \> LOAD \> R5,DO \\ \> SUB \> R5,=1 \\ \> STORE \> R5,D0 \\ \> JUMP \> DO \\ DONE \end{tabbing} Yllä oleva symbolisella konekielellä kirjoitettu ohjelma on tehty komennoilla \begin{verbatim} \begin{tabbing} \hspace*{30mm}\= STORE \= R1,DONEMM \= \kill % Tämä on mallirivi T \> DS \> 50 \> ; Tilanvaraus \\ ;T on ARRAY [1 .. 50] of Integer; \\ \\ \> LOAD \> R4,=0 \\ DO \> LOAD \> R1,=50 \\ \> JZER \> R1,DONE \\ \> STORE \> R4,T(R1) \\ \> LOAD \> R5,DO \\ \> SUB \> R5,=1 \\ \> STORE \> R5,D0 \\ \> JUMP \> DO \\ DONE \end{tabbing} \end{verbatim} Mallirivi ei tule paperille, jos se lopetetaan komennolla {\tt {\tt\keno}kill}. \LaTeX\ ei tässäkään välitä rivinvaihdoista eikä ylimääräisistä välilyönneistä. Rivinvaihdot on muistettava itse merkitä {\tt\keno }{\tt\keno }-merkeillä. Teksti on helpompi kirjoittaa, jos tiedostossakin ovat sarakkeet alekkain, mutta tämä ei vaikuta paperille tulevaan tekstiin. Yllä kuvattu {\tt tabbing}-ympäristö sopii tekstiin, jossa itse halutaan tai pitää määrittää sarkainkohdat. \LaTeX\ osaa myös itse valita hyvät sarkainkohdat ja piirtää laatikot sarakkeiden ympärille. Tällöin käytetään ympäristöä {\tt tabular} ja sarkainmerkkinä on {\tt {\tt\keno }$>$}:n tilalla {\sf \&}. Lisäksi pitää kertoa sarakkeiden lukumäärä ja jokaiselle sarakkeelle ilmoittaa tasataanko teksti sarakkeen vasempaan reunaan, keskelle vai oikeaan reunaan, englanniksi l, c ja r. \begin{tabular}{lcccc} \bf Ympäristö & \bf Mallirivi & \bf Sarkainmerkki & \bf Tasaus & \bf Viivat \\ \tt tabbing & on & \tt {\tt \keno }> & aina vasen & ei \\ \tt tabular & ei ole & \tt \& & l, c tai r & haluttaessa \\ \end{tabular} Yllä olevan taulukon voi somistaa viivoilla, kirjoittamalla pystyviivan tasauskirjainten väliin saa paperilla pystyviivan sarakkeiden väliin. Vaakasuorat viivat muodostetaan komennolla {\tt \keno }hline rivien väliin. Jokaiseen väliin ei ole pakko pistää viivaa ja viiva voi olla kaksinkertainenkin, mutta rivinloput on yhä merkittävä {\tt\keno}{\tt\keno }-merkeillä. \begin{center} \begin{tabular}{|l|c|c|c|c|} \hline \bf Ympäristö & \bf Mallirivi & \bf Sarkainmerkki & \bf Tasaus & \bf Viivat \\ \hline\hline \tt tabbing & on & \tt {\tt \keno }> & aina vasen & ei \\ \hline \tt tabular & ei ole & \tt \& & l, c tai r & haluttaessa \\ \hline \end{tabular} \end{center} Yllä oleva taulukko on kirjoitettu seuraavasti \begin{verbatim} \begin{center} \begin{tabular}{|l|c|c|c|c|} \hline \bf Ympäristö & \bf Mallirivi & \bf Sarkainmerkki & \bf Tasaus & \bf Viivat \\ \hline\hline \tt tabbing & on & \tt {\tt \keno }> & aina vasen & ei \\ \hline \tt tabular & ei ole & \tt \& & l, c tai r & haluttaessa \\ \hline \end{tabular} \end{center} \end{verbatim} \begin{multicols}{2}[\subsection{Monipalstainen teksti}] \setlength{\parskip}{0pt plus 1pt} \setlength{\parindent}{1.5em} Kun teksti pitää latoa kahteen tai useampaan palstaan kannattaa käyttää tyylitiedostoa {\tt multicol.sty}, siis kirjoitetaan \LaTeX-tiedoston alun {\tt {\tt \keno }documentstyle}-riville {\tt multicol}. Tämän jälkeen voidaan palstat aloittaa ja lopettaa kesken sivunkin. Tämä luku on kirjoitettu näin: \end{multicols} \begin{verbatim} \begin{multicols}{2}[\subsection{Monipalstainen teksti}] \setlength{\parskip}{0pt plus 1pt} \setlength{\parindent}{1.5em} Kun teksti pitää latoa kahteen tai useampaan palstaan kannattaa käyttää tyylitiedostoa {\tt multicol.sty}, siis kirjoitetaan \LaTeX-tiedoston alun {\tt {\tt \keno }documentstyle}-riville {\tt multicol}. Tämän jälkeen voidaan palstat aloittaa ja lopettaa kesken sivunkin. Tämä luku on kirjoitettu näin: (*Tässä on koko tämän luvun teksti taas, mutten kirjoita sitä tähän koska tämä ei sitten loppuisi lainkaan.*) \end{multicols} \end{verbatim} \subsection{Omat komennot} Ennenkuin kirjoittaminen aloitetaan kannattaa miettiä, esiintyykö jokin osa tekstissä niin usein, että siitä varten kannattaa määritellä lyhyempi komento. Tässä ohjeessa esimerkiksi on kenoviiva-merkille määritelty komento {\tt {\tt\keno }keno} seuraavasti: \begin{verbatim} \chardef\kenochar="5C \def\keno{\tt\kenochar} \end{verbatim} %\newcommand{\keno}{\mbox{$\tt\backslash$}} \newcommand{\R}{{\sf R\hspace*{-0.9ex}\rule{0.15ex}% {1.5ex}\hspace*{0.9ex}}} \newcommand{\N}{{\sf N\hspace*{-1.0ex}\rule{0.15ex}% {1.3ex}\hspace*{1.0ex}}} \newcommand{\Q}{{\sf Q\hspace*{-1.1ex}\rule{0.15ex}% {1.5ex}\hspace*{1.1ex}}} \newcommand{\C}{{\sf C\hspace*{-0.9ex}\rule{0.15ex}% {1.3ex}\hspace*{0.9ex}}} Tarvittaessa erikoismerkkejä voidaan merkki mahdollisesti koota kahdesta tai useammasta päällekkäin kirjoitetusta merkistä. Esimerkiksi \R, \N, \Q\ ja \C\ saadaan seuraavasti: \begin{verbatim} A set of LaTeX macros for a ``lazy person's'' blackboard bold are: \newcommand{\R}{{\sf R\hspace*{-0.9ex}\rule{0.15ex}% {1.5ex}\hspace*{0.9ex}}} \newcommand{\N}{{\sf N\hspace*{-1.0ex}\rule{0.15ex}% {1.3ex}\hspace*{1.0ex}}} \newcommand{\Q}{{\sf Q\hspace*{-1.1ex}\rule{0.15ex}% {1.5ex}\hspace*{1.1ex}}} \newcommand{\C}{{\sf C\hspace*{-0.9ex}\rule{0.15ex}% {1.3ex}\hspace*{0.9ex}}} \end{verbatim} Erilaisia aksenttimerkkejä on paljon, ja ne saa minkä tahansa merkin päälle. Esimerkiksi \"{e}, \c{c}, \u{\i} ja \={o}. \section{Tulostaminen \label{lukutulos}} Kun teksti on kirjoitettu pitäisi päästä näkemään mitä on tehty. Tiedosto on ensin käsiteltävä komennolla \koodi{latex}\footnote{Jos komento \koodi{latex} ei tunnista \koodi{\keno documentclass} -riviä, kokeile komentoa \koodi{latex2e}}, jolloin syntyy DeVice Independent -tiedosto eli {\.dvi} -tiedosto. Tämä binääritiedosto on tosiaan laiteriippumaton, eli se voidaan siirtää toiseen \TeX\ tai \LaTeX\ -järjestelmään käsiteltäväksi. Komento on siis: \begin{verbatim} latex doku \end{verbatim} olettaen tekstin kirjoitetun tiedostoon nimeltä {\tt doku.tex}. Tästä syntyy tiedosto {\tt doku.dvi}. Muista suorittaa \koodi{latex} kaksi kertaa, jos asiakirjassasi on sisällysluettelo tai viitteitä. \LaTeX\ kyllä huomauttaa puuttuvista viitteistä, kannattaa lukea mitä ruudulle ja lokitiedostoon \koodi{doku.log} tulostuu. Käytettäessä HYLK-koneen VAX/VMS \LaTeX:ia on ensin annettava komento {\tt \$~setup tex}. Tämän jälkeen toimivat komennot {\tt tex, latex ja dvips}. Mikroilla samoin saattaa olla tarpeen aloituskomento, D325-luokassa komento on {\tt Q:\keno EMTEX\keno TEXSETUP}. Mikäli tiedostossa {\tt doku.tex} on virheitä, antaa \LaTeX\ niistä lyhyen virheilmoituksen. \LaTeX\ pysähtyy virheilmoituksen jälkeen kysymään miten jatketaan. Mikäli tiedoston nimi oli kirjoitettu väärin, eli \LaTeX\ kysyy {\tt Please type another input file name:} kannattaa vastata joko sellainen tiedostonimi joka varmasti löytyy, tai kirjoittaa {\tt nul}. {\small Jos virheilmoituksesta heti selviää mikä on vikana, voi oikean tekstin kirjoittaa suoraan. Tämä ei aina ole tarkoituksenmukaista, sillä korjaus täytyy kuitenkin käydä kirjoittamassa myös alkuperäiseen tiedostoon. Parasta on valita \fbox{Q}, \fbox{X} tai \fbox{E}}. Virheilmoitukseen voi vastata \fbox{H}, jolloin \LaTeX\ kertoo hieman enemmän virheestä. Useimmiten \LaTeX\ on asennettu siten, että painamalla \fbox{E} virheilmoituksen kohdalla päästään suoraan editoimaan virheen aiheuttanutta riviä. \cite[Luvussa 9]{KoD93} käsitellään virhe- ja muita ilmoituksia. ''Käännöslistaus`` syntyy tiedostoon doku.log, josta voi katsoa kaikki virheilmoitukset kerralla korjattavaksi. Virheiden tultua korjatuksi yritetään uudestaan komentoa {\tt latex doku}. \subsubsection{Leveä tulostus eli landscape} Tulostaa voi myös 'poikittain, eli paperi käännettynä 90$^\circ$. Tällöin on lisättävä tarkennin \koodi{landscape} tiedoston \koodi{\keno documentclass} riville hakasulkujen väliin, siis \begin{verbatim} \documentclass[12pt,a4paper,finnish,landscape]{article} \end{verbatim} ja tulostettaessa kerrottava tulostusohjelmalle käytettävän landscape tulostusta. Tämä kohta tarkistetaan käytettävän tulostuskomennon ohjeista, komennolle \koodi{dvips} tarvittavat optiot ovat \begin{verbatim} dvips -t landscape tiedosto.dvi \end{verbatim} \subsection{Esikatselu} Kun \LaTeX\ ei enää ilmoita virheistä on saatu aikaan {\tt .dvi} -tiedosto. Ennen paperille tulostamista kannattaa tulosteen ulkoasu tarkistaa esikatselulla. Tämä tapahtuu mikrolla komennolla \begin{verbatim} v doku \end{verbatim} ja X-päätteellä komennolla \begin{verbatim} xdvi doku \end{verbatim} Esikatseluohjelma {\tt xdvi} X-päätteille ei ohjeita kaipaa, kunhan on hiiri käytössä. Komentoa %dviview {\tt v} käytetään näppäimistöltä seuraavasti: \begin{tabular}{ll} \bf Näppäin &\bf Mitä tapahtuu \\ + & Suurentaa \\ - & Pienentää \\ \fbox{Page Up} & Edellinen sivu \\ \fbox{Page Down} & Seuraava sivu \\ g 99 & Siirry sivulle 99 \\ nuolinäppäimet & Siirtävät ruudulla näkyvää tekstikohtaa \\ i & Negatiivi \\ q & Lopettaa esikatselun \end{tabular} HYLK-koneen tavallisilla päätteillä ei voi esikatsella. Graafisella työasemalla toimii {\tt xdvi} kuten yllä . \subsection{Paperille} Paperille tulostamiseen on jokaiselle kirjoittimelle oma komento. PostScript -kirjoittimille tulostetaan muodostamalla ensin PostScript-tiedosto komennolla \begin{verbatim} dvips doku \end{verbatim} ja tulostamalla saatu doku.ps -tiedosto tavanomaisella tavalla, mikrolla komennolla {\tt popsi} ja UNIX-järjestelmässä komennolla {\tt lpr~-Ptkol\_ps5~doku.ps} haluttaessa tulostus kirjoittimelle tkol\_ps5. HYLK:stä tulostetaan komennolla \begin{verbatim} $ print/queue=TKOL_PS5 doku.ps \end{verbatim} tuolle samalle kirjoittimelle. %\section{Sekalaista} % %\begin{itemize} %\item %\item %\item %\end{itemize} \begin{thebibliography}{MMM99} \bibitem[Lam86]{Lam86} Leslie Lamport. {\sl\LaTeX\ -- A Document Preparation system}. Addison--Wesley, 1986. \bibitem[KoD93]{KoD93} Helmut Kopka, Patrick W. Daly. A Guide to \LaTeX. Addison--Wesley, 1993. \bibitem[Mal92]{Mal92} Gavin Maltby. An introduction to \TeX\ and friends. \bibitem[Knu90]{Knu90} Donald E. Knuth. The \TeX book. Addison--Wesley, 1990. \bibitem[Lam94]{Lam94} Leslie Lamport. {\sl\LaTeX\ -- A Document Preparation system, Second Edition}. Addison--Wesley, 1994. \bibitem[GMS94]{GMS94} Michael Goossens, Frank Mittelbach, Alexander Samarin. {\sl The \LaTeX\ Companion}. Addison--Wesley, 1994. \bibitem[Oet94]{Oet94} Tobias Oetiker, Hubert Partl, Irene Hyna, Elisabeth Schlegl. {\slshape A not very Short Introduction to \LaTeX2e}. Versio 1.1 21. marraskuuta 1994. . %%%\bibitem[]{} \end{thebibliography} \addcontentsline{toc}{section}{Viitteet} \vfil\eject \appendix \pagestyle{headings} \addcontentsline{toc}{section}{Liitteet} \section{Kansilehden pohja \label{liitekansi}} \verbatiminput{Kansilehti.tex} %\newpage %\section{Tiivistelmäsivulomake} \newpage \section{Dokumentin pohja} Tässä on melkein valmis \LaTeX:lla tehty harjoitustyön dokumentti. Noita muutamia kohtia vain pitää täydentää :-). \small \verbatiminput{Pohja.tex} \newpage \section{Dokumentin pohja \LaTeX\ 2.09 versiolle \label{vanhapohja}} Tämä dokumentin pohja sopii vanhanmalliselle \LaTeX\ järjestelmälle. Tässä on melkein valmis \LaTeX:lla tehty harjoitustyön dokumentti. Noita muutamia kohtia vain pitää täydentää :-). \small \verbatim{Pohja209.tex \label{vanhapohja}} \newpage %%\section{Pieni esimerkki} %% %%Suomennettu small.tex. %% %%\small %%\verbatiminput{Pieni.tex} \end{document}