Typografická pravidla pro sázení českého či slovenského jazyka se liší od pravidel pro sázení angličtiny. Proto vznikly modifikace programů tex, latex a pdflatex, které implementují algoritmy českého sázení. Český tex se jmenuje csplain, český latex je cslatex a český pdflatex je pdfcslatex (nebo v některých distribucích cspdflatex). Jejich ovládání je totožné s ovládáním anglických verzí.
$> cslatex dokument.tex $> cslatex dokument.tex
Pokud chcete sázet české dokumenty v LaTeXu nestačí použít počeštěný překladač, protože ten řeší pouze odsazování a lámání vět a odstavců. Běžně používané LaTeXové balíčky ovšem obsahují předdefinované názvy kapitol či sekcí, které jsou v angličtině (Contents, References, ...). Počeštění těchto věcí, stejně jako sázení kalendářních dat (pomocí \today) a dělení českých slov řeší balík czech. Český LaTeXový dokument by tudíž měl začínat takto:
\documentclass[a4]{article} \usepackage{czech} \usepackage[latin2]{inputenc} % pro iso8859-2 % \usepackage[utf8]{inputenc} % pro unicode UTF-8 % \usepackage[cp1250]{inputenc} % pro win1250
Balík inputenc říká překladači, v jakém kódování byl dokument napsán. Překladač potom vybere správnou kódovou stránku nezávisle na tom, jestli překládáme v Linuxu nebo ve Windows. Použití tohoto balíku tedy zvyšuje přenositelnost dokumentů.
V balíku czech je navíc definováno makro \uv, které slouží pro sázení českých uvozovek. České uvozovky používané například pro vyznačení přímé řeči se liší od anglických tím, že první dvojitá uvozovka je sázena dole, a koncová je sázena nahoře. Po vysázení tohoto textu:
Vesmírný počítač naznal, že odpověď demonstrací bude dostačující. Vesmírný počítač tedy řekl: \uv{Budiž světlo!} A bylo světlo...
dostaneme toto:
Anglické "uvozovky" nebo 'uvozovky' bychom v českém textu používat neměli. Srovnejte rozdíly:
Anglické dvojité "uvozovky", jednoduché 'uvozovky', použití opačné `uvozovky' a \uv{české uvozovky.}
Poznámka: V současnosti to vypadá, že CsLaTeX nebude dále vyvíjen a spíše budou pokračovat snahy přesunout správnou implementaci českého sázení do standardního LaTeXu. V současnosti má CsLaTeX problémy s použitím balíku geometry (PdfCsLaTeX + geometry tímto problémem netrpí). Ačkoli jsou tyto problémy způsobeny chybou v tomto balíku, je pravděpodobné, že časem mohou vyplout na povrch další problémy. Osobně pořád CsLaTeX pro českou sazbu používám, protože se mi jeví stále spolehlivější než babel.
Další možností, jak sázet česky, je použít balík babel s parametrem czech. V tomto případě už se nepřekládá programem cslatex, ale originálním programem latex.
\documentclass[a4]{article} % \usepackage[czech]{babel} % nové rozhraní pro použití babelu, ale zatím s ním mám problémy \usepackage{czech} % staré rozhraní pro babel, ale pořád funkční s českým babelem \usepackage[latin2]{inputenc}
$> latex dokument.tex $> latex dokument.tex
Tento způsob by se měl časem stát standardním způsobem, jak sázet české texty. Balík babel je míněn jako obecný, tedy pro použití s libovolným jazykem. Opravená podpora pro češtinu v babelu od pana Tesaříka zatím (začátek roku 2008) není implementována do běžně rozšířených distribucí LaTeXu, takže si musíte stáhnout instalační program nebo instalační balík ze stránek CSTUG.
Tato implementace se snaží být co nejvíce kompatibilní s CsLaTeXem. Obsahuje správné vzory pro dělení českých slov i příkaz \uv pro sázení českých uvozovek. Staré dokumenty pro CsLaTeX by s touto implementací měly jít bez problémů přeložit standardním LaTeXem. Nové české dokumenty by podle doporučení autora měly používat nové rozhraní babelu.
V současnosti vytvářím české texty tak, aby byly kompatibilní s CsLaTeXem a PdfCsLaTeXem. Babel a LaTeX používám jenom v případě, že zároveň potřebuji použít balík geometry a chci generovat postscriptový dokument. Pro generování PDF používám stále PdfCsLaTeX, který žádné problémy s balíkem geometry nemá.
Pro správné sázení českého textu je nezbytné používat v některých případech nezalomitelné mezery namísto mezer obyčejných. Nezalomitelná mezera se v LaTeXu sází pomocí znaku vlnka (~).
Ve správně vysázeném českém textu by se nemělo stát, že na konci řádku zůstane samotná jednopísmenná předložka (v, k, o, ...). Vložením nezalomitelné mezery mezi předložku a následující slovo tomu lze zabránit.
Mezi oblíbené dětské pohádky patří \emph{O~Palečkovi, Alenka v~říši divů} a \emph{Socialismem k~lepším zítřkům.}
Aby nebylo potřeba tyto mezery vkládat ručně, vzniknul program Vlna (autor Petr Olšák), který projde celý LaTeXový (nebo TeXový) dokument a vlnky doplní. Použití:
$> vlna -l -m -n dokument.tex
Poznámka: Přepínač -l zapíná LaTeXový mód, přepínače -m a -n zajistí, že program bude ignorovat obsah matematických prostředí a prostředí verbatim.
Ve většině distribucí jsou implicitně k dispozici programy csplain, cslatex, csindex, pdfcsplain a pdfcslatex. Všechny tyto programy slouží k použití společně s balíkem czech. V některých distribucích Linuxu však tyto programy k dispozici implicitně nejsou. Osobně jsem se s tímto problémem setkal v Ubuntu 6.x a podobné to asi bude i v Debianu a v Gentoo.
Nyní by měl být český CsLaTeX normálně dostupný v systému. Konfigurační soubor, který se upravoval je /usr/share/texmf/web2c/fmtutil.cnf, ale je lepší jej upravovat pomocí texconfig.
V novějších distribucích Linuxu je standardním nastaveným kódováním češtiny UTF-8. Aby soubory s tímto kódováním šlo správně přeložit, je potřeba použít balík inputenc se správně zapnutým kódováním.
\usepackage[utf8]{inputenc}
Autor: David Martinek. Poslední modifikace: 2. October 2008. Pokud v tomto dokumentu narazíte na chybu, dejte mi prosím vědět.