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

- 2.7K All Categories
- 2 Introductions
- 2.2K Typeface Design
- 293 Font Technology
- 754 Technique and Theory
- 291 Type Business
- 279 Type Design Critiques
- 396 Type Design Software
- 27 Punchcutting
- 57 Lettering and Calligraphy
- 35 Technique and Theory
- 22 Lettering Critiques
- 210 Typography
- 145 History of Typography
- 65 Education
- 324 Announcements
- 56 Events
- 60 Job Postings
- 96 Type Releases
- 111 Miscellaneous News
- 165 About TypeDrawers
- 41 TypeDrawers Announcements
- 72 Suggestions and Bug Reports

Belleve Invis
Posts: **249**

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).

249hadside 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+δt249is 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.