[XeTeX] Erroneous \lastkern
Jonathan Kew
jfkthame at gmail.com
Fri Jun 28 10:59:57 CEST 2019
On 28/06/2019 08:32, Ulrike Fischer wrote:
> Am Thu, 27 Jun 2019 23:03:09 +0000 schrieb Ross Moore:
>
>>> there is probably something wrong with XeLaTeX, but I cannot find what.
>>
>> The difference between xetex and xelatex is the font:
>>
>> I’m sorry but I don’t understand this as an answer.
>
> It wasn't meant as an answer. I only explained why you get different
> results with plain and latex: because they use different default
> fonts.
>
>> Put another way, the result of the test should not depend upon the initial use of \kern2019sp at all.
>> However, if it is commented-out, then XeTeX does give n , so the y is *not* coming from the letter A .
>
> xetex has a different typesetting engine: it doesn't handle chars
> but words as units.
>
> See page 31 here http://xml.web.cern.ch/XML/lgc2/xetexmain.pdf.
>
> So I'm not really surprised that you get the y, I was more suprised
> that it doesn't happen with legacy fonts - there it seem to switch
> back to the "handle characters" mode.
Yes, the bug arises because of how xetex collects a series of characters
to be "shaped" by an opentype font, rather than the core tex engine
handling each character individually. So at the point when \lastkern is
encountered, the letter A has not yet been appended to the current node
list being built; it is "pending" in the buffer of characters that will
become a whole-word node.
Still, I would regard this as a bug that we ought to fix. I imagine
similar primitives like \lastpenalty or \lastskip probably share the
same buggy behavior.
JK
More information about the XeTeX
mailing list