Hlavní navigace

ConTeXt: nastavování a definování

19. 3. 2007
Doba čtení: 3 minuty

Sdílet

V dnešním díle doženeme teorii a řekneme si něco o nastavování stávajících entit a definování entit nových. Vše si hned vyzkoušíme prakticky a naučíme se měnit vzhled nadpisů. Rovněž se podíváme na nastavení výčtových prostředí a prozradíme si zase něco zajímavého o barvičkách.

Teorie

Nastavování

Již jsme se s ním několikrát setkali. Vzpomínáte, jak se zapíná barevný výstup? Tak to je přesně ono. Obecně jakékoliv nastavování čehokoliv začíná magickým slůvkem \setup, za nímž je udáno, co to vlastně chceme nastavovat. Takže chceme-li nastavit, jak se budou číslovat stránky, sáhneme po příkazu  \setuppagenumbering.

Protože tentokrát bude možná trochu přezávorkováno, tak drobné upřesnění, jak to s těmi závorkami vlastně je: LaTeX píše nepovinné parametry do hranatých, a povinné parametry do složených závorek. Ne tak ConTeXt. Do hranatých závorek se píší parametry, kdežto do složených text, k němuž se vztahují. Jednotlivé parametry se oddělují čárkami. Mají-li nějakou hodnotu, klasicky se přiřazuje pomocí znaku „rovná se”. Obecně to vypadá nějak takto:  \setupcosi[volby, volba=hodnota].

Definování

I s ním jsme se již minimálně jednou setkali, a sice v příkladu se zvýrazňováním TeXové syntaxe. Zatímco nastavením pouze upravíme entitu, definováním vznikne entita jiná, odvozená od nějakého již existujícího vzoru. Něco jako vznik nového objektu v objektovém programování.

Tak jako při nastavování použijeme \setupcosi, při definování zase použijeme \definecosi. Když to trochu rozvedu, vypadá to obvykle nějak takto:

\definecosi[jméno][volby]
\definecosi[klon][originál] 

Jméno je důležité k tomu, abychom věděli, pod jakým názvem pak entitu budeme volat. Druhý příklad ukazuje, že pomocí definování můžeme stejné entitě přiřadit jiné jméno, jak se přesvědčíme za chvilku.

Praxe

Nastavování

Nastavujeme nadpisy k obrazu svému

U nadpisů se toho dá nastavit opravdu hodně – od zobrazování či nezobrazování čísla kapitol po barvu či řez písma a ještě mnohem více. Kouzelné slůvko pro nastavení nadpisu je \setuphead, za nímž následuje, jakou hierarchickou úroveň chceme nastavovat, a teprve za tím to, jak to má vlastně vypadat.

\setuphead
   [chapter]
   [page=yes,command=\blue,number=no] 

Ve výše uvedeném příkladě jsme nastavili všechny nadpisy kapitol, aby začínaly na samostatné stránce ( page=yes) a aby se před nimi nezobrazovalo číslo příslušné kapitoly ( number=no). Volbě command můžete přiřadit libovolný ConTeXtový příkaz, který má na tomto místě smysl, což může být třeba jakou barvu použít. Volba command se vyskytuje v setupech mnoha ConTeXtových entit. S ním jsou spřízněny volby before a after, kterým se jako parametr též předává ConTeXtový příkaz značící, co si přejeme provést před a po vysázení entity.

Přejete-li si nastavovat dále, můžete použít volbu style=<styl>, kde za styl můžete doplnit bold, slanted, boldslanted nebo type. Kromě volby style existují podobné volby, jako je textstyle nastavující styl textové části nadpisu kapitoly a numberstyle nastavující styl čísla kapitoly.

Kdybychom si přáli, aby nadpis kapitoly začínal na další pravé stránce, pak místo page=yes prostě použijeme page=right, či analogicky pro levou stránku  page=left.

Mimochodem, chcete-li nastavovat nadpisy sekcí a podsekcí zároveň, není to problém:

\setuphead
   [section,subsection]
   [volby] 

Nastavujeme výčtová prostředí

K tomu nám poslouží příkaz \setupitemize. S volbou packed bude mít výčtové prostředí kompaktnější vzhled, volba columns automaticky zapíná rozložení do sloupců. Opět jsou k dispozici volby before a after.

Definování

Definujeme si novou barvičku

Je to jednoduché. Stačí vědět, jak chceme barvičku pojmenovat a její vyjádření v RGB nebo CMYK systému:

\definecolor
   [indigo]
   [r=.0, g=.0, b=.5] 
\definecolor
   [cyan]
   [c=10, m=3, y=0, k=0] 

Pokud si vystačíte se stupněmi šedi, je to ještě jednodušší:

\definecolor[gray][s=0.75] 

V teoretické části jsem zmínil, že pomocí \define příkazů lze klonovat entity. To se provede jednoduše například takto:

\definecolor[important][red] 

Nyní máme dvě stejné barvy important a red. Jejich oddělení samozřejmě smysl má, protože uvědomíme-li si později, že na zvýrazňování důležitých věcí se víc hodí dejme tomu tmavě zelená s lehkým nádechem do hnědožluta, tak si ji prostě změníme na jednom místě a je to vyřešeno, netřeba nic nahrazovat v textu.

CS24_early

O tom, jak používat barvičky jsme si sice již trochu řekli v díle píšeme jednoduchý dokument, nicméně teď je ten pravý čas to trochu více rozvést:

\startcolor[indigo]
Nějaký obyčejný text
\stopcolor

Obyčejný text \color[indigo]{barevný text} obyčejný text
obyčejný text {\indigo opět barevný text}, obyčejný text 

Příště

Příště se těšte na sloupcovou vazbu, rámečky, čáry a různé další doplňující grafické elementy.

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.