[cstex] ConTeXt, čeština a kerningové páry
Petr Olsak
petr at olsak.net
Thu Dec 12 08:23:58 CET 2013
Dobrý den,
ukazuje se, že to je chyba LuaTeXu, respektive luakódu na OpenType fonty.
Minimální příklad, který nepoužívá obludku typu ConTeXt, ale přímo LuaTeX,
může vypadat takto:
--------------------------------
\ifx\directlua\undefined \else \input luafonts \fi % otfload code
\font\f=[lmroman10-regular] \f
\hyphenation{vl-ta-va}
\setbox0=\hbox{VLTAVA}
\message{:::::: \the\wd0}
\tracingonline=1 \showboxbreadth=25 \nonstopmode \showbox0
A AVA VLTAVA.
\end
--------------------------------
Když to zpracujete pomocí ``luatex pokus'', projeví se chyba.
Když to zpracujete pomocí ``xetex pokus'', vše je v pořádku.
Když zakonimentujete řádek \font\f..., použije se klasický 7bitový Knuthův
font a chyba se neprojeví. Navíc v té chvíli v logu a na terinálu vidíme,
jak to autoři LuaTeXu zamýšleli: v příslušných místech je
``\discretionary replacing kern'', tedy určitá další složitost navíc, na
kterou asi zapomněli navázat tvůrci OpenType loaderu. Když
zavedete OpenType font (jakýkoli), místo ``\discretionary replacing kern''
tam zůstává jen ``\discretionary''.
Když zakonimentujete řádek \hyphenation a necháte proběhnout řádek \font,
zjistíte, že kerny i v OpenType fontu jsou, jen jsou při přítomnosti
\discretionary zničeny.
LuaTeX je v hluboké beta verzi, nelze se ničemu divit. Upozornil jsem
tvůrce luTeXu už na mnohé chyby, většina z nich přetrvává stále. Včetně
například úplného kolapsu luaTeXu na některých strojích s podivnými fonty,
které uživatel vůbec nechce použít. Nebo chyba, kdy po \halign nenastaví
\prevdepth, je reprtována už několik let a bez toho, aby ji někdo opravil.
Chete-li si zachovat duševní zdraví, používejte jen léty prověřený TeX,
tj. pdfTeX. Chcete-li se stát pokusným králíkem, zkuste luaTeX a
reportujte, reportujte atd.
Zdravím
Petr Olšák
On Wed, 11 Dec 2013, Martin Rehula wrote:
> Dobrý den,
>
> Používám ConTeXt (aktuální) a narazil jsem na zvláštní věc. Když například přeložím tohle:
>
> \enableregime[utf]
> \mainlanguage[cz]
> \starttext
> AV ZASTAVÍ DOPRAVY % Správný kerning
>
> LAVABIT ZPRAVODAJSTVÍ PŘEDSTAVOVAL NAVŠTÍVILI % tohle je špatně
> \stoptext
>
> Na výstupu na prvním řádku bude vše jak má být. Na druhém řádku se ale neaplikují kerningové páry které jsou uložené ve fontu a mezi dvojicí písmen "A V" bude ošklivá mezera.
>
> Problém je se všemi možnými fonty, ale pouze v češtině. Řekl bych, že důvodem je v dělení slov - tohle jsem našel v logu: ... LA-VA-BIT ZPRA-VO-DAJ-STVÍ ... ZA-STAVÍ ...
>
> Mám něco blbě zkompilované, je to obecná chyba, nebo featura? Existuje na to nějaký workaround?
>
>
> Děkuji předem za jakoukoliv radu
> Martin Řehula
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex
>
More information about the csTeX
mailing list