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:
I deduced that XeTeX looks at the values in the above table as expressed in TeX points, which is wrong.
Anonymous
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
I've reported to to luaotfload too: https://github.com/lualatex/luaotfload/issues/389
This should be fixed in commit 242516c203c28f2f1ef854c2552e12fb15bd3cf8.