ConTeXt: sloupcová sazba a drobné grafické elementy

Jakub Šťastný 2. 4. 2007

Protože sloupcová sazba je dnes nepostradatelná a používá se snad na každém kroku, v dnešním díle se budeme věnovat právě jí. Od sloupcové sazby se posléze přesuneme k drobným grafickým elementům, jako jsou rámečky, čáry a podobně. Nakonec to celé završíme dlouho očekávanou ukázkou.

Sazba do sloupců

Chceme-li dokument sázet ve více sloupcích, pomůže nám prostředí columns. Protože je to prostředí, připomínám, že požadovaný text je třeba sázet mezi \startcolumns a \stopcolumns. Má poměrně dost voleb. Parametrem n můžete specifikovat, kolikasloupcovou sazbu si to vlastně přejete. Není-li specifikováno jinak, defaultní hodnota jsou dva sloupce. Dalším důležitým parametrem je rule vykreslující oddělující čáru mezi sloupci. Může nabývat hodnot on nebo off. Defaultní je volba off, čili sloupce neoddělené čarou.

Protože jsme se v minulém díle naučili nastavovat vlastnosti elementů pomocí \setupcosi, dnes si to můžete vyzkoušet třeba právě na \setupcolumns. Rozhodně nejužitečnější bude globální nastavení voleb n a rule, které jsem již popsal výše. Existuje sice spoustu dalších voleb, nicméně protože zde není dostatek prostoru k tomu popisovat je všechny, odkáži tedy laskavého čtenáře na dokumentaci.

Potřebujete-li v sloupcové sazbě vynutit přechod do nového sloupce, zkuste použít  \column.

Rámečky

Rámečky můžete tvořit příkazem \framed. Jeho možné volby jsou velice pestré. Občas se třeba hodí direktivně určit rozměry rámečku, což se dělá pomocí width=n a height=n, tedy například rámeček pro lidi, co netroškaří: \framed[width=50cm,height=100cm]{Vztahovaný text.}. Volbou align zase můžete určit zarovnání. Nejdůležitějšími povolenými hodnotami jsou left, rightmiddle.

Mně osobně se rámečky s ostrými rohy nelíbí ani trochu, a tak ještě používám volbu corner=round, která vykresluje rámečky s oblými rohy. K tomu zpravidla přidávám barvu pomocí

background=color,backgroundcolor=<barva_pozadi>,foregroundcolor=<barva_textu>

Ještě bych chtěl upozornit na jednu věc – řádkové zlomy. Rámečky totiž nejsou dimenzované na větší texty. Tuto funkcionalitu lze naštěstí mnohem lépe suplovat třeba příkazy pro práci s pozadím nebo prostředím framedtext, ke kterému se dostaneme za chvilku. Nicméně pokud již musíte v rámečku řádkový zlom dělat, použijte  \\.

S příkazem \framed je velmi blízce spjat příkaz \inframed. Zásadní odlišnost spočívá v tom, kde začíná rámeček. V případě textu lokalizovaného uvnitř \framed, začíná rámeček na spodní lince, a tedy písmo se – za předpokladu, že jej umisťujete přímo do textu – „vznáší” nad ostatním textem. Oproti němu text, který se nalézá uvnitř \inframed, přesně navazuje na text okolní, a logicky tedy spodní okraj rámečku je o něco níže.

Chcete-li dávat do rámečku více textu, zkuste použít prostředí framedtext. Můžete mu předávat stejné parametry jako v případě framed, nicméně na změny v \setupframed  neslyší, je třeba použít \setupframedtexts. U rámečků, zvláště těch větších, se občas hodí nevykreslovat rám – to se dělá pomocí  frame=off.

Čáry máry

ConTeXt nám dává k dispozici spoustu druhů čar. Velmi užitečná je čára generovaná příkazem \textrule{text nadpisu}. To vygeneruje okolo nadpisu z obou stran čáru zhruba v polovině výšky textu, což vypadá moc pěkně a s oblibou to na nadpisy používám. Samozřejmě ale použít se to dá na ledacos, ne pouze na nadpisy.

„Normální” vodorovnou linku generuje příkaz \hairline. Podobně funguje také \thinrule, které ale narozdíl od předchozí neuzurpuje celou řádku pro sebe, nýbrž navazuje plynule na slova odstavce. Na generování více linek lze s úspěchem použít jeho mutaci \ thinrules[n=<cislo_radek>], kde cislo_radek samozřejmě znamená počet řádek, které chceme vyplnit čarou.

Vyloženě okrajově zmiňuji čáry generované příkazy vl a hl, které generují vertikální a horizontální čáru, ovšem jsou to – abych tak řekl – čáry „nižší úrovně”. Příliš často je využívat není třeba. Zato se občas hodí označit odstavec, který jsme třeba editovali či který je nějakým způsobem zajímavý. Lze tak učinit pomocí \startmarginrule odstavec \stopmarginrule, které vytvoří svislou čáru před textem odstavce.

Aby si všichni přišli na své, mám tu čáru pro blackmetalisty. \blackline. Jedná se o kraťoučkou, avšak velmi silnou čáru. Je sice z těch méně praktických čar, nicméně občas se hodit může. Poslední čára, kterou zmíním, je \fillinline. Pomocí ní lze vytvořit slovo zarovnané na levou stranu stránky následované čarou zarovnanou ku pravé straně. Dejme tomu \fillinline[width=5cm]{Podpis} vytvoří linku začínající slovem „Podpis” následovanou čarou dlouhou 5 centimetrů zarovnanou ku pravému okraji stránky.

Ukázka

Protože jste již mnozí volali, že by to chtělo taky nějakou komplexnější ukázku, a já sám jsem téhož názoru, máte ji mít: zdrojový kód, výsledné PDF. Jako text ideální délky jsem vybral článek o WeeChatu. Abyste jej mohli zkompilovat, musíte mít v adresáři se zdrojovým kódem soubor weechat.png, který můžete stáhnout ze zmiňovaného článku. A příště se těšte na tabulky.

Ohodnoťte jako ve škole:

Průměrná známka 3,16

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
120na80.cz: Tady se vaří padělané léky

Tady se vaří padělané léky

Podnikatel.cz: Podání k DPH jinak než online jsou neúčinná

Podání k DPH jinak než online jsou neúčinná

Lupa.cz: Přenos hokeje padal kvůli útoku, tvrdí O2

Přenos hokeje padal kvůli útoku, tvrdí O2

Podnikatel.cz: Když už je sexy, tak ať taky funguje

Když už je sexy, tak ať taky funguje

Vitalia.cz: Proč máme prasklý chléb nejraději?

Proč máme prasklý chléb nejraději?

Podnikatel.cz: Alza radí e-shopům, jak opustit Heureku

Alza radí e-shopům, jak opustit Heureku

Vitalia.cz: Taky ji kupujete? Je šizená

Taky ji kupujete? Je šizená

Vitalia.cz: Dnešní patolog o mrtvolu téměř nezavadí

Dnešní patolog o mrtvolu téměř nezavadí

DigiZone.cz: Šlágr TV: pokuta 100 tisíc za on-line

Šlágr TV: pokuta 100 tisíc za on-line

Podnikatel.cz: Šizený guláš na pultě. Jako Lidl to nedělejte

Šizený guláš na pultě. Jako Lidl to nedělejte

Vitalia.cz: Mražené ryby z Makra byly falšované

Mražené ryby z Makra byly falšované

Vitalia.cz: SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí

SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí

Lupa.cz: Válka e-shopů. Alza končí s Heurekou

Válka e-shopů. Alza končí s Heurekou

DigiZone.cz: Konec geoblokace? Ani náhodou…

Konec geoblokace? Ani náhodou…

Root.cz: DDoS útoky aneb když vám zahltí dráty

DDoS útoky aneb když vám zahltí dráty

120na80.cz: 10 dezinfekcí: Vede „starý dobrý“ peroxid

10 dezinfekcí: Vede „starý dobrý“ peroxid

120na80.cz: Jak si udržet zdravou vaginu

Jak si udržet zdravou vaginu

Vitalia.cz: 7 nemocí očí, které musíte léčit včas

7 nemocí očí, které musíte léčit včas

DigiZone.cz: Mafra varuje před stíháním za pomluvu

Mafra varuje před stíháním za pomluvu

Podnikatel.cz: Heureka pod Rockaway? Tohle musí splnit

Heureka pod Rockaway? Tohle musí splnit