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

- 2.6K All Categories
- 1 Introductions
- 2.1K Typeface Design
- 240 Font Technology
- 721 Technique and Theory
- 276 Type Business
- 264 Type Design Critiques
- 386 Type Design Software
- 27 Punchcutting
- 54 Lettering and Calligraphy
- 34 Technique and Theory
- 20 Lettering Critiques
- 204 Typography
- 141 History of Typography
- 63 Education
- 302 Announcements
- 54 Events
- 55 Job Postings
- 89 Type Releases
- 103 Miscellaneous News
- 163 About TypeDrawers
- 40 TypeDrawers Announcements
- 72 Suggestions and Bug Reports

Belleve Invis
Posts: **232**

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

232hadside 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+δt232is 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.