i i “1601-Taranenko-Mala” — 2010/8/31 — 11:16 — page 1 — #1 i i i i i i List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 32 (2004/2005) Številka 5 Strani 25–27 Andrej Taranenko: MALA ŠOLA LATEXA (DRUGI DEL) Ključne besede: računalništvo, oblikovanje besedil, LaTeX, Donald E. Knuth. Elektronska verzija: http://www.presek.si/32/1601-Taranenko.pdf c© 2005 Društvo matematikov, fizikov in astronomov Slovenije c© 2010 DMFA – založništvo Vse pravice pridržane. Razmnoževanje ali reproduciranje celote ali posameznih delov brez po- prejšnjega dovoljenja založnika ni dovoljeno. 25 Mala šola LaTeXa (drugi del) RAÈUNALNIŠTVO 3. V prvem delu Male šole LaTeXa (prejšnja številka Preseka) smo si ogledali osnovne elemente vsakega dokumenta, napi- sanega in urejenega s pomočjo LaTeXa. Preden si ogledamo kaj več, pa ponovimo nekaj pomembnih (v prvem delu ome- njenih) pravil, ki jih ne smemo pozabiti: z enim presledkom dosežemo enak učinek kot s poljubnim številom za- porednih presledkov, ena ali več praznih vrstic prične nov odstavek, pri pisanju ukazov je pomembno, ali pišemo male ali velike črke in posebne znake lahko izpišemo le z določenimi ukazi. \ Naj pišem v c ali č? Pisanje šumnikov se nam v slovenskem jeziku zdi nekaj povsem običajnega in na prvi pogled se zdi čudno, da mora- mo v LaTeXu posebej povedati, da je nad črko c potrebno zapisati strešico, da dobimo č. Ne bi bilo veliko lažje na- pisati č kot \v c? Seveda je lažje in tudi izvedljivo, vedeti moramo le, v kateri kodni strani se izpisujejo znaki v našem operacijskem sistemu. Kodna stran je tabela, ki jo operacijski sistem uporab- lja, da ob pritisku tipke na tipkovnici na ekran izpiše ustrezen znak. Kako pripraviti LaTeX do tega, da bi lahko v svojem dokumentu brez skrbi (beri: pisanja ukazov \v ) pisali šumni- ke? Odgovor je v paketu inputenc, ki ga \documentclass[12pt, a4paper]{article} \usepackage[cp1250]{inputenc} \begin{document} tukaj pišemo vsebino dokumenta (besedilo, tabele, ...) \end{document} lahko vključimo v dokument. Paketi v LaTeXu so zbirke novih ukazov in makrojev, ki določajo, kako se naj LaTeXov preva- jalnik obnaša, ko naleti na kakšno posebnost, na katero naj bi bil paket »pozoren«. V tem primeru bo paket pozoren na šumnike, pisane v besedilu, in bo samodejno, kadarkoli bo naletel na zapisan šumnik, recimo črko č, nanjo gledal, ka- kor da bi zapisali \v c. Pakete vključimo v dokument z ukazom \usepackage[...]{...}, ki običajno sledi ukazu \documentclass na začetku dokumen- ta. Več različnih paketov vključimo z zaporednim zapisom teh ukazov. V oglatih oklepajih ukaza \usepackage podamo dodatne nastavitve za posamezne pakete, v zavitih oklepajih pa ime paketa. Paket inputenc mora kot nastavitev prejeti kodno stran, v kateri uporabnik piše besedilo. V operacijskem sistemu Win- dows XP z nastavljeno slovensko tipkovnico je to kodna stran z imenom cp1250, na Linux operacijskem sistemu z nastav- ljeno slovensko tipkovnico pa je to običajno kodna stran z imenom latin2. Torej bo naš dokument za vse nadaljnje primere imel na- slednjo obliko: bele, ...) Presek 5-revija-9.indd 25 4/11/2005 13:24:57 Process Cyan Process Magenta Process Yellow Process Black PANTONE Process Magenta CVC PANTONE 130 CVC PANTONE 312 CVC 26 RAÈUNALNIŠTVO Pri uporabi tega paketa moramo imeti v mislih, da morajo imeti vsi, ki bodo iz izvornega LaTeXovega dokumenta tvorili ogledljivi dokument, nameščen ta paket. Le-tega lahko izberejo ob namestitvi ali kasneje v programu za spreminjanje namestitve, vključenem v paketu MikTeX, ki smo ga opisali v prejšnji številki Preseka. Druga mož- nost je, da pišemo šumnike, ki jih tik pred prevajanjem poiščemo in zame- njamo z ustreznimi ukazi. Večina ure- jevalnikov besedil (tudi TeXnicCenter) namreč vsebuje možnost iskanja in za- menjave. \ Lastnosti pisav Poglejmo najprej, kako v LaTeXu spre- minjamo vrste in velikosti pisav, s kate- rimi bo v končnem dokumentu zapisa- no naše besedilo. Družine pisav LaTeX loči tri družine pisav, in sicer pi- savo s serifi (angl. Roman-family), pi- savo brez serifov (angl. Sans Serif-fa- mily ) in pisavo pisalnega stroja (angl. Typewriter ). Vsako od omenjenih dru- žin pisav lahko vključimo v dokument z naslednjimi ukazi: \textrm }...} besedilo med zavitimi oklepaji je zapisano s pisavo s serifi, \textsf{...} besedilo med oklepaji je zapisano s pisavo brez serifov \texttt{...} besedilo je zapisano s pisavo pisalnega stroja. V kolikor želimo spremeniti pisavo ce- lotnemu besedilu od ukaza do naslednje spremembe ali do konca dokumenta, lahko uporabimo kar ukaze \rmfamily, \sffamily in \ttfamily. Še enkrat pouda- rimo razliko med obema skupinama ukazov: prva skupina ukazov spremeni pisavo besedila, zapisanega med zavi- timi oklepaji ukaza, druga skupina pa spremeni pisavo celotnemu besedilu, ki sledi, dokler ne ukažemo drugače. Skupne lastnosti vseh družin pisav Prva takih lastnosti je seveda velikost pisave. Privzeto velikost pisave lahko določimo v ukazu \documentclass na začetku dokumenta (glejte prejšnji pri- mer). Velikosti pisav lahko spreminja- mo tudi za posamezne dele besedila, in sicer pozna LaTeX velikosti od drobce- ne do ogromne, ukazi za to pa so: {\tiny ...} drobcena {\scriptsize ...} zelo majhna {\footnotesize ...} dokaj majhna {\small ...} majhna {\normalsize ...} običajna (privzeta) {\large ...} večja {\Large ...} še večja {\LARGE ...} precej velika {\huge ...} zelo velika {\Huge ...} ogromna Naslednja lastnost je stil izpisa pisave. Privzeti stil je običajen, pokončni iz- pis pisave. Vsako izmed predstavljenih družin pisav lahko zapišemo tudi po- ševno, nagnjeno, krepko ali z manjšimi velikimi črkami. Med temi stili izpisa izbiramo z naslednjimi ukazi: \textit{...} poševni izpis pisave, \textsl{...} nagnjen izpis pisave, \textbf{...} krepek izpis pisave in \textsc{...} MALE ÈRKE SO IZPISANE KOT MANJŠE VELIKE ÈRKE Kadar želimo, da neka beseda v bese- dilu izstopa (ne glede na to, v katerem stilu pisave pišemo), lahko uporabimo ukaz \emph{...}. V pokončni pisavi bo beseda znotraj zavitih oklepajev izpi- sana poševno, v poševno izpisani pisavi pa pokončno. Da pa ne bomo pisali samo ukazov, si poglejmo še naslednja dva primera. V prvem primeru znotraj enega stavka večkrat spremenimo pisavo, v drugem primeru pa je prikazana uporaba uka- za \emph{...}. \ Primer V naš dokument med \begin{document} in \end{document} vstavimo naslednje vrstice: Ta \textit{stavek} \texttt{uporablja} \textsl{več} \textsf{različnih} {\Large \textbf{pisav,}} \textit{zaradi} česar \textsc{ga je} \textbf{težje} \textsc{brati}. Rezultat, ki ga dobimo, je videti takole: Ta stavek uporablja veè različnih pisav, zaradi èesar GA JE težje BRATI. Presek 5-revija-9.indd 26 4/11/2005 13:24:59 Process Cyan Process Magenta Process Yellow Process Black PANTONE Process Magenta CVC PANTONE 130 CVC PANTONE 312 CVC 27 RAÈUNALNIŠTVO \ Primer Med \begin{document} in \end{docu- ment} vstavimo naslednje vrstice: Prejšnji primer je spreminjal velikost in \emph{stil} pisave. Rezultat, ki ga dobimo, je videti takole: kjer smo ga zapisali, v končnem doku- mentu izpiše kazalo vsebine. \ Različne vrste naštevanj Pogosto se zgodi, da moramo v svojem besedilu naštevati različne možnosti, ki jih želimo podati s pomočjo alinej. V LaTeXu imamo na voljo tri vrste alinej (seznamov): oštevilčene, označene in alineje z opisom. Alineje lahko v doku- mentu tvorimo s posebnimi okolji. Vsa- ko okolje se prične z ukazom \begin{...} in konča z ukazom \end{...}, pri čemer moramo v zavitih oklepajih podati ime okolja, ki ga želimo uporabiti. Za ošte- vilčene alineje je okolje enumerate, za označene s simbolom okolje itemize in za alineje z lastnim opisom okolje description. Znotraj okolja za alineje moramo vsako alinejo označiti z ukazom \item, ki označuje začetek alineje. Na naslednjem primeru lahko vidimo upora- bo alinej, ki jih lahko tudi gnezdimo (t.j. pišemo eno okolje znotraj drugega). \ Primer Prejšnji primer je spreminjal velikost in stil pisave. \ Poglavja in podobne razdelitve besedila Dele besedila, ki skupaj tvorijo zaklju- čeno celoto, običajno združujemo v po- glavja in podobne razdelke. LaTeX ima za takšna združevanja že definirane ukaze, od katerih pa vseh ne moremo uporabljati v vseh vrstah dokumentov. V vrsti dokumenta z imenom article (članek) lahko za razdeljevanje upora- bimo naslednje ukaze: V LaTeXu obstaja še več vrst različnih okolij, katerih opise in primere uporabe najdete na naslednjih spletnih straneh. http://www.miktex.org – domača stran projekta MikTeX http://www.toolscenter.org – doma- ča stran programa TeXnicCenter http://www.adobe.com – domača stran pregledovalnika PDF datotek http://www.cs.wisc.edu/ ˜ghost – do- mača stran programov za pregledova- nje PS datotek http: /www-lp.fmf.uni-lj.si /pleste- njak/vaje/latex/lshort.ps – slovenski prevod knjige za LaTeX z naslovom Ne najkrajši uvod v LaTeX2e V naslednjem (zadnjem) delu našega sprehoda skozi LaTeX bomo pozornost posvetili vnašanju matematičnih izrazov, formul in še česa. Andrej Taranenko \begin{enumerate} \item Okolje \texttt{enumerate} oštevilči elemente v seznamu. \item Okolje \texttt{itemize} označi vsak element z veliko piko, kot sledi: \begin{itemize} \item To je prvi element v                                                           $  % & (   )              & -    $ )  .   /  (   )   )            1 2 4 5            6 2 8 9 5            \section{...} \subsection{...} \subsubsection{...} Podoben je še ukaz \chapter{...}, ki je na voljo v vrsti do- kumentov report in book. Vsi od našte- tih ukazov v zavi- tih oklepajih prejmejo ime razdelka. La- TeX samodejno ustvari številčenje raz- delkov, izbere tudi privzeto pisavo za naslove in razmake med razdelki. V primeru, da ne želimo oštevilčevanja razdelkov, lahko poleg imena ukaza za- pišemo znak * (tako neoštevilčen pod - razdelek začnemo z ukazom \subsecti- on*{...}). Velika prednost razdeljevanja bese- dila z omenjenimi ukazi je, da lahko LaTeX na ta način samodejno tvori kazalo vsebine glede na imena razdel- kov, kot smo jih podali z ukazi. Ukaz \tableofcontents, ki ga uporabimo zno- traj besedila dokumenta, na mesto, okolju \texttt{itemize}. \item In to je drugi. \end{itemize} \item To je primer okolja \texttt{description}. \begin{description} \item[Prvi] element v seznamu. \item[Drugi] element v seznamu. \end{description} \end{enumerate} V končnem do- kumentu izgleda takole: Presek 5-revija-9.indd 27 4/11/2005 13:25:01 Process Cyan Process Magenta Process Yellow Process Black PANTONE Process Magenta CVC PANTONE 130 CVC PANTONE 312 CVC