Hlavní navigace

ConTeXt: píšeme jednoduchý dokument I

19. 2. 2007
Doba čtení: 5 minut

Sdílet

Dneska se do toho vrhneme konečně naostro a naučíme se poradit si se základními elementy dokumentů. Svou pozornost zaměříme na hierarchickou strukturu dokumentu a s ní souvisejícími obsahy, seznamy, řezy písma, no a místo takovéu třešničky na dortu se trochu namlsáme barvičkami.

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.

CS24_early

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.

Seriál: ConTeXt

Byl pro vás článek přínosný?

Autor článku

Jakub Šťastný byl v letech 2007 až 2008 redaktorem serveru Root.cz. Mezi jeho zájmy patří Linux, programování a typografický systém TeX.