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):
\documentclass{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ř.:
\documentclass[11pt,titlepage]{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[latin2]{inputenc}
\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}
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, tentokrát…).
Styly
LaTeX má předdefinováno několik základních stylů (tříd):
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:
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 report a book , 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 article a report 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):
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/odkomentovat řádek těsně vedle. A změna příkazu \usepackage{czech} na slovenský ekvivalent \usepackage{slovak} vás určitě napadla :-)