%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Contents: Typesetting Part of LaTeX2e Introduction % $Id: typeset.tex 537 2015-07-18 09:43:10Z oetiker $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Teksti vormistamine} \begin{intro} Eelmises peatükis tutvustasime \LaTeXe{} dokumentide põhilisi koostisosi. Selles peatükis täidame ülejäänud struktuuri, mida on tegelike materjalide koostamiseks vaja teada. \end{intro} \section{Teksti ja keele struktuur} \secby{Hanspeter Schmid}{hanspi@schmid-werren.ch} Teksti kirjutamise peamine mõte (osa modernset EIHE\footnote{Erinev iga hinna eest, tõlge \v{S}veitsi saksakeelsest väljendist UVA (\emph{ums Verrecken anders}).} kirjandust välja arvatud) on anda lugejale edasi ideid, informatsiooni või teadmisi. Lugeja mõistab teksti paremini, kui ideed on hästi struktureeritud, ning näeb ja tajub teose loogilist ja semantilist ülesehitust palju selgemini, kui teose tüpograafiline vorm seda peegeldab. \LaTeX{} erineb muudest tekstivormistussüsteemidest selle poolest, et talle tuleb ära kirjeldada teksti loogiline ja semantiline struktuur. Seejärel tuletab \LaTeX{} dokumendiklassis ja mitmesugustes stiilifailides paikapandud "`reeglite"' järgi ise teksti tüpograafilise vormi. Kõige tähtsam tekstiüksus \LaTeX is (ja üldse tüpograafias) on \wi{lõik}. Me nimetame seda tekstiüksuseks, sest lõik on tüpograafiline kogum, mis peaks väljendama ühte sidusat mõtet või ideed. Järgmistes jaotistes õpetatakse, kuidas alustada uut rida, nt käsuga \texttt{\bs\bs}, või lõiku, nt jättes algteksti tühja rea. Kui algab uus mõte, siis tuleks alustada uut lõiku, ja kui mitte, siis piirduda ainult ridade murdmisega. Lõiguvahe lisamise juures kahevahel olles võib mõtelda tekstist kui ideede ja mõtete edasiandjast. Kui tekstis on lõiguvahe, ent pärast seda vana mõte jätkub, siis tuleks lõiguvahe eemaldada. Kui samas lõigus tuleb sisse täiesti uus mõttekäik, siis tuleks lõiguvahe lisada. Hästi paigutatud lõiguvahede tähtsust tihti alahinnatakse. Paljud ei teagi, mida lõiguvahe tähendab, või, iseäranis \LaTeX is, jätavad sisse lõiguvahesid ilma seda ise aimamata. Viimast viga on eriti lihtne teha siis, kui tekstis esineb valemeid. Järgmisi näiteid vaadates tasub mõtelda, miks mõnikord on enne või pärast valemit tühjad read (lõiguvahed), mõnikord aga mitte. (Kui mõned käsud on siin veel tundmatud, siis võib läbi lugeda selle ja järgmise peatüki ning seejärel pöörduda käesoleva jaotise juurde tagasi.) \begin{code} \begin{verbatim} % 1. näide \ldots kui Einstein tõi sisse valemi \begin{equation} E = m \cdot c^2 \; , \end{equation} mis on kõige laiemalt tuntud ja samas kõige vähem mõistetud füüsikavalem. \end{verbatim} \end{code} \begin{code} \begin{verbatim} % 2. näide \ldots kust järeldub Kirchhoffi voolutugevuste seadus \begin{equation} \sum_{k=1}^{n} I_k = 0 \; . \end{equation} Kirchhoffi pingelangude seaduse võib tuletada \ldots \end{verbatim} \end{code} \begin{code} \begin{verbatim} % 3. näide \ldots millel on mitu eelist. \begin{equation} I_D = I_F - I_R \end{equation} on aluseks hoopis teist laadi transistorimudelile. \ldots \end{verbatim} \end{code} Väiksuse suunas järgmine tekstiüksus on lause. Ingliskeelsetes tekstides pannakse lauset lõpetava punkti järele pikem tühik kui lühendit lõpetava punkti järele. \LaTeX{} püüab ise aru saada, kumba on vaja. Kui \LaTeX{} mõistab seda valesti, siis tuleb talle oma soovi selgitada; sellest on juttu käesolevas peatükis edaspidi. Teksti struktureerimine ulatub isegi lause osadele. Enamikus keeltes on kirjavahemärkide reeglid väga keerulised, kuid paljudes keeltes (sealhulgas inglise ja saksa keeles) saab peaaegu iga koma õigesti, kui meenutada, mida see esitab: lühikest pausi keelevoos. Olles kahevahel, kuhu koma panna, võib lauset lugeda valjusti ja teha pärast iga koma väike hingetõmme. Kui mõni koht tundub selliselt kohmakas, siis kustutada koma; kui mõnes teises kohas tekib vajadus hingata (või teha lühike paus), siis lisada koma.\enlargethispage{\baselineskip} Lõpuks peaksid tekstilõigud olema loogiliselt struktureeritud ka kõrgemal tasemel, korrastatud peatükkideks, jaotisteks, alajaotisteks jne. Kuid kirjutiste nagu \verb|\section{|\texttt{Keele ja teksti struktuur}\verb|}| tüpograafiline efekt on nii ilmne, et on peaaegu iseenesestmõistetav, kuidas selliseid kõrgema taseme struktuure tuleks kasutada. \section{Ridade murdmine ja lehekülgedeks jaotamine} \subsection{Joondatud lõigud} Raamatuid laotakse tihti nii, et kõik read on sama pikad. \LaTeX{} lisab sõnade vahele vajalikud \index{rea murdmine}reamurdmised ja vahed, optimeerides korraga terve lõigu sisu.\index{lõik} Kui tarvis, siis ta isegi poolitab sõnu, mis sobivalt ühele reale ei mahu. See, kuidas lõike laotakse, sõltub dokumendiklassist. Tavaliselt algab lõigu esimene rida taandega ja kahe lõigu vahel pole lisaruumi. Täpsemat infot leiab jaotisest~\ref{parsp}. Erijuhtudel võib olla vaja anda \LaTeX ile ise reamurdmise käsk. \begin{lscommand} \ci{\bs} või \ci{newline} \end{lscommand} \noindent alustab uut rida ilma uut lõiku alustamata. \begin{lscommand} \ci{\bs*} \end{lscommand} \noindent keelab lisaks leheküljevahetuse pärast rea sundmurdmist. \begin{lscommand} \ci{newpage} \end{lscommand} \noindent alustab uut lehekülge. \begin{lscommand} \ci{linebreak}\verb|[|\emph{n}\verb|]|, \ci{nolinebreak}\verb|[|\emph{n}\verb|]|, \ci{pagebreak}\verb|[|\emph{n}\verb|]|, \ci{nopagebreak}\verb|[|\emph{n}\verb|]| \end{lscommand} \noindent soovitavad kohti, kus murdmine võib (või ei või) toimuda. Nende käskude toimet saab autor mõjutada valikulise argumendiga \emph{n}, mis on täisarv nullist neljani. Kui \emph{n} on väiksem kui 4, siis jääb \LaTeX ile võimalus käsku ignoreerida, kui tulemus näeks välja väga halb. Neid "`break"'-käske ei tule segamini ajada eelnevate "`new"'-käskudega. Isegi kui anda "`break"'-käsk, püüab \LaTeX{} ikkagi ridade paremad servad ja lehekülje kogupikkuse ühtlaseks saada, nagu järgmises jaotises kirjeldatud; see võib jätta teksti ebameeldivad lüngad. Kui on tõesti vaja alustada uut rida või uut lehekülge, siis tuleks kasutada vastavaid "`new"'-käske. Jälgi käskude nimesid! \LaTeX{} püüab alati moodustada parima võimaliku reamurdmise. Kui ta ei leia viisi murda ridu nii, nagu tema kõrgetele standarditele kohane, jätab ta ühe rea lõigust paremale välja ulatuma ning kaebab sisendfaili töötlemise ajal "`\wi{ületäitunud horisontaalkast}i"' ("`\index{overfull hbox@\textit{overfull hbox}}\emph{overfull hbox}"') üle. Kõige sagedamini juhtub see siis, kui \LaTeX{} ei suuda leida sobivat kohta sõna poolitamiseks.\footnote{Kuigi \LaTeX{} annab sel juhul hoiatuse (\texttt{Overfull \bs{}hbox}) ja kirjutab teda häiriva rea ekraanile, pole selliseid ridu alati lihtne üles leida. Kui lisada käsule \ci{documentclass} suvand \index{draft@\texttt{draft}}\texttt{draft}, siis tähistatakse need read paksu musta joonega lehekülje paremas servas.} \LaTeX i saab instrueerida oma standardeid veidi alandama, kui anda käsk \ci{sloppy}. See väldib taolisi üleulatuvaid ridu sõnadevahelise ruumi suurendamise teel -- isegi kui lõppväljund ei ole optimaalne. Sel juhul antakse kasutajale hoiatus "`\wi{alatäitunud horisontaalkast}"' ("`\index{underfull hbox@\textit{underfull hbox}}\emph{underfull hbox}"'). Enamikul juhtudel ei näe tulemus välja väga hea. Käsk \ci{fussy} toob \LaTeX i normaalse tegutsemisviisi juurde tagasi. \subsection{Poolitamine} \label{hyph} \LaTeX{} poolitab ise sõnu seal, kus vaja. Kui poolitamisalgoritm ei leia õigeid poolituskohti, saab olukorra heastada järgmiste käskudega, mis kirjeldavad \TeX ile erandeid. Käsk \begin{lscommand} \ci{hyphenation}\verb|{|\emph{sõnade loend}\verb|}| \end{lscommand} \noindent lubab argumendis loetletud sõnu poolitada ainult märkidega "`\verb|-|"' näidatud kohtadelt. Käsu argument peaks sisaldama ainult sõnu, mis koosnevad tavalistest tähtedest, või täpsemini märkidest, mida \LaTeX{} peab tavalisteks tähtedeks. \index{poolitussoovitused}Poolitussoovitused jäävad kehtima keelele, mis on aktiivne poolitussoovituste käsu täitmise hetkel. See tähendab, et kui panna käsk dokumendi preambulisse, siis mõjutab see inglise keele poolitust. Kui kasutada mõnda keeletoetuspaketti nagu \pai{babel} ja anda see käsk pärast paketis keele valimist või pärast käsku \verb|\begin{document}|, siis kehtivad poolitussoovitused keele jaoks, mis paketis aktiveeritakse. Järgmine näide lubab poolitada sõna \emph{poolitamine}, samuti sõna \emph{Poolitamine}, ning keelab poolitada sõnu \emph{FORTRAN}, \emph{Fortran} ja \emph{fortran}. Argumendis ei tohi olla erimärke ega -sümboleid. Näide: \begin{code} \verb|\hyphenation{FORTRAN Poo-li-ta-mi-ne}| \end{code} Käsk \ci{-} lisab sõnasse valikulise poolituskoha. See saab ühtlasi ainsaks punktiks, kust seda sõna võib poolitada. See käsk on iseäranis kasulik spetsiaalsümboleid (nt võõrtäpitähti) sisaldavate sõnade puhul, sest spetsiaalsümbolitega sõnu \LaTeX{} automaatselt ei poolita. %\footnote{Unless you are using the new %\wi{DC fonts}.}. \begin{example} Ma arvan, et see on: kuu\-li\-% len\-nu\-tee\-tun\-% ne\-li\-luuk \end{example} Mitut sõna saab hoida koos samal real käsuga \begin{lscommand} \ci{mbox}\verb|{|\emph{tekst}\verb|}| \end{lscommand} \noindent See hoiab argumendi üheskoos igas olukorras. \begin{example} Minu telefoninumber muutub varsti. Uus number on \mbox{0116 291 2319}. Parameeter \mbox{\emph{failinimi}} peaks sisaldama faili nime. \end{example} Käsk \ci{fbox} sarnaneb käsuga \ci{mbox}, kuid lisaks joonistab sisu ümber nähtava raami. \section{Valmisfraasid} Eelnevatel lehekülgedel esines mõnes näites paar väga lihtsat \LaTeX i käsku, mis on mõeldud kindlate tekstifraaside trükkimiseks: \vspace{2ex} \noindent \begin{tabular}{@{}lll@{}} Käsk&Näide&Kirjeldus\\ \hline \ci{today} & \today & Tänane kuupäev\\ \ci{TeX} & \TeX & Lemmiktrükiladuja\\ \ci{LaTeX} & \LaTeX & Mängu nimi\\ \ci{LaTeXe} & \LaTeXe & Praegune kehastus\\ \end{tabular} \section{Erimärgid ja -sümbolid} \subsection{Jutumärgid} \index{jutumärgid}Jutumärke\index{""@\texttt{""}} \emph{ei tuleks} sisestada märkidena \verb|"| nagu kirjutusmasinal. Trükinduses kasutatakse spetsiaalseid avavaid ja sulgevaid jutumärke. Avavaid inglisepäraseid jutumärke märgivad \LaTeX is kaks \textasciigrave{} (graavis) ja sulgevaid jutumärke kaks \textquotesingle{} (apostroof). Üksikjutumärkide saamiseks tuleb sisestada kumbagi üks. \begin{example} ``Palun vajuta `x' klahvi.'' \end{example} Kuigi visuaalne kuju pole ideaalne, on avav jutumärk siin tõesti graavis (\textasciigrave) ja sulgev jutumärk apostroof (\textquotesingle), olenemata sellest, kuidas see valitud kirjas võib paista. \subsection{Kriipsud} \LaTeX{} tunneb nelja tüüpi \wi{kriips}e. Kolme neist saab sisestada erineva arvu järjestikuste sidekriipsudega. Neljas sümbol ei ole tegelikult üldse kriips, vaid matemaatiline sümbol miinusmärk: \begin{example} üks-kaks-kolm, T-särk\\ leheküljed 13--67\\ jah --- või ei? \\ $0$, $1$ ja $-1$ \end{example} Nende kriipsude nimed on: \index{-}"`-"' \wi{sidekriips}, \index{-@--}"`--"' \wi{enn-kriips}, \index{-@---}"`---"' \wi{emm-kriips} ja \index{-@$-$}"`$-$"' \wi{miinusmärk}. \subsection{Tilde ($\sim$)} \index{URL-link}\index{tilde} Üks märk, mida näeb sageli veebiaadressides, on tilde. \LaTeX is saab seda moodustada käsuga \verb|\~{}|, kuid tulemus \~{} pole võib-olla selline, nagu sooviks. Selle asemel võib proovida: \begin{example} http://www.rikas.ee/\~{}puhk \\ http://www.tark.ee/$\sim$demo \end{example} \subsection{Kaldkriips (/)} \index{kaldkriips} Kahe sõna vahele kaldkriipsu panemiseks võib selle lihtsalt sisestada, näiteks \texttt{loe/kirjuta}, kuid nii käsitleb \LaTeX{} kahte sõna ühena. Kummaski sõnas keelatakse poolitamine, nii et tekkida võib ületäitumise vigu. Sellest võib üle saada käsuga \ci{slash}, näiteks \verb|loe\slash kirjuta|, mis lubab poolitamist. Kuid tavalise märgiga / saab esitada suhteid või ühikuid, nt \texttt{5 MB/s}. \subsection{Kraadimärk \texorpdfstring{($\circ$)}{}} \index{kraadimärk}Kraadimärgi trükkimine puhtas \LaTeX is: \begin{example} Külma on $-30\,^{\circ}\mathrm{C}$. Varsti muutun ma ülijuhtivaks. \end{example} Pakett \pai{textcomp} teeb kraadimärgi kättesaadavaks ka käsuna \ci{textdegree} ja kombinatsioonis tähega C käsuna \ci{textcelsius}. \begin{example} 30 \textcelsius{} on 86 \textdegree{}F. \end{example} \subsection{Euro märk \texorpdfstring{(\officialeuro)}{}} \index{euro märk}Kirjutades tänapäeval rahast, läheb vaja euro märki. Seda sisaldavad paljud kaasaegsed kirjapered. Lugedes dokumendi preambulis sisse paketi \pai{textcomp} \begin{lscommand} \verb|\usepackage{textcomp}| \end{lscommand} \noindent saab euro märgi teksti lisada käsuga \begin{lscommand} \ci{texteuro} \end{lscommand} Kui kiri ei sisalda omaette euro märki või kui kirja euro märk ei meeldi, siis on veel kaks valikut. Esiteks võib kasutada paketti \pai{eurosym}, mis annab ametliku euro märgi:% \begin{lscommand} \verb|\usepackage[official]{eurosym}| \end{lscommand} Kui eelistus on kirjaga kokkusobiv euro märk, siis tuleks suvandi \texttt{official} asemele panna \texttt{gen}. %If the Adobe Eurofonts are installed on your system (they are available for %free from \url{ftp://ftp.adobe.com/pub/adobe/type/win/all}) you can use %either the package \pai{europs} and the command \ci{EUR} (for a Euro symbol %that matches the current font). % does not work % or the package % \pai{eurosans} and the command \ci{euro} (for the ``official Euro''). %The \pai{marvosym} package also provides many different symbols, including a %Euro, under the name \ci{EURtm}. Its disadvantage is that it does not provide %slanted and bold variants of the Euro symbol. \begin{table}[!htbp] \caption{Kotitäis euro märke} \label{eurosymb} \begin{lined}{10cm} \begin{tabular}{llccc} LM+\pai{textcomp} &\verb+\texteuro+ & \huge\texteuro &\huge\sffamily\texteuro &\huge\ttfamily\texteuro\\ \pai{eurosym} &\verb+\euro+ & \huge\officialeuro &\huge\sffamily\officialeuro &\huge\ttfamily\officialeuro\\ \verb|[gen]|\pai{eurosym} &\verb+\euro+ & \huge\geneuro &\huge\sffamily\geneuro &\huge\ttfamily\geneuro\\ %europs &\verb+\EUR + & \huge\EURtm &\huge\EURhv % &\huge\EURcr\\ %eurosans &\verb+\euro+ & \huge\EUROSANS &\huge\sffamily\EUROSANS % & \huge\ttfamily\EUROSANS \\ %marvosym &\verb+\EURtm+ & \huge\mvchr101 &\huge\mvchr101 % &\huge\mvchr101 \end{tabular} \medskip \end{lined} \end{table} \subsection{Mõttepunktid (\texorpdfstring{\ldots}{...})} Kirjutusmasinal haarab koma või punkt enda alla sama palju ruumi kui ükskõik milline muu täht. Raamatute trükkimisel aga võtavad need märgid väga vähe ruumi ja nad laotakse tihedalt eelneva tähe kõrvale. Seetõttu annab \wi{mõttepunktid}e sisestamine kolme punkti sisestamise teel vale tulemuse. Selle asemel on mõttepunktide vormistamiseks omaette käsk, mille nimi on \begin{lscommand} \ci{ldots} (madalad punktid) \end{lscommand} \index{mõttepunktid}\index{punktid}\index{kolm punkti}\index{...@\ldots} \begin{example} Mitte nii ... vaid nii:\\ New York, Tokyo, Budapest, \ldots \end{example} \subsection{Ligatuurid} Mõnes keeles laotakse teatavad tähekombinatsioonid teinekord mitte kahte eri tähte teineteise järele pannes, vaid iseseisvate märkidena: \begin{code} {\large ff fi fl ffi \ldots}\quad mitte aga\quad {\large f{}f f{}i f{}l f{}f{}i \ldots} \end{code} Nende niinimetatud \wi{ligatuurid}e moodustamise saab keelata, kui lisada kahe kõnealuse tähe vahele \ci{mbox}\verb|{}|. See võib olla vajalik kahest sõnast koosnevate liitsõnade puhul. \begin{example} \Large Mitte shelfful,\\ vaid shelf\mbox{}ful \end{example} \subsection{Täpid ja erisümbolid} \LaTeX{} toetab paljude keelte \index{diakriitilised märgid}diakriitilisi märke ja \index{erisümbolid}erisümboleid. Tabelis~\ref{accents} on loetletud iga sorti diakriitilised märgid rakendatuna tähele o. Loomulikult töötavad ka teised tähed. Selleks, et panna diakriitiline märk tähe i või j peale, tuleb sealt enne täpp eemaldada. Selleks tuleks täht sisestada kujul \index{i@\i{} (täpita i)}\verb|\i| või \index{j@\j{} (täpita j)}\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{Diakriitilised märgid ja erisümbolid} \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} \\[6pt] \A{\o} & \A{\O} & \A{\l} & \A{\L} \\ \A{\i} & \A{\j} & !` & \verb|!`| & ?` & \verb|?`| \end{tabular} \index{täpita \i{} ja \j}\index{skandinaavia tähed} \index{umlaut}\index{graavis}\index{akuut} \index{ae@\ae}\index{oe@\oe}\index{a@\aa}\index{o@\o}\index{l@\l} \bigskip \end{lined} \end{table} \section{Rahvuskeelte tugi} \index{rahvuskeel}Kirjutades dokumente muus \wi{keel}es kui inglise, on kolm valdkonda, kus \LaTeX i tuleb sobivalt konfigureerida. \begin{enumerate} \item Uuele keelele tuleb kohandada kõik automaatselt genereeritavad fraasid.\footnote{"`Sisukord"', "`Jooniste loetelu"', \ldots} Paljude keelte puhul saab seda teha \index{Braams, Johannes}Johannes Braamsi paketiga \pai{babel}. \item \LaTeX{} peab tundma uue keele poolitamisreegleid. Poolitamisreeglite lisamine \LaTeX ile on natuke keerukam. Selleks on vaja uuesti genereerida vormingufail, andes ette teised poolitusmustrid. Rohkem infot peaks selle kohta andma \guide. \item Keelespetsiifilised tüpograafiareeglid. Näiteks prantsuse keeles on enne iga koolonit (:) kohustuslik tühik. \end{enumerate} Kui süsteem on juba sobivalt konfigureeritud, saab paketi \pai{babel} aktiveerida käsu \begin{lscommand} \verb|\usepackage[|\emph{keel}\verb|]{babel}| \end{lscommand} \noindent lisamisega pärast käsku \verb|\documentclass|. Iga kord, kui kompilaator käivitub, kirjutab ta ekraanile keelte nimekirja, mis on sellesse \LaTeX i süsteemi sisse ehitatud. Valitud \emph{keel}e jaoks aktiveerib \pai{babel} automaatselt vastavad poolitamisreeglid. Kui \LaTeX i vormingufail valitud keelt ei toeta, siis \pai{babel} küll töötab, aga sõnu ei poolita, mis avaldab küljendatud dokumendile üsna negatiivset mõju. Samuti defineerib \pai{babel} mõne keele jaoks uued käsud, mis lihtsustab erimärkide sisestamist. Näiteks saksa keel sisaldab palju umlaute (\"a\"o\"u). Kui \pai{babel} on laaditud, saab \"o sisestada \verb|\"o| asemel kujul \verb|"o|. Kui \pai{babel} kutsutakse välja mitme keelega \begin{lscommand} \verb|\usepackage[|\emph{keelA}\verb|,|\emph{keelB}\verb|]{babel}| \end{lscommand} \noindent siis aktiivseks jääb suvandite loetelu viimane keel (st \emph{keelB}). Aktiivset keelt saab muuta käsuga \begin{lscommand} \ci{selectlanguage}\verb|{|\emph{keelA}\verb|}| \end{lscommand} %Input Encoding \newcommand{\ieih}[1]{% % \index{kodeeringud!sisend!#1@\texttt{#1}}% \index{sisendkodeering!#1@\texttt{#1}}% \index{#1@\texttt{#1}}} \newcommand{\iei}[1]{% \ieih{#1}\texttt{#1}} %Font Encoding \newcommand{\feih}[1]{% % \index{kodeeringud!kirja!#1@\texttt{#1}}% \index{kirjakodeering!#1@\texttt{#1}}% \index{#1@\texttt{#1}}} \newcommand{\fei}[1]{% \feih{#1}\texttt{#1}} \pagebreak[2]Enamik kaasaegseid arvutisüsteeme lubab sisestada rahvuskeelte tähestike tähti otse klaviatuurilt. Eri keelerühmades või arvutiplatvormides kasutatavaid \wi{sisendkodeering}uid haldab \LaTeX{} paketi \pai{inputenc} abil:% \begin{lscommand} \verb|\usepackage[|\emph{kodeering}\verb|]{inputenc}| \end{lscommand} Seda paketti kasutades tuleb arvestada, et ühes arvutis tehtud fail\index{sisendfail} ei tarvitse olla teises arvutis vaadatav, sest seal kehtib teine kodeering. Näiteks täht \"a kodeeritakse OS/2-s kui 132, Unixi süsteemides ISO-LATIN~1 kodeeringus kui 228, samas kui Windowsi \index{kirillitsa}kirillitsa kodeeringus cp1251 see täht üldse puudub; seepärast tuleks seda võimalust kasutada ettevaatlikult. Sõltuvalt süsteemist võib kasu olla järgmistest kodeeringusuvanditest.\footnote{Ladina tähestikus ja \wi{kirillitsa}s kirjutatavaid keeli toetavaid sisendkodeeringuid tutvustatakse täpsemalt failide \texttt{inputenc.dtx} ja \texttt{cyinpenc.dtx} dokumentatsioonis. Paketi dokumentatsiooni genereerimisest on räägitud jaotises~\ref{sec:Packages}.} \begin{center} \begin{tabular}{l | r | r } Operatsiooni- & \multicolumn{2}{c}{kodeeringud}\\ süsteem & lääne-ladina & kirillitsa\\ \hline Mac & \iei{applemac} & \iei{macukr} \\ Unix & \iei{latin1} & \iei{koi8-ru} \\ Windows & \iei{ansinew} & \iei{cp1251} \\ DOS, OS/2 & \iei{cp850} & \iei{cp866nav} \end{tabular} \end{center} \begin{lscommand} \verb|\usepackage[|\iei{utf8}\verb|]{inputenc}| \end{lscommand} \noindent võimaldab luua \LaTeX i sisendfaile UTF-8 kodeeringus. See on mitmebaidine kodeering, kus iga märk kodeeritakse vähemalt ühe ja ülimalt nelja baidiga. Alates sajandivahetusest on enamiku operatsioonisüsteemide (Windows XP, MacOS X) põhikodeeringuks \wi{Unicode}. Seetõttu on soovitatav iga uue projekti kodeeringuks valida UTF-8. Paketis \pai{inputenc} määratav kodeering \iei{utf8} defineerib ainult need sümbolid, mis on olemas kasutatavates kirjades. Kui vaja on rohkem (mitteladina) märke, siis võib uurida Unicode'il põhinevat \TeX i mootorit \hologo{XeLaTeX} jaotises \ref{sec:xetex}. \index{kirjakodeering}Kirjakodeering on aga midagi muud. See määrab, millisel positsioonil iga täht \TeX i kirjafailis asub. Mitu sisendkodeeringut saab kujutada üheks kirjakodeeringuks, mis vähendab vajaminevate kirjakomplektide arvu. Kirjakodeeringuid hallatakse paketi \pai{fontenc} abil: \label{fontenc} \begin{lscommand} \verb|\usepackage[|\emph{kodeering}\verb|]{fontenc}| \index{kirjakodeering} \end{lscommand} \noindent kus \emph{kodeering} on kirjakodeering. On võimalik korraga sisse lugeda mitu kodeeringut. Vaikimisi kehtib \LaTeX is kirjakodeering \label{OT1}\fei{OT1}, mis on kasutusel \TeX i originaalkirjades \index{kirjakomplekt!CM}Computer Modern (CM). See kodeering sisaldab ainult 7-bitise ASCII märgitabeli 128 märki. Täpitähed moodustab \TeX{} tavalise tähe ja täppide kombineerimise teel. Kuigi niimoodi saadakse pealtnäha korrektne väljund, ei lase selline lähenemine automaatselt poolitada täpitähti sisaldavaid sõnu. Peale selle, mõningaid ladina tähti ei olegi võimalik saada tavalist tähte diakriitikuga kombineerides, rääkimata mitteladina tähtedest, nagu kreeka ja kirillitsa tähed. Nendest puudustest ülesaamiseks on loodud mitmeid 8-bitiseid \index{kirjakomplekt!CM}CM-kir\-ja\-de taolisi kirjakomplekte. Näiteks \fei{T1}-kodeeringus kirjad nimega \index{kirjakomplekt!EC}Extended Cork (EC) sisaldavad harilikke tähti ja diakriitikutega tähti enamiku Euroopa keelte jaoks, mis kasutavad ladina tähestikku. Kirjakomplekt \index{kirjakomplekt!LH}LH sisaldab tähti, mida on vaja tekstide vormistamiseks \index{kirillitsa}kirillitsat kasutavates keeltes. Kirillitsa tähemärkide suure arvu tõttu on märgid jaotatud nelja kirjakodeeringusse: \fei{T2A}, \fei{T2B}, \fei{T2C} ja \fei{X2}.\footnote{Keelte loetelu, mida igaüks neist kodeeringutest toetab, leiab juhendist \cite{cyrguide}.} Kirjapakk \index{kirjakomplekt!CB}CB sisaldab \fei{LGR}-kodeeringus kirju \index{kreeka keel}kreekakeelse teksti vormistamiseks. Nende kirjade kasutamisel paraneb/avaneb poolitamine mitteingliskeelsetes dokumentides. Uute kirjade teine eelis on see, et neis on olemas \index{kirjakomplekt!CM}CM-kir"-ja"-pe"-re kirjad kõigis kaaludes, kujudes ja optiliselt skaleeritud kirjasuurustes. \subsection{Eesti keele tugi} \secby{Reimo Palm}{reimo.palm@ut.ee} \index{eesti keel}Eestikeelse dokumendi koostamiseks tuleks dokumendi preambulisse panna \begin{lscommand} \verb|\usepackage[estonian]{babel}|\\ \verb|\usepackage[utf8]{inputenc}|\\ \verb|\usepackage[T1]{fontenc}| \end{lscommand} See aktiveerib eesti keele poolituse, kui \LaTeX i installatsioon on vastavalt konfigureeritud, ja muudab kõik automaatselt genereeritavad fraasid eestikeelseks. Sisendfaili kodeeringuks võetakse \iei{utf8} ja kirjakodeeringuks \fei{T1}. Lisaks teeb eesti keelepakett kättesaadavaks mõned lisakäsud eestikeelsetes tekstides levinud vormistuselementide trükkimiseks. Näiteks "`saksapäraseid"' jutumärke saab sisestada käskudega \index{""`@\texttt{""}\texttt{`}}\verb|"`| ja \index{""'@\texttt{""}\texttt{'}}\verb|"'| ning " jutumärke käskudega \index{""<@\texttt{""}\texttt{<}}\verb|"<| ja \index{"">@\texttt{""}\texttt{>}}\verb|">|. Täienduseks standardsele poolituskoha käsule \ci{-}, mis mujalt poolitamise keelab, saab käsuga \index{""-@\texttt{""}\texttt{-}}\verb|"-| lisada poolituskoha, mis lubab \LaTeX il sõna vajadusel ka mujalt poolitada. Paljud eesti keelepaketi funktsioonid on laenatud saksa keelepaketist. Eesti keele aktiveerimisel täidab eesti keelepakett käsu \ci{frenchspacing}, mille mõjul vormistatakse lauset lõpetavad tühikud sama pikana nagu sõnadevahelised tühikud. \subsection{Portugali keele tugi} \secby{Demerson Andre Polli}{polli@linux.ime.usp.br} Poolituse aktiveerimiseks ja kõigi automaatsete fraaside tõlkimiseks \wi{portugali keel}de tuleb anda käsk \begin{lscommand} \verb|\usepackage[portuguese]{babel}| \end{lscommand} \noindent või Brasiilias olles määrata keeleks \texttt{brazilian}. Et portugali keeles on palju diakriitikuid, võib preambulisse panna käsu \begin{lscommand} \verb|\usepackage[latin1]{inputenc}| \end{lscommand} \noindent mis võimaldab neid korrektselt sisestada, ning samuti käsu \begin{lscommand} \verb|\usepackage[T1]{fontenc}| \end{lscommand} \noindent et poolitamine oleks õige. Tabelis~\ref{portuguese} on näidatud preambul, nagu see peaks portugali keeles kirjutades olema. Selles näites on sisendkodeeringuks \iei{latin1}. Kaasaegsetes süsteemides võiks selle asemel kasutada kodeeringut \iei{utf8}. \begin{table}[hbtp] \caption{Portugalikeelse dokumendi preambul} \label{portuguese} \begin{lined}{7cm} \begin{verbatim} \usepackage[portuguese]{babel} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \end{verbatim} \end{lined} \end{table} \subsection{Prantsuse keele tugi} \secby{Daniel Flipo}{daniel.flipo@univ-lille1.fr} Mõned soovitused \LaTeX iga \index{prantsuse keel}prantsuskeelsete dokumentide loomiseks. Prantsuse keele tugi loetakse sisse käsuga \begin{lscommand} \verb|\usepackage[francais]{babel}| \end{lscommand} \noindent See aktiveerib prantsuse keele poolituse, kui \LaTeX i süsteem on vastavalt konfigureeritud. Samuti muudab see kõik automaatsed fraasid prantsuskeelseks: \verb+\chapter+ trükib "`Chapitre"', \verb+\today+ trükib tänase kuupäeva prantsuse keeles jne. Samuti muutub kättesaadavas hulk uusi käske, mille abil saab prantsuskeelseid sisendfaile kirjutada lihtsamalt. Inspiratsiooni leidmiseks võib vaadata tabelit \ref{cmd-french}. \begin{table}[!htbp] \caption{Erikäsud prantsuse keele jaoks} \label{cmd-french} \begin{lined}{9cm} \selectlanguage{french} \begin{tabular}{ll} \verb+\og guillemets \fg{}+ \quad &\og guillemets \fg \\[1ex] \verb+M\up{me}, D\up{r}+ \quad &M\up{me}, D\up{r} \\[1ex] \verb+1\ier{}, 1\iere{}, 1\ieres{}+ \quad &1\ier{}, 1\iere{}, 1\ieres{}\\[1ex] \verb+2\ieme{} 4\iemes{}+ \quad &2\ieme{} 4\iemes{}\\[1ex] \verb+\No 1, \no 2+ \quad &\No 1, \no 2 \\[1ex] \verb+20~\degres C, 45\degres+ \quad &20~\degres C, 45\degres \\[1ex] \verb+\bsc{M. Durand}+ \quad &\bsc{M.~Durand} \\[1ex] \verb+\nombre{1234,56789}+ \quad &\nombre{1234,56789} \end{tabular} \selectlanguage{english} \bigskip \end{lined} \end{table} Lülitudes ümber prantsuse keelele, muutub ka loendite vormistus. Rohkem informatsiooni selle kohta, mida paketi \pai{babel} suvand \texttt{francais} teeb ja kuidas selle toimimist seadistada, saab siis, kui lasta \LaTeX ist läbi fail \texttt{frenchb.dtx} ja lugeda tekkinud dokumenti \texttt{frenchb.dvi}. Paketi \pai{frenchb} hilisemad versioonid realiseerivad käsu \ci{nombre} paketi \pai{numprint} abil. \subsection{Saksa keele tugi} Mõned soovitused nendele, kes loovad \LaTeX iga \index{saksa keel}saksakeelseid dokumente. Saksa keele tugi loetakse sisse käsuga \begin{lscommand} \verb|\usepackage[german]{babel}| \end{lscommand} \noindent See aktiveerib saksa keele poolituse, kui \LaTeX i süsteem on vastavalt konfigureeritud. Samuti muudab see kõik automaatsed fraasid saksakeelseks, nt peatüki tiitliks saab "`Kapitel"', mitte "`Chapter"'. Samuti muutub kättesaadavaks hulk uusi käske, mille abil on võimalik saksakeelseid sisendfaile luua kiiremini, isegi kui paketti \pai{inputenc} mitte kasutada. Inspiratsiooni leidmiseks võib vaadata tabelit \ref{german}. Paketiga \pai{inputenc} muutub see kõik ebavajalikuks, kuid siis on tekst ka lukustatud kindlasse kodeeringusse. \begin{table}[!hbtp] \index{""`@\texttt{""}\texttt{`}} \index{""'@\texttt{""}\texttt{'}} \index{""<@\texttt{""}\texttt{<}} \index{"">@\texttt{""}\texttt{>}} \caption{Saksa keele erimärgid} \label{german} \begin{lined}{8cm} \selectlanguage{german} \begin{tabular}{*2{ll}} \verb|"a| & "a \hspace*{1ex} & \verb|"s| & "s \\[1ex] \verb|"`| & "` & \verb|"'| & "' \\[1ex] \verb|"<| või \ci{flqq} & "< & \verb|">| või \ci{frqq} & "> \\[1ex] \ci{flq} & \flq & \ci{frq} & \frq \\[1ex] \ci{dq} & " \\ \end{tabular} \selectlanguage{english} \bigskip \end{lined} \end{table} Saksakeelsetes raamatutes esinevad tihti prantsuse jutumärgid (\flqq guil\-le\-mets\frqq), ent saksa trükiladujad kasutavad neid teistmoodi. Tsitaat saksakeelses raamatus näeb välja \frqq nii\flqq. \v{S}veitsi saksakeelses osas kasutavad trükiladujad prantsuse jutumärke \flqq guillemets\frqq{} samamoodi nagu prantslased. Käskudega nagu \verb+\flq+ kaasneb üks suur probleem: \fei{OT1}-kodeeringus (mis on vaikimisi kehtiv kodeering) näevad prantsuse jutumärgid välja nii nagu matemaatiline sümbol $\ll$, mille peale trükiladuja saab pahaseks. Samas \fei{T1}-kodeeringus kirjad juba sisaldavad vajalikke märke. Sellepärast tuleks seda tüüpi jutumärkide kasutamisel valida dokumendi kirjakodeeringuks \fei{T1} (käsuga \verb|\usepackage[T1]{fontenc}|). \subsection[Korea keele tugi]{Korea keele tugi\footnotemark}\label{support_korean}% \footnotetext{% Selle jaotise on kirjutanud Karnes Kim\mailto|karnes@ktug.org| ja Kihwang Lee\mailto|leekh@ktug.org| Korea \TeX ikasutajate Ühingu ja Korea \TeX i Seltsi nimel.} \index{korea keel}\index{hangul}Hanguli\footnote{Hangul on korea kirjasüsteem. Lisainfot leiab aadressilt \url{http://en.wikipedia.org/wiki/Hangul}.} sümbolite töötlemiseks või koreakeelse dokumendi vormistamiseks \LaTeX i abil tuleks dokumendi preambulisse lisada järgmine rida: \begin{lscommand} \verb|\usepackage{kotex}| \end{lscommand} Seda deklaratsiooni sisaldavat dokumenti tuleb kompileerida pdf\LaTeX iga, \hologo{XeLaTeX}iga või Lua\LaTeX iga. Tuleks jälgida, et sisendfail oleks \wi{Unicode}'i UTF-8 kodeeringus. Paketikomplekti \wi{ko.\TeX}\footnote{Loetakse "`Korea \TeX"'. ko.\TeX{} on pakettide kogum, millesse kuuluvad teiste hulgas paketid \pai{cjk-ko}, \pai{kotex-utf}, \pai{xetexko} ja \pai{luatexko}.} arendavad pidevalt edasi Korea \TeX i"-ka"-su"-ta"-ja"-te Ühing\footnote{\url{http://www.ktug.org}} ja Korea \TeX i Selts ning seda kasutatakse laialdaselt igapäevaste koreakeelsete dokumentide loomiseks. ko.\TeX\ on olnud CTANis kättesaadav alates 2014. aastast ning ta kuulub ka \index{texlive@\TeX{} Live}\TeX{} Live'i, \index{miktex@MiK\TeX}MiK\TeX i ja teiste kaasaegsete \TeX idistributsioonide koosseisu. Seega on väga tõenäoline, et tööle saab hakata kohe, ilma lisapakette installimata. ko.\TeX\ ei kasuta paketti \pai{babel}. Paljusid korea keelega seotud funktsioone saab aktiveerida paketi \pai{kotex} suvandite ja seadistuskäskudega. Tegelike koreakeelsete dokumentide koostamiseks on soovitatav tutvuda paketi dokumentatsiooniga (need dokumendid on korea keeles). ko.\TeX iga tuleb kaasa ka \pai{oblivoir}\index{klass!oblivoir@\textsf{oblivoir}}, klassil \pai{memoir}\index{klass!memoir@\textsf{memoir}} põhinev dokumendiklass, mis on kohandatud koreakeelsetele dokumentidele. Koreakeelne dokument algab seega järgmiselt: \begin{lscommand} \verb|\documentclass{oblivoir}| \end{lscommand} Koreakeelse dokumendi jaoks aineregistri genereerimiseks tuleks käsu \texttt{makeindex} asemel anda käsk \texttt{komkindex}, mis on programmi \wi{MakeIndex} korea keele töötlemiseks kohandatud variant. Koreakeelsete registrikirjete leksikograafiliseks sortimiseks võib kasutada ko.\TeX is olemasolevat registristiili \texttt{kotex.ist} järgmiselt: \begin{lscommand} \verb|komkindex -s kotex foo.idx| \end{lscommand} Registrit saab genereerida ka programmiga \wi{Xindy}, sest Xindy korea keele moodul on \TeX{} Live'is olemas. On olemas veel üks pakett korea keele või \wi{hangul}i vormistamiseks: \pai{CJK}. Nagu paketi nimi näitab, sisaldab see vahendeid hiina, jaapani ja korea sümbolite trükkimiseks. See pakett toetab CJK sümbolite puhul kasutatavaid mitmeseid kodeeringuid. Järgnevas on esitatud lihtne näide UTF-8 kodeeringus hanguli vormistamisest paketiga \pai{CJK}. See on kasulik käsikirja esitamisel akadeemilistele ajakirjadele, mis lubavad autorite nimesid vormistada rahvuskeeltes. \begin{code} \begin{verbatim} \usepackage{CJK} \begin{CJK}{UTF8}{} \CJKfamily{nanummj} ... \end{CJK} \end{verbatim} \end{code} \subsection{Kreeka keele tugi} \secby{Nikolaos Pothitos}{pothitos@di.uoa.gr} Tabelis~\ref{preamble-greek} on esitatud preambul, mida on vaja \index{kreeka keel}kreeka keeles tekstide kirjutamiseks. See preambul aktiveerib poolitamise ja muudab kõik automaatsed fraasid kreekakeelseks.\footnote{Kui paketile \pai{inputenc} anda suvand \iei{utf8x}, siis mõistab \LaTeX{} kreeka kirja ja polütoonilise kreeka kirja Unicode'i tähti.} Kättesaadavaks muutub ka hulk uusi käske, mille abil saab lihtsamalt kirjutada kreekakeelseid sisendfaile. Ajutiselt lülituda inglise keelele ja vastupidi saab käskudega \verb|\textlatin{|\emph{ingliskeelne tekst}\verb|}| ja \verb|\textgreek{|\emph{kreekakeelne tekst}\verb|}|, millel mõlemal on üks argument, mis trükitakse soovitud kirjakodeeringus. Muidu aga võib kasutada käsku \verb|\selectlanguage{...}| nagu varem kirjeldatud. Tabelis~\ref{sym-greek} on mõned kreeka keele kirjavahemärgid. Euro märgi saab käsuga \verb|\euro|. \begin{table}[!hbtp] \caption{Kreekakeelse dokumendi preambul} \label{preamble-greek} \begin{lined}{7cm} \begin{verbatim} \usepackage[english,greek]{babel} \usepackage[iso-8859-7]{inputenc} \end{verbatim} \end{lined} \end{table} \begin{table}[tbp] \caption{Kreeka keele erimärgid} \label{sym-greek} \begin{lined}{4cm} \selectlanguage{french} \begin{tabular}{*2{ll}} \verb|;| \hspace*{1ex} & $\cdot$ \hspace*{1ex} & \verb|?| \hspace*{1ex}& ; \\[1ex] \verb|((| & \og & \verb|))|& \fg \\[1ex] \verb|``| & ` & \verb|''| & ' \\ \end{tabular} \selectlanguage{english} \bigskip \end{lined} \end{table} \subsection{Kirillitsa tugi} \secby{Maksym Polyakov}{polyama@myrealbox.com} Paketis \pai{babel} on versioonist~3.7h alates olemas \fei{T2*}-kodeeringute tugi ja võimalus kirjutada \index{kirillitsa}kirillitsa tähtedega \index{bulgaaria keel}bulgaaria-, \index{vene keel}vene- ja \index{ukraina keel}ukrainakeelseid tekste. Kirillitsa tugi põhineb \LaTeX i standardmehhanismidel ning pakettidel \pai{fontenc} ja \pai{inputenc}. Kuid kui vaja on kirillitsat kasutada valemire\v{z}iimis, tuleb enne paketti \pai{fontenc} sisse lugeda pakett \pai{mathtext}:\footnote{Kasutades \AmS-\LaTeX i pakette, tuleb need samuti sisse lugeda enne pakette \pai{fontenc} ja \pai{babel}.} \begin{lscommand} \verb+\usepackage{mathtext}+\\ \verb+\usepackage[T1+\verb+,+\fei{T2A}\verb+]{fontenc}+\\ \verb+\usepackage[+\iei{koi8-ru}\verb+]{inputenc}+\\ \verb+\usepackage[english,bulgarian,russian,ukranian]{babel}+ \end{lscommand} Üldiselt valib \pai{babel} sobiva kirjakodeeringu automaatselt, ülalnimetatud kolme keele puhul on selleks \fei{T2A}. Kuid dokumendid pole piiratud üheainsa kirjakodeeringuga. Mitmekeelsetes dokumentides, kus on kasutusel nii kirillitsaga kui ka ladina tähestikuga keeled, tuleks ära määrata ka ladina kirjakodeering. Pakett \pai{babel} lülitub automaatselt ümber õigele kirjakodeeringule, kui dokumendis valitakse erinev keel. Lisaks poolitamise võimaldamisele, automaatselt genereeritavate fraaside tõlkimisele ja keelespetsiifiliste tüpograafiareeglite (nagu \ci{frenchspacing}) aktiveerimisele teeb \pai{babel} kättesaadavaks ka mõned käsud teksti trükkimiseks bulgaaria, vene või ukraina keele standardite kohaselt. Kõigi kolme keele jaoks on olemas keelespetsiifilised kirjavahemärgid: kirillitsa kriips teksti jaoks (see on veidi kitsam kui ladina kriips ja ümbritsetud väikeste vahedega), kriips otsekõne jaoks, jutumärgid ja käsud poolitamise hõlbustamiseks; vt tabelit~\ref{Cyrillic}. % Table borrowed from Ukrainian.dtx \begin{table}[htb] \index{""-@\texttt{""}\texttt{-}} \index{""`@\texttt{""}\texttt{`}} \index{""'@\texttt{""}\texttt{'}} \index{"">@\texttt{""}\texttt{>}} \index{""<@\texttt{""}\texttt{<}} \index{bulgaaria keel}\index{vene keel}\index{ukraina keel} \caption[Bulgaaria, vene ja ukraina keel]{Paketi \pai{babel} bulgaaria, vene ja ukraina keelesuvandite täiendavad definitsioonid}\label{Cyrillic} \begin{lined}{\textwidth} \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}} \verb="|= & keela ligatuur selles kohas \\ \verb|"-| & ilmutatud poolituskoht, mis lubab poolitamist ülejäänud sõnas \\ \verb|"---| & kirillitsa emm-kriips tavatekstis \\ \verb|"--~| & kirillitsa emm-kriips liitnimedes (perekonnanimedes) \\ \verb|"--*| & kirillitsa emm-kriips otsekõne tähistamiseks \\ \verb|""| & nagu \verb|"-|, aga ei moodusta poolitusmärki (sidekriipsuga liitsõnade jaoks, nt\ \verb|x-""y| või muude märkide jaoks nagu "`luba/keela"') \\ \verb|"~| & liitsõna märk ilma poolituskohata \\ \verb|"=| & liitsõna märk poolituskohaga, lubab liitunud sõnades poolitamist \\ \verb|",| & väiketühik initsiaalides, poolituskohaga järgnevas perekonnanimes \\ \verb|"`| & saksa vasakpoolsed jutumärgid (näeb välja nagu ,\kern-0.08em,) \\ \verb|"'| & saksa parempoolsed jutumärgid (näeb välja nagu ``) \\%'' \verb|"<| & prantsuse vasakpoolsed jutumärgid (näeb välja nagu $<\!\!<$) \\ \verb|">| & prantsuse parempoolsed jutumärgid (näeb välja nagu $>\!\!>$) \\ \end{tabular} \bigskip \end{lined} \end{table} Paketi \pai{babel} vene ja ukraina keelesuvand defineerivad käsud \ci{Asbuk} ja \ci{asbuk}, mis töötavad nii nagu \ci{Alph} ja \ci{alph}\footnote{Käsud, mis väljastavad loendurite väärtused kujul a, b, c, \ldots}, kuid annavad tulemuseks vene või ukraina (vastavalt sellele, mis on dokumendi aktiivne keel) tähestiku suured ja väikesed tähed. Bulgaaria keelesuvandi puhul on olemas käsud \ci{enumBul} ja \ci{enumLat} (\ci{enumEng}), mille toimel \ci{Alph} ja \ci{alph} produtseerivad kas bulgaaria või ladina (inglise) tähestiku tähti. Vaikimisi annavad \ci{Alph} ja \ci{alph} bulgaaria keelesuvandi puhul bulgaaria tähestiku tähti. %Finally, math alphabets are redefined and as well as the commands for math %operators according to Cyrillic typesetting traditions. \subsection{Mongoolia keele tugi} \index{mongoolia keel}Mongooliakeelsete tekstide trükkimisel on valida kahe paketi vahel: mitmekeelne \pai{babel} ja \wi{Mon\TeX}, mille autoriks on \index{Corff, Oliver}Oliver Corff. Mon\TeX is on olemas tugi nii \index{kirillitsa}kirillitsa kui ka traditsioonilise mongoolia kirja jaoks. Mon\TeX i käskude kasutamiseks tuleb preambulisse lisada \begin{lscommand} \verb|\usepackage[|\emph{keel}\verb|,|\emph{kodeering}\verb|]{mls}| \end{lscommand} \noindent Suvandiks \emph{keel} tuleks panna \texttt{xalx}, see genereerib päised ja kuupäevad kaasaegses mongoolia keeles. Dokumendi kirjutamiseks traditsioonilises mongoolia kirjas tuleks suvandiks \emph{keel} võtta \texttt{bicig}. Keelesuvand \texttt{bicig} aktiveerib teksti sisestamiseks "`lihtsustatud transliteratsiooni"' meetodi. Ladina transliteratsiooni saab sisse ja välja lülitada käskudega \begin{lscommand} \verb|\SetDocumentEncodingLMC| \end{lscommand} \noindent ja \begin{lscommand} \verb|\SetDocumentEncodingNeutral| \end{lscommand} Mon\TeX i kohta leiab rohkem infot veebiaadressilt \CTAN|pkg/montex|. Pakett \pai{babel} toetab mongoolia kirillitsat. Mongoolia keele tugi aktiveeritakse järgmiste käskudega: \begin{lscommand} \verb|\usepackage[T2A]{fontenc}|\\ \verb|\usepackage[mn]{inputenc}|\\ \verb|\usepackage[mongolian]{babel}| \end{lscommand} \noindent kus \iei{mn} on sisendkodeering \iei{cp1251}. Kaasaegsema lähenemise puhul tuleks kirjutada selle asemele \iei{utf8}. \subsection{Unicode} \secby{Axel Kielhorn}{A.Kielhorn@web.de} \wi{Unicode} on loomulik valik siis, kui ühes dokumendis on koos mitu keelt, eriti kui need keeled ei ole ladina tähestikus. On olemas kaks \hologo{TeX}i mootorit, mis suudavad töödelda Unicode'is kirjutatud sisendit. \begin{description} \item[\normalfont\hologo{XeTeX}] arendati välja MacOS X jaoks, kuid on nüüd olemas kõigi arhitektuuride jaoks. Avaldati esmakordselt \TeX{} Live 2007-s.\index{XeTeX@\hologo{XeTeX}} \item[\normalfont\hologo{LuaTeX}] on pdf\TeX i järglane. Avaldati esmakordselt \TeX{} Live 2008-s.\index{LuaTeX@\hologo{LuaTeX}} \end{description} Järgnevas kirjeldame \hologo{XeLaTeX}i, nagu see on avaldatud \TeX{} Live 2010-s.\index{XeLaTeX@\hologo{XeLaTeX}} \subsubsection{Kiirstart} Olemasoleva \LaTeX i faili konvertimiseks \hologo{XeLaTeX}i tuleb teha järgmist. \begin{enumerate} \item Salvestada fail UTF-8 kodeeringus. \item Eemaldada preambulist read \begin{lscommand} \verb|\usepackage{inputenc}|\\ \verb|\usepackage{fontenc}|\\ \verb|\usepackage{textcomp}| \end{lscommand} \item Asendada käsk \begin{lscommand} \verb|\usepackage[|\emph{keelA}\verb|]{babel}| \end{lscommand} käskudega \begin{lscommand} \verb|\usepackage{polyglossia}|\\ \verb|\setdefaultlanguage[babelshorthands]{|\emph{keelA}\verb|}| \end{lscommand} \item Lisada preambulisse \begin{lscommand} \verb|\usepackage[Ligatures=TeX]{fontspec}| \end{lscommand} \end{enumerate} Pakett \pai{polyglossia}~\cite{polyglossia} asendab paketti \pai{babel} ning hoolitseb poolitusmustrite ja automaatsete fraaside eest. Suvand \verb|babelshorthands| aktiveerib \pai{babel}iga ühilduvad kiirkombinatsioonid saksa ja katalaani keele jaoks. Pakett \pai{fontspec}~\cite{fontspec} tegeleb kirjade laadimisega \hologo{XeLaTeX}is ja \hologo{LuaTeX}is. Vaikimisi on kirjaks Latin Modern Roman. Vähetuntud on fakt, et mõned \hologo{TeX}i käsud on tegelikult \index{kirjakomplekt!CM}Computer Moderni kirjades defineeritud \wi{ligatuurid}. Soovides neid kasutada mitte-\hologo{TeX}i kirjaga, tuleb nad ise järele teha. Suvand \texttt{Ligatures=TeX} defineerib järgmised ligatuurid: \begin{tabular}{rr} \verb|--| & --\\ \verb|---| & ---\\ \verb|''| & ''\\ \verb|``| & ``\\ \verb|!`| & !`\\ \verb|?`| & ?`\\ \verb|,,| & ,,\\ \verb|<<| & <<\\ \verb|>>| & >>\\ \end{tabular} \subsubsection{Minu jaoks on see nagu $\kappa\rho\epsilon\epsilon\kappa\alpha$ keel} Siiamaani pole Unicode'i \hologo{TeX}i mootori eelised veel välja tulnud. See muutub, kui jätta ladina kiri selja taha ning liikuda mõne huvitavama keele juurde, nagu kreeka või vene keel. Unicode'il põhinevas süsteemis on võimalik lihtsalt\footnote{Lihtsa väikeste väärtuste puhul.} tekstiredaktoris sisestada sümboleid ja \hologo{TeX} mõistab neid. Erinevates keeltes kirjutamiseks tuleb ainult preambulis keeled määrata: \begin{lscommand} \verb|\setdefaultlanguage{english}|\\ \verb|\setotherlanguage[babelshorthands]{german}| \end{lscommand} Saksakeelse lõigu kirjutamiseks saab kasutada keskkonda \ei{german}: \begin{code} \verb|Harilik tekst.|\\ \verb|\begin{german}|\\ \verb|Deutscher Text.|\\ \verb|\end{german}|\\ \verb|Veel harilikku teksti.| \end{code} Kui vaja on ainult mõnda teiskeelset sõna, võib kasutada käsku \verb|\text|\emph{keel}: \begin{code} \verb|Harilik tekst. \textgerman{Gesundheit} on|\\ \verb|tegelikult saksa sõna.| \end{code} See võib tunduda tarbetu, sest ainuke eelis on õige poolitus, kuid kui teine keel on veidi eksootilisem, siis on asi vaeva väärt. Mõnikord võivad põhiteksti kirjast puududa märgid, mida on teises keeles vaja\footnote{Latin Modern ei sisalda \index{kirillitsa}kirillitsa tähti.}. Lahendus on defineerida selle keele jaoks omaette kiri. Iga kord, kui uus keel aktiveeritakse, kontrollib \pai{polyglossia} kõigepealt, kas selle keele jaoks on kiri defineeritud. \begin{lscommand} \verb|\newfontfamily\russianfont[Script=Cyrillic,(...)]{(kiri)}| \end{lscommand} Nüüd võib kirjutada \begin{code} \verb|\textrussian{Pravda} on Vene ajaleht.| \end{code} % Väljundisse ilmub see fraas siis kirillitsa tähtedega. Pakett \pai{xgreek}\index{kreeka keel}~\cite{xgreek} võimaldab panna kirja tekste nii vanakreeka kui ka uuskreeka (monotooniline või polütooniline) keeles. \subsubsection{Paremalt vasakule kirjutatavad keeled} Mõnesid keeli kirjutatakse vasakult paremale, teisi paremalt vasakule. Viimaste toetamiseks on paketil \pai{polyglossia} vaja paketti \pai{bidi}\footnote{Pakett \pai{bidi} ei toeta \hologo{LuaTeX}i.} \cite{bidi}. Pakett \pai{bidi} peaks olema laaditavatest pakettidest kõige viimane, asudes isegi pärast paketti \pai{hyperref}, mis tavaliselt on viimane pakett. (Kuna \pai{polyglossia} loeb sisse paketi \pai{bidi}, tähendab see, et \pai{polyglossia} peaks olema viimane laaditav pakett.) Pakett \pai{xepersian}\index{pärsia keel} \cite{xepersian} sisaldab pärsia keele tuge. Seal on olemas pärsia \LaTeX i käsud, mille abil saab sisestada käske nagu \verb|\section| pärsia keeles, mistõttu on see pärsia keele rääkijatele väga atraktiivne. Pakett \pai{xepersian} on ainuke pakett, mis toetab \wi{kashida}t \hologo{XeLaTeX}iga. Sarnast algoritmi kasutav pakett süüria keele jaoks on arendamisel. Iraani Info- ja Sidetehnoloogia Ülemnõukogu poolt kättesaadavaks tehtud kirja \index{kiri!IranNastaliq}IranNastaliq saab alla laadida organisatsiooni veebilehelt \url{http://www.scict.ir/Portal/Home/Default.aspx}. Pakett \pai{arabxetex} \cite{arabxetex} toetab mitut \index{araabia kirjas keel}araabia kirja kasutavat keelt: araabia, pärsia, urdu, sindhi, pu\v{s}tu, ottomani (türgi), kurdi, ka\v{s}miiri, malai (jawi), uiguuri. Paketis on realiseeritud kirjavastavuste tabel, mis võimaldab \hologo{XeLaTeX}il töödelda Arab\TeX i ASCII transkriptsioonis kirjutatud sisendit. Iraani Macikasutajate Ühendus on loonud kirjad, mis toetavad mitut araabia tähestikuga keelt. % \url{http://wiki.irmug.org/index.php/X_Series_2}. % not working \index{heebrea keel}Heebrea keele jaoks paketti pole, sest seda pole vaja; paketi \pai{polyglossia} heebrea keele tugi peaks olema piisav. Kuid tarvis on sobivat kirja täisväärtusliku Unicode'i heebrea märgikomplektiga. Mittekommertseesmärkideks on vabalt kasutatav kiri \index{kiri!SBL Hebrew}SBL Hebrew, mis on saadaval aadressilt \url{http://www.sbl-site.org/educational/biblicalfonts.aspx}. Teine kiri, mida levitatakse Avatud Kirja Litsentsi alusel, on \index{kiri!Ezra SIL}Ezra SIL, mille leiab aadressilt \url{http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ezrasil_home}. Meeles tuleb pidada valida õige kirjasüsteem: \begin{lscommand} \verb|\newfontfamily\hebrewfont[Script=Hebrew]{SBL Hebrew}| \\ \verb|\newfontfamily\hebrewfont[Script=Hebrew]{Ezra SIL}| \end{lscommand} \subsubsection{Hiina, jaapani ja korea keel (CJK)} \index{hiina keel}\index{jaapani keel}\index{korea keel} Nende keelte puhul hoolitseb kirjavaliku ja kirjavahemärkide eest pakett \pai{xeCJK} \cite{xecjk}. \section{Sõnavahed} \index{vahe!sõnade vahel} Sirge parema serva saavutamiseks lisab \LaTeX{} sõnade vahele muutuvas koguses ruumi. Ingliskeelset teksti vormistades lisab ta lause lõppu ruumi natuke rohkem, sest see muudab teksti loetavamaks. \LaTeX{} eeldab, et laused lõpevad punktiga, küsimärgiga või hüüumärgiga. Kui punkt asub suurtähe järel, siis seda lause lõpuks ei loeta, sest suurtähe järel esinevad punktid tavaliselt lühendites. Igasugused kõrvalekalded nendest eeldustest tuleb määrata autoril. Langjoon tühiku ees moodustab tühiku, mille suurus ei muutu. Tilde~\verb|~| moodustab tühiku, mille suurus ei muutu ja mis lisaks keelab rea murdmise. Käsk \verb|\@| punkti ees näitab, et see punkt lõpetab lause, isegi kui ta järgneb suurtähele. \cih{"@} \index{~@ \verb.~.} \index{tilde}\index{tühik!pärast punkti} \begin{example} Hr.~Kask oli teda nähes rõõmus\\ Vt.~joon.~5\\ Mulle meeldib BASIC\@. Aga Sulle? \end{example} Lisaruumi panemise punktide järele võib ära keelata käsuga \begin{lscommand} \ci{frenchspacing} \end{lscommand} \noindent mis käsib \LaTeX il \emph{mitte} panna punkti järele rohkem ruumi kui tavaliste tähemärkide järele. See on väga levinud mitteingliskeelsetes tekstides, välja arvatud bibliograafiad. Käsu \ci{frenchspacing} puhul pole käsk \verb|\@|\cih{"@} vajalik. \section{Pealkirjad, peatükid ja jaotised} Et lugeja leiaks paremini tee läbi teose, tuleks teos jagada peatükkideks, jaotisteks ja alajaotisteks. \LaTeX{} toetab seda spetsiaalsete käskudega, mille parameetriks on jaotise pealkiri. Autori ülesanne on kasutada neid käske õiges järjekorras. Klassis \pai{article} on olemas järgmised \wi{jaotisekäsud}\index{liigendusüksused}: \begin{lscommand} \ci{section}\verb|{...}|\\ \ci{subsection}\verb|{...}|\\ \ci{subsubsection}\verb|{...}|\\ \ci{paragraph}\verb|{...}|\\ \ci{subparagraph}\verb|{...}| \end{lscommand} Soovides liigendada dokumenti osadeks ilma jaotiste või peatükkide nummerdust mõjutamata, võib kasutada käsku \begin{lscommand} \ci{part}\verb|{...}| \end{lscommand} Klassides \pai{report} ja \pai{book} on olemas veel üks, kõige ülemise taseme jaotisekäsk \begin{lscommand} \ci{chapter}\verb|{...}| \end{lscommand} Kuna klass \pai{article} ei tunne peatükke, saab artikleid lihtsasti koondada raamatusse peatükkidena. Jaotiste vertikaalvahed, nummerduse ja pealkirjade kirjasuuruse valib \LaTeX{} automaatselt. Jaotisekäskudest on kaks käsku veidi erilised: \begin{itemize} \item käsk \ci{part} ei mõjuta peatükkide nummerdust; \item käsul \ci{appendix} ei ole argumente, ta vaid muudab peatükkide numbrid tähtedeks.\footnote{Artikliklassi puhul muudab jaotiste numbreid.} \end{itemize} Eelmisest käivituskorrast võetud jaotiste pealkirjade ja leheküljenumbrite põhjal loob \LaTeX{} sisukorra.\index{sisukord} Käsk \begin{lscommand} \ci{tableofcontents} \end{lscommand} \noindent laieneb oma esinemise kohas sisukorraks. Uut dokumenti tuleb korrektse sisukorra saamiseks kompileerida ("`\LaTeX ida"') kaks korda. Mõnikord võib olla vaja kompileerida dokumenti kolmandatki korda, sel juhul annab \LaTeX{} sellest teada. Kõigist ülaltoodud jaotisekäskudest on olemas ka tärniga variandid. Käsu tärniga variant on käsu nimi, mille järele on lisatud tärn \verb|*|.\index{käsk!tärniga}\index{tärniga käsk} Nende abil saab moodustada jaotiste pealkirju, mida ei näidata sisukorras ega nummerdata. Näiteks käsust \verb|\section{Abi}| saab \verb|\section*{Abi}|. Tavaliselt ilmuvad jaotiste pealkirjad sisukorras täpselt sellisel kujul nagu tekstis kirjas. Mõnikord pole see aga võimalik, sest pealkiri on sisukorda mahtumiseks liiga pikk. Siis võib sisukorrakirje määrata valikulise argumendina enne tegelikku pealkirja. \begin{code} \verb|\chapter[Pealkiri sisukorra jaoks]{Pikk|\\ \verb| ja eriti igav pealkiri, mida näidatakse tekstis}| \end{code} Kogu \wi{dokumendi tiitel}\index{tiitel} genereeritakse käsuga \begin{lscommand} \ci{maketitle} \end{lscommand} \noindent Tiitli sisu tuleb määrata käskudega \begin{lscommand} \ci{title}\verb|{...}|, \ci{author}\verb|{...}| ja vajadusel \ci{date}\verb|{...}| \end{lscommand} \noindent enne käsu \verb|\maketitle| andmist. Käsu \ci{author} argumendis võib olla mitu nime, sel juhul tuleb need üksteisest eraldada käskudega \ci{and}. Näide mõne ülalnimetatud käsu rakendamise kohta on toodud joonisel~\ref{document} leheküljel~\pageref{document}. Peale ülalvaadeldud jaotisekäskude on \LaTeX is olemas veel järgmised käsud, mida kasutatakse koos klassiga \pai{book} ja mis aitavad trükist liigendada. Need käsud muudavad peatükkide pealkirjade ja lehekülgede nummerduse toimimist nii, nagu võiks oodata raamatult. \begin{description} \item[\normalfont\ci{frontmatter}] peaks olema kohe esimene käsk pärast dokumendi sisu algust (\verb|\begin{document}|). Ta vormistab leheküljenumbrid rooma numbritega ning jätab jaotiste pealkirjadest numbrid ära, nagu oleks kasutatud tärniga jaotisekäske (nt \verb|\chapter*{Eessõna}|), \index{käsk!tärniga}\index{tärniga käsk} kuid pealkirjad ilmuvad siiski sisukorda. \item[\normalfont\ci{mainmatter}] tuleb vahetult enne raamatu esimest peatükki. Ta lülitab sisse lehekülgede araabia numbrid ja alustab lehekülgede loenduri suurendamist uuesti algusest. \item[\normalfont\ci{appendix}] märgib raamatus lisamaterjali algust. Pärast seda käsku nummerdatakse peatükke tähtedega. \item[\normalfont\ci{backmatter}] tuleks lisada enne raamatu kõige viimaseid üksusi, nagu kirjandusnimestikku või aineregistrit. Standardsetes dokumendiklassides sellel käsul visuaalset efekti pole. \end{description} \section{Ristviited} Raamatutes, aruannetes ja artiklites esineb tihti \index{viited}\index{ristviited}viiteid joonistele, tabelitele ja teistele tekstiosadele. Viidete jaoks pakub \LaTeX{} järgmisi käske: \begin{lscommand} \ci{label}\verb|{|\emph{märgend}\verb|}|, \ci{ref}\verb|{|\emph{märgend}\verb|}| ja \ci{pageref}\verb|{|\emph{märgend}\verb|}| \end{lscommand} \noindent kus \emph{märgend} on kasutaja valitud identifikaator. \LaTeX{} asendab käsu \ci{ref} selle jaotise, alajaotise, joonise, tabeli või teoreemi numbriga, mille järel anti vastav käsk \ci{label}. Käsk \ci{pageref} trükib selle lehekülje numbri, kus esines vastav käsk \ci{label}.\footnote{Need käsud pole teadlikud sellest, millele nad viitavad. Käsk \ci{label} ainult salvestab viimase automaatselt genereeritud numbri.} Nagu sisukorras jaotiste pealkirjade ja leheküljenumbrite puhul, kasutatakse siingi väärtusi eelmisest kompileerimistsüklist. \begin{example} Viide sellele alajaotisele \label{jaot:see} näeb välja nii: "`Vaata jaotist~\ref{jaot:see} leheküljel~\pageref{jaot:see}"'. \end{example} \section{Allmärkused} Käsuga \begin{lscommand} \ci{footnote}\verb|{|\emph{allmärkuse tekst}\verb|}| \end{lscommand} \noindent trükitakse käesoleva lehekülje alaäärde allmärkus. Allmärkused tuleks alati panna\footnote{\emph{Panema} on üks levinumaid eestikeelseid sõnu.} selle sõna või lause järele, millele nad viitavad. Lausele või selle osale viitavad allmärkused tuleks seega panna koma või punkti järele.\footnote{Allmärkused juhivad lugeja tähelepanu dokumendi põhitekstist kõrvale. Tegelikult ju kõik loevad allmärkusi -- me oleme uudishimulikud, seega miks mitte integreerida kõik, mida soovime öelda, dokumendi põhiteksti?\footnotemark}\footnotetext{Teeviit ei lähe alati sinna, kuhu viitab \texttt{:-)}} \begin{example} Allmärkusi\footnote{See on allmärkus.} kirjutavad \LaTeX i kasutajad sageli. \end{example} \section{Rõhutatud sõnad} Kirjutusmasinaga kirjutatud tekstis on kombeks \texttt{rõhutada olulisi sõnu \underline{allajoonimisega}.}% \begin{lscommand} \ci{underline}\verb|{|\emph{tekst}\verb|}| \end{lscommand} \noindent Kuid trükitud raamatutes rõhutatakse sõnu \emph{kursiivkirjaga}. Autoril ei tohiks vahet olla. Tähtis on \LaTeX ile ütelda, et see tükk teksti on oluline ja seda tuleks rõhutada. Seega käsk \begin{lscommand} \ci{emph}\verb|{|\emph{tekst}\verb|}| \end{lscommand} \noindent rõhutab teksti. Mida see käsk oma argumendiga tegelikult teeb, sõltub kontekstist: \begin{example} \emph{Kui rõhutamist kasutada rõhutatud teksti sees, siis rõhutab \LaTeX{} teksti \emph{tavalise} kirja} abil. \end{example} Kes soovib suuremat kontrolli kirja ja kirjasuuruse üle, leiab mõningat inspiratsiooni jaotisest \ref{sec:fontsize} leheküljel \pageref{sec:fontsize}. \section{Keskkonnad} \label{env}\index{keskkond} % To typeset special purpose text, \LaTeX{} defines many different % \wi{environment}s for all sorts of formatting: \begin{lscommand} \ci{begin}\verb|{|\emph{keskkond}\verb|}|\quad \emph{tekst}\quad \ci{end}\verb|{|\emph{keskkond}\verb|}| \end{lscommand} \noindent kus \emph{keskkond} on keskkonna nimi. Keskkondi võib paigutada üksteise sisse, kui järgida õiget sisestusjärjekorda. \begin{code} \verb|\begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa}| \end{code} \noindent Järgnevates jaotistes tutvustatakse kõiki olulisi keskkondi. \subsection{Keskkonnad \ei{itemize}, \ei{enumerate} ja \ei{description}} Keskkond \ei{itemize} sobib lihtsate loetelude jaoks, keskkond \ei{enumerate} nummerdatud loetelude jaoks ja keskkond \ei{description} kirjelduste jaoks. \cih{item} \begin{example} \flushleft \begin{enumerate} \item Keskkondi võib paigutada soovi järgi üksteise sisse. \begin{itemize} \item Kuid see võib paista naljakas. \item[-] Kriipsuga. \end{itemize} \item Seetõttu pea meeles: \begin{description} \item[rumalad] asjad ei muutu targaks sellest, et nad on loetelus; \item[targad] asjad saab aga kenasti esitada loetelus. \end{description} \end{enumerate} \end{example} \subsection{Keskkonnad \ei{flushleft}, \ei{flushright} ja \ei{center}} Keskkonnad \ei{flushleft} ja \ei{flushright} moodustavad vastavalt vasakule ja \wi{paremale joondatud} lõigud. \index{vasakule joondatud} Keskkond \ei{center} moodustab tsentreeritud teksti. Kui pole määratud reamurdmisi käskudega \ci{\bs}, siis valib \LaTeX{} reamurdmised automaatselt. \begin{example} \begin{flushleft} See tekst on\\ joondatud vasakule. \LaTeX{} ei püüa teha iga rida sama pikaks. \end{flushleft} \end{example} \begin{example} \begin{flushright} See tekst on joondatud\\paremale. \LaTeX{} ei püüa teha iga rida sama pikaks. \end{flushright} \end{example} \begin{example} \begin{center} Maailma\\keskpunktis. \end{center} \end{example} \subsection{Keskkonnad \ei{quote}, \ei{quotation} ja \ei{verse}} Keskkond \ei{quote} on kasulik tsitaatide, oluliste fraaside ja näidete puhul. \begin{example} Tüpograafiline rusikareegel tekstirea pikkuse jaoks on: \begin{quote} keskmiselt ei tohiks rida olla pikem kui 66 sümbolit. \end{quote} See on põhjus, miks \LaTeX i lehekülgedel on vaikimisi nii laiad ääred ja miks ajalehti trükitakse mitmeveeruliselt. \end{example} On olemas veel kaks sarnast keskkonda: \ei{quotation} ja \ei{verse}. Keskkond \ei{quotation} sobib pikemate, mitmelõiguliste tsitaatide jaoks, sest ta lisab iga lõigu esimesele reale taande. Keskkond \ei{verse} sobib luuletuste jaoks, kus olulised on reapiirid. Ridu murtakse käskudega \ci{\bs} ridade lõpus ja tühja reaga pärast iga salmi. \begin{example} Ma tean peast ainult ühte eestikeelset luuletust. See räägib hanepoegadest. \begin{flushleft} \begin{verse} Lumi tuli maha ja valgeks läks maa,\\ kaks väikest hanepoega nüüd välja ei saa.\\ Nad istuvad laudas, mis teha, on talv\\ ja paljajalu käia on lume peal halb. \end{verse} \end{flushleft} \end{example} \subsection{Sisukokkuvõte} Teaduslikke publikatsioone alustatakse tavaliselt sisukokkuvõttega, mis annab lugejale lühikese ülevaate, mida oodata. Selleks on \LaTeX is olemas keskkond \ei{abstract}. Enamasti kasutatakse keskkonda \ei{abstract} dokumentides, mille aluseks on artikli dokumendiklass. \newenvironment{abstract}% {\begin{center}\begin{small}\begin{minipage}{0.8\textwidth}}% {\end{minipage}\end{small}\end{center}} \begin{example} \begin{abstract} Kokkuvõttev kokkuvõte. \end{abstract} \end{example} \subsection{Tähttäheline trükk} Tekst, mis asub käskude \verb|\begin{|\ei{verbatim}\verb|}| ja \verb|\end{verbatim}| vahel, trükitakse otse, nii nagu oleks ta sisestatud kirjutusmasinal, koos kõigi reavahetuste ja tühikutega ning ilma ühtegi \LaTeX i käsku täitmata. Lõigu sees võib sama tulemuse saada käsuga \begin{lscommand} \ci{verb}\verb|+|\emph{tekst}\verb|+| \end{lscommand} \noindent Märk \verb|+| on lihtsalt eraldaja. Võib kasutada ükskõik millist märki, välja arvatud tähed, \verb|*| ja tühik. Käesolevas raamatukeses on paljud \LaTeX i näited vormistatud selle käsu abil. \begin{example} Käsk \verb|\ldots| \ldots \begin{verbatim} 10 PRINT "TERE HOMMIKUST"; 20 GOTO 10 \end{verbatim} \end{example} \begin{example} \begin{verbatim*} Keskkonna verbatim tärniga versioon rõhutab tekstis tühikuid \end{verbatim*} \end{example} \index{keskkond!tärniga}\index{tärniga keskkond} Samamoodi võib koos tärniga kasutada käsku \ci{verb}:\index{käsk!tärniga}\index{tärniga käsk} \begin{example} \verb*|nagu niimoodi :-) | \end{example} Keskkond \ei{verbatim} ja käsk \verb|\verb| ei või asuda teiste käskude argumentides. \subsection{Keskkond \ei{tabular}} \index{tabelid} % \newcommand{\mfr}[1]{\framebox{\rule{0pt}{0.7em}\texttt{#1}}} \newcommand{\mfr}[1]{\texttt{#1}} Keskkonna \ei{tabular} abil saab vormistada keni tabeleid valikuliste horisontaal- ja vertikaaljoontega. Veergude laiused valib \LaTeX{} automaatselt. Käsu \begin{lscommand} \verb|\begin{tabular}[|\emph{pos}\verb|]{|\emph{veerujoondused}\verb|}| \end{lscommand} \noindent argument \emph{veerujoondused} määrab tabeli vormi. Vasakule joondatud veergu tähistab \mfr{l}, paremale joondatud veergu \mfr{r} ja tsentreeritud veergu \mfr{c}; rajastatud ja murtavate ridadega teksti sisaldavat veergu märgib \mfr{p\{}\emph{laius}\mfr{\}} ning vertikaaljoont \mfr{|}. Kui veeru tekst on lehekülje jaoks liiga lai, siis \LaTeX{} seda automaatselt ei murra. Argumendiga \mfr{p\{}\emph{laius}\mfr{\}} saab defineerida spetsiaalset liiki veeru, milles teksti murtakse nii, nagu harilikus lõigus. Argument \emph{pos} määratleb tabeli vertikaalse asendi ümbritseva teksti alusjoone suhtes. Tähed \mfr{t}, \mfr{b} ja \mfr{c} suunavad tabelit joonduma vastavalt üles, alla ja keskele. Keskkonna \ei{tabular} sees tähistab \index{&@\texttt{\&}}\texttt{\&} hüpet järgmisse veergu, \ci{\bs} uue rea algust ja \ci{hline} horisontaaljoont. Osalisi jooni saab lisada käsuga \ci{cline}\texttt{\{}$i$\texttt{-}$j$\texttt{\}}, kus $i$ ja $j$ on veergude numbrid, üle mille joon ulatuma peab. \begin{example} \begin{tabular}{|r|l|} \hline 7C0 & heksadetsimaalne\\ 3700 & oktaalne \\ \cline{2-2} 11111000000 & binaarne \\ \hline \hline 1984 & detsimaalne\\ \hline \end{tabular} \end{example} \begin{example} \begin{tabular}{|p{4.7cm}|} \hline Tere tulemast kandilisse lõiku! Loodan südamest, et te kõik naudite etendust.\\ \hline \end{tabular} \end{example} Veergude eraldaja võib määrata konstruktsiooniga \mfr{@\{...\}}, mis tühistab senise veergudevahelise ruumi ja asendab selle looksulgudes oleva materjaliga. Ühte selle käsu kasutusvõimalust tutvustatakse allpool kümnendmurdude joondamise probleemi juures. Teine võimalik rakendus on keelata käsuga \mfr{@\{\}} ära tabelit ümbritsevad horisontaaltühikud.\index{tühik!tabeli ümber} \begin{example} \begin{tabular}{@{} l @{}} \hline ümbritsevaid tühikuid pole\\ \hline \end{tabular} \end{example} \begin{example} \begin{tabular}{l} \hline ümbritsevad tühikud vasakul ja paremal\\ \hline \end{tabular} \end{example} % % This part by Mike Ressler % \index{kümnendmurdude joondamine} Kuna pole olemas sisseehitatud võimalust joondada arvude veerge kümnendkoma järgi,\footnote{Kui süsteemis on installitud paketikomplekt Tools, siis tasub vaadata paketti \pai{dcolumn}.} siis võime sellest piirangust "`mööda hiilida"' nii, et vormistame arvud kahes veerus: paremalt rajastatud täisosa ning vasakult rajastatud murdosa. Reas \verb|\begin{tabular}| asendab spetsifikaator \verb|@{,}| tavalise veergudevahelise ruumi märgiga , jättes sedasi mulje ühest kümnendkoma järgi joondatud veerust. Mitte unustada asendada arvudes kümnendkoma veergude eraldajaga \verb|&|\,! Veerusildi saab arvude "`veeru"' kohale panna käsuga \ci{multicolumn}. \begin{example} \begin{tabular}{c r @{,} l} Piiavaldis & \multicolumn{2}{c}{Väärtus} \\ \hline $\pi$ & 3&1416 \\ $\pi^{\pi}$ & 36&46 \\ $(\pi^{\pi})^{\pi}$ & 80662&7 \\ \end{tabular} \end{example} \begin{example} \begin{tabular}{|c|c|} \hline \multicolumn{2}{|c|}{Trips} \\ \hline Traps & Trull! \\ \hline \end{tabular} \end{example} Keskkonnas \ei{tabular} vormistatud materjal jääb alati kokku ühele leheküljele. Kui on vaja trükkida pikki tabeleid, siis saab seda teha paketiga \pai{longtable}. Mõnikord tunduvad \LaTeX i standardtabelid veidi liiga kokkusurutud. Hingamisruumi juurdeandmiseks tuleks muuta parameetrite \ci{arraystretch} ja \ci{tabcolsep} väärtused suuremaks. \begin{example} \begin{tabular}{|l|} \hline Need read\\\hline on tihedalt\\\hline \end{tabular} {\renewcommand{\arraystretch}{1.5} \renewcommand{\tabcolsep}{0.2cm} \begin{tabular}{|l|} \hline natuke avaram\\\hline tabeli kujundus\\\hline \end{tabular}} \end{example} Kui on tarvis suurendada tabelis ainult ühe rea kõrgust, võib sobivasse kohta lisada nähtamatu vertikaalkasti\footnote{Professionaalses ladumises on selle nimi \index{strut@\textit{strut}}\emph{strut}.}. Selle triki saab realiseerida käsuga \ci{rule}, võttes laiuseks nulli. \begin{example} \begin{tabular}{|c|} \hline \rule{1pt}{4ex}Props \ldots\\ \hline \rule{0pt}{4ex}Tugi\\ \hline \end{tabular} \end{example} Selles näites on \texttt{pt} ja \texttt{ex} \TeX i ühikud, mille kohta leiab rohkem infot tabelist \ref{units} leheküljel \pageref{units}. Paketis \pai{booktabs} on saadaval mõningad lisakäsud, mis tabelikeskkonda laiendavad. Need muudavad professionaalse väljanägemisega korrektsete vahedega tabelite loomise märksa lihtsamaks. \section{Ujuvad elemendid} Tänapäeval sisaldab enamik publikatsioone palju jooniseid ja tabeleid. Need elemendid nõuavad erikohtlemist, sest neid ei saa murda üle leheküljepiiride. Üks meetod oleks alustada iga kord, kui joonis või tabel leheküljele ei mahu, uut lehekülge. Selline lähenemine jätab aga leheküljed osaliselt tühjaks, mis näeb inetu välja. Probleemi lahendus on lasta iga joonis või tabel, mis jooksvale leheküljele ei mahu, "`ujuma"' hilisemale leheküljele, täites jooksva lehekülje selle asemel põhitekstiga. \LaTeX is on \index{ujuvelemendid}ujuvate elementide loomiseks kaks keskkonda, üks tabelite ja teine jooniste jaoks. Et neist kahest keskkonnast täit kasu saada, on oluline üldjoontes mõista, kuidas \LaTeX{} ujuvat materjali sisemiselt käsitleb. Vastasel korral võivad ujuvelemendid muutuda suureks frustratsiooni allikaks, sest \LaTeX{} ei pane neid kunagi sinna, kus autor neid näha soovib.\index{tabelid}\index{joonised} Vaatleme esmalt käske, mida \LaTeX{} ujuvelementide jaoks pakub. Igasugust materjali, mis asub keskkonnas \ei{figure} või \ei{table}, käsitletakse ujuva materjalina. Mõlemal ujuval keskkonnal on valikuline argument \begin{lscommand} \verb|\begin{figure}[|\emph{paigutuse spetsifikaator}\verb|]| või \verb|\begin{table}[|\ldots\verb|]| \end{lscommand} \noindent nimega \emph{paigutuse spetsifikaator}, mille kaudu antakse \LaTeX ile teada asukohad, kuhu ujuvelementi on lubatud teisaldada. Paigutuse spetsifikaator konstrueeritakse \emph{ujuvelemendi paigutusõiguste} järjendina, vt tabelit~\ref{tab:permiss}. \begin{table}[tbp] \caption{Ujuvelemendi paigutusõigused}\label{tab:permiss} \noindent \begin{minipage}{\textwidth} \medskip \begin{center} \begin{tabular}{@{}cp{8cm}@{}} Spets.&Õigus paigutada ujuvelementi \ldots\\ \hline \rule{0pt}{1.05em}\texttt{h} & \emph{Siia}, samale kohale tekstis, kus ta esineb. See sobib enamasti väiksemate elementide puhul.\\[0.3ex] \texttt{t} & Lehekülje \emph{ülaäärde}.\\[0.3ex] \texttt{b} & Lehekülje \emph{alaäärde}.\\[0.3ex] \texttt{p} & Eraldi \emph{leheküljele}, mis koosneb ainult ujuv\-ele\-men\-ti\-dest.\\[0.3ex] \texttt{!} & Arvestamata enamikku sisemisi parameetreid\footnote{Nagu näiteks ühel leheküljel lubatud ujuvelementide maksimaalarv.}, mis võivad muidu selle elemendi paigutamise välistada. \end{tabular} \end{center} \end{minipage} \end{table} Näiteks võib tabelit alustada järgmise reaga \begin{code} \verb|\begin{table}[!hbp]| \end{code} \noindent \index{paigutuse spetsifikaator}Paigutuse spetsifikaator \verb|[!hbp]| lubab \LaTeX il paigutada tabeli otse siia (\texttt{h}) või mõne lehekülje alaäärde (\texttt{b}) või eraldi ujuvelementide leheküljele (\texttt{p}), ja kõike seda ka juhul, kui tulemus ei paista välja väga hea (\texttt{!}). Kui paigutuse spetsifikaator on määramata, siis võetakse standardklassides selleks \verb|[tbp]|. \LaTeX{} paigutab iga ujuvelemendi, mida ta kohtab, vastavalt autori määratud paigutuse spetsifikaatorile. Kui elementi ei saa paigutada jooksvale leheküljele, siis lisatakse ta kas \emph{jooniste} järjekorda või \emph{tabelite} järjekorda.\footnote{Need on FIFO-järjekorrad (esimesena sisse, esimesena välja)!} Kui algab uus lehekülg, siis kontrollib \LaTeX{} kõigepealt, kas on võimalik luua järjekorras olevatest elementidest omaette ujuvelementide lehekülg. Kui see pole võimalik, siis vaadeldakse kummagi järjekorra esimest elementi nii, nagu oleks see just tekstis esinenud: \LaTeX{} püüab teda uuesti paigutada vastavalt elemendi paigutuse spetsifikaatorile (välja arvatud \texttt{h}, mis pole enam võimalik). Kõik uued tekstis ettetulevad ujuvelemendid lisatakse vastavatesse järjekordadesse. \LaTeX{} säilitab rangelt kumbagi tüüpi ujuvelementide esialgse järjestuse. Seepärast lükkab joonis, mida pole võimalik ära paigutada, kõik edasised joonised dokumendi lõppu. Niisiis: \begin{quote} Kui \LaTeX{} ei paiguta ujuvelemente soovitud viisil, siis on sageli põhjuseks üks ujuvelement, mis on ummistanud emma-kumma ujuvelementide järjekorra. \end{quote} Kuigi \LaTeX ile on võimalik ette anda üksainus paigutuse spetsifikaator, põhjustab see mõnikord probleeme. Kui ujuvelement sellesse kohta ei mahu, jääb ta järjekorda kinni ja hakkab järgmisi elemente blokeerima. Sealhulgas ei tohiks mitte kunagi kasutada üksinda spetsifikaatorit \verb|h| -- see on nii halb, et \LaTeX i hilisemad versioonid võtavad selle asemele automaatselt \verb|ht|. Olles nüüd ära selgitanud keerulise osa, on veel mõned asjad, mida tasub keskkondade \ei{table} ja \ei{figure} puhul mainida. Ujuvelemendi pealkiri määratakse käsuga \begin{lscommand} \ci{caption}\verb|{|\emph{pealkirja tekst}\verb|}| \end{lscommand} \noindent \LaTeX{} lisab jooksva numbri koos sõnaga "`Joonis"' või "`Tabel"'. Käsud \begin{lscommand} \ci{listoffigures} ja \ci{listoftables} \end{lscommand} \noindent tegutsevad sarnaselt käsuga \verb|\tableofcontents|, trükkides vastavalt jooniste ja tabelite loetelu. Neisse lähevad pealkirjad terves mahus, nii et kui pealkirjad kipuvad olema pikad, tuleks moodustada neist loetelude jaoks lühemad versioonid. Lühiversioon lisatakse käsu \verb|\caption| järele nurksulgudesse. \begin{code} \verb|\caption[Lühi]{PPPPPiiiiiikkkkkkkkkk}| \end{code} Käskudega \ci{label} ja \ci{ref} saab luua tekstis ujuvelemendile viite. Seejuures tuleb käsk \ci{label} panna käsu \ci{caption} \emph{järele}, sest viidata on vaja pealkirja numbrile. Järgmine näide joonistab ruudu ja lisab selle dokumenti. Niimoodi saab reserveerida ruumi jooniste jaoks, mis paigutatakse lõppdokumenti hiljem. \begin{code} \begin{verbatim} Joonis~\ref{valge} on näide pop-kunstist. \begin{figure}[!hbtp] \makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}} \caption{Viis korda viis sentimeetrit\label{valge}} \end{figure} \end{verbatim} \end{code} \noindent Selles näites püüab \LaTeX{} \emph{tõesti kõvasti}~(\texttt{!}) panna joonist otse \emph{siia}~(\texttt{h}).\footnote{Eeldades, et jooniste järjekord on tühi.} Kui see pole võimalik, püüab ta panna joonist lehekülje \emph{alaäärde}~(\texttt{b}). Kui joonist ei õnnestu panna jooksvale leheküljele, siis vaatab \LaTeX, kas on võimalik luua eraldi ujuvelementide lehekülg, mis sisaldaks seda joonist ja võib-olla mõningaid tabeleid tabelite järjekorrast. Kui ujuvelementide lehekülje jaoks ei ole piisavalt materjali, alustab \LaTeX{} uut lehekülge ja käsitleb uuesti joonist nii, nagu see oleks just tekstis ette tulnud. Mõnes olukorras võib olla vaja anda käsk \begin{lscommand} \ci{clearpage} või isegi \ci{cleardoublepage} \end{lscommand} \noindent See käsib \LaTeX il paigutada kohe ära kõik järjekordadesse kogunenud ujuv"-elemendid ja seejärel alustada uut lehekülge. Käsk \ci{cleardoublepage} läheb isegi uuele paremleheküljele.\enlargethispage{\baselineskip} Hiljem õpetatakse käesolevas sissejuhatuses, kuidas lisada dokumenti \PSi i jooniseid. \section{Habraste käskude kaitsmine} Käskude nagu \ci{caption} ja \ci{section} argumentides antud tekst võib esineda dokumendis mitmes kohas (nt nii sisukorras kui ka dokumendi põhitekstis). Mõned käsud lakkavad töötamast, kui nad panna jaotisekäskude \ci{section} taoliste käskude argumentidesse, ja dokumenti kompileerida ei õnnestu. Sellised käske nimetatakse \index{haprad käsud}habrasteks käskudeks -- niisugused on näiteks \ci{footnote} ja \ci{phantom}. Haprad käsud vajavad kaitsmist (kas seda ei vaja me kõik?). Kaitsmiseks tuleks nende ette lisada käsk \ci{protect}. Selliselt töötavad need käsud õigesti isegi siis, kui nad esinevad liikuvates argumentides. Käsk \ci{protect} mõjutab ainult järgmist käsku ja isegi mitte selle argumente. Liigne \ci{protect} enamikul juhtudel probleeme ei tekita. \begin{code} \verb|\section{Ma olen hooliv|\\ \verb| \protect\footnote{ja kaitsen oma allmärkusi}}| \end{code} % Local Variables: % TeX-master: "lshort2e" % mode: latex % mode: flyspell % End: