<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="BodyFragment"><font size="2"><span style="font-size:10pt;">
<div class="PlainText">Hi Akira, Karl<br>
<br>
Thanks for your help in sorting out how  \pdfglyphtounicode  allows access to upper-plane code-points.<br>
<br>
However, I think there is still a problem in how  pdftex  constructs the  /ToUnicode CMap.<br>
This concerns characters with glyph names that use the ‘.’ qualifying construction;<br>
e.g.<br>
   a.sc,  b.sc , …  aacute.sc , W.alt , Theta.var1 ,  etc.<br>
<br>
It seems that there can be entries for these glyph names within the database,<br>
but those entries are never recovered to be written into the CMap.<br>
<br>
This is because of the following coding:   tounicode.sty  lines 187 onwards:<br>
<br>
>> /* this function set proper values to *gp based on s; in case it returns<br>
>>  * gp->code == UNI_EXTRA_STRING then the caller is responsible for freeing<br>
>>  * gp->unicode_seq too */<br>
>> static void set_glyph_unicode(char *s, glyph_unicode_entry * gp)<br>
>> {<br>
>>  ...<br>
>> <br>
>>     /* strip everything after the first dot */<br>
>>     p = strchr(s, '.');<br>
>>     if (p != NULL) {<br>
>>         *buf = 0;<br>
>>         strncat(buf, s, p - s);<br>
>>         s = buf;<br>
>>     }<br>
>> <br>
>>  ...<br>
<br>
<br>
The origin of this coding is surely Adobe’s stated way to establish a default<br>
for which character to select for Copy/Paste, Searching, etc. <br>
     *** when there is no guidance from a CMap or  /ActualText entry. ***<br>
<br>
However, pdftex  is making it impossible to set such CMap entries for glyphs<br>
with qualified names involving the ‘.’ character.<br>
<br>
In short,  \pdfglyphtounicode  allows replacement Unicode strings to be entered<br>
into the glyph-name database, but …<br>
<br>
  …  set_glyph_unicode  never uses those entries, <br>
replacing them instead with the unqualified glyph name.<br>
<br>
<br>
The attached file explores this using the  libertine-type1.sty  package.<br>
<br>
 </div>
</span></font></div>
<div class="BodyFragment"><font size="2"><span style="font-size:10pt;">
<div class="PlainText"><br>
<br>
(Make sure libertine.map is enabled, to use this example.)<br>
<br>
<br>
My suggestion for altering  tounicode.c , within the  set_glyph_unicode  function block,<br>
is to test the full name (including ‘.’s) first, for a datbase entry.<br>
If found, use it.  Otherwise, try again using just the prefix (as at present).<br>
<br>
Or in case a name is multiply qualified; e.g.,<br>
          delta.sc.ipa         (occurs in  cmu-tipx.enc )   also    omega.sc.ipa   q.sc.ipa   f.sc.ipa<br>
then drop off the qualifications from the end.<br>
So test in order:   delta.sc.ipa   delta.sc   delta<br>
<br>
<br>
Without a fix of this sort, the true small-cap characters that are in Unicode <br>
can never be properly addressed, for archival/accessibility considerations,<br>
as well as Copy/Paste.<br>
Such characters occur within blocks:<br>
   U+025A — U+02FF  IPA Extensions<br>
   U+1D00 — U+1D7F  Phonetic Extensions<br>
   U+A720 — U+A7FF  Latin Extended-D<br>
   U+FE50 — U+FE6F  Small Form Variants<br>
<br>
And of course there are superiors and inferiors in other blocks, which also<br>
are affected, when glyph names are used, such as: <br>
   i.superior   n.superior  <br>
   /zero.inferior /one.inferior   etc.<br>
as is very commonly used in fonts.<br>
<br>
<br>
<br>
Cheers<br>
<br>
        Ross<br>
<br>
<br>
Dr Ross Moore<br>
Mathematics Dept | 12 Wally’s Walk, 734<br>
Macquarie University, NSW 2109, Australia<br>
T: +61 2 9850 8955  |  F: +61 2 9850 8114<br>
M:+61 407 288 255  |  E: ross.moore@mq.edu.au<br>
<br>
<a href="http://www.maths.mq.edu.au">http://www.maths.mq.edu.au</a><br>
<br>
<br>
 <<a href="http://mq.edu.au/">http://mq.edu.au/</a>></div>
</span></font></div>
<div><img src="cid:75d17d3b-7e73-4ee3-a688-50d035309531@ausprd01.prod.outlook.com">
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:10pt;">
<div class="PlainText"><br>
<br>
<br>
CRICOS Provider Number 00002J. Think before you print. <br>
Please consider the environment before printing this email.<br>
<br>
This message is intended for the addressee named and may <br>
contain confidential information. If you are not the intended <br>
recipient, please delete it and notify the sender. Views expressed <br>
in this message are those of the individual sender, and are not <br>
necessarily the views of Macquarie University.<br>
<br>
</div>
</span></font></div>
</body>
</html>