Hlavní navigace

ConTeXt: nastavování a definování

Jakub Šťastný

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.

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.

Našli jste v článku chybu?

21. 4. 2007 12:27

Omlouvam se mozna za stupidni dotaz - jsem ConTeXtovy zacatecnik. Existuje nejaka moznost jak nastavit na nektere konkretni strance (v mem pripade na prvni) jinou vysku header nez na ostatnich stranach ??? Jde mi o to, ze kdyz do header umistim logo,ktere je vyssi nez je vyska header, tak mi pak text z oblasti TEXT zasahuje do loga... V manualu se to doporucuje resit napr. pomoci \blank[force,8\bodyfontsize] ale zajima mne jestli to nejde pomoci nastaveni vysky header na konkretni strance...

19. 3. 2007 12:01

Pokud ja vim, je part > chapter > section > subsection > subsubsection > subsubsubsection (tam si nejsem zcela jist, mozna si vymyslim) a to je vse. (+ ty co nejdou do obsahu a la subject a podobne). Prijde mi to dostatecne, ostatne v html take neni <h264>nadpis</h264> ;)
Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

DigiZone.cz: Test Philips 24PFS5231 s Bluetooth repro

Test Philips 24PFS5231 s Bluetooth repro

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č?

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

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

1. den EET? Problémy s pokladnami

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

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

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

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy