Začínáme s LATEXem Petr Aubrecht 24. 2. 2001, update 4. 11. 2005
Abstrakt 1
LATEX je textový procesor pro lidi, kterým nevadí se nejdřív něco naučit, aby pak mohli dělat práci lépe. Kteří raději obětují na začátku něco času, aby věděli, co vlastně dělají a jak se to má dělat správně. Je pro lidi, kteří chtějí vědět něco o typografii. Rozhodně není pro lenochy. Není pro lidi, kteří se nechtějí obtěžovat pohledem čtenáře, který to musí číst. Není pro lidi, kteří mentálně porozuměli psacímu stroji a u toho zůstali (a s radostí dál používají podtrhávání a lomítek místo závorek). Není ani pro sekretářky, které moc netrápí, že dopis není typograficky správný. Zkrátka LATEX není Word. Dovolte mi přirovnání – Word je jako mikrovlnná trouba, ve které se nejlépe ohřejete mražené jídlo koupené v supermarketu. Ale pořádné jídlo tam neuvaříte. Text, který se chystáte číst, je taková „kuchařkaÿ pro „ohřívače mraženek,ÿ který by se chtěl naučit aspoň trošku vařit, ale má z toho trošku strach.
1
Vše, co je dále popsáno, je pouze můj názor. Pokud máte připomínky, můžete je adresovat na
[email protected].
Obsah 1 První kroky 1.1 Prázdný dokument . . . . . . . . . 1.1.1 Kam psát text . . . . . . . . 1.1.2 Slovo LATEX – makra . . . . 1.2 Čeština . . . . . . . . . . . . . . . . 1.3 Kapitoly, odstavce . . . . . . . . . 1.3.1 Odstavec . . . . . . . . . . . 1.3.2 Kapitoly a spol. . . . . . . . 1.4 Drobky z typografie . . . . . . . . . 1.4.1 Pomlčka, rozdělovník, minus 1.4.2 Předložky na konci řádky .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
2 Know How 2.1 Obsah . . 2.2 Literatura 2.3 Obrázky . 2.4 Odkazy . 2.5 Drobnosti
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
9 . 9 . 9 . 10 . 11 . 11
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
1
. . . . .
. . . . .
. . . . .
3 3 4 4 5 6 6 7 7 8 8
Důvody Když jsem v létě roku 2000 nastupoval do školy jako zaměstnanec, stál jsem najednou před rozhodnutím, v jakém editoru budu psát zprávy. Jsem hodně zaujatý proti Microsoftu (a vím proč), takže jsem si na počítač Word nenainstaloval. Ke čtení souborů DOC používám Text602, který na základní věci stačí.2 Stál jsem tedy před zásadním rozhodnutím. Jedna možnost byla pokorně se sklonit před monopolním suverénem, přijmout potupnou porážku ducha bezduchým programem. Druhá možnost byla vzpomenout si na základy LATEXu, který jsem se v rámci několika předmětů na škole naučil používat. Tato varianta vyžadovala náročnější instalaci, sehnání počeštění, rozhodnout se mezi různými instalacemi ap. Ne nepodobná situace jako u Linuxu. Porovnával jsem možnosti, které oba programy nabízí. Word je používán naší skupinou a v kraji je zvykem dostávat dokumenty v tomto formátu. Potíž je v nutnosti mít poslední verzi, protože jinak si nepřečtete nic. To zpětně nutí lidi kolem vás si ji koupit taky. Zkrátka roztočený kolotoč, ve kterém všichni cpou peníze Microsoftu jako smyslů zbavení. LATEX znamená nikomu nic neplatit (pokud vyloženě nechcete). Naproti tomu vyžaduje hlubší studium, které se ovšem mnohokrát vrátí v pochopení podstaty problému počítačové sazby dokumentů. Jako když kupujete nový sporák, který má spoustu funkcí – když umíte vařit, spíš si vyberete ten nejlepší. Jako obrovskou výhodu jsem nakonec odhalil možnost z LATEXu dostat výsledek ve formátu PDF, Postscript nebo HTML, bylo rozhodnuto. Také podpora komunity (každý oslovený člověk mi vždy ochotně pomohl). A když se mi podařilo najít cestu, jak dostat alespoň text do Wordu (pro kolegy), bylo rozhodnuto. LATEX. 2
pozn. z roku 2005: Mezitím jsem stačil dokonvergovat do Linuxu, takže Text602⇒OpenOffice.org, MikTeX⇒tetex ap. Ale TEX bývá součástí systému společně s CSLATEXem.
2
Kapitola 1 První kroky V celém následujícím textu si nekladu nároky na úplnost informací. Píšu pro lidi, kteří nechtějí vědět hned všechno (pečlivky odkazuji na literaturu na konci – začněte od Knutha nebo knihou The LATEX Companion). Většinou se dá dosáhnout cíle více cestami, ale nám nyní postačí jenom jedna. Nainstalování LATEXu dnes snad už není problém. Existuje instalace ve stylu Windows – MikTeX, ale čeština je tu trochu problém, (viz kapitola 1.2). Protože mám s tímto softem jistou zkušenost, budu se (bez újmy na obecnosti) odkazovat pouze na něj. Další možností je CD s TeXLive, tedy TEXem spouštěným přímo z CD. Máme tedy fungující instalaci. A vy máte první myšlenku, co byste chtěli napsat. Nebudeme se tedy zdržovat přílišnou teorií a vrhneme se do psaní. Jediné, co musíme vědět dopředu, je, že LATEX je kompilátor. Tedy v jednom souboru něco napíšeme, spustíme kompilátor a ten vygeneruje jiný soubor (XX.dvi), který si zase jiným programem prohlížíme. Schéma je na obrázku 1.1. XX.tex ⇒ LATEX⇒ XX.dvi ⇒ prohlížeč Obrázek 1.1: Zpracování LATEXového dokumentu
1.1
Prázdný dokument
Jak jsem slíbil, tak plním. Prázdný dokument bude obsahovat pouze slovo „Ahojÿ, ale při kompilaci aspoň nebude hlásit chybu. Bude vypadat následovně: Vytvořte textový soubor (pozor, musí být opravdu textový, tj. pokud si ho budete prohlížet Notepadem, musí se zobrazit dobře). 3
Vstupní soubor \documentclass{report} \begin{document} %tady budeme něco psát Ahoj \end{document} Ahoj
Obrázek 1.2: Úplně první dokument Celý text opište, uložte pod názvem pokus1.tex a spusťte LATEX. Na disku by se vám měl vytvořit mimo jiné soubor pokus1.dvi. S ním je v MikTeXu svázán prohlížeč Yap, který jej dokáže zobrazit. Spusťte jej (např. dvojitým kliknutím na pokus1.dvi). Měla by se objevit prázdná stránka s jediným slovem vlevo nahoře (viz obr. 1.2). Gratuluji, toto je váš první dokument v LATEXu. Co která řádka v tomto dokumentu znamená, si vysvětlíme v následujících kapitolách. Tady jenom poznamenám, že znak procento začíná komentář, který se nebude zobrazovat. Lze tam napsat např. poznámky k textu a já tak budu popisovat některé rysy LATEXu.
1.1.1
Kam psát text
Když se dobře zadíváte na strukturu dokumentu, zjistíte, že na začátku je uvedena definice documentclass. Ta udává, jakým stylem bude dokument sázen. Hlavní možnosti jsou article – krátká zpráva, report – delší zpráva, book – kniha. Za documentclass lze uvést různé volitelné doplňky. Některé zásadní si ukážeme v kapitole o češtině, některé „fajnovéÿ v posledních kapitolách. Text, který chceme psát, musí být umístěn mezi \begin{document} a \end{document}. Nikdy nelze psát jinam.
1.1.2
Slovo LATEX – makra
Systém LATEX je postaven na makrech. Makra se vyznačují tím, že začínají znakem zpětné lomítko (\) a pokračují nějakým textem.1 Pokud vás zajímá, 1
Upozornění: LATEX rozlišuje malá a velká písmena!
4
jak se dá napsat taková věc, jako „LATEXÿ, pak stačí vědět, že existuje makro \LaTeX, které jej vypíše. Druhým příkladem bude tedy trošku zajímavější text: Vstupní soubor Výsledek \documentclass{report} \begin{document} Toto je LATEX. %tady budeme něco psát Toto je \LaTeX. \end{document} Všechna makra tedy začínají znakem \. Ovšem mohou mít také argument. Příkladem je makro \documentclass, které má jako argument seznam balíčků. Všechny povinné argumenty se zapisují do složených závorek. Makro také může mít nepovinné parametry. Ty se pak zapisují do hranatých závorek: \usepackage[cp1250]{inputenc}. Kromě maker disponuje LATEX také prostředími. Tato prostředí umožňují různé chování, jako například umístění obrázku (viz kapitola 2.3).
1.2
Čeština
Možná jste si všimli, že jsem se doposud pečlivě vyhýbal všem českým znakům. Ty nám sice dovolují téměř fonologický zápis řeči, ale v počítačích dělají stále problémy. Pro řešení češtiny existují dvě cesty. První bude podpora češtiny přímo z MikTeXu (babel). Její zápis je: \documentclass{report} % píšeme ve Windows, kódová stránka 1250 \usepackage[cp1250]{inputenc} % fonty v kódování T1, aby se správně dělily slova \usepackage[T1]{fonenc} % Zapne češtinu (nadpisy) \usepackage[czech]{babel} \begin{document} ... Babel ma několik poměrně zásadních omezení. Jednak nepohodlné psaní českých uvozovek, horší je, že babel nepodporuje dělení slov s diakritikou. Jde to spatlat dohromady, ale nevím jak a ani to nehodlám podstupovat. Problém je neochota spolupráce vývojářů babelu s národními skupinami (v našem případě s CSTUGem). 5
Druhá cesta je použití CSLATEXu, který byl vyvinut tuzemskými silami a pravděpodobně (netroufám si rozhodovat) bude vytvářet dokumenty lépe odpovídajícím místním zvyklostem. Rozdíl je také v tom, že nekompilujete příkazem latex, ale cslatex. \documentclass{report} % píšeme ve Windows, kódová stránka 1250 \usepackage[cp1250]{inputenc} % Zapne češtinu (nadpisy, dělení slov) \usepackage{czech} \begin{document} ... Záleží na Vás, případně odborníkovi v okolí. Pakliže jsem ten odborník já, doporučuji CSLATEX, protože funguje dobře za všech okolností. Kdyby se náhodou objevila chyba, že se nemá používat \usepackage{czech}, tak to znamená, že se tam vloudil babel. Najděte adresář babel a celý ho smažte.
1.3 1.3.1
Kapitoly, odstavce Odstavec
Když už umíte vytvořit dokument s několika slovy, můžeme pokračovat. Písmena se skládají do slov oddělených mezerou, slova se skládají do odstavců. A odstavce se oddělují prázdným řádkem. LATEX ignoruje více mezer za sebou, stejně jako více prázdných řádků. O tom, jak bude výsledný text vypadat (jak bude vysázen), rozhoduje LATEX. Následující obrázek ukazuje dva odstavce za sebou: První odstavec. text text text text text text text Druhý odstavec. Tyto odstavce je možné zapsat se stejnými výsledky mj. následujícími způsoby:
6
První odstavec. text text text text text text text
První odstavec. text text text text text text text
Druhý odstavec. Druhý odstavec.
1.3.2
Kapitoly a spol.
Teď, když jsem od slov postoupili k odstavcům, budeme pokračovat definováním kapitol. LATEX definuje makra pro kapitoly (uvádím jen ty, které nás zajímají): • chapter • section • subsection • subsubsection Způsob vysázení nadpisů kapitol se řídí stylem, definovaným v záhlaví (viz kapitola 1.1.1). Struktura tohoto článku je na následujícím obrázku: \documentclass[a4paper,12pt,twoside,titlepage]{report} ... \chapter{První kroky} ... \section{Prázdný dokument} ... \subsection{Kam psát text} ...
1.4
Drobky z typografie
Autoři píšící v LATEXu se liší od pisatelů ve Wordu minimálně několika znalostmi z typografie. Především nebudeme měnit velikost stránky. Od Guttenbergova vynálezu uplynula nějaká doba a vyvinula se metodika pro velikosti stránek. LATEX tuto metodiku obsahuje, takže ho necháme dělat jeho práci. 7
Velmi oblíbeným nešvarem autorů, kteří chtějí využít možnosti techniky až na dno, je používání velkého množství fontů. Myslí si, že dokument bude vypadat lépe. Naopak, bude vypadat jako vývěsní štít kolotočářů. Na jednu stranu by se měly použít maximálně tři fonty, a to ještě spíše výjimečně, řekněme pro titulní stránku. Jako rozdílné fonty se počítají i různé styly (bold, italic) i velikosti. Při psaní se oprostěte od zvyků z psacího stroje! Používání podtrhávání tehdy mělo smysl, protože nebyla jiná cesta. Dnes, kdy můžete využít nejrůznějších možností zvýraznění textu, kdy můžeme sázet tučně – \textbf{text} nebo zvýrazněně – \emph{text}, nemá podtržení opodstatnění a ruší plynulost textu.
1.4.1
Pomlčka, rozdělovník, minus
Doba psacích strojů také setřela rozdíl mezi pomlčkou, rozdělovníkem a minusem, protože na stroji na to všechno byl jeden znak. Hrubé rozdělení je následující: minus Minus je nejjasnější, používá se v matematice. Proto se v LATEXu musí používat „matematický mód,ÿ tedy $-1$ ⇒ „−1ÿ rozdělovník Rozdělovník je nejkratší. Používá se u spojky -li nebo při spojování slov (Rakousko-Uherský) a zapisuje se jednoduše znakem - ⇒ „-ÿ pomlčka Pomlčka je v sazbě ve Wordu Popelka. Až novější verze ji samy rozpoznávají a nahrazují správným znakem. V LATEXu -- ⇒ „–ÿ. Kolem pomlčky se píší mezery. V Americe se používá dlouhá pomlčka (—) a mezery kolem se nepíší.
1.4.2
Předložky na konci řádky
Nehezkou chybou by bylo nechávat na konci řádky neslabičné předložky (k, v, s, z) a neměly by tam být ani jednohláskové předložky (o, u), ani spojky (a, i). Je problematické výskyt takových znaků hlídat. Proto LATEX umožňuje zadávat tzv. „tvrdouÿ mezeru. Je to znak ~. Takže můžeme psát: „ruka v rukávu a vrabec v hrsti.ÿ Tvrdá mezera se chová jako znak ve slově, takže nemůže zůstat na konci řádky. A jelikož je i toto zadávání nám, líným to tvorům, dodává se s českou distribucí program vlnka nebo v novější verzi vlna, který tuto práci zvládne za nás. 8
Kapitola 2 Know How 2.1
Obsah
Obsah lze vygenerovat příkazem \tableofcontents. Ovšem je zde jeden zádrhel. Protože zpracování je pouze jednoprůchodové, zapisuje se do zvláštního souboru obsah až při procházení jednotlivými kapitolami. Teprve při druhém průchodu se tyto informace mohou použít. LATEX na tento problém upozorňuje hláškou: LaTeX Warning: Label(s) may have changed. Rerun to get cross-... Tak jste varováni, že máte překlad spustit ještě jednou.
2.2
Literatura
LATEX pochází z akademického prostředí, kde je otázka referencí velmi důležitá. Proto byla jistá pozornost věnována i literatuře. Odkazy na literaturu se vždy provádí pomocí \cite{klíč}. Klíč je určen k označení dané publikace. Teď je ještě potřeba sepsat seznam literatury. Jednodušší, ale jednorázová je možnost na konci uvést prostředí \thebibliography. Ovšem tak budete muset definice vždy mezi dokumenty kopírovat. \begin{thebibliography}{nejširší-klíč} \bibitem[label]{klíč} Popis publikace \end{thebibliography}
9
Druhá, trošku delší cesta, je sepsat seznam literatury do zvláštního souboru (databázi *.bib), který se potom k dokumentu připojí. LATEX potom při první kompilaci uloží seznam citací (příkazů \cite). Potom musíte spustit bibtex, který seznam zpracuje, projde databázi a vypíše odpovídající definice. Při druhém průchodu LATEX zařadí tento seznam na místo příkazu bibliography. ... \bibliographystyle{plain} \begin{document} ...\cite{LatCompanion} \bibliography{books} \end{document} Výhoda tohoto způsobu je v tom, že není třeba nic kopírovat a zápis se provádí pouze do databáze (v tomto případě books.bib). Při zpracování bude před koncem dokumentu uvedena literatura s klíčem LatCompanion. Příkladem tohoto způsobu je i tento dokument. Pokud budete potřebovat, aby byl v literatuře odkaz i na publikaci, která není citována, můžete použít makro \nocite{klíč}.
2.3
Obrázky
Protože LATEX pracuje s vektorovým popisem stránky, je lepší používat také vektorové obrázky. Takovým formátem, navíc široce používaným, je encapsulated postscript (EPS). Do dokumentu jej uložíte takto: \begin{figure}[h] \epsfig{file=soubor.eps, width=0.9\textwidth} \caption{Popis obrázku} \label{klíč} \end{figure} Vloží se soubor soubor.eps, šířka obrázku bude 90% šířky stránky. Pod obrázkem bude popis a na číslo obrázku pomocí \ref{klíč}. Další formáty lze vložit pomocí \includegraphics, viz jeho dokumentace. Vřele doporučuji přečíst si dokument epslatex.ps. Obsahuje dlouhou řadu tipů, jak s obrázky nakládat, včetně vychytávek jako několik obrázků vedle sebe, otočení ap. 10
2.4
Odkazy
Velmi mocným nástrojem jsou odkazy. Na místech, na která se chcete odkazovat, umístíte příkaz \label{klíč}. Odkazovat se na něj budete příkazy \pageref{klíč}, který uvede číslo stránky, a \ref{klíč}, který uvede číslo kapitoly nebo obrázku ap. podle umístění \label{klíč} (v textu, v obrázku, jinde). Bonbónkem je balíček varioref, který umožňuje vkládat do textu odkazy typu: „viz obrázek 8 na následující straně.ÿ Detaily viz jeho dokumentace.
2.5
Drobnosti
Mezi drobnosti zařadím poznámku pod čarou. Užitečná pomůcka – stačí zadat \footnote{Poznámka pod čarou}1 . Co když chcete použít makro LATEXnebo podobné pro vygenerování textu a následující text se k němu „přilepíÿ jako na začátku tohoto odstavce? LATEX totiž za makrem ignoruje mezery. Proto mu musíte mezeru vnutit pomocí “\ ”. Správně je to – \LaTeX\ je dokonalý. Jiná možnost je použít prázdných složených závorek – \LaTeX{} je dokonalý. Pokud jste došli až sem a všechno tohle umíte, je čas pustit se do nějaké opravdové literatury. Určitě zjistíte, že možnosti jsou nekonečné (například The LATEX Companion je ohromný zdroj informací a inspirace). Hodně zdaru.
1
Poznámka pod čarou
11