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é příspěvky e-mailem
Vitalia.cz: Fuck you, rakovino

Fuck you, rakovino

Lupa.cz: Stream koupil Červeného trpaslíka a další seriály

Stream koupil Červeného trpaslíka a další seriály

Podnikatel.cz: Daň z příjmů: online formulář

Daň z příjmů: online formulář

Vitalia.cz: Italové v Praze: Sýry vyrábějí z našeho mléka

Italové v Praze: Sýry vyrábějí z našeho mléka

Lupa.cz: Pokud chcete být špičkový programátor…

Pokud chcete být špičkový programátor…

Vitalia.cz: Nafotila svůj boj s rakovinou

Nafotila svůj boj s rakovinou

Vitalia.cz: Inspekce kontrolovala pesticidy a vodní dýmky

Inspekce kontrolovala pesticidy a vodní dýmky

Podnikatel.cz: Podal přiznání, má přeplatek. Nevrátí mu ho

Podal přiznání, má přeplatek. Nevrátí mu ho

Lupa.cz: Jak na wifi zdarma? Praha 11 se spojila s komunitou

Jak na wifi zdarma? Praha 11 se spojila s komunitou

Vitalia.cz: Černá ředkev: silné přírodní antibiotikum

Černá ředkev: silné přírodní antibiotikum

Podnikatel.cz: Sick day ve hře. Ale s přísnými pravidly

Sick day ve hře. Ale s přísnými pravidly

Podnikatel.cz: Nechtějí vrátit odpočet DPH? Chtějte úrok

Nechtějí vrátit odpočet DPH? Chtějte úrok

Lupa.cz: Jak hackovat banky? Útočníci mají nový trik

Jak hackovat banky? Útočníci mají nový trik

Vitalia.cz: Levnější pivo? Babiš neví, co činí

Levnější pivo? Babiš neví, co činí

Vitalia.cz: Čínská medicína: Citron při chřipce ne

Čínská medicína: Citron při chřipce ne

Podnikatel.cz: Babiš chce snížit DPH u piva o 10 %

Babiš chce snížit DPH u piva o 10 %

Vitalia.cz: Kouzlo generik: Jak se liší Paralen a Paralen Grip?

Kouzlo generik: Jak se liší Paralen a Paralen Grip?

Root.cz: EU chce zrušit anonymní platby

EU chce zrušit anonymní platby

Lupa.cz: Většině vašich přátel z Facebooku jste ukradení

Většině vašich přátel z Facebooku jste ukradení

Podnikatel.cz: EET dostala zelenou. Na podzim to vypukne

EET dostala zelenou. Na podzim to vypukne

Ušetřete