Portál AbcLinuxu, 7. května 2025 09:37
Pokud vám připadá TeX příliš složitý nebo těžkopádný, ale přesto požadujete kvalitní sazbu svých dokumentů, je možná Lout právě pro vás tou správnou cestou.
Lout je, podobně jako výrazně populárnější TeX, resp. LaTeX (srovnání s ním se nevyhneme), typografický systém. Na rozdíl od TeXu není základní distribuce Loutu schopna ani zdaleka zaplnit CD, zabírá jen několik megabajtů. A to můžeme bez instalace jakýchkoliv doplňků hned začít psát v celé řadě (evropských) jazyků nebo třeba vytvářet grafy. Ano, přímo v Loutu lze „kreslit“. Syntaxe přitom zůstává docela snadná a především čitelná. Obáváte-li se, zda je sazba Loutu kvalitní, obáváte se zbytečně – na vícero místech jsou použity algoritmy TeXu, které ostatně patří mezi nejlepší vůbec. Dost ale bylo opěvování a poskočme dále (k několika negativům).
Tak tedy ta negativa: Lout bohužel nepatří mezi právě rozšířené typografické systémy, a tak k němu neexistuje jiná než oficiální dokumentace (velmi pěkná knížka napsaná v Loutu a… v angličtině; viz níže) a také podpora zvýrazňování syntaxe v různých textových editorech je horší než bídná (pokud ovšem nepoužíváte Vim). Neexistují ani konverzní programy pro převod zdrojového kódu z Loutu do HTML, DocBooku atd. Další nezanedbatelnou nevýhodou je nutnost používání formátu PostScript pro dokumenty používající složitější grafiku, neboť její export do PDF není podporován. Konečně také nelze opomenout absenci podpory Unicode, ani asijské jazyky (japonština, čínština atd.) nejsou podporovány – tím nejvýchodnějším, co je podporováno, je ruština.
Historie Loutu byla započata již v roce 1984, nicméně první veřejná verze vyšla až na podzim 1991. Vývoj je soustředěn na univerzitě v Sydney. Nejvýraznější osobou je bezpochyby Jeffrey H. Kingston, od kterého si také můžete Lout stáhnout, a to ve formě zdrojových kódů. Uživatelé Debianu či Ubuntu mají situaci příznivější, oficiální repozitáře jejich distribucí totiž obsahují mimo jiné i balíčky lout a lout-common. Uživatelé ostatních distribucí je nakonec mohou také vykuchat a tím se vyhnout překladu ze zdrojových kódů. Nemohu opomenout skutečnost, že Lout je šířen pod GNU GPL.
Mimochodem, Lout je zkratka z původního pracovního názvu „document layout“, ačkoliv překlad slova „lout“ z angličtiny je „nevychovanec“.
Jak jsem již zmínil, k Loutu existuje velice pěkná kniha A User’s Guide to the Lout, Document Formatting System od Jeffreyho H. Kingstona (Sydney 2006; ISBN 0867589515). Krom toho, že je přibalena ke zdrojovým kódům a najdete ji v debianním balíčku lout-doc, si ji můžete stáhnout i samostatně (hledejte aktuální verzi Loutu a soubor, jehož název končí na user.ps.gz
). Je ale docela rozsáhlá a navíc může někomu vadit, že je napsána v angličtině. Budu se na ni často odkazovat, obsahuje totiž vyčerpávající popisy a přehledy příkazů, na něž zde rozhodně není prostor.
Nyní konečně přichází moment, kdy si vytvoříme svůj první dokument v Loutu. Přepište si tedy následující kód do svého oblíbeného textového editoru (jako je třeba Vim):
@SysInclude { doc } @Doc @Text @Begin Hello, world! @End @Text
Co to má znamenat? Na prvním řádku nastavujeme styl dokumentu; na druhém řádku říkáme překladači, že již bude následovat vlastní text; pak zdravíme svět a nakonec překladač upozorníme, že vlastní text končí. Nyní to berte jako dogmata.
Překlad do PostScriptu provede příkaz:
lout vstupní_soubor.lt > výstupní_soubor.ps
Leckdo uvítá spíše export do PDF:
lout -Z vstupní_soubor.lt > výstupní_soubor.pdf
Pokud jsme udělali ve zdrojovém textu chybu, Lout nás na to při překladu řádně upozorní.
Jakožto Čechům (nebo Slovákům) nám přichází na scénu problém – diakritika. Napíšeme:
@SysInclude { doc } @Doc @Text @Begin Ahoj, světe! @End @Text
...a po přeložení dokumentu se dočkáme jakýchsi nehezkých znaků místo ,ě‘. Co s tím? Upravíme zdrojový text do podoby:
@SysInclude { latin2 } @SysInclude { doc } @Document @InitialLanguage { Czech } @InitialFont { TimesCE Base 12p } @Text @Begin Ahoj, světe! @End @Text
Na začátku upozorníme Lout na to, že budeme používat kódování Latin2, respektive, mám-li být přesnější, odkazujeme se na definici příslušného kódování v knihovnách Loutu. Pro používání středoevropských jazyků je to nezbytné.
Příkazem @InitialLanguage
nastavujeme jazyk (tzn. české lámání slov, uvozovky, …) celého dokumentu, přípustné hodnoty nalezneme v souboru cesta_k_Loutu/include/langdefs
, u mne je to /usr/share/lout/include/langdefs
. Chceme-li změnit jazyk třeba jen jedné věty, odstavce nebo tak něčeho uprostřed textu, napíšeme:
jazyk @Language { nějaký text }
Ještě je podstatný jeden řádek – ten s příkazem @InitialFont
. Kdybychom jej neuvedli, stále by se nám dotyčné znaky zobrazovaly nesprávně, neboť nejsou obsaženy v základních písmech. Písmena s diakritikou používanou ve střední Evropě jsou obsažena v písmech končících na „CE“, proto nastavujeme použití takto upraveného písma Times.
Poznámka: Musíme psát v kódování Latin2, respektive ISO-8859-2.
Více o různých jazycích v Loutu najdete v dokumentaci na stranách 26 a 27.
Jak může být patrné z předchozích příkladů, pro zápis dokumentů v Loutu platí následující pravidla:
@
).Je ale několik pravidel, která postřehnout dosud nebylo možné:
/ | & { } # @ ^ ~ \ "
#
) a končí koncem řádku.~
).Po tomto stručném úvodu již dojde na formátování textu.
TeX má (kromě obligátní sazby matematiky) dost dobré možnosti tvorby maker a předefinování téměř všeho. V článku jsem nenašel, jak je na tom v těchto ohledech Lout. Jen namátkou pro orientaci míry upravitelnosti - je tu ekvivalent možnosti předefinování výstupní rutiny na úrovni stavby z boxů? Ekvivalent systému \mark pro plovoucí hlavičky?
Pokud to tak je, tak s tím nemám problém, jen bych to v článku (když už se k TeXu odkazuje a uvádí i negativa) čekal.
Vypadá to dobřě, hlavně mě potěšilo
@InitialFont { TimesCE Base 12p }
Žádné large, Large nebo LARGE jako v texu, pěkně číslo. Zatím používám LaTex ale jestli půjdou věci v Lout psát elegantněji tak asi přejdu.
hmm, tak to asi zustanu u \Context{}
vzhledem k tomu, že neumí PDF a Unicode tak to asi ani zkoušet nebudu a zůstanu u ConTeXtu...jednoduchý a efektivní, kreslit taky umí...
Díky za článek. Lout jsem objevil už před lety a je výborný, pokud je potřeba programově vygenerovat ps/pdf. Jasné, že to jde i jinak, ale Lout mi přijde průzračný a cesta k cíli rovná a z kopce.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.