Hlavní navigace

TeX pro každého - TeX a jeho nadstavby

Stanislav Brabec 11. 11. 2002

Jak jste asi zjistili (a to i v případě, že jste minulé díly přeskočili), primitiva TeXu nepatří mezi zrovna přívětivé prostředí pro sazbu. Naštěstí k TeXu existují nadstavby a balíky maker, díky nimž se z TeXu stane jednoduchý a snadno použitelný nástroj, který zvládne téměř každý.

Úkol všech nadstaveb TEXu je jediný – sestavit z primitiv makra, která může používat obyčejný uživatel, aniž by se musel zajímat o nízkoúrovňové záležitosti.

Plain TEX

Je první nadstavbou, jejíž autorem je sám Donald Ervin Knuth. Jejím cílem je nabídnout základní makra a prostředí pro další práci.

Není příliš přívětivá pro grafickou práci – má předdefinované jediné písmo v jediné základní velikosti s jediným stylem nadpisů. Zato makra pro sazbu matematiky i zde najdeme téměř v plné síle.

Plain TEX nedisponuje ani snadno použitelnými makry pro obsahy, rejstříky, seznamy ilustrací a literatury ani křížovými odkazy. To vše si musí každý opatřit sám.

Oč méně je zde vymožeností, o to jednodušeji se v ní píší vlastní makra. Je tedy počátečním bodem pro vlastní díla a dílka. Stačí pochopit nízkoúrovňové vlastnosti TEXu a přečíst si pár maker v jediném souboru plain.tex.

Téměř každý, kdo se rozhodne pro práci v plain TEXu, si dříve či později vytvoří vlastní styl, který mu vyhovuje.

Výhodou plain TEXu je výborná reprodukovatelnost výsledků. Naproti tomu nemusí být triviální přenést složitější sazbu na jiný počítač, právě pro množství individuálně napsaných maker. A to ani nemluvím o spojení dvou dokumentů od dvou různých autorů…

\centerline{\bf Nadpis}

\smallskip

\beginsection 1. Podnadpis

A~zde je text\footnote*{A~toto je
pozn\'amka pod \v carou.}.

\bye

Poznámka k ukázce: Chcete-li používat češtinu snadněji, musíte použít např. csplain.

LaTEX

LaTEX zavedl do TEXu jasně strukturovaný styl, prostředí a makra definovaná v jejich rámci. Definice stylu a vlastní sazbu od sebe tvrdě oddělil.

LaTEX obsahuje schémata pro snadný výběr velikostí a řezů písma (NFSS), stejně tak jako makra pro všechy druhy výše uvedených referencí.

Původní verzi LaTEXu vytvořil Leslie Lamport (poslední verze LaTEX 2.09 je z roku 1992), nynější verze LaTEX 2ε je prvním krokem k cílovému projektu LaTEX3.

Napsat složitější makra v LaTEXu vyžaduje poněkud hlubší znalosti, než jsou potřeba pro plain TEX. Především je třeba dát pozor na robustnost maker (tedy možnost použít je jako součást křížové reference či nadpisu, aniž by se nežádoucím způsobem expandovala). Problémem (dnes již mizejícím) je také nekompatibilita starších verzí.

Pokud však nechceme svému dokumentu dát naprosto osobitý styl, nemusíme se učit programovat makra. Můžeme si vybírat ze stovek předpřipravených stylů pro nejrůznější použití (články, knihy, časopisy, dopisy, abstrakty…).

Povinná strukturovanost LaTEXu je vykoupena jeho nepříjemnou „ukecaností“ – povinností uzavírat bloky textu mezi \begin{význam} a\end{význam}. Má to však i svou světlou stránku – existují převodníky LaTEXového dokumentu do jiných formátů (např. HTML, XML, SGML) a ty nemusejí znát všechny složitosti TEXu.

Díky této strukturovanosti je snadné vysázet stejný dokument na samostatných listech, či jako součást sborníku. Dokument se vždy přizpůsobí stylu, aniž bychom do textu dokumentu dělali jakékoliv zásahy! Této vlastnosti LaTEXu často využívají vědecké časopisy – přispěvatelé mohou snadno napsat článek pro různé časopisy a redakce nemají práci se sjednocením vzhledu. Zvlášť pro matematické časopisy se stal LaTEX standardem.

LaTEX je také výborným meziformátem nejrůznějších tiskových filtrů.

Protože TEX není až tak dokonale vybaven pro tento typ nadstaveb, jsou všechny tyto vlastnosti jsou vykoupeny zhruba 20% snížením rychlosti zpracování.

\documentclass{article}

\usepackage{czech}

\usepackage[latin2]{inputenc}

\begin{document}

\section{Nadpis}

\subsection{Podnadpis}

A~zde je text\footnote{A~toto je
poznámka pod čarou.}.

\end{document}

ConTEXt

Nejmladším ze „silné trojky“ je ConTEXt. Vývoj systému ConTEXt započal u holandské firmy Pragma ADE a J. Hagena a A. F. Ottena. ConTEXt je již svým návrhem zaměřen na komplikovanou sazbu. Má plnou podporu pro výstup barev, grafiky, všech druhů odkazů, ale dokonce i pro archovou montáž.

ConTEXt se snaží propojit všechny součásti TEXové distribuce (tedy pdfTEX, METAFONT i METAPOST) do jednoho silného prostředí. ConTEXt plně spolupracuje i s pdfTEXem a je jedním z nejsilnějších nástrojů pro tvorbu komplikovaných PDF dokumentů.

Pozadu nezůstává ani při sazbě XML dokumentů. Nepotřebuje žádný preprocesor – jeho novější verze totiž zvládají sazbu na základě stylových souborů XSLT přímo v TEXu.

Plain TEXu chybí pro komplikovanou sazbu množství maker, v LaTEXu není triviální dělat místně platné změny do stylu. To vše řeší ConTEXt možností úpravy prakticky všech hodnot pro prakticky všechny objekty.

To vše něco stojí. ConTEXt je bezesporu největší a nejpomalejší nadstavbou. V porovnání s plain TEXem můžeme očekávat téměř o řád větší požadavky na paměť i zpomalení sazby.

\starttext

\kapitola{Nadpis}

\sekce{Podnadpis}

A~zde je text \poznamkapodcarou{A~toto
je poznámka pod čarou.}

\stoptext

Poznámka k ukázce: Ukázka byla připravena formátemcont-cz.

Balíky maker nezávislé na nadstavbě

Kromě maker a balíků určených pro jedinou nadstavbu existují také univerzální balíky. Některé z nich jsou natolik zajímavé, že se o nich zde zmíníme zvlášť.

epsf

Jde o soubor, který slouží k práci s EPS soubory – základním typem obrázků, používaných v TEXu (kromě pdfTEXu).

Pstricks

Další balík pro práci s PostScriptem. Umožňuje vkládat vektorovou grafiku, rotovat a jinak transformovat text, pracovat s barvami a mnoho dalšího.

Speciální nadstavby

Eplain

Eplain je rozšíření plain TEXu zaměřené na pokročilejší uživatele plain TEXu. Přidává do něj práci s odkazy a vylepšení některých funkcí pro sazbu.

Texinfo

Texinfo je nadstavbou, která je specializovaná pro tiskovou přípravu dokumentů texinfo – tedy jednoho ze základních dokumentačních formátů, používaných ve světě otevřeného softwaru (hypertextová dokumentace, z níž se generují info a html stránky).

AMSTEX

AMSTEX je specializovanou nadstavbou Americké matematické společnosti. To určuje i oblast jeho nasazení – sazba komplikované matematiky. Existuje ve verzích pro plain TEX i LaTEX.

Našli jste v článku chybu?
Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

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

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

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

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

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

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

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

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

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

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