[XeTeX] Math class initialization in Unicde-aware engine

Joseph Wright joseph.wright at morningstar2.co.uk
Mon Dec 2 08:36:53 CET 2019

On 02/12/2019 05:56, Doug McKenna wrote:
> - \lccode and/or \uccode for non-letter code points
>    for which an upper or lower case mapping is given
> The problem with this is that earlier, it is stated that all combining mark code points (class code starting with 'M' in the UnicodeData.txt file) are to be considered letters (\catcode set to 11).  So there's an ambiguity here that needs clearing up.  Does the above apply to combining mark code points or not?

You've read something in that is not in the README ;)

The file says

   - `\catcode` 11 for all combining marks (Unicode class "M")

where I've very deliberately kept the TeX 'side' as what *actually 
happens* (catcode-11), not said they are 'treated as letters', or similar.

I will clarify that 'letter' here means a codepoint with Unicode 
character class "L", and is not linked to the TeX catcode.

> It may be that none of the combining marks in the data file have any case mappings, but there's no guarantee that is true.  So the question is, if a combining mark has an uppercase or lowercase mapping, does that get installed in \lccode and/or \uccode?

Yes, or at least would be the case in principle: all code points with 
upper/lower/title properties are set up.

> Also, there's a confusing typo ("can"?) in
> - \lccode and \uccode for all of class "Lt" (title
>    case letters) to the lower can upper case mappings
>    (or if not given to the code point itself)
> Should "can' be "and/or"?

It is 'and': you need to set lccode and uccode for these code points.


More information about the XeTeX mailing list