[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