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

- 2.1K All Categories
- 1.7K Typeface Design
- 121 Font Technology
- 622 Technique and Theory
- 225 Type Business
- 209 Type Design Critiques
- 347 Type Design Software
- 17 Punchcutting
- 45 Lettering and Calligraphy
- 31 Technique and Theory
- 14 Lettering Critiques
- 173 Typography
- 121 History of Typography
- 52 Education
- 262 Announcements
- 50 Events
- 45 Job Postings
- 79 Type Releases
- 87 Miscellaneous News
- 134 About TypeDrawers
- 35 TypeDrawers Announcements
- 58 Suggestions and Bug Reports

Belleve Invis
Posts: **195**

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?

0

## Comments

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

195hadside 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+δt195is 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.