Jak sázet cesky

[  CsLaTex a balík czech  |  Balík babel  |  Vlnky  ]
[  CsLaTeX v teTeXu v nekterých distribucích (Ubuntu, Gentoo, Debian)  |  Pouzívání unicode  ]

CsLaTex a balík czech

Typografická pravidla pro sázení ceského ci slovenského jazyka se lisí od pravidel pro sázení anglictiny. Proto vznikly modifikace programu tex, latex a pdflatex, které implementují algoritmy ceského sázení. Ceský tex se jmenuje csplain, ceský latex je cslatex a ceský pdflatex je pdfcslatex (nebo v nekterých distribucích cspdflatex). Jejich ovládání je totozné s ovládáním anglických verzí.

$> cslatex dokument.tex
$> cslatex dokument.tex

Pokud chcete sázet ceské dokumenty v LaTeXu nestací pouzít pocestený prekladac, protoze ten resí pouze odsazování a lámání vet a odstavcu. Bezne pouzívané LaTeXové balícky ovsem obsahují preddefinované názvy kapitol ci sekcí, které jsou v anglictine (Contents, References, ...). Pocestení techto vecí, stejne jako sázení kalendárních dat (pomocí \today) a delení ceských slov resí balík czech. Ceský LaTeXový dokument by tudíz mel zací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 ríká prekladaci, v jakém kódování byl dokument napsán. Prekladac potom vybere správnou kódovou stránku nezávisle na tom, jestli prekládáme v Linuxu nebo ve Windows. Pouzití tohoto balíku tedy zvysuje prenositelnost dokumentu.

V balíku czech je navíc definováno makro \uv, které slouzí pro sázení ceských uvozovek. Ceské uvozovky pouzívané napríklad pro vyznacení prímé reci se lisí od anglických tím, ze první dvojitá uvozovka je sázena dole, a koncová je sázena nahore. Po vysázení tohoto textu:

Vesmírný pocítac naznal, ze odpoved demonstrací bude dostacující.
Vesmírný pocítac tedy rekl: \uv{Budiz svetlo!} A bylo svetlo...

dostaneme toto:

a bylo svetlo...

Anglické "uvozovky" nebo 'uvozovky' bychom v ceském textu pouzívat nemeli. Srovnejte rozdíly:

Anglické dvojité "uvozovky", jednoduché 'uvozovky', pouzití
opacné `uvozovky' a \uv{ceské uvozovky.}
srovnání uvozovek

Poznámka: V soucasnosti to vypadá, ze CsLaTeX nebude dále vyvíjen a spíse budou pokracovat snahy presunout správnou implementaci ceského sázení do standardního LaTeXu. V soucasnosti má CsLaTeX problémy s pouzitím balíku geometry (PdfCsLaTeX + geometry tímto problémem netrpí). Ackoli jsou tyto problémy zpusobeny chybou v tomto balíku, je pravdepodobné, ze casem mohou vyplout na povrch dalsí problémy. Osobne porád CsLaTeX pro ceskou sazbu pouzívám, protoze se mi jeví stále spolehlivejsí nez babel.

Balík babel

Dalsí mozností, jak sázet cesky, je pouzít balík babel s parametrem czech. V tomto prípade uz se neprekládá programem cslatex, ale originálním programem latex.

\documentclass[a4]{article}
% \usepackage[czech]{babel} % nové rozhraní pro pouzití babelu, ale zatím s ním mám problémy
\usepackage{czech} % staré rozhraní pro babel, ale porád funkcní s ceským babelem
\usepackage[latin2]{inputenc}
$> latex dokument.tex
$> latex dokument.tex

Tento zpusob by se mel casem stát standardním zpusobem, jak sázet ceské texty. Balík babel je mínen jako obecný, tedy pro pouzití s libovolným jazykem. Opravená podpora pro cestinu v babelu od pana Tesaríka zatím (zacátek roku 2008) není implementována do bezne rozsírených distribucí LaTeXu, takze si musíte stáhnout instalacní program nebo instalacní balík ze stránek CSTUG.

Tato implementace se snazí být co nejvíce kompatibilní s CsLaTeXem. Obsahuje správné vzory pro delení ceských slov i príkaz \uv pro sázení ceských uvozovek. Staré dokumenty pro CsLaTeX by s touto implementací mely jít bez problému prelozit standardním LaTeXem. Nové ceské dokumenty by podle doporucení autora mely pouzívat nové rozhraní babelu.

V soucasnosti vytvárím ceské texty tak, aby byly kompatibilní s CsLaTeXem a PdfCsLaTeXem. Babel a LaTeX pouzívám jenom v prípade, ze zároven potrebuji pouzít balík geometry a chci generovat postscriptový dokument. Pro generování PDF pouzívám stále PdfCsLaTeX, který zádné problémy s balíkem geometry nemá.

Vlnky

Pro správné sázení ceského textu je nezbytné pouzívat v nekterých prípadech nezalomitelné mezery namísto mezer obycejných. Nezalomitelná mezera se v LaTeXu sází pomocí znaku vlnka (~).

Ve správne vysázeném ceském textu by se nemelo stát, ze na konci rádku zustane samotná jednopísmenná predlozka (v, k, o, ...). Vlozením nezalomitelné mezery mezi predlozku a následující slovo tomu lze zabránit.

Mezi oblíbené detské pohádky patrí \emph{O~Paleckovi,
Alenka v~rísi divu} a \emph{Socialismem k~lepsím zítrkum.}
Vlnky

Aby nebylo potreba tyto mezery vkládat rucne, vzniknul program Vlna (autor Petr Olsák), který projde celý LaTeXový (nebo TeXový) dokument a vlnky doplní. Pouzití:

$> vlna -l -m -n dokument.tex

Poznámka: Prepínac -l zapíná LaTeXový mód, prepínace -m a -n zajistí, ze program bude ignorovat obsah matematických prostredí a prostredí verbatim.



CsLaTeX v teTeXu v nekterých distribucích (Ubuntu, Gentoo, Debian)

Ve vetsine distribucí jsou implicitne k dispozici programy csplain, cslatex, csindex, pdfcsplain a pdfcslatex. Vsechny tyto programy slouzí k pouzití spolecne s balíkem czech. V nekterých distribucích Linuxu vsak tyto programy k dispozici implicitne nejsou. Osobne jsem se s tímto problémem setkal v Ubuntu 6.x a podobné to asi bude i v Debianu a v Gentoo.

Resení (platí pro teTeX)

  1. Jako root spustit program texconfig
  2. Z menu vybrat FORMAT
  3. V nabídnutém konfiguracním souboru odpoznámkovat rádky s programy csplain, cslatex, csindex, pdfcsplain, pdfcslatex. Je potreba umazat znaky #! na zacátcích príslusných rádku. Edituje se editorem vim - znaky se mazou klávesou x, konec :wq.
  4. Po opustení editoru vybrat z menu REHASH a provést.

Nyní by mel být ceský CsLaTeX normálne dostupný v systému. Konfiguracní soubor, který se upravoval je /usr/share/texmf/web2c/fmtutil.cnf, ale je lepsí jej upravovat pomocí texconfig.

Pouzívání unicode

V novejsích distribucích Linuxu je standardním nastaveným kódováním cestiny UTF-8. Aby soubory s tímto kódováním slo správne prelozit, je potreba pouzít balík inputenc se správne zapnutým kódováním.

\usepackage[utf8]{inputenc}

Poznámky

  1. V nekterých distribucích je podpora UTF-8 pro TeX/LaTeX umístena v samostatném distribucním balícku.
  2. Zdá se, ze v novejsích distribucích uz se vubec nevyskytuje program csindex. Pravdepodobne byla upravena lokalizace programu makeindex tak, aby fungoval správne i pro cestinu. Naposledy jsem pouzíval makeindex pod Ubuntu 7.10 a vypadá to, ze radí správne podle ceské normy.

Autor: David Martinek. Poslední modifikace: 2. October 2008. Pokud v tomto dokumentu narazíte na chybu, dejte mi prosím vedet.