Hyphenation patterns and adjusted kerning: ConTeXt vs. LuaTeX
Maybe the ConTeXt community can be of assistance to the LuaTeX bunch ... As a new LuaTeX user, I came across the following problem: Using Lua(La)TeX, customized kerning of letter pairs (via the FeatureFile capability of fontspec) is ignored when it coincides with a possible hyphenation of a word (e.g. between 'f' and 'h' in German words like 'aufhalten'; see first minimal example below). Ulrike Fischer was so kind to point out two things (http://tug.org/pipermail/luatex/2011-February/002569.html): First, the problem seems to be the break points between the adjusted kerning pairs. Second, ConTeXt seems to handle this case correctly (see second minimal example below; feature file bonum.fea from first example required). I am no expert in neither LuaTeX nor context, but Ulrike suggested I post here and ask if the (typographically correct) ConTeXt behavior or solution can be reproduced with Lua(La)TeX. Thanks, - Till 1. Lua(La)TeX \begin{filecontents*}{bonum.fea} languagesystem DFLT dflt; languagesystem latn dflt; feature kern { pos f h 100; } kern; \end{filecontents*} \documentclass{article} \usepackage[ngerman]{babel} \usepackage{fontspec} \setmainfont[FeatureFile=bonum.fea]{TeX Gyre Bonum} \begin{document} fh aufhalten \end{document} 2. ConTeXt \mainlanguage [de] \definefontfeature[test][featurefile=bonum,kern=yes] \definefont[test][name:texgyrebonum*test] \starttext \test fh aufhalten \stoptext
On 25-2-2011 1:18, Heilmann, Till A. wrote:
Maybe the ConTeXt community can be of assistance to the LuaTeX bunch ...
As a new LuaTeX user, I came across the following problem: Using Lua(La)TeX, customized kerning of letter pairs (via the FeatureFile capability of fontspec) is ignored when it coincides with a possible hyphenation of a word (e.g. between 'f' and 'h' in German words like 'aufhalten'; see first minimal example below).
Ulrike Fischer was so kind to point out two things (http://tug.org/pipermail/luatex/2011-February/002569.html): First, the problem seems to be the break points between the adjusted kerning pairs. Second, ConTeXt seems to handle this case correctly (see second minimal example below; feature file bonum.fea from first example required).
I am no expert in neither LuaTeX nor context, but Ulrike suggested I post here and ask if the (typographically correct) ConTeXt behavior or solution can be reproduced with Lua(La)TeX.
Thanks, - Till
1. Lua(La)TeX
\begin{filecontents*}{bonum.fea} languagesystem DFLT dflt; languagesystem latn dflt; feature kern { pos f h 100; } kern; \end{filecontents*} \documentclass{article} \usepackage[ngerman]{babel} \usepackage{fontspec} \setmainfont[FeatureFile=bonum.fea]{TeX Gyre Bonum} \begin{document} fh aufhalten \end{document}
I cannot test that (I only have the context minimals installed) but I don't know anything about latex internals so it would be a wild guess. Maybe babel is interfering? In base mode kerning and and hyphenation happen in the traditional tex way, so there is not much extra trickery taking place.
2. ConTeXt
\mainlanguage [de] \definefontfeature[test][featurefile=bonum,kern=yes] \definefont[test][name:texgyrebonum*test] \starttext \test fh aufhalten \stoptext
Indeed I see a kern. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Am Fri, 25 Feb 2011 14:35:10 +0100 schrieb Hans Hagen:
As a new LuaTeX user, I came across the following problem: Using Lua(La)TeX, customized kerning of letter pairs (via the FeatureFile capability of fontspec) is ignored when it coincides with a possible hyphenation of a word (e.g. between 'f' and 'h' in German words like 'aufhalten'; see first minimal example below).
1. Lua(La)TeX
I cannot test that (I only have the context minimals installed) but I don't know anything about latex internals so it would be a wild guess. Maybe babel is interfering?
No, the problem exists also if you only load the german patterns.
In base mode kerning and and hyphenation happen in the traditional tex way, so there is not much extra trickery taking place.
Well, as you mention "base mode": This reminded me that I had to force base mode to get my reencoding to work in latex. So I tried in context + latex/luaotfload (with german hyphenation patterns): \font\test="name:TeX Gyre Bonum:mode=base:featurefile=bonum.fea;+kern" and \font\test="name:TeX Gyre Bonum:mode=node:featurefile=bonum.fea;+kern" And bingo: with mode=base it works in both formats, with mode=node the kern disappears. Without mode declaration the kern disappears in latex. So I think it isn't true that the manual of luaotfload claims "By default mode=base is used". -- Ulrike Fischer
On Fri, Feb 25, 2011 at 03:41:10PM +0100, Ulrike Fischer wrote:
So I think it isn't true that the manual of luaotfload claims "By default mode=base is used".
It used to be like that but we changed it a while ago, looks like I didn't update the manual. Regards, Khaled -- Khaled Hosny Egyptian Arab
participants (4)
-
Hans Hagen
-
Heilmann, Till A.
-
Khaled Hosny
-
Ulrike Fischer