diff --git a/buildglyphs.ptl b/buildglyphs.ptl index 99e87ac..4fe670a 100644 --- a/buildglyphs.ptl +++ b/buildglyphs.ptl @@ -375,11 +375,14 @@ export as build : define [buildFont para recursive recursiveCodes] : begin set font.hhea.ascent asc set font.'OS/2'.usWinAscent asc set font.'OS/2'.sTypoAscender asc - set font.hhea.descent desc + + set font.hhea.descent DESCENDER set font.'OS/2'.usWinDescent [Math.abs desc] - set font.'OS/2'.sTypoDescender desc - set font.hhea.lineGap para.linegap - set font.'OS/2'.sTypoLineGap para.linegap + set font.'OS/2'.sTypoDescender DESCENDER + + set font.hhea.lineGap (para.leading - asc + DESCENDER) + set font.'OS/2'.sTypoLineGap (para.leading - asc + DESCENDER) + set font.'OS/2'.sxHeight XH set font.'OS/2'.sCapHeight CAP set font.post.italicAngle (0 - para.slantAngle) diff --git a/glyphs/symbol-geometric.ptl b/glyphs/symbol-geometric.ptl index 0e85064..0ecefce 100644 --- a/glyphs/symbol-geometric.ptl +++ b/glyphs/symbol-geometric.ptl @@ -223,13 +223,13 @@ symbol-block 'Block Shapes' create-glyph 'fullblock' : glyph-construction set-width FULLWIDTH assign-unicode 0x2588 - start-from 0 font.hhea.ascent - line-to FULLWIDTH font.hhea.ascent - line-to FULLWIDTH font.hhea.descent - line-to 0 font.hhea.descent + start-from 0 font.'OS/2'.usWinAscent + line-to FULLWIDTH font.'OS/2'.usWinAscent + line-to FULLWIDTH (-font.'OS/2'.usWinDescent) + line-to 0 (-font.'OS/2'.usWinDescent) define [Shade fn] : glyph-construction - local top font.hhea.ascent - local bottom font.hhea.descent + local top font.'OS/2'.usWinAscent + local bottom (-font.'OS/2'.usWinDescent) local segx 6 local segy 16 local g : create-glyph : glyph-construction : foreach j [range 0 segx] : foreach k [range 0 segy] : if [fn j k] : begin @@ -257,31 +257,31 @@ symbol-block 'Block Shapes' create-glyph ('vfill' + fill) : glyph-construction set-width FULLWIDTH assign-unicode (0x2580 + fill) - start-from 0 [mix font.hhea.descent font.hhea.ascent (fill / 8)] - line-to FULLWIDTH [mix font.hhea.descent font.hhea.ascent (fill / 8)] - line-to FULLWIDTH font.hhea.descent - line-to 0 font.hhea.descent + start-from 0 [mix (-font.'OS/2'.usWinDescent) font.'OS/2'.usWinAscent (fill / 8)] + line-to FULLWIDTH [mix (-font.'OS/2'.usWinDescent) font.'OS/2'.usWinAscent (fill / 8)] + line-to FULLWIDTH (-font.'OS/2'.usWinDescent) + line-to 0 (-font.'OS/2'.usWinDescent) create-glyph ('hfill' + fill) : glyph-construction set-width FULLWIDTH assign-unicode (0x2590 - fill) - start-from 0 font.hhea.ascent - line-to (FULLWIDTH * fill / 8) font.hhea.ascent - line-to (FULLWIDTH * fill / 8) font.hhea.descent - line-to 0 font.hhea.descent + start-from 0 font.'OS/2'.usWinAscent + line-to (FULLWIDTH * fill / 8) font.'OS/2'.usWinAscent + line-to (FULLWIDTH * fill / 8) (-font.'OS/2'.usWinDescent) + line-to 0 (-font.'OS/2'.usWinDescent) create-glyph 'upHalfblock' : glyph-construction set-width FULLWIDTH assign-unicode 0x2580 - start-from 0 font.hhea.ascent - line-to FULLWIDTH font.hhea.ascent - line-to FULLWIDTH [mix font.hhea.descent font.hhea.ascent 0.5] - line-to 0 [mix font.hhea.descent font.hhea.ascent 0.5] + start-from 0 font.'OS/2'.usWinAscent + line-to FULLWIDTH font.'OS/2'.usWinAscent + line-to FULLWIDTH [mix (-font.'OS/2'.usWinDescent) font.'OS/2'.usWinAscent 0.5] + line-to 0 [mix (-font.'OS/2'.usWinDescent) font.'OS/2'.usWinAscent 0.5] create-glyph 'rightHalfBlock' : glyph-construction set-width FULLWIDTH assign-unicode 0x2590 - start-from (FULLWIDTH * 0.5) font.hhea.ascent - line-to FULLWIDTH font.hhea.ascent - line-to FULLWIDTH font.hhea.descent - line-to (FULLWIDTH * 0.5) font.hhea.descent + start-from (FULLWIDTH * 0.5) font.'OS/2'.usWinAscent + line-to FULLWIDTH font.'OS/2'.usWinAscent + line-to FULLWIDTH (-font.'OS/2'.usWinDescent) + line-to (FULLWIDTH * 0.5) (-font.'OS/2'.usWinDescent) ### Box drawing glyphs symbol-block 'Box-Drawing' @@ -289,7 +289,7 @@ symbol-block 'Box-Drawing' local heavy : Math.max (light * 2) (WIDTH * 0.15) local width FULLWIDTH local midx : FULLWIDTH / 2 - local midy : mix font.hhea.descent font.hhea.ascent 0.5 + local midy : mix (-font.'OS/2'.usWinDescent) font.'OS/2'.usWinAscent 0.5 define [boxdraw unicode u d l r] : create-glyph ('bd' + [unicode.toString 16 :.toUpperCase]) : glyph-construction assign-unicode unicode set-width width @@ -297,8 +297,8 @@ symbol-block 'Box-Drawing' local stopV : [Math.max l r] / 2 if l : include : HBar 0 (midx + stopH) midy l if r : include : HBar (midx - stopH) width midy r - if d : include : VBar midx font.hhea.descent (midy + stopV) d - if u : include : VBar midx (midy - stopV) font.hhea.ascent u + if d : include : VBar midx (-font.'OS/2'.usWinDescent) (midy + stopV) d + if u : include : VBar midx (midy - stopV) font.'OS/2'.usWinAscent u define [dlboxdraw unicode u d l r] : create-glyph ('bd' + [unicode.toString 16 :.toUpperCase]) : glyph-construction assign-unicode unicode set-width width @@ -313,11 +313,11 @@ symbol-block 'Box-Drawing' include : HBar (midx + stopH) width (midy + (r - light)) light if (r > light) : include : HBar (midx + stopH) width (midy - (r - light)) light if d : begin - include : VBar (midx + (d - light)) font.hhea.descent (midy - stopV) light - if (d > light) : include : VBar (midx - (d - light)) font.hhea.descent (midy - stopV) light + include : VBar (midx + (d - light)) (-font.'OS/2'.usWinDescent) (midy - stopV) light + if (d > light) : include : VBar (midx - (d - light)) (-font.'OS/2'.usWinDescent) (midy - stopV) light if u : begin - include : VBar (midx + (u - light)) (midy + stopV) font.hhea.ascent light - if (u > light) : include : VBar (midx - (u - light)) (midy + stopV) font.hhea.ascent light + include : VBar (midx + (u - light)) (midy + stopV) font.'OS/2'.usWinAscent light + if (u > light) : include : VBar (midx - (u - light)) (midy + stopV) font.'OS/2'.usWinAscent light if (stopH > 0 && [not u]) : include : HBar (midx - stopH - light * HVCONTRAST) (midx + stopH + light * HVCONTRAST) (midy + capV) light if (stopH > 0 && [not d]) : include : HBar (midx - stopH - light * HVCONTRAST) (midx + stopH + light * HVCONTRAST) (midy - capV) light if (stopV > 0 && [not l]) : include : VBar (midx - capH) (midy - stopV - light) (midy + stopV + light) light @@ -404,7 +404,7 @@ symbol-block 'Box-Drawing' define [vDashed unicode segments weight] : create-glyph ('bd' + [unicode.toString 16 :.toUpperCase]) : glyph-construction assign-unicode unicode set-width width - foreach j [range 0 segments] : include : VBar midx [mix [mix font.hhea.descent font.hhea.ascent (j / segments)] [mix font.hhea.descent font.hhea.ascent ((j + 1) / segments)] 0.2] [mix [mix font.hhea.descent font.hhea.ascent (j / segments)] [mix font.hhea.descent font.hhea.ascent ((j + 1) / segments)] 0.8] weight + foreach j [range 0 segments] : include : VBar midx [mix [mix (-font.'OS/2'.usWinDescent) font.'OS/2'.usWinAscent (j / segments)] [mix (-font.'OS/2'.usWinDescent) font.'OS/2'.usWinAscent ((j + 1) / segments)] 0.2] [mix [mix (-font.'OS/2'.usWinDescent) font.'OS/2'.usWinAscent (j / segments)] [mix (-font.'OS/2'.usWinDescent) font.'OS/2'.usWinAscent ((j + 1) / segments)] 0.8] weight hDashed 0x2504 3 light hDashed 0x2505 3 heavy hDashed 0x2508 4 light @@ -424,7 +424,7 @@ symbol-block 'Box-Drawing' set-width width include : dispiro widths.center light - g4.up.start midx font.hhea.descent [heading UPWARD] + g4.up.start midx (-font.'OS/2'.usWinDescent) [heading UPWARD] arcvh g4.right.end width midy [heading RIGHTWARD] create-glyph 'bd256E' : glyph-construction @@ -432,7 +432,7 @@ symbol-block 'Box-Drawing' set-width width include : dispiro widths.center light - g4.up.start midx font.hhea.descent [heading UPWARD] + g4.up.start midx (-font.'OS/2'.usWinDescent) [heading UPWARD] arcvh g4.left.end 0 midy [heading LEFTWARD] create-glyph 'bd256F' : glyph-construction @@ -440,7 +440,7 @@ symbol-block 'Box-Drawing' set-width width include : dispiro widths.center light - g4.down.start midx font.hhea.ascent [heading DOWNWARD] + g4.down.start midx font.'OS/2'.usWinAscent [heading DOWNWARD] arcvh g4.left.end 0 midy [heading LEFTWARD] create-glyph 'bd2570' : glyph-construction @@ -448,7 +448,7 @@ symbol-block 'Box-Drawing' set-width width include : dispiro widths.center light - g4.down.start midx font.hhea.ascent [heading DOWNWARD] + g4.down.start midx font.'OS/2'.usWinAscent [heading DOWNWARD] arcvh g4.right.end width midy [heading RIGHTWARD] create-glyph 'bd2571' : glyph-construction @@ -456,15 +456,15 @@ symbol-block 'Box-Drawing' set-width width include : dispiro widths.center light - flat width font.hhea.ascent - curl 0 font.hhea.descent + flat width font.'OS/2'.usWinAscent + curl 0 (-font.'OS/2'.usWinDescent) create-glyph 'bd2572' : glyph-construction assign-unicode 0x2572 set-width width include : dispiro widths.center light - flat 0 font.hhea.ascent - curl width font.hhea.descent + flat 0 font.'OS/2'.usWinAscent + curl width (-font.'OS/2'.usWinDescent) create-glyph 'bd2573' : glyph-construction assign-unicode 0x2573 set-width width @@ -489,33 +489,33 @@ symbol-block 'Powerline' create-glyph 'pwlTriangleRight' : glyph-construction assign-unicode 0xE0B0 - start-from O font.hhea.ascent - line-to 0 font.hhea.ascent - line-to WIDTH [mix font.hhea.ascent font.hhea.descent 0.5] - line-to 0 font.hhea.descent - line-to O font.hhea.descent + start-from O font.'OS/2'.usWinAscent + line-to 0 font.'OS/2'.usWinAscent + line-to WIDTH [mix font.'OS/2'.usWinAscent (-font.'OS/2'.usWinDescent) 0.5] + line-to 0 (-font.'OS/2'.usWinDescent) + line-to O (-font.'OS/2'.usWinDescent) create-glyph 'pwlAngleRight' : glyph-construction assign-unicode 0xE0B1 local fine : adviceBlackness 4 include : dispiro widths.rhs fine - flat 0 font.hhea.ascent - curl WIDTH [mix font.hhea.ascent font.hhea.descent 0.5] + flat 0 font.'OS/2'.usWinAscent + curl WIDTH [mix font.'OS/2'.usWinAscent (-font.'OS/2'.usWinDescent) 0.5] include : dispiro widths.rhs fine - flat WIDTH [mix font.hhea.ascent font.hhea.descent 0.5] - curl 0 font.hhea.descent + flat WIDTH [mix font.'OS/2'.usWinAscent (-font.'OS/2'.usWinDescent) 0.5] + curl 0 (-font.'OS/2'.usWinDescent) create-glyph 'pwlTriangleLeft' : glyph-construction assign-unicode 0xE0B2 include glyphs.pwlTriangleRight - include : FlipAround MIDDLE [mix font.hhea.ascent font.hhea.descent 0.5] + include : FlipAround MIDDLE [mix font.'OS/2'.usWinAscent (-font.'OS/2'.usWinDescent) 0.5] create-glyph 'pwlAngleLeft' : glyph-construction assign-unicode 0xE0B3 include glyphs.pwlAngleRight - include : FlipAround MIDDLE [mix font.hhea.ascent font.hhea.descent 0.5] + include : FlipAround MIDDLE [mix font.'OS/2'.usWinAscent (-font.'OS/2'.usWinDescent) 0.5] create-glyph 'pwlLock' : glyph-construction assign-unicode 0xE0A2 diff --git a/glyphs/symbol-other.ptl b/glyphs/symbol-other.ptl index 6472ced..c7d7c95 100644 --- a/glyphs/symbol-other.ptl +++ b/glyphs/symbol-other.ptl @@ -106,4 +106,16 @@ symbol-block 'Musical' widths.rhs fine g4 (SB + noteSize) operTop bezcontrols.absolute RIGHTSB y1 RIGHTSB y2 - g4 x3 y3 \ No newline at end of file + g4 x3 y3 + +symbol-block 'Metric marks' + create-glyph 'metmark' : glyph-construction + assign-unicode 0xE09F + include : VBar MIDDLE (-font.'OS/2'.usWinDescent) (font.'OS/2'.usWinAscent) SHOULDERFINE + include : HBar MIDDLE WIDTH 0 SHOULDERFINE + include : HBar MIDDLE WIDTH CAP SHOULDERFINE + include : HBar MIDDLE WIDTH XH SHOULDERFINE + include : HBar MIDDLE WIDTH DESCENDER SHOULDERFINE + include : HBar 0 MIDDLE parenMid SHOULDERFINE + include : HBar 0 MIDDLE parenTop SHOULDERFINE + include : HBar 0 MIDDLE parenBot SHOULDERFINE \ No newline at end of file diff --git a/parameters.toml b/parameters.toml index b88f72c..e68ee28 100644 --- a/parameters.toml +++ b/parameters.toml @@ -6,7 +6,7 @@ copyright = 'Copyright (c) 2015 Belleve Invis.' licence = '''This font software is licenced under the SIL Open Font Licence, Version 1.1. This is licence is avaliable with a FAQ at: http://scripts.sil.org/OFL. This font software is distributes on an 'AS IS' basis, without warranties or conditions of any kind, either express or implied. See the SIL Open Font licence fot the specific language, premissions and limitations governing your use of this font software.''' leading = 1250 # Line height times 1000. -linegap = 0 # Additional line gap. +#linegap = 0 # Additional line gap. width = 500 # Character width. Increase this if you think that Iosevka is too narrow. cap = 735 # Cap height (as well as ascender). xheight = 530 # X-height.