The dynamic PUA augmentation to BFENTRIES was required due to the fact that some fonts do not provide CMAP entries corresponding to glyph indices that are output from the GSUB processing. If the IFPainter interface took glyph indices instead of chars, then it wouldn't have been a problem; but alas, it does use chars, so the only way to handle was to introduce dynamic PUAs. As you point out, this only works with embedded subsets.
On Sat, Mar 5, 2011 at 10:07 PM, Alex Zepeda <zipzi...@sonic.net> wrote: > Glenn Adams wrote: > > Also, note that 'salt' and 'ss01' through 'ss20' should be off by default. >> I plan to add an extension mechanism to permit the author to enable optional >> features, which will handle this usage. >> > > Yup. I turned it on because I wanted the alternate glyphs. My solution > right now was to turn on salt (which is mapped to some of ss01, ss02, and > ss03 on this font) and then manually map the numbers to the ss01 variants in > the differences table. > > I don't think directionality will break copy and paste necessarily, but > mapping to PUAs does because the PDF reader won't copy the original code > point but instead uses the private one which will be useless outside of the > PDF (unless you've got a font installed that's already mapped the PUA). I > *think* with the differences table, it will copy the original codepoint > preserving copy and paste. > > F/ex: In this font 'salt' provides alternate lowercase a and numbers 2, 3, > and 4 glyphs from ss01. > > If I copy and paste 'Zepeda' I get (using the existing substitution): > > 'Zeped' > > If I copy and paste '16273' I get (using a hardcoded diff table entry): > > '16273' > > Note that in the PDF in question, it all looks great. > > - alex >