Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

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

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?

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

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

Jakub Šťastný

Jakub Šťastný

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.

Školení: Návrh a používání MySQL databáze

 

Naučte se používat jednu z nejrozšířenějších databází. Dozvíte se vše potřebné od návrhu až po samotné využití MySQL v projektech.

Školení pro všechny, kteří se chtějí naučit efektivně pracovat s MySQL nebo se v práci s touto databází zlepšit.

Přihláška a podrobné informace

Ohodnoťte jako ve škole:
Průměrná známka 2,62

Přehled názorů

zajimave
Mirek 26. 1. 2007 02:17
Nový
zajimave
ForMat 26. 1. 2007 08:42
Nový
└ 
Re: zajimave
Jakub Šťastný 26. 1. 2007 14:14
Nový
Dík, dotaz a připomínka
Josef 26. 1. 2007 09:02
Nový
├ 
Re: Dík, dotaz a připomínka
Petr J. 26. 1. 2007 13:48
Nový
│
└ 
Re: Dík, dotaz a připomínka
Josef 26. 1. 2007 14:19
Nový
└ 
Re: Dík, dotaz a připomínka
Jakub Šťastný 26. 1. 2007 14:48
Nový
 
├ 
Re: Dík, dotaz a připomínka
Jakub Šťastný 26. 1. 2007 14:50
Nový
 
└ 
Re: Dík, dotaz a připomínka
Jan.Simunek 21. 8. 2009 11:14
Nový
Adekvát a ukázka
Radek 26. 1. 2007 09:37
Nový
└ 
Re: Adekvát a ukázka
Josef 26. 1. 2007 09:55
Nový
instal
anonymous 26. 1. 2007 10:17
Nový
└ 
Re: instal
Jakub Šťastný 26. 1. 2007 14:53
Nový
Ukazky
Peta 26. 1. 2007 10:42
Nový
└ 
Re: Ukazky
Jakub Šťastný 26. 1. 2007 14:56
Nový
ConTeX Wiki
Shadow 26. 1. 2007 16:23
Nový
└ 
Re: ConTeX Wiki
mys elf 26. 1. 2007 21:37
Nový
 
├ 
Re: ConTeX Wiki
mys elf 26. 1. 2007 21:39
Nový
 
└ 
Re: ConTeX Wiki
Jakub Hegenbart 26. 1. 2007 22:19
Nový
 
 
└ 
Re: ConTeX Wiki
mys elf 26. 1. 2007 23:00
Nový
editor
anonymous 26. 1. 2007 20:25
Nový
└ 
Re: editor
Jakub Šťastný 27. 1. 2007 09:36
Nový
 
└ 
Re: editor
Palo 28. 1. 2007 16:52
Nový
 
 
└ 
Re: editor
Jakub Šťastný 28. 1. 2007 16:56
Nový
 
 
 
└ 
Re: editor
mys elf 28. 1. 2007 21:55
Nový
 
 
 
 
└ 
Re: editor
Jakub Šťastný 28. 1. 2007 22:00
Nový
 
 
 
 
 
└ 
Re: editor
mys elf 28. 1. 2007 23:52
Nový
Preklad prikladu
marian 29. 1. 2007 09:33
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem