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

- 2.2K All Categories
- 1.8K Typeface Design
- 142 Font Technology
- 635 Technique and Theory
- 234 Type Business
- 218 Type Design Critiques
- 351 Type Design Software
- 17 Punchcutting
- 48 Lettering and Calligraphy
- 32 Technique and Theory
- 16 Lettering Critiques
- 180 Typography
- 126 History of Typography
- 54 Education
- 277 Announcements
- 52 Events
- 49 Job Postings
- 82 Type Releases
- 93 Miscellaneous News
- 137 About TypeDrawers
- 35 TypeDrawers Announcements
- 60 Suggestions and Bug Reports

Belleve Invis
Posts: **207**

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

141Note: 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).

207hadside 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+δt207is 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.