Hlavní navigace

Jak na LaTeX: pronikáme hlouběji

Michal Švamberg 12. 7. 2001

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?

14. 11. 2010 14:08

sajmon (neregistrovaný)

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

13. 12. 2007 0:31

DDDDDDDD (neregistrovaný)
Tohle zarucene pojede

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



Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?