It looks like you're new here. If you want to get involved, click one of these buttons!

- 2.9K All Categories
- 4 Introductions
- 2.3K Typeface Design
- 350 Font Technology
- 782 Technique and Theory
- 305 Type Business
- 295 Type Design Critiques
- 406 Type Design Software
- 27 Punchcutting
- 59 Lettering and Calligraphy
- 37 Technique and Theory
- 22 Lettering Critiques
- 224 Typography
- 156 History of Typography
- 68 Education
- 346 Announcements
- 59 Events
- 67 Job Postings
- 103 Type Releases
- 116 Miscellaneous News
- 175 About TypeDrawers
- 41 TypeDrawers Announcements
- 76 Suggestions and Bug Reports

Belleve Invis
Posts: **253**

In a nutshell: the **exact definition** of the "bounding box" used to calculate metrics (LSB & TSB in HMTX-HVAR/VMTX-VVAR). Will the rasterizer use a **fixed** bounding box for all the instances (like the one stored in __glyf__ table), of the dynamically calculated bounding box, one for one distance?

Tagged:

0

## Comments

161Note: In the 'gvar' table, the number of glyph points is equal to the number of points in the glyph description in the 'glyf' table, plus the four phantom points (the last 4 points in 'gvar' point numbering).

The hmtx/HVAR and vmtx/VVAR tables are expected to produce the same results as the rasterizer phantom points, modulo that the phantom points can potentially be adjusted by hints whereas hmtx/etc. values are not (just as in a non-variable font).

253hadside bearing.Let's consider the situation for VVAR. We have a glyph with only two points,

z1andz2, with their (default) coordinates beingy1andy2(y1<y2), and the delta under the chosen instance beingδy1andδy2. InvmtxandVVARthe TSB is defined ast+δt, and the advance height ish+δh.Following the definition of

glyf’s bounding box, the ymax would becomey2, and the vertical origin would bey2+tin the default instance. This is the peaceful old world we know.However in the variable world, the advance height would become

h+δh, which is simple. However the top side bearing is nowt + δt, and the definition of vertical origin become ambiguous now:- If we follow the

glyf’symaxthen the vertical origin would becomey2+t+δt.- If we follow the true bounding box, the vertical origin would become

max(. This is a complex formula and it is even not representable in the OTVar’s “value + delta” manner, as the designers expected.y1+δy1,y2+δy2) +t+δt253is not representablein "value + delta" mechanism, and there is no phantom point in CFF2, how can we encode the top side bearing if we want the vertical origin being a fixed, or a simple varible quantity? If we eliminate TSB some rasterizer would make use a constant TSB and make the metrics incorrect.