Hlavní navigace

ConTeXt: seznámení s typografickým systémem

Jakub Šťastný

Chtěli byste dělat kvalitní sazbu? Příjde vám LaTeX moc neohebný a plain moc složitý? Chtěli byste ovládat snadnou a zároveň kvalitní typografickou sazbu, která musí být zároveň moderní a graficky atraktivní? A zkoušeli jste už ConTeXt? Že jste to nikdy neslyšeli?

Komu je určen seriál

Seriál je určen i začátečníkům. Očekávám sice již znalost nějakého TeXovského balíku (zpravidla LaTeX nebo plain), nicméně rozhodně to není nutností. Co se rozsahu týče, záleží hlavně na vás, čtenářích. Rád bych aby z toho vzešel slušný a ucelený návod na „ConTeXtování”, protože co se dokumentace týká, tak je pořád co dohánět. A v té české zvlášť.

O co jde

ConTeXt je, stejně jako třeba LaTeX, balík maker pro typografický systém TeX. ConTeXt ovšem zachází mnohem dál – není to nadstavba pouze nad TeXem, ale i nad dalšími balíky software, jako je třeba MetaPost. MetaPost je jazyk k programování vektorové grafiky, což přináší do TeXové sazby schopnost atraktivní sazby.

Vyvíjí jej nizozemská firma Pragma ADE, konkrétněji Hans Hagen, již někdy od roku 1990. Po dlouhou doby byla k dispozici pouze holandská dokumentace, což přirozeně bránilo většímu rozšíření tohoto balíku maker. Co se licence týče, je situace podobná jako u TeXu – zdrojáky jsou volně k dispozici, ale po jejich úpravě se již nesmí šířit pod jménem ConTeXt.

Srovnání s LaTeXem

U LaTeXu je jeho omezením jeho primární určení – především vědecké publikace, u kterých až tak moc nezáleží na grafice, barvičkách a moderním vzhledu. Toto LaTeX nabízí, ale když chce člověk víc, může zažít poměrně krušné chvilky. Kdo to někdy zkoušel, ví o tom své.

Na rozdíl od LaTeXu, který je postaven „na zelené louce”, je ConTeXt postavený nad makry plainu. Prakticky se tam s nimi ale moc nesetkáte a většinou jejich používání není ani dobrý nápad.

ConTeXt je také „chytřejší” v tom ohledu, že nemusíte řešit, kolikrát všechno přeložit, aby byl správně vysázen obsah a podobné věci. Je to tím, že není volána přímo TeXová binárka, ale Perlovský skript TeXexec, který toto řeší automaticky. Ovšem není to jediná věc, co nám tento milý skriptík přináší, lze mu například předat parametr specifikující výsledný výstup (do Postskriptu, PDF nebo DVI), použité kódování, jaké strany si přejete zpracovat, zda se má sázet koncept nebo již dokument „na čisto” a podobně. Krom TeXexec se používá také pomocný program TeXutil.

Výhody a nevýhody

Za velikou výhodu ConTeXtu považuji propojení typografického světa TeXu s MetaPostovým světem grafiky. V jednom dokumentu můžeme využívat jak příkazů TeXových, tak MetaPostových, jejichž využívání je navíc zjednodušeno balíkem maker MetaFun. Pro psaní publikací TeXnického charakteru člověk určitě ocení zvýrazňování syntaxe pro některé jazyky (bohužel těch přímo podporovaných zatím moc není, pokud je mi známo).

ConTeXt hodně staví na PDFTeXu, což se projevuje nejen skvělou podporou práce s barvami, ale i schopností interaktivity. Hypertextové odkazy v TeXovských dokumentech tedy již nejsou díky ConTeXtu nic zvláštního. Ale tam to teprve začíná – pro interaktivitu lze používat JavaScript. Chcete si napsat v TeXu vědeckou kalkulačku? Není problém, vlastně jedna taková již byla pro demonstrování schopností ConTeXtu napsána.

V žádném případě nelze opomenout, že ConTeXt dnes již dokáže sázet i XML soubory. A také se v něm také velmi dobře sází chemické vzorce a rovnice (díky modulu PPCHTeX).

Co se nevýhod týče, je fakt, že ConTeXt je naprosto jednoznačně nejpomalejší z TeXových maker. Ale při dnešním výkonu HW, má to smysl řešit?

Zmíním ještě to, že ConTeXt má více národních rozhraní. Takže místo \chapter můžete klidně používat \kapitola (za předpokladu, že na to překladač upozorníte). Já osobně to nepovažuji za vhodné, kvůli tomu, že v Japonsku si s naší „kapitolou” zkrátka neporadí, ale je to na vás, ConTeXt umožňuje i toto.

Jdeme na věc!

Dost již bylo teorie, raději si ukážeme ConTeXt v praxi.

\setupoutput[pdftex]         % Určuje výstup ConTeXtu.
\enableregime[utf]           % Kódování.
\mainlanguage[cz]            % Podle typografických pravidel
% jaké země se bude ConTeXt řídit.
\setuppapersize[A5][A5]      % Velikost papíru bude A5 a bude na stránce opět o téže velikosti.
% Samozřejmě lze mít dvě stránky A5 na stránce A4 (proto ta druhá volba).
\setupcolors[state=start]    % Zapne používání barev.
\setuppagenumber[state=stop] % Vypne číslování stránek.
\setupframed                 % Nastavujeme text v rámečcích.
    [corner=round,            % Rámeček bude mít oblý roh.
    framecolor=blue,          % Rámeček bude modrý.
    background=color,         % Pozadí bude barevné.
    backgroundcolor=green]    % Určujeme konkrétní barvu pozadí.
\definetyping                % Nadefinujeme jazyk, jehož syntaxi chceme zvýrazňovat.
    [TEX]                     % Název, na který se budeme odkazovat.
    [option=TEX]              % Jazyk.

% Informace o dokumentu, dostupné skrze "vlastnosti" v pdf prohlížeči.
\pdfinfo{
   /Title (Hello ConTeXt)
   /Author (Botanicus)
   /ModDate (\currentdate)
}

\starttext
% Je podobné LaTeXové konstrukci \begin{document},
% počátek dokumentu, ovšem není to úplný adekvát.

\framed{\bi Hello \ConTeXt!}
% \framed dělá rámeček
% \bi dělá tučnou kurzívu
% \ConTeXt sází logo

% Použijeme námi nadefinované zvýrazňování syntaxe.
\startTEX
\setupoutput[pdftex]         % Určuje výstup ConTeXtu.
\enableregime[utf]           % Kódování.
\mainlanguage[cz]            % Podle typografických pravidel

{\bi Toto je vlastní dokument.}
% Výčtový seznam pomocí odrážek.
\startitemize
    \item položka
    \item druhá
    \item ještě jedna
\stopitemize
\stopTEX

\stoptext
% Opět něco podobného LaTeXovskému \end{document},
% konec vlastního dokumentu. 

Teď stačí dokument přeložit příkazem texexec dokument. Můžete si všimnout, že vzniká poměrně dost různých pomocných souborů. Aby v tom byl pořádek, leckdy se hodí udělat si Makefile, kde si kromě „úklidu” můžete také další akce související třeba s prohlížením dokumentu a podobně. Fantazii se meze nekladou.

Příště

Toto byl jen takový rozehřívací díl, pořádně se do toho vrhneme příště. Budu se snažit seriál psát hodně prakticky, takže začneme tím, co je asi nejdůležitější – logická struktura dokumentu, výčtové seznamy, písma… nebo tak něco. To podle toho, na co budu mít právě chuť a co se do příštího dílu zrovna vejde. Rozhodně se nemusíte bát, že byste o to přišli.

Odkazy

Našli jste v článku chybu?

21. 8. 2009 11:14

Jan.Simunek (neregistrovaný)

to \enableregime[la­tin2] opravdu neudělá korektní češtinu – pouze způsobí vynechání znaků s diakritikou. Opravdu by to chtělo udělat vyzkoušený (= fungující) příkaz pro vstup z textu, kde je čeština standardně kódována podle ISO kódování, aby člověk nemusel každý text ručně převádět do UTF-shitu.

29. 1. 2007 9:33

marian (neregistrovaný)
Pre tych, ktori by si chceli ConTeXt vyskusat a nemaju ho nainstalovany, mozu pouzit on-line system na http://live.contextgarden.net/. Je vsak potrebne pred skopirovanim textu do okna systemu nastavit vas prehliadac na zhodne kodovanie, ake je pouzite v prikaze \enableregime[...].
Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Poznáte poctivé suroviny na pečení cukroví?

Poznáte poctivé suroviny na pečení cukroví?

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

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

Na ucho teplý, nebo studený obklad?

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

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

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

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

120na80.cz: Jmelí je více léčivé než jedovaté

Jmelí je více léčivé než jedovaté

Vitalia.cz: I církev dnes vyrábí potraviny

I církev dnes vyrábí potraviny

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

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

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

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

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