%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Contents: Specialities of the LaTeX system % $Id: erikois.tex,v 3.7 1999/04/21 08:05:09 hellgren Exp hellgren $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Lisukkeet} \begin{intro} Ison dokumentin työstämisessä \LaTeX{} auttaa erityisominaisuuksillaan. Näitä ovat mm.~hakemiston luominen ja kirjallisuusviitteiden hallinta. Täydellisempi kuvaus \LaTeX:n erikoistoiminnoista ja lisukkeista on saatavilla {\normalfont\manual{}}:ssa ja {\normalfont \companion}:ssa. \end{intro} \section{EPS-grafiikan lisääminen} \LaTeX{} tarjoaa kuvien ja grafiikan kaltaisten objektien käsittelyyn perustarpeet ympäristöjen \texttt{figure} ja \texttt{table} muodossa. Perus-\LaTeX{} tai \LaTeX:n laajennuspakkaus tarjoavat useita mahdollisuuksia tehdä varsinaista grafiikkaa.\index{grafiikka} Valitettavasti ne ovat useimmille käyttäjille vaikeatajuisia. Niinpä niitä ei selitetä sen tarkemmin tässä oppaassa. Asiasta saa lisätietoa \companion:sta ja \manual:sta. On paljon helpompaa saada grafiikkaa dokumenttiin tekemällä se siihen erikoistuneella ohjelmalla\footnote{Näitä ovat mm.~XFig, CorelDraw!, Freehand, Gnuplot, \ldots}. Valmis grafiikka voidaan sitten lisätä dokumenttiin. \LaTeX tarjoaa jälleen tähän useita tapoja. Tässä tekstissä käsitellään ainoastaan EPS- eli \emph{\wi{Encapsulated Postscript}}-kuvia, koska niiden tekeminen on helppoa ja ne ovat yleisiä. EPS-kuvien tulostamiseksi täytyy käytössä olla \wi{PostScript}-tulostin\footnote{Toinen vaihtoehto on hoitaa tulostus \textsc{\wi{GhostScript}}-ohjelman kautta. Se on saatavilla osoitteesta \texttt{CTAN:/tex-archive/support/ghostscript}} D.P.~Carlislen tekemässä \pai{graphicx}-makropakkauksessa on joukko hyviä komentoja grafiikan lisäämiseksi. Se on osa makropakkausten joukkoa nimeltä ''graphics''.\footnote{CTAN:/tex-archive/macros/latex/packages/graphics}. Jos oletetaan, että systeemin käytössä on PostScript-tulostin ja \textsf{graphicx}-pakkaus on asennettu, voidaan dokumenttiin lisätä kuvia \begin{enumerate} \item Muuta kuva piirustusohjelmassasi EPS-formaattiin.\footnote{Jos ohjelmasta ei voi tallentaa EPS-muotoon, voidaan yritää asentaa PostScript-tulostimen ajuri (esim.~Apple LaserWriter) ja tulostaa kuva tiedostoon tällä ajurilla. On huomattava, että EPS-kuvassa saa olla vain yksi sivu. Jotkut tulostinajurit voidaan säätää tulostamaan erityisesti EPS-formaatissa.} \item Ladataan \textsf{graphicx}-paketti tiedoston esittelyosassa käskyllä \begin{command} \verb|\usepackage[|\emph{ajuri}\verb|]{graphicx}| \end{command} jossa \emph{ajuri} on systeemisi ohjelma, jolla dvi-tiedostot muunnetaan Post\-Scriptiksi. Yleisin tällainen ohjelma on \texttt{dvips}. Ajurin nimi tarvitaan, koska \TeX:ssä ei ole mitään standarditapaa lisätä kuvia. Kun \textsf{gra\-phicx}-paketti tietää ajurin nimen se voi valita oikean tavan lisätä tietoa kuvasta \texttt{.dvi}-tiedostoon niin, että tulostin ymmärtää sen ja lisää \texttt{.eps}-tiedoston oikein. \item Käyttämällä komentoa \begin{command} \ci{includegraphics}\verb|[|\emph{avain}=\emph{arvo}, \ldots\verb|]{|\emph{tiedosto}\verb|}| \end{command} \emph{tiedoston} lisäämiseksi dokumenttiin. Vaihtoehtoinen parametri hyväksyy pilkulla erotetun \emph{avainten} listan niihin liittyvine \emph{arvoineen}. \emph{Avaimia} voidaan käyttää muuttamaan kuvan leveyttä, korkeutta tai kääntää sitä. Taulukko~\ref{keyvals} luettelee tärkeimmät avaimet. \end{enumerate} \begin{table}[htb] \caption{Avainsanat \textsf{graphicx}-pakkaukselle} \label{keyvals} \begin{lined}{9cm} \begin{tabular}{@{}ll} \texttt{width}& kuvan leveydeksi tulee \emph{arvo}\\ \texttt{height}& kuvan korkeudeksi tulee \emph{arvo}\\ \texttt{angle}& käännä kuvaa vastapäivään\\ \texttt{scale}& suurenna tai pienennä kuvaa \\ \end{tabular} \bigskip \end{lined} \end{table} Seuraava esimerkki toivottavasti selvittää asioita: \begin{code} \begin{verbatim} \begin{figure} \begin{center} \includegraphics[angle=90, width=0.5\textwidth]{testi.eps} \end{center} \end{figure} \end{verbatim} \end{code} Tämä lisää kuvan tiedostosta \texttt{testi.eps}. Kuvaa käännetään ensin 90 astetta ja \emph{sitten} leveydeksi annetaan puolet normaalin kappaleen leveydestä. Sivujen suhde on $1,0$, sillä korkeudelle ei ole määritelty mitään erityistä arvoa. Leveys ja korkeus voidaan antaa myös absoluuttisina mittoina. Katso taulukosta~\ref{units} sivulla \pageref{units} lisätietoja. Lisää informaatiota tästä aiheestä löytyy ohjeista \cite{graphics} ja \cite{eps}. \section{Bibliografia} Bibliografia\index{bibliografia} voidaan tehdä \ei{thebibliography}-ympäristöllä. Jokainen nimeke alkaa komennolla \begin{command} \ci{bibitem}\verb|{|\emph{tunniste}\verb|}| \end{command} \emph{Tunnistetta} käytetään dokumentissa viitattaessa kirjaan tai artikkeliin. \begin{command} \ci{cite}\verb|{|\emph{tunniste}\verb|}| \end{command} Nimekkeiden numerointi tapahtuu automaattisesti. Numeroiden maksimileveys asetetaan komennon \verb|\begin{thebibliography}| jälkeen tulevalla parametrilla. Alla olevassa esimerkissä \verb|{99}| kertoo \LaTeX:lle, että yksikään bibliografian nimekkeiden numeroista ei ole leveämpi kuin 99. \begin{example} Partl~\cite{pa} on esittänyt, että \ldots \begin{thebibliography}{99} \bibitem{pa} H.~Partl: \emph{German \TeX}, TUGboat Vol.~9, No.~1 ('88) \end{thebibliography} \end{example} \chaptermark{Lisukkeet} % w need to fix the damage done by the %bibliography example. \thispagestyle{fancyplain} Laajempia projekteja ajatellen kannattaa tutustua Bib\TeX-ohjelmaan. Se sisältyy useimpiin \TeX-järjestelmiin. Ohjelma antaa mahdollisuuden ylläpitää tietokantaa kirjallisuudesta ja ottaa siitä mukaan tekstissä viitatut nimekkeet. Bib\TeX:n ulkoasu perustuu tyylimäärityksiin, jotka antavat mahdollisuuden tehdä erityyppisiä kirjallisuusluetteloita. \section{Hakemiston tekeminen} \label{sec:indexing} Hakemisto\index{hakemisto} on monissa kirjoissa hyödyllinen ominaisuus. \LaTeX:lla ja apuohjelmalla \texttt{makeindex}\footnote{Niissä järjestelmissä, jotka tukevat korkeintaan 8 merkin mittaisia tiedostonimiä, ohjelman nimenä saattaa olla \texttt{makeidx}.} voidaan generoida helposti hakemisto. Tässä tekstissä selitetään hakemiston teosta vain peruskomennot. Syvällisempi selvitys löytyy kirjasta \companion. \index{makeindex-ohjelma} \index{makeidx-paketti} Jotta \LaTeX{} osaisi tehdä hakemistoja, täytyy esittelyosassa ottaa käyttöön \pai{makeidx}-makropaketti komennolla: \begin{command} \verb|\usepackage{makeidx}| \end{command} \noindent lisäksi hakemiston tekemiseksi täytyy esittelyosaan panna komento: \begin{command} \ci{makeindex} \end{command} Hakemiston sisältö määritellään komennoilla: \begin{command} \ci{index}\verb|{|\emph{avain}\verb|}| \end{command} \noindent joissa \emph{avain} on hakemistoon tuleva hakusana. Hakemistokomennot pannaan tekstiin siihen kohtaan, johon hakemiston halutaan viittaavan. Taulukossa~\ref{index} selitetään \emph{avain}-argumentin syntaksia muutaman esimerkin voimin. \begin{table}[!tp] \caption{Hakemiston avainsanojen syntaksin esimerkkejä} \label{index} \begin{center} \begin{tabular}{@{}lll@{}} \textbf{Esimerkki} &\textbf{Hakemiston rivi} &\textbf{Kommentti}\\\hline \rule{0pt}{1.05em}\verb|\index{morjens}| &morjens, 1 &Yksinkertainen hakusana\\ \verb|\index{morjens!Petri}| &\hspace*{2ex}Petri, 3 &morjenksen alle tuleva hakusana\\ \verb|\index{Sam@\textsl{Sami}}| &\textsl{Sami}, 2& Muotoiltu hakusana\\ \verb|\index{Lin@\textbf{Liinu}}| &\textbf{Liinu}, 7& Sama kuin yllä\\ \verb.\index{Jaana|textbf}. &Jaana, \textbf{3}& Muotoiltu sivunnumero\\ \verb.\index{Jussi|textit}. &Jussi, \textit{5}& Sama kuin yllä \end{tabular} \end{center} \end{table} Kun \LaTeX on käy läpi käsikirjoitustiedostoa, jokainen \verb|\index|-komento kirjoittaa hakemiston hakusanan yhdessä sivunumeron kanssa erityiseen tiedostoon. Tiedostolla on sama nimi kuin \LaTeX:n käsikirjoitustiedostolla, mutta eri pääte (\verb|.idx|). Seuraavaksi \texttt{makeindex}-ohjelma käsittelee tätä \texttt{.idx}-tiedostoa. \begin{command} \texttt{makeindex} \emph{tiedosto} \end{command} \texttt{Makeindex}-ohjelma generoi aakkostetun hakemiston jolla on sama tiedostonimi, mutta nyt päätteenä on \texttt{.ind}. Jos \LaTeX:n käsikirjoitustiedosto käsitellään jälleen kerran, aakkostettu hakemisto tulee mukaan dokumenttiin siihen kohtaan, josta \LaTeX{} löytää komennon \begin{command} \ci{printindex} \end{command} \LaTeXe:n mukana tuleva \pai{showidx}-makropakkaus tulostaa kaikki hakemiston hakusanat tekstin vasempaan marginaaliin. Tästä on apua oikoluettaessa dokumenttia ja hakemistoa tarkistettaessa. % Add some infos on PROTECT ... \section{Tyylikkäät ylä- ja alatunnisteet} \label{sec:fancy} Piet van Oostrumin kirjoittama makropakkaus \pai{fancyhdr}\footnote{Saatavilla osoitteesta \texttt{CTAN:/macros/latex/contrib/supported/fancyhdr/}} lisää muutaman yksinkertaisen komennon, jolla voidaan määritellä dokumentin ylä- ja alatunnisteiden ulkoasu. Tämän sivun yläosassa nähdään käytännön toteutus makropakkauksen käytöstä. \begin{figure}[!htbp] \begin{lined}{\textwidth} \begin{verbatim} \documentclass{book} \usepackage{fancyhdr} \pagestyle{fancy} % tämä varmistaa, että otsikoiden tunnisteet % ovat pienillä kirjaimilla. \renewcommand{\chaptermark}[1]{\markboth{#1}{}} \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} \fancyhf{} % poista ylä- ja alatunnisteen nykyiset asetukset \fancyhead[LE,RO]{\bfseries\thepage} \fancyhead[LO]{\bfseries\rightmark} \fancyhead[RE]{\bfseries\leftmark} \renewcommand{\headrulewidth}{0.5pt} \renewcommand{\footrulewidth}{0pt} \addtolength{\headheight}{0.5pt} % tilaa vaakaviivalle \fancypagestyle{plain}{% \fancyhead{} % perussivuille ei tule tunnisteita \renewcommand{\headrulewidth}{0pt} % eikä viivaa } \end{verbatim} \end{lined} \caption{Esimerkki \pai{fancyhdr}:n käytöstä} \label{fancyhdr} \end{figure} Hankalinta ylä- ja alatunnisteiden määrittelemisessä on otsikkotekstien saaminen sinne. \LaTeX:ssa tämä saadaan aikaan kaksivaiheisella tempulla. Ylä- ja alatunnisteen määrittelyissä käytetään komentoja \ci{rightmark} ja \ci{leftmark} esittämään vastaavaa luvun ja osion otsikkoa. Näiden komentojen arvot kirjoitetaan uusiksi aina kun vastaan tulee uusi luku tai osio. Joustavuuden nimissä \verb|\chapter|-komento kumppaneineen ei määrittele itse \ci{rightmark}:ia ja \ci{leftmark}:ia uusiksi, vaan se kutsuu komentoja \ci{chaptermark}, \ci{sectionmark} tai \ci{subsectionmark}, jotka sitten määrittelevät \ci{rightmark}:n ja \ci{leftmark}:n. Niinpä, mikäli luvun nimen ulkoasua halutaan muuttaa tunnisteessa, riittää, että \ci{chaptermark} määritellään uusiksi. \cih{sectionmark}\cih{subsectionmark} Kuva \ref{fancyhdr} näyttää tavan käyttää \pai{fancyhdr}-makroja niin, että ylätunnisteet näyttävät samalta kuin tässä kirjasessa. Joka tapauksessa on suositeltavaa hankkia käsiinsä alaviitteessä mainitussa osoitteessa olevan makropakkauksen käyttöohjeet. \section{Verbatim-makropakkaus} Aikaisemmin tässä kirjasessa tutustuttiin \ei{verbatim}-\emph{ympäristöön}. Tässä osiossa tutustutaan \pai{verbatim}-\emph{makropakkaukseen}, joka periaatteessa määrittelee \ei{verbatim}-ympäristön uusiksi. Makropakkaus pyrkii eroon joistakin alkuperäisen ympäristön rajoituksista. Tässä ei sinänsä ole mitään mullistavaa, mutta \pai{verbatim}-pakkauksen käyttö lisää myös uusia ominaisuuksia, mikä on syy sen mainitsemiseen tässä. \pai{verbatim}-pakkaukseen lisää käyttöön \begin{command} \ci{verbatiminput}\verb|{|\emph{tiedosto}\verb|}| \end{command} \noindent komennon, jolla tekstiin voidaan lisätä ASCII tiedosto sellaisenaan, aivan kuin \ei{verbatim}-ympäristössä ladottuna. Koska \pai{verbatim}-makropakkaus on osa 'tools'-kokoelmaa, se pitäisi olla asennettu valmiiksi useimmissa järjestelmissä. Lisätietoja tästä pakkauksesta saa lukemalla \cite{verbatim}:n. %%% Local Variables: %%% mode: latex %%% TeX-master: "lyhyt2e" %%% End: