Čeština a LaTeX

Československé sdružení uživatelů TeXu (ve zkratce csTUG) je organizace, která sdružuje zájemce o TeX a navazující produkty v celé naší bývalé republice. Hlavní náplní této organizace je poskytovat doplňky specifické pro sazbu čestiny (tj. především řešit problémy spojené s háčky a čárkami). Vše podstatné lze vyčíst z jejich webových stránek. Já se ovšem domnívám, že pro sazbu četiny zvolili poněkud nevhodný postup: spravují a vytvářejí fonty, které přmo obsahují české znaky a pro jejich použití je potřeba použít i počeštěné verze TeXu (a spol), které poznáte podle toho "cs" v názvu. Tento postup má tu základní nevýhodu, že je nepoužitelný mimo hranice naší vlasti, kde se sice běžně potkáte s TeXem a LaTeXem, ale nemají tam, pochopitelně, csTeX a csLaTeX. Pro sazbu češtiny existuje dnes totiž, podle mě, lepší řešení: použít tzv. babelizovaný LaTeX a tomu se věnuje následující odstavec.

Babelizovaný LaTeX

Ačkoli se na stránkách csTUGu o babelu mnoho nedočtete, stal se součástí standardní instalace LaTeXu. O co vlastně jde? Balíček "babel" se snaží poskytnout podporu pro sazbu ve všech evropských jazycích (používajících latinku) a taky trochu v řečtině a ruštině (to jsem ale nezkoušel, takže nemohu potvdit). Umožňuje též sazbu vícejazyčných dokumentů, kde se každá část řídí pravidly daného jazyka (např. sazba manuálů).

Hlavní výhodou je, že je to pouze balíček (angl. package), který lze doinstalovat do libovolné instalace LaTeXu (pokud tam ještě není). Všechny podstatné informace najdete v jeho dokumentaci, takže to tu nebudu příliš rozvádět. Uvedu tady jen návod, jak sázet češtinu bez problémů.

Do hlavičky dokumentu dejte příkaz:
\usepackage[czech]{babel}
a už vám bude LaTeX psát "Kapitola" místo "Chapter" atp. K tomu, abyste mohli použít vzory pro dělení slov, je potřeba použít fonty, které neskládají akcentované znaky ze dvou znaků (zvášť například háček a písmeno), ale obsahují již "české" znaky. Standardně je to splněno pro fonty, které mají tzv. T1 kódování. K jejich použití stačí přidat do hlavičky další řádek:
\usepackage[T1]{fontenc}

A už zbývá jen jeden důležitý krok: LaTeX se musí nějak dozvědět, v jakém kódování je váš dokument. Angličany to nezajímá, ti mají svoje ASCII, ale my potřebujeme nějak zadávat české znaky. K tomu požíváme různě kódované soubory: csTUG se ve svém csLaTeXu stále drží DOSového kódování, ale já to již považuji za archaizmus. Naštěstí existuje řešení; použijte balíček "inputenc" se specifikací vstupního kódování, tedy např. pro Windows:
\usepackage[cp1250]{inputenc}
Všechna dostupná kódování naleznete v dokumentaci tohoto balíčku.

Co zbývá dodělat?

Balíček "babel" neobsahuje bohužel příkazy na sazbu českých uvozovek a anglické nevypadají v českých textech dobře. Co s tím? Napíšeme si vlastní příkaz. Protože už používáme T1 fonty, můžeme využít toho, že tam už jsou přímo znaky na české uvozovky a definovat si příkaz "\uv" takto (nejlépe v hlavičce dokumentu):
\newcommand\uv[1]{\quotedblbase #1\textquotedblleft}%
Potom už můžete sázet text uvozovkách pomocí tohoto příkazu:
A \uv{tato tři slova} by byla v uvozovkách, kdyby to bylo v LaTeXu

Nelíbí se vám, že musíte používat takovýto příkaz, když máte na klávesnici znak " pro uvozovky? Upřímně řečeno, mně se to také nelíbilo, takže tu mám i řešení pro vás. Do hlavičky dejte místo příkazu \uv (nebo i navíc, to se nevylučuje) tyto řádky:
\catcode`\"=\active
\def"{\bgroup \quotedblbase \def"{\textquotedblleft \egroup}}%

Vysvětlení by bylo sice trochu složité, ale teď stačí, že to funguje. Jen to nepoužívejte současně s německým babelem, protože ten používá " k sazbě přehlásek. Jak se to používá? Takto:
A "tato tři slova" by byla v uvozovkách, kdyby to bylo v LaTeXu

Ještě je potřeba upozornit, že tento příkaz funguje tak, že první uvozovky budou dole, druhé nahoře, třetí dole, ... Pokud byste někde zapomněli dát koncové uvozovky, budou od tohoto místa všechny naopak a na konci vám LaTeX vynadá, že končíte uvnitř skupiny. Poslední známou nevýhodou je, že tento příkaz je potřeba chránit příkazem "\protect", pokud jsou uvozovky např. v nadpisu (pokud zapomenete, tak LaTeX bez varování skončí a v logu najdete informaci, že došlo k přetečení paměti). Příklad:
\chapter{Pohádka \protect"O perníkové chaloupce\protect"}

LaTeX a PDF

Existuje spousta možností, jak "dostat" výstup z LaTeXu do PDF. Dvě nejběžnější jsou:

Každá z těchto metod má své výhody i nevýhody, které tu nebudu podrobně rozepisovat. Co je však podstatné je to, že "díky" našim úpravám pro četinu, konkrétně kvůli použití "T1" kódovaným fontům se použijí v obou případech tzv. EC fonty, které nejsou k dispozici v postscriptové podobě (tedy vektorově), ale jen v podobě bitmapové. Výsledkem je, že PDF-ko sice lze vytisknout, ale díky aliasingu ho prakticky nejde na obrazovce přečíst. Navíc jsou fonty narastrovány do určitého rozslišení, takže je nelze zvětšovat.

Řešením je použití PostScriptového fontu. Několik základních je uvedeno v dokumentu "psnfss.dvi", který je součástí LaTeXu. Já doporučuji použití balíčku "ae", který udělá vše potřebné, abyste mohli použít vektorové fonty, které však vypadají stejně jako původní Knuthovy.