Hlavní navigace

Jak na LaTeX: pronikáme hlouběji

Michal Švamberg

V dnešním dílu se podíváme na opravdový základ dokumentu napsaný v LaTeXu. Vysvětlíme si, co je to balíček, také si ukážeme jednoduchý příklad. A nebude chybět ani nakouknutí do teorie :)

Ano, správně. Trocha teorie nikomu neuškodí, a tak se objeví v každém článku. Povětšinou nebude moc souviset s probíraným tématem, ale myslím si, že se bude občas někomu hodit.

Teorie: TeX vs. LaTeX

TeX je vlastně sada příkazů, kterými se formátuje dokument. Tyto příkazy už se nemění - TeX je zakonzervovaný. A právě to je největší výhodou psaní dokument v TeXu. Protože když dnes v TeXu napíšete nějaký dokument, přeložíte jej se stejným výsledkem i za 20 let na úplně jiných strojích s jiným operačním systémem. Přeložíte jej stejně jak na počítači doma, tak v práci, ale třeba také v Tramtárii.

LaTeX je sada maker (tedy nové příkazy vytvořené z TeXovských příkazů). Tato makra byla napsána tak, aby ulehčovala práci a zároveň dodržovala zásady správného vzhledu dokumentu (typografické zásady). V LaTeXu nemusíte přemýšlet nad některými věcmi, o nichž byste museli přemýšlet při psaní v TeXu (je to tedy zjednodušení práce). Na druhou stranu se LaTeX stále vyvíjí a jeho sada příkazů se může změnit. Zde tedy již neplatí to, že dokument přeložíte znovu do stejné podoby i za 20 let. Avšak s drobnými úpravami by se to jistě povedlo. Stále na tom budete nesrovnatelně lépe (jak ve výsledné kvalitě, tak s počtem ztracených nervových buňek) než při psaní dokumentů v jiných programech, kde je už problém při přenášení dokumentu z jednoho počítače na druhý.

Struktura dokumentu

Dokument v LaTeXu se skládá ze dvou částí. První část (nazvěme si ji hlavičkou) obsahuje základní nastavení celého dokumentu. V druhé části pak už budeme psát vlastní text. Než to ale uděláme, povíme si něco o příkazech.

Všechny příkazy začínají znakem \ (zpětné lomítko), za nímž následuje jméno příkazu. Pokud příkaz umožňuje zadání parametrů, píší se do bloků uvozených hranatými závorkami parametry nepovinné (oddělují se čárkou) a do složených závorek se vpisují parametry povinné. Posloupnost bloků nepovinných a povinných parametrů musí mít právě toto pořadí (v dřívějších verzích byl možný i opačný zápis).

Prvním příkazem v dokumentu je informace o stylu (třídě) psaného dokumentu (do verze 2.09 včetně se používal příkaz \documentstyle (nyní to je \documentclass), odtud tedy ten styl dokumentu, který se mi zdá pro naše území přijatelnější než třída dokumentu):

\documentclas­s{article}

Tímto úvodním příkazem jsme definovali, že budeme psát článek (article). LaTeX si tím nastaví hodnoty pro správný tisk dokumentu. Tento styl se používá nejčastěji. Lze také nastavit nepovinné parametry, např.:

\documentclas­s[11pt,titlepa­ge]{article}

Tím byly uvedeny dva nepovinné parametry (velikost základního písma (11pt) a požadavek, že budeme chtít vygenerovat úvodní stránku samostatně (titlepage)).

Za tímto úvodním příkazem většinou následují příkazy pro zavedení balíčků. Jednotlivé balíčky rozšiřují možnosti LaTeXu o různá prostředí (jako je například zápis algoritmů) nebo o zvláštní fonty, případně dělají úplně něco jiného.
Pro zavedení balíčku se používá příkaz \usepackage s tím, že jako povinný parametr se uvádí jméno balíčku, který chceme zavést, jako nepovinný parametr pak nějaká bližší specifikace. Tedy například:

\usepackage[la­tin2]{inputen­c}
\usepackage{czech}

Oba příkazy dělají to, co si pravděpodobně myslíte. První říká LaTeXu, že tento dokument bude mít vstupní kódování (inputenc) dle Latin2. Díky tomuto příkazu bude LaTeX vědět, co dělat s diakritickými písmenky. Druhý příkaz je bez nepovinného parametru a oznamuje, že dokument je psaný v češtině (k tomu se také potom přihlédne při formátování dokumentu).

Pak již následují další příkazy, o nich však již nelze říci nic konkrétnějšího. Vlastní text je uvozen příkazem \begin{document} a ukončen \end{document}. Mezi tyto dva příkazy se vepíše náš text, který může být formátován příkazy. Vše za příkazem \end{document} se ignoruje.

Držme se pravidla, že názornost je nejlepší, proto následuje celkový příklad:

\documentclass[11pt]{article}
\usepackage[latin2]{inputenc}
\usepackage{czech}
\usepackage{a4wide}

\begin{document}
  Můj už druhý dokument v \LaTeX u,
 tentokrát s češtinou.
\end{document}

[tex | dvi | ps]

V textu jsme použili již první formátovací příkaz. Byl jím \LaTeX, který místo sebe dosadí správně zapsané logo LaTeXu. Výřez této věty ze stránky si pak můžete prohlédnout níže. Všimněte si, že za příkazem \LaTeX byla mezera automaticky ignorována (příkaz by bylo možné zapsat také bez mezery, ale aby překladač poznal, kdy končí příkaz a začíná text, je nutné uvést prázdný blok povinných parametrů, tedy takto: …v \LaTeX{}u, ten­tokrát…).

ukazkový výřez z dokumentu

Styly

LaTeX má předdefinováno několik základních stylů (tříd):

Tabulka č. 130
article je používán nejčastěji a určen především pro odborné články, krátké zprávy, seminární práce, dokumentace k programům, …
report jeho použití není tak běžné, jelikož se používá až pro rozsáhlejší díla, která obsahují několik kapitol, mohou to být menší knihy nebo diplomové práce.
book z názvu je zřejmé, že právě toto je určeno pro psaní skutečných (plnokrevných) knih.
slide určeno pro blány používané při prezentacích na projektoru, pro tisk se použije velké bezpatkové písmo.
letter a poslední styl je určen pro psaní dopisů

V příkazu \documentclass lze použít tyto nepovinné parametry:

Tabulka č. 131
10pt, 11pt, 12pt určí výšku základního písma pro dokument. Výška je uvedena v tiskařských bodech. Pokud není uveden parametr, je implicitně použita velikost 10 bodů.
a4paper, ... udává velikost stránky, na kterou se bude provádět sazba dokumentu. Implicitní nastavení je letterpaper, lze ale použít některý z následujících: a5paper, b5paper, executivepaper, legalpaper. Narozdíl od američanů jsou evropané šetrní k lesům, a tak používají širší A4, proto se při sazbě u nás nepoužívá nastavení a4paper, ale použije se balíček a4wide (tedy příkaz \usepackage{a4wide}). Ten nastaví nové rozměry dokumentu, čímž se na stránku vleze více textu (toto nastavení se mi více líbí; nevypadá to, jako by autor neměl co říci a tak zúžil okraje, to je ovšem věc vkusu a američani jej asi mají jiný).
fleqn bude zarovnávat matematické rovnice na levou stranu, standardně jsou zarovnány na střed.
leqno a ještě jednou matematické rovnice, tentokrát se číslování rovnic bude sázet na levou stranu stránky (standardně to je vpravo).
titlepage, notitlepage Určí, zda titulní stranu sázet samostatně, či nikoliv. Pro styl article se normálně samostatná titulní stránka nepoužívá. Opakem jsou styly reportbook, kde je primárně nastavena samostatná stránka.
twocolumn máte chuť na sazbu do dvou sloupců?
twoside, oneside jedná se o nastavení, které rozhoduje, je-li výstup určen pro dvoustranný, nebo jednostranný tisk. Sazba jednostranná se od dvoustranné liší v různých velikostech okraje pravé a levé strany pro vazbu (ovlivňuje také sazbu čísla stránky, případně záhlaví apod.). Pro styl articlereport se používá jednostranná sazba, pro book pak oboustranná.
openright, openany Pokud styl umožňuje vytvářet kapitoly ( article to neumí), volba openright zajistí, že nová kapitola bude začínat na první pravé stránce. Volba openany nechá začátek kapitoly na nejbližší volné stránce. Styl report má implicitně nastaveno openany, styl book pak používá openright.

Balíčky

V přehledu uvedu některé balíčky, které sám používám. V některých dalších dílech se na ně koukneme detailněji, zde uvedený výčet je uveden pro úplnost tohoto článku (a také aby byla vidět všestrannost):

Tabulka č. 132
inputenc specifikuje se kódování vstupního souboru
czech nastavuje zásady typografie pro českou sazbu
a4wide nastaví velikost A4 dle evropských (tedy i našich) rozměrů
graphicx pro vkládání obrázků
algorithmic lze jednoduše zapisovat algoritmy
bbm speciální dvojité fonty pro matematiku
psfrag prohledává vkládané PostScripty a překládá v nich texovské výrazy
makeidx jednoduchým způsobem umožňuje vytvářet rejstřík
a mnoho dalších :)

Závěr

Omlouvám se, že je to dneska ještě takové faktografické a nedostali jsme se prakticky k ničemu, na druhou stranu nemáme kam spěchat :). V dalším dílu se podíváme, kde všude je potřeba nastavit TeX, aby správně podporoval češtinu, a vyzkoušíme si něco dalšího. Ti, kteří nemají správně nakonfigurovánu českou klávesnici a alespoň jeden editor, si nemusí zoufat, protože se této problematice budu věnovat ve zvláštním článku.

Pro slovenské uživatele: omlouvám se, že články jsou psány čistě pro češtinu, avšak v konfiguračních souborech je většinou sloveské nastavení hned vedle českého, a tak myslím nebude problém zakomentovat/od­komentovat řádek těsně vedle. A změna příkazu \usepackage{czech} na slovenský ekvivalent \usepackage{slovak} vás určitě napadla :-)

Našli jste v článku chybu?
13. 12. 2007 0:31
DDDDDDDD (neregistrovaný)
Tohle zarucene pojede \documentclass[11pt]{article} \usepackage[utf8]{inputenc} \usepackage{a4wide}
14. 11. 2010 14:08
sajmon (neregistrovaný)

Mne ani to nefunguje...nebere mi to vobec diakritiku...