Hierarchická struktura dokumentu
Základem každého slušného dokumentu je určitá hierarchická struktura. To je velmi důležité jak z hlediska snadného pochopení dokumentu, tak z hlediska zautomatizování práce s ním, ať již jde o společný styl nadpisů kapitol, výpis nadpisů kapitol v záhlaví či prostě automatická tvorba obsahu. Tuto filipiku proti psaní dokumentů složených ze změtí různě formátovaných elementů bez jejich jednoznačné návaznosti na hierarchickou úroveň nevedu jen tak bez příčiny – stačí se podívat do několika dokumentů, nejlépe poslaných od našich nepočítačově založených kamarádů či naší státní správy.
Hierarchické jednotky ConTeXtu
Nejvyšší hierarchická jednotka v ConTeXtu je \chapter
, po ní následuje \section
, \subsection
a \subsubsection
. Respektive existuje ještě vyšší jednotka než chapter a tou je \part
. Ta se nezobrazuje v TeXtu, ale v obsahu ji uvidíte.
Souběžně s touto strukturou máme ještě jednu paralelní. Zde je nejvyšší jednotkou \title
, po něm následuje \subject
, \subsubject
a aby těch sub nebylo málo, tak máme ještě \subsubsubject
. V čem se liší od té předchozí? Nejsou číslované a nevkládají se do obsahu. No vidíte… málem bych zapomněl na obsah.
Obsahy
Pro psaní obsahů máme v zásadě dva základní příkazy. Častěji používaný z nich se volá \completecontent
a způsobuje vysázení obsahu s nadpisem „Obsah” a tím druhým je \placecontent
. Ten vysází pouze obsah bez onoho nadpisu.
Řezy písem
Pro snazší orientaci v TeXtu je vhodné používat více řezů písem, a tedy každý systém sloužící k psaní jen trochu složitějších TeXtů touto možností disponuje. Nejinak je tomu v případě ConTeXtu. Kurzívu vykouzlíte, stejně jako v XHTML, pomocí em. Jenom to pochopitelně nebude tag, ale TeXový příkaz \em
. Vlastně je to trochu složitější, em je komplexní makro, které někdy přepíná na kurzívu a jindy na skloněné písmo, dostaneme se k tomu jindy. Důležité je vědět, že automaticky použije italickou korekci, což v ostatních případech musíme udělat ručně. Chceme-li explicitně volat skloněné písmo, můžeme tak učinit příkazem \sl
, kdežto italiku zavoláme příkazem \it
. Pro tučné písmo nám poslouží \bf
, pro tučnou kurzívu zase \bi
. Tučné skloněné písmo nám vykouzlí \bs
. Strojopis nastavuje \tt
a bezpatkové písmo \ss
. Na standardní patkové písmo nás vrátí TeXový příkaz \rm
.
Když už jsem nakousl tu italickou korekci – sázíme-li TeXt skloněným písmem či kurzívou (italikou), tak v bodě, kdy přechází kurzíva zpět do normálního písma se poslední písmenko psané kurzívou nepěkně naklání příliš blízko následujícímu TeXtu. A to právě řeší italická korekce. Buď používejte makro em a vůbec si s tím nelámejte hlavu, nebo musíte vložit \/
, což způsobí vložení větší mezery.
Skupiny
Teď je nejvyšší čas říct pár slov o skupinách. Skupina je do jisté míry autonomní jednotka, v tom smyslu, že když v ní nastavím tučné písmo, bude to platit pouze v ní. Skupinu můžete snadno kdekoliv v TeXtu vytvořit uzavřením do složených závorek.
Běžný \TeX{}t {\bf tučný \TeX{}t} opět běžný \TeX{}t
Předpokládám, že vám není jasné, co má k čertu znamenat ten „\TeX{}t”. Ve skutečnosti je to velmi jednoduché – příkaz \TeX
sází logo TeXu. Když chceme napsat TeXt, asi nemůžeme samozřejmě použít přímo \TeXt
, protože TeX by si myslel, že je to jeden příkaz. Proto použijeme prázdnou skupinu k jejich oddělení. Abyste nebyli později překvapeni, lze to řešit ještě třeba takto: \TeX t
. TeX totiž na mezery za příkazem kašle a sází až další nemezerový znak. To může občas dělat problém. Představte si třeba větu:
\ConTeXt je můj nejlepší kamarád
Nevysází se jako „ConTeXt je můj nejlepší kamarád”, nýbrž jako „ConTeXtje můj nejlepší kamarád”. Proto opět použijeme prázdnou skupinu, abychom tomu zamezili:
\ConTeXt{} je můj nejlepší kamarád
Už jen podotknu, že skupiny můžete do sebe vkládat, jak je libo, a pak vás s nimi přestanu trápit.
Výčtové seznamy
Narozdíl od LaTeXu si ConTeXt vystačí s jedním základním prostředím na seznamy. Tím základním prostředím je itemize
. Prostředí je všechen TeXt mezi \start<jméno_prostředí>
a \stop<jméno_prostředí>
. Pro označování jednotlivých položek se používá \item
. Takže základ vypadá takto:
\startitemize
\item položka
\item druhá
\item ještě jedna
\stopitemize
Možná bych sem neměl tahat svoji náklonnost k plainu, ne zdaleka vždy se v ConTeXtu vyplatí plainovské fígle používat, ale tohle je opravdu pěkný trik:
\catcode`\*=13
\def*{\item}
\startitemize
* položka
* druhá
* třetí
\stopitemize
Hned je to snazší, viďte? Samo o sobě velmi jednoduchý trik, ale k jeho pochopení je třeba mít už poměrně slušné základy TeXu, a proto zájemce odkazuji na skvělou knihu Petra Olšáka TeXbook naruby. Je k dostání jak v tištěné podobě, tak v podobě elektronické včetně zdrojových kódů, které jsou mimochodem velice poučné. Stáhnout si je můžete ze stránek autora.
Různé typy odrážek můžeme nastavit pomocí \startitemize[n]
dělá číslovaný seznam a \startitemize[r]
zase seznam číslovaný římskými čísly. K dalším typům se dostaneme, až se budeme tímto prostředím zabývat detailněji.
Barvičky
O barvičkách se toho dá napsat hodně, teď vezmu jen naprostý základ – chcete-li barvičky, je třeba aktivovat barevný výstup pomocí \setupcolors[state=start]
a pak zkusit nějakou použít. V základních barvách je k dispozici poměrně dost barev, všechny si je můžete vypsat příkazem \showcolor
. Ten udělá v dokumentu tabulku s barvičkami a jejich názvy a každý název lze použít jako TeXový příkaz. Kupříkladu vidím, že je tam barva middlecyan, tak zkusím {\middlecyan zkouška barviček}
a je to. Nic nám nebrání nadefinovat si barvy svoje, ale o tom až někdy příště.
Příště
Příště budeme pokračovat v rozběhnutém odhalování základů ConTeXtu. Rozhodně se můžete těšit na delší souvislou ukázku. Ty znalejší z vás, kteří se možná budou rozčilovat, proč jsem důkladně nerozebral tak důležité nastavování, byť jsem to mohl sjet rovnou s nadpisy a podobně, mohu ubezpečit, že se k tomu dostanu. Ale nejdřív chci projít základy.