Menu

#136 XeTeX selects the wrong optical size

Future
closed
nobody
None
3
2018-02-03
2016-11-30
No

XeTeX automatically selects a wrong font from an OpenType font family with several optical sizes. For example, the Arno Pro family, produced by Adobe Systems Incorporated, contains five optical sizes:

optical size design size range
Caption 8.0 ( 5.9, 8.5]
SmText 10.0 ( 8.5,11.0]
[Regular] 12.0 (11.0,14.0]
Subhead 18.0 (14.0,21.5]
Display 36.0 (21.5,72.0]

The first value, within each row, is the design size and is followed by the recommended usage range (the small end is exclusive while the large end is inclusive). Each value (design size, small and large end of the range) is expressed in PostScript points (TeX's "bp"): this is required by the ISO/IEC 14496-22:2015 standard, related to the Open Font Format; the section, that describes the 'size' (optical size) feature, says at page 389:

The first value represents the design size in 720/inch units (decipoints). [i.e. 80, 100, 120, 180, 360]

[...]

The fourth and fifth values represent the small end of the recommended usage range (exclusive) and the large end of the recommended usage range (inclusive), stored in 720/inch units (decipoints). [i.e. 59-85, 85-110, 110-140, &c]

So compiling the following code, the selection of Arno Pro Regular is expected:

\footline={\hfil} %
\font\rm="Arno Pro" at 14bp \rm

Hello, world!

\bye

Nevertheless XeTeX wrongly selects Arno Pro Subhead. I tried these other values:

  • 14.00pt → Arno Pro Regular,
  • 14.01pt → Arno Pro Subhead,
  • 13.90bp (= 13.952pt) → Arno Pro Regular,
  • 13.95bp (= 14.002pt) → Arno Pro Subhead.

I deduced that XeTeX looks at the values in the above table as expressed in TeX points, which is wrong.

Discussion

  • Jonathan Kew

    Jonathan Kew - 2018-02-03

    This should be fixed in commit 242516c203c28f2f1ef854c2552e12fb15bd3cf8.

     
  • Jonathan Kew

    Jonathan Kew - 2018-02-03
    • status: open --> closed
     

Anonymous
Anonymous

Add attachments
Cancel