Manual hinting in FontForge
user9812
Posts: 7
I'm trying to modify a font in FontForge. The lower-case 'l' character is blurry. Meanwhile, the stem of the 'h' is quite good. The 'h' stem is the same size as the 'l'... Is there any way that I can copy some code manually from the 'h' stem to the 'l'?
Here's the instructions for the 'h':
PUSHW_1 22 MDAP[rnd] PUSHW_1 23 MDAP[rnd] PUSHW_1 22 SRP0 PUSHW_1 0 MDRP[rp0,grey] PUSHW_1 0 MDAP[rnd] PUSHW_2 21 3 MIRP[rp0,rnd,grey] PUSHW_1 2 MDRP[rp0,grey] PUSHW_1 23 SRP0 PUSHW_1 12 MDRP[rp0,min,rnd,grey] PUSHW_2 13 3 MIRP[rp0,rnd,grey] SVTCA[y-axis] PUSHW_1 0 RCVT IF PUSHW_1 6 MDAP[rnd] ELSE PUSHW_2 6 9 MIAP[no-rnd] EIF PUSHW_1 0 RCVT IF PUSHW_1 0 MDAP[rnd] ELSE PUSHW_2 0 5 MIAP[no-rnd] EIF PUSHW_1 0 RCVT IF PUSHW_1 12 MDAP[rnd] ELSE PUSHW_2 12 5 MIAP[no-rnd] EIF PUSHW_1 6 SRP0 PUSHW_2 17 2 MIRP[rp0,rnd,grey] NPUSHW 3 249 17 1 DELTAP2 NPUSHW 3 9 17 1 DELTAP3 NPUSHW 33 8 17 24 17 40 17 56 17 72 17 88 17 104 17 120 17 136 17 152 17 168 17 184 17 200 17 216 17 232 17 248 17 16 DELTAP1 NPUSHW 31 8 17 24 17 40 17 56 17 72 17 88 17 104 17 120 17 136 17 152 17 168 17 184 17 200 17 216 17 232 17 15 DELTAP2 IUP[y] IUP[x]
And here's the instructions for the 'l':
PUSHW_4 1 3 2 4 CALL SVTCA[y-axis] PUSHW_1 0 RCVT IF PUSHW_1 1 MDAP[rnd] ELSE PUSHW_2 1 5 MIAP[no-rnd] EIF IUP[y] IUP[x]
Am I looking at the right thing here? I tried this for 'l' (just copied a similar-looking part from 'h') but this didn't make any difference to how 'l' was rendered:
PUSHW_4 1 3 2 4 CALL SVTCA[y-axis] PUSHW_1 0 RCVT IF PUSHW_1 6 MDAP[rnd] ELSE PUSHW_2 6 9 MIAP[no-rnd] EIF IUP[y] IUP[x]
Here's the instructions for the 'h':
PUSHW_1 22 MDAP[rnd] PUSHW_1 23 MDAP[rnd] PUSHW_1 22 SRP0 PUSHW_1 0 MDRP[rp0,grey] PUSHW_1 0 MDAP[rnd] PUSHW_2 21 3 MIRP[rp0,rnd,grey] PUSHW_1 2 MDRP[rp0,grey] PUSHW_1 23 SRP0 PUSHW_1 12 MDRP[rp0,min,rnd,grey] PUSHW_2 13 3 MIRP[rp0,rnd,grey] SVTCA[y-axis] PUSHW_1 0 RCVT IF PUSHW_1 6 MDAP[rnd] ELSE PUSHW_2 6 9 MIAP[no-rnd] EIF PUSHW_1 0 RCVT IF PUSHW_1 0 MDAP[rnd] ELSE PUSHW_2 0 5 MIAP[no-rnd] EIF PUSHW_1 0 RCVT IF PUSHW_1 12 MDAP[rnd] ELSE PUSHW_2 12 5 MIAP[no-rnd] EIF PUSHW_1 6 SRP0 PUSHW_2 17 2 MIRP[rp0,rnd,grey] NPUSHW 3 249 17 1 DELTAP2 NPUSHW 3 9 17 1 DELTAP3 NPUSHW 33 8 17 24 17 40 17 56 17 72 17 88 17 104 17 120 17 136 17 152 17 168 17 184 17 200 17 216 17 232 17 248 17 16 DELTAP1 NPUSHW 31 8 17 24 17 40 17 56 17 72 17 88 17 104 17 120 17 136 17 152 17 168 17 184 17 200 17 216 17 232 17 15 DELTAP2 IUP[y] IUP[x]
And here's the instructions for the 'l':
PUSHW_4 1 3 2 4 CALL SVTCA[y-axis] PUSHW_1 0 RCVT IF PUSHW_1 1 MDAP[rnd] ELSE PUSHW_2 1 5 MIAP[no-rnd] EIF IUP[y] IUP[x]
Am I looking at the right thing here? I tried this for 'l' (just copied a similar-looking part from 'h') but this didn't make any difference to how 'l' was rendered:
PUSHW_4 1 3 2 4 CALL SVTCA[y-axis] PUSHW_1 0 RCVT IF PUSHW_1 6 MDAP[rnd] ELSE PUSHW_2 6 9 MIAP[no-rnd] EIF IUP[y] IUP[x]
0
Comments
-
Have you tried the Hints > Debug window? You can go through the instructions one by one and would help understanding what is happening.0
-
What rendering are you looking at? It’s possible that this is subpixel rendering and at some positions the stems will look blurry, have you tried typing IIIIIIII see if some of the stems look sharper?0
Categories
- All Categories
- 43 Introductions
- 3.7K Typeface Design
- 798 Font Technology
- 1K Technique and Theory
- 617 Type Business
- 444 Type Design Critiques
- 541 Type Design Software
- 30 Punchcutting
- 136 Lettering and Calligraphy
- 83 Technique and Theory
- 53 Lettering Critiques
- 483 Typography
- 301 History of Typography
- 114 Education
- 68 Resources
- 498 Announcements
- 79 Events
- 105 Job Postings
- 148 Type Releases
- 165 Miscellaneous News
- 269 About TypeDrawers
- 53 TypeDrawers Announcements
- 116 Suggestions and Bug Reports