<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 4 May 2015 at 16:27, Jonathan Kew <span dir="ltr"><<a href="mailto:jfkthame@gmail.com" target="_blank">jfkthame@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">...<br>

<br>
A fix for this bug, so that \string generates single Unicode characters even for values above U+FFFF, is currently on the utf16-issues branch in the XeTeX repository on sourceforge.[1]<br>
<br>
A bug with characters above U+FFFF within \scantokens[2] is also fixed on this branch.<br>
<br>
<br>
There are also a couple of new primitives available in this branch:<br>
<br>
(1) \Uchar <number><br>
<br>
    where <number> is a number in the range 0.."10FFFF<br>
<br>
is an expandable command that produces a character token with the given Unicode value, and catcode=12 (other character). This is different from TeX's \char primitive from a macro-programming point of view, in that it expands to a character token rather than being a typesetting command.<br>
<br>
(I believe this is similar to the \Uchar command available in luatex.)<br>
<br>
<br>
(2) \Ucharcat <number1> <number2><br>
<br>
    where <number1> is a number in the range 0.."10FFFF<br>
    and <number2> is a number in the ranges 1..4, 6..8, 10..12<br>
<br>
is an expandable command that produces a character token with Unicode value <number1> and catcode <number2>. This allows macro programmers to create character tokens with various catcode assignments much more easily than is otherwise possible.<br>
<br>
<br>
Feedback and testing is invited; but note that currently this will require pulling the code from sourceforge and building the new xetex, as binary packages are not available.<br>
<br>
If testing in the next day or two doesn't uncover any alarming problems, these fixes/features will be merged to the master branch and to TeXLive, in preparation for the TL2015 release.<br>
<br>
JK<br>
<br></blockquote></div><br><br></div><div class="gmail_extra">Thanks for this!<br><br></div><div class="gmail_extra">I've build the version from this branch and it does appear to address all<br></div><div class="gmail_extra">the test cases I had for characters above "FFFF, and \Uchar(cat) will be<br></div><div class="gmail_extra">incredibly useful in defining expandable operations on token lists, and for code that should be compatible with both luatex and xetex.<br><br></div><div class="gmail_extra">David<br><br></div></div>