Am Thu, 23 Feb 2017 13:19:12 +0100 schrieb Hans Hagen:
On 2/23/2017 11:58 AM, Ulrike Fischer wrote:
When using input like the following with xetex then harfbuzz kicks in and one would always get the good looking precomposed U+1EA0 for the A and the decomposed B+U+0323 for the B.
With context (and lualatex) one get a rather bad looking -- as the dot is misplaced -- output for the A^^^^0323 input and no output at all for ^^^^1e04.
As the coverage for precomposed glyphs varies a lot across fonts this is rather a nuisance. Is there a way to get the fontloader (also the one used by luaotfload) to do a similar substituation as done by harfbuzz?
\starttext \catcode`\^= 7 Ạ A^^^^0323 %decomposed input -> U+1EA0 with xetex
Ạ ^^^^1ea0 %precomposed input
Ḅ B^^^^0323 %decomposed input
^^^^1e04 %precomposed input -> B+U+0323 with xetex
\stoptext
(I added the ^^-notation to avoid problems with copy&paste)
In context one can enable a collapse (last week i found out that it was off by default).
Anyway, there are two issues here:
(1) one can in the input stream collapse the dot accent and the other character but of course an altered input might not be what one wants,
No changing the input is imho not a solution as the document fonts can have different coverage of the glyphs. Whatever is done must be font dependant.
(btw, I suppose that xetex can disable that on demand as from your post I deduce that it's default behaviour and fighting defaults is a pain).
I don't think that one disable the behaviour in xetex, the internal harfbuzz library is doing it. There is imho no way to get a A+combining accent in a document. I agree that it would be neat to be able to disable it but on the whole: if I had only the choice between "the xetex-substituation" and the current luatex/context behaviour I would prefer the first. For normal documents it is preferable. Did you sent the second mail only for me for a reason or did you only forget to add the list? Imho this is interesting for others too. -- Ulrike Fischer http://www.troubleshooting-tex.de/