Přejít na:

V rámci PB029 budeme při sazbě TeXem používat zejména formát LaTeX. Pro kompilaci dokumentů pak doporučujeme využít kompilátory pdfTeX, XeTeX nebo LuaTeX.

Vzhledem k rozdílům v podporovaných kódováních zdrojových textů a  (ne)možnosti využití systémových fontů u různých kompilátorů se u nich mírně liší i doporučený postup pro tvorbu českých dokumentů.

Pozor, při české sazbě je důležité dávat pozor na správné kódování zdrojového textu, viz nástrahy textových souborů.

Přejít: navigace | na začátek stránky | na konec stránky

LaTeX a balíček babel

V současné době používáme pro sazbu českých/slovenských LaTeXových dokumentů balíček Babel, což je standardní cesta vícejazyčné sazby v LaTeXu.

Komentovaný příklad českého LaTeXového dokumentu si můžete na příkazovém řádku přeložit příkazem: pdflatex babel.tex

Pozor: Soubor babel.tex je uložen v kódování ISO-8859-2. Pokud si jej otevřete přímo v prohlížeči a text přenesete přes schránku, uložte jej ve svém textovém editoru právě v tomto kódování, anebo informaci o kódování ve zdrojovém textu před překladem opravte. Alternativně můžete soubor uložit pomocí funkce Uložit odkaz jako … typicky dostupné po kliknutí pravým tlačítkem na odkaz ve webovém prohlížeči.

Pokud to neuděláte, TeXový kompilátor si obsah souboru vyloží jinak než by měl a překlad skončí kryptickou chybou.

Viz nástrahy textových souborů.

Při použití editoru TeXworks můžete kompilátor TeXu vybrat z menu v levém horním rohu. V pravém dolním rohu je pak indikováno používané kódováníznak konce řádku zdrojového textu.

Pozor, zdá se, že TeXworks neumožňuje zvolit kódování při otevírání konkrétního souboru. Kódování je třeba předem zvolit v nastavení: Úpravy → Nastavení … → Kódování

Nastavení TeXworks pro pro překlad dokumentu babel.tex

Historická poznámka: CSLaTeX

Dříve se k české sazbě často používal i specifický česko-slovenský formát CSLaTeX. Jeho funkcionalita však již byla přenesena do bábelizovaného LaTeXu (a je standardní součástí distribuce TeX Live od verze 2008).

Komentovaný příklad CSLaTeXového dokumentu, který se překládal příkazem pdfcslatex cslatex.tex uvádím pouze z historických důvodů. CSLaTeX pro nové dokumenty nepoužívejte!

Přejít: navigace | na začátek stránky | na konec stránky

XeLaTeX, LuaTeX a balíček polyglossia

Moderními alternativami pdfTeXu jsou XeTeXLuaTeX. Tyto kompilátory nativně používají Unicode a podporují moderní formáty fontů (OpenType, TrueTypeAAT). Jsou proto mimořádně vhodné pro sazbu mnohojazyčných dokumentů využívajících exotické znakové sady.

Komentovaný příklad českého LaTeXového dokumentu si můžete na příkazovém řádku přeložit příkazem: xelatex xelatex.tex nebo příkazem: lualatex xelatex.tex

V TeXworks:

Nastavení TeXworks pro pro překlad dokumentu xelatex.tex

Pokud dojde při překladu k chybě, ověřte si, že máte na použitém počítači k dispozici fonty, které se v dokumentu používají:

Pokud dané fonty k dispozici nemáte, upravte zdrojový text dokumentu na použití fontů, které máte v systému instalovány.

Na Mac OS využívá XeTeX k vyhledávání fontů systémovou knihovnu, která dokáže najít pouze systémové OpenType a AAT fonty, nikoliv OpenType a AAT fonty z TeXové distribuce. Pokud potřebujete využít fonty z TeXové distribuce, jako v ukázkovém příkladu, můžete nastalou situaci řešit několika způsoby:

Tip: Při použití XeTeXu a LuaTeXu nejste odkázáni jen na fonty, kterou jsou instalovány v operačním systému a v TeXové instalaci. Pokud je to nutné, můžete se přímo v TeXovém zdrojovém textu odkázat na soubor/adresář s fontem/fonty. Vizte manuál balíčku fontspec: texdoc fontspec

Přejít: navigace | na začátek stránky | na konec stránky

Pomocný nástroj vlna

Při sazbě českých textů se v mnoha případech v textu používá místo běžné mezery mezera nezlomitelná, která je v TeXovém zdrojovém textu reprezentována znakem vlnka (~).

Jedním z nejčastějších případů použití nezlomitelné mezery je spojení neslabičné předložky (v, k, s, …) se slovem předložku následujícím. Jelikož tuto akci je možné relativně snadno automatizovat, vznikl program vlna, který na patřičná místa textu nezlomitelnou mezeru doplní.

Vyzkoušejte si použití programu vlna na dokumentu vlna.tex. Nejprve jej pouze přeložte a zhodnoťte výstup. Následně do něj doplňte nezlomitelné mezery: vlna -r -l -v KkSsVvZzOoUuAaIi vlna.tex Z integrované nápovědy zjistěte, co znamenají použité parametry a zda je vhodné je použít i při sazbě vašich dokumentů: vlna --help

Pozor:

Program vlna používá jednoduchou analýzu TeXového zdrojového kódu. Díky tomu program nedoplňuje nezlomitelné mezery do komentářů, do matematiky vyznačené znaky dolaru a do ukázek kódu vyznačených pomocí LaTeXového příkazu \verb nebo prostředí verbatim. Pokud ale použijeme pro sazbu matematiky a ukázek kódu nestandardní prostředí, doplní nám program vlna znak vlnky i do nich. Tento problém je možné řešit ruční kontrolou nebo doplněním komentářů %~+ a %~-, které aktivují a deaktivují funkcionalitu programu ve vyznačených částech dokumentu.

Robustnější řešení představuje XeLaTeXový balíček xevlna, který vkládání nezlomitelné mezery provádí přímo na úrovni TeXu a může tak jednoznačně určit, jestli právě dochází k sazbě matematiky. Funkci balíčku můžeme otestovat na dokumentu xevlna.tex: xelatex xevlna.tex

Podobným řešením, které je ale nezávislé na rozšiřujících primitivách TeXového kompilátoru XeTeX, je LaTeXový balíček encxvlna, který vkládání nezlomitelné mezery provádí opět přímo na úrovni TeXu. Pro použití tohoto balíčku je třeba si v rámci TeXové distribuce předkompilovat formát LaTeXu s povolenými rozšiřujícími primitivami TeXového kompilátoru encTeX (návod pro distribuci TeX Live zde, obecněji pak přímo v dokumentaci kompilátoru encTeX). Funkci balíčku následně můžeme otestovat na dokumentu encxvlna.tex: pdflatex -fmt=encpdflatex encxvlna.tex

Přejít: navigace | na začátek stránky | na konec stránky

Použití programu vlna pro (X)HTML dokumenty

Program vlna je možné bez větších obtíží použít také pro doplnění nezlomitelných mezer do (X)HTML dokumentů: vlna -x 266E6273703B -r -v KkSsVvZzOoUuAaIi file.html Parametr -x 266E6273703B zajistí vkládání tvrdých mezer v podobě sekvence znaků   místo výchozího znaku ~.

Přejít: navigace | na začátek stránky | na konec stránky

Praktické úkoly k procvičení

Pokud odevzdáváte práci ze cvičení e-mailem, přiložte veškeré textové soubory a PDF dokumenty, které jste vyrobili.

Přejít: navigace | na začátek stránky | na konec stránky