diff --git a/changes/15.3.1.md b/changes/15.3.1.md index c6440b8ee..1fb81036a 100644 --- a/changes/15.3.1.md +++ b/changes/15.3.1.md @@ -1 +1,2 @@ * Fix display of Kleisli arrows under Kitty (#1350). +* Ascender height and Cap height is decoupled. Now they could be configured separately (#1334). \ No newline at end of file diff --git a/doc/custom-build.md b/doc/custom-build.md index 439c23d19..fdebe6dc8 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -454,6 +454,7 @@ Subsection `metric-override` provides ability to override certain metric values, | Property | Unit | Default Value | Meaning | |----------|------|---------|----------| | `cap` | emu | 735 | Height of `H`. | +| `ascender` | emu | 735 | Height of `b`. | | `xHeight` | emu | 520 | Height of `x`. | | `sb` | emu | (*varies, 60 for Regular*) | Width of common side-bearings. | | `accentWidth` | emu | 200 | Width of accent marks. | diff --git a/font-src/glyphs/letter/cyrillic/lower-be.ptl b/font-src/glyphs/letter/cyrillic/lower-be.ptl index 6c46fb750..8f37ba9ba 100644 --- a/font-src/glyphs/letter/cyrillic/lower-be.ptl +++ b/font-src/glyphs/letter/cyrillic/lower-be.ptl @@ -26,4 +26,4 @@ glyph-block Letter-Cyrillic-Lower-Be : begin flat (SB + OX) SmallArchDepthB curl (SB + OX) (yRingTop - SmallArchDepthA) alsoThruThem [list {0.3 0.85} {0.65 0.925}] important g4 - g4 (RightSB - (1 / 16) * Stroke * HVContrast) CAP [heading Rightward] + g4 (RightSB - (1 / 16) * Stroke * HVContrast) Ascender [heading Rightward] diff --git a/font-src/glyphs/letter/cyrillic/yat.ptl b/font-src/glyphs/letter/cyrillic/yat.ptl index bb83d30e8..cf30946c6 100644 --- a/font-src/glyphs/letter/cyrillic/yat.ptl +++ b/font-src/glyphs/letter/cyrillic/yat.ptl @@ -20,13 +20,13 @@ glyph-block Letter-Cyrillic-Yat : begin create-glyph 'cyrl/yat.upright' : glyph-proc include : MarkSet.b local pBar 0.4 - include : CyrlYeriUprightShape CAP (pBar -- pBar) - local cTop : if SLAB (CAP - Stroke / 2) CAP - include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.5] [mix (CAP * pBar) cTop 0.5] + include : CyrlYeriUprightShape Ascender (pBar -- pBar) + local cTop : if SLAB (Ascender - Stroke / 2) Ascender + include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.5] [mix (Ascender * pBar) cTop 0.5] if SLAB : begin eject-contour 'serifYeriLT' - include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut + include : tagged 'serifLT' : LeftwardTopSerif SB Ascender SideJut glyph-block-import Letter-Shared-Shapes : nShoulderKnots diff --git a/font-src/glyphs/letter/greek/lower-delta.ptl b/font-src/glyphs/letter/greek/lower-delta.ptl index 4c9306f8b..2f9a4e1ae 100644 --- a/font-src/glyphs/letter/greek/lower-delta.ptl +++ b/font-src/glyphs/letter/greek/lower-delta.ptl @@ -11,17 +11,17 @@ glyph-block Letter-Greek-Lower-Delta : begin create-glyph 'grek/delta.rounded' : glyph-proc include : MarkSet.b - local yRingTop : Stroke * 0.25 + [mix 0 XH (7 / 8)] + local yRingTop : Stroke * 0.25 + Ascender * 0.619 local xNeck : mix SB RightSB 0.06 local xOTLeft : mix SB RightSB 0.5 local fine : Stroke * 0.5 include : dispiro - g4 [mix Middle RightSB 0.85] [mix XH CAP 0.8] [widths.lhs] + g4 [mix Middle RightSB 0.85] [mix XH Ascender 0.8] [widths.lhs] alsoThru 0.5 0.7 - g4 Middle (CAP - O) + g4 Middle (Ascender - O) archv 2 - g4 (xNeck + Stroke) [mix (CAP - O - Stroke) yRingTop 0.5] [widths.rhs] + g4 (xNeck + Stroke) [mix (Ascender - O - Stroke) yRingTop 0.5] [widths.rhs] arcvh 2 g4 xOTLeft yRingTop [heading Rightward] alsoThruThem : list {0.25 0.05} {0.5 0.13} @@ -40,14 +40,14 @@ glyph-block Letter-Greek-Lower-Delta : begin local fine : Stroke * CThin local coFine : mix fine Stroke 0.5 - local yTop : CAP - Stroke + local yTop : Ascender - Stroke local yMid : Stroke * 0.25 + [mix 0 XH (7 / 8)] local yMid2 : mix yMid [YSmoothMidR yMid 0 SmallArchDepthA SmallArchDepthB] 0.95 local yMid3 : mix yMid [YSmoothMidR yMid 0 SmallArchDepthA SmallArchDepthB] 0.5 local yMockBarStart : yMid3 + 2.25 * Stroke - local pStraightBarStart : 0.75 - (Stroke / CAP) + local pStraightBarStart : 0.75 - (Stroke / Ascender) - include : HBarTop SB RightSB CAP + include : HBarTop SB RightSB Ascender include : intersection [MaskBelow yTop] : dispiro g4.right.start (Middle + CorrectionOMidS - TanSlope * (Stroke - fine)) (O + Stroke - fine + 1/16) [widths.lhs fine] flat (RightSB - OX - (1 - CThin) * Stroke * HVContrast) SmallArchDepthA diff --git a/font-src/glyphs/letter/greek/lower-theta.ptl b/font-src/glyphs/letter/greek/lower-theta.ptl index 23cd1ee6a..5802594f5 100644 --- a/font-src/glyphs/letter/greek/lower-theta.ptl +++ b/font-src/glyphs/letter/greek/lower-theta.ptl @@ -11,8 +11,8 @@ glyph-block Letter-Greek-Lower-Theta : begin create-glyph 'grek/theta' 0x3B8 : glyph-proc include : MarkSet.b - include : OShape CAP 0 (SB - O) (RightSB + O) Stroke (SmallArchDepthA * 100) (SmallArchDepthB * 100) - include : HBar (SB + HalfStroke) (RightSB - HalfStroke) (0.5 * CAP) + include : OShape Ascender 0 (SB - O) (RightSB + O) Stroke (SmallArchDepthA * 100) (SmallArchDepthB * 100) + include : HBar (SB + HalfStroke) (RightSB - HalfStroke) (0.5 * Ascender) glyph-block Letter-Greek-Lower-Theta-Var : begin glyph-block-import CommonShapes @@ -24,21 +24,21 @@ glyph-block Letter-Greek-Lower-Theta-Var : begin define coXTopLeft : mix SB RightSB (2 - pXTopLeft) define topSMA : ArchDepthAOf (SmallArchDepth * (1 - pXTopLeft)) (Width * (1 - pXTopLeft)) define topSMB : ArchDepthBOf (SmallArchDepth * (1 - pXTopLeft)) (Width * (1 - pXTopLeft)) - define sw : AdviceStroke2 3 3 CAP + define sw : AdviceStroke2 3 3 Ascender include : MarkSet.b include : intersection - Rect (CAP * 2) Descender (-Width) [mix RightSB Width 0.5] + Rect (Ascender * 2) Descender (-Width) [mix RightSB Width 0.5] dispiro - flat (SB + OX) (0.45 * CAP) [widths.lhs.heading sw Downward] + flat (SB + OX) (0.45 * Ascender) [widths.lhs.heading sw Downward] curl (SB + OX) SmallArchDepthB arcvh g4 (Middle + CorrectionOMidX * sw) O archv flat (RightSB - OX) SmallArchDepthA - curl (RightSB - OX) (CAP - topSMB) + curl (RightSB - OX) (Ascender - topSMB) arcvh - g4 ([mix xTopLeft RightSB 0.5] - CorrectionOMidX * sw) (CAP - O) - g4 xTopLeft (CAP - topSMA) - g4 [mix xTopLeft RightSB 0.5] [mix (CAP - topSMA) (CAP / 2 - HalfStroke) 0.9] - g4 [mix RightSB Width 0.5] (CAP / 2 - HalfStroke) - g4 coXTopLeft (CAP - topSMA) + g4 ([mix xTopLeft RightSB 0.5] - CorrectionOMidX * sw) (Ascender - O) + g4 xTopLeft (Ascender - topSMA) + g4 [mix xTopLeft RightSB 0.5] [mix (Ascender - topSMA) (Ascender / 2 - HalfStroke) 0.9] + g4 [mix RightSB Width 0.5] (Ascender / 2 - HalfStroke) + g4 coXTopLeft (Ascender - topSMA) diff --git a/font-src/glyphs/letter/greek/lower-xi.ptl b/font-src/glyphs/letter/greek/lower-xi.ptl index 51c2e83b4..ddca001e9 100644 --- a/font-src/glyphs/letter/greek/lower-xi.ptl +++ b/font-src/glyphs/letter/greek/lower-xi.ptl @@ -25,7 +25,7 @@ glyph-block Letter-Greek-Lower-Xi : begin local xBarEnd : mix SB RightSB : match shape [Just SHAPE-ROUNDED] 0.75 [Just SHAPE-FLAT-TOP] 0.85 - local yBar : mix 0 CAP 0.55 + local yBar : mix 0 Ascender 0.55 local xUpperArcLeft : match shape [Just SHAPE-ROUNDED] : SB + 0 @@ -35,19 +35,19 @@ glyph-block Letter-Greek-Lower-Xi : begin [Just SHAPE-FLAT-TOP] : [mix SB RightSB 0.025] + OX * 2 include : match shape - [Just SHAPE-FLAT-TOP] : HBarTop SB RightSB CAP + [Just SHAPE-FLAT-TOP] : HBarTop SB RightSB Ascender __ : glyph-proc include : dispiro match shape [Just SHAPE-ROUNDED] : list - g4 (RightSB + O) (CAP - Hook) [widths.lhs] - hookstart (CAP - O) + g4 (RightSB + O) (Ascender - Hook) [widths.lhs] + hookstart (Ascender - O) [Just SHAPE-FLAT-TOP] : list - flat xBarEnd (CAP - Stroke + fine) [widths.lhs fine] - curl xBarStart (CAP - Stroke + fine) [widths.lhs fine] + flat xBarEnd (Ascender - Stroke + fine) [widths.lhs fine] + curl xBarStart (Ascender - Stroke + fine) [widths.lhs fine] archv 16 - g4 xUpperArcLeft [YSmoothMidL CAP (yBar - Stroke) adaTop adbTop] [widths.lhs] + g4 xUpperArcLeft [YSmoothMidL Ascender (yBar - Stroke) adaTop adbTop] [widths.lhs] arcvh 16 flat xBarStart (yBar - fine) [widths.lhs.heading fine Rightward] curl xBarEnd (yBar - fine) [widths.lhs.heading fine Rightward] diff --git a/font-src/glyphs/letter/greek/lower-zeta.ptl b/font-src/glyphs/letter/greek/lower-zeta.ptl index e8c70f43d..ac9ce982b 100644 --- a/font-src/glyphs/letter/greek/lower-zeta.ptl +++ b/font-src/glyphs/letter/greek/lower-zeta.ptl @@ -11,11 +11,11 @@ glyph-block Letter-Greek-Lower-Zeta : begin create-glyph 'grek/zeta' 0x3B6 : glyph-proc include : MarkSet.if - include : HBar SB (RightSB + O) (CAP - HalfStroke) + include : HBar SB (RightSB + O) (Ascender - HalfStroke) include : dispiro - g4 (RightSB + O) (CAP - Stroke) [widths.rhs] + g4 (RightSB + O) (Ascender - Stroke) [widths.rhs] bezControls 0.7 0.35 1 0.64 12 - g4.down.mid (SB + Stroke * HVContrast) [mix 0 CAP (0.54 * SmallArchDepthB / (SmallArchDepthA + SmallArchDepthB))] + g4.down.mid (SB + Stroke * HVContrast) [mix 0 Ascender (0.54 * SmallArchDepthB / (SmallArchDepthA + SmallArchDepthB))] arcvh 16 g2 [mix SB RightSB 0.55] Stroke [heading Rightward] archv 16 diff --git a/font-src/glyphs/letter/greek/psi.ptl b/font-src/glyphs/letter/greek/psi.ptl index ac4b40292..1b3e81421 100644 --- a/font-src/glyphs/letter/greek/psi.ptl +++ b/font-src/glyphs/letter/greek/psi.ptl @@ -46,7 +46,7 @@ glyph-block Letter-Greek-Psi : begin local df : DivFrame para.diversityM 3 set-width df.width include : df.markSet.if - include : PsiBaseShape df Descender 0 XH CAP false false SLAB false + include : PsiBaseShape df Descender 0 XH Ascender false false SLAB false create-glyph 'cyrl/psi' 0x471 : glyph-proc local df : DivFrame para.diversityM 3 diff --git a/font-src/glyphs/letter/greek/qoppa.ptl b/font-src/glyphs/letter/greek/qoppa.ptl index fe02a93e2..dd2f81c5b 100644 --- a/font-src/glyphs/letter/greek/qoppa.ptl +++ b/font-src/glyphs/letter/greek/qoppa.ptl @@ -31,17 +31,17 @@ glyph-block Letter-Greek-Qoppa : begin create-glyph 'grek/qoppa' 0x3DF : glyph-proc include : MarkSet.b - local y1 : mix 0 CAP 0.4 - local y1co : mix 0 CAP 0.6 + local y1 : mix 0 Ascender 0.4 + local y1co : mix 0 Ascender 0.6 include : intersection - VBarLeft SB 0 CAP + VBarLeft SB 0 Ascender spiro-outline corner SB y1 - corner SB CAP - corner RightSB CAP + corner SB Ascender + corner RightSB Ascender corner RightSB y1co include : intersection - VBarRight RightSB 0 CAP + VBarRight RightSB 0 Ascender spiro-outline corner SB y1 corner SB 0 diff --git a/font-src/glyphs/letter/greek/upper-phi.ptl b/font-src/glyphs/letter/greek/upper-phi.ptl index 3db3b52e4..e81c88fd3 100644 --- a/font-src/glyphs/letter/greek/upper-phi.ptl +++ b/font-src/glyphs/letter/greek/upper-phi.ptl @@ -47,7 +47,7 @@ glyph-block Letter-Greek-Upper-Phi : begin include : VarPhiRing 0 df 0 XH include : VBar df.middle Descender HalfStroke - include : VBar df.middle (XH - HalfStroke) CAP + include : VBar df.middle (XH - HalfStroke) Ascender create-glyph 'cyrl/ef.serifless' : glyph-proc local df : DivFrame para.diversityM 3 @@ -56,17 +56,17 @@ glyph-block Letter-Greek-Upper-Phi : begin include : VarPhiRing 1 df 0 XH include : VBar df.middle Descender HalfStroke - include : VBar df.middle (XH - HalfStroke) CAP + include : VBar df.middle (XH - HalfStroke) Ascender create-glyph 'cyrl/ef.topSerifed' : glyph-proc local df : DivFrame para.diversityM 3 include [refer-glyph 'cyrl/ef.serifless'] AS_BASE ALSO_METRICS - include : tagged 'serifMT' : LeftwardTopSerif df.middle CAP Jut + include : tagged 'serifMT' : LeftwardTopSerif df.middle Ascender Jut create-glyph 'cyrl/ef.serifed' : glyph-proc local df : DivFrame para.diversityM 3 include [refer-glyph 'cyrl/ef.serifless'] AS_BASE ALSO_METRICS - include : tagged 'serifMT' : LeftwardTopSerif df.middle CAP Jut + include : tagged 'serifMT' : LeftwardTopSerif df.middle Ascender Jut include : tagged 'serifMB' : CenterBottomSerif df.middle Descender Jut create-glyph 'cyrl/ef.cursive' : glyph-proc @@ -84,10 +84,10 @@ glyph-block Letter-Greek-Upper-Phi : begin local xBarRight : df.middle + HalfStroke * HVContrast include : dispiro - flat xCrossRight CAP [widths.lhs] - curl [Math.min (xBarLeft + hd.x) (xCrossRight - 0.1)] CAP + flat xCrossRight Ascender [widths.lhs] + curl [Math.min (xBarLeft + hd.x) (xCrossRight - 0.1)] Ascender archv - flat xBarLeft [Math.max XH (CAP - hd.y)] + flat xBarLeft [Math.max XH (Ascender - hd.y)] curl xBarLeft (XH + O) include : dispiro diff --git a/font-src/glyphs/letter/latin-ext/eszet.ptl b/font-src/glyphs/letter/latin-ext/eszet.ptl index cd6999616..1e6f4dc01 100644 --- a/font-src/glyphs/letter/latin-ext/eszet.ptl +++ b/font-src/glyphs/letter/latin-ext/eszet.ptl @@ -5,7 +5,7 @@ import [Dotless CvDecompose] from "../../../support/gr" glyph-module -glyph-block Letter-Latin-Eszet : begin +glyph-block Letter-Latin-Lower-Eszet : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Letter-Shared-Shapes : FlatHookDepth @@ -14,8 +14,8 @@ glyph-block Letter-Latin-Eszet : begin define DESCENDING 1 define TAILED 2 - local ymiddle : [mix 0 CAP 0.5] - HalfStroke - local ymiddleCap : [mix 0 CAP 0.54] - HalfStroke + local ymiddle : [mix 0 Ascender 0.5] - HalfStroke + local ymiddleCap : [mix 0 Ascender 0.54] - HalfStroke local xmiddle : Math.max (SB + Stroke * HVContrast * 1.2) (RightSB - ymiddle / 2 - Stroke * 0.75) local xmiddleBot : Math.max (SB + Stroke * HVContrast * 1.2) (RightSB - ymiddle / 2 - Stroke * 0.75) local xfinal : Math.min @@ -29,18 +29,18 @@ glyph-block Letter-Latin-Eszet : begin local hd : FlatHookDepth [DivFrame 1] if fFlathook : then : include : dispiro - flat xHook CAP [widths.lhs] - curl (l + hd.x) CAP + flat xHook Ascender [widths.lhs] + curl (l + hd.x) Ascender archv - flat l (CAP - hd.y) + flat l (Ascender - hd.y) curl l 0 [heading Downward] : else : include : dispiro widths.lhs - g4 xHook (CAP - Hook) - hookstart (CAP - O) + g4 xHook (Ascender - Hook) + hookstart (Ascender - O) flat l XH curl l 0 [heading Downward] - local t : mix 0 CAP 0.7 + local t : mix 0 Ascender 0.7 local tm : [mix Descender t 0.625] + HalfStroke local tl : [mix l RightSB 0.35] + HalfStroke * HVContrast include : HBarTop (l + 1) (RightSB - HalfStroke * 1.2 - OX) t @@ -71,9 +71,9 @@ glyph-block Letter-Latin-Eszet : begin flat SB 0 [heading Upward] curl SB XH arcvh - g4 (Middle + O) (CAP - O) + g4 (Middle + O) (Ascender - O) archv - g4 (RightSB + O * 2) [mix CAP ymiddle 0.47] + g4 (RightSB + O * 2) [mix Ascender ymiddle 0.47] g4.left.end xmiddle ymiddle [heading Leftward] include : dispiro widths.rhs @@ -94,12 +94,12 @@ glyph-block Letter-Latin-Eszet : begin define [LongSSLigBody slab tail] : glyph-proc include : MarkSet.b - define swOuter : AdviceStroke2 2 3 CAP + define swOuter : AdviceStroke2 2 3 Ascender define strokeCoeff : StrokeWidthBlend 0 1 swInner define sEndX : Math.max SB + swOuter * HVContrast + (RightSB - SB - Stroke) * 0.1 mix SB RightSB 0.3 - define swInner : AdviceStroke2 2.5 3 CAP + define swInner : AdviceStroke2 2.5 3 Ascender define ess: swInner * EssLower / Stroke define sTurnX : Math.max sEndX [mix SB RightSB 0.3] define sBotX : Math.max (sEndX + 1) [mix sEndX RightSB 0.30] @@ -114,13 +114,13 @@ glyph-block Letter-Latin-Eszet : begin include : dispiro widths.rhs swOuter flat SB 0 [heading Upward] - curl SB (CAP - archDepthATop) + curl SB (Ascender - archDepthATop) arcvh - g4 ([mix SB sTopHookX 0.52] - CorrectionOMidX * swOuter) (CAP - O) [widths.rhs : mix swOuter swInner 0.5] + g4 ([mix SB sTopHookX 0.52] - CorrectionOMidX * swOuter) (Ascender - O) [widths.rhs : mix swOuter swInner 0.5] archv - g4.down.mid sTopHookX (CAP - archDepthBTop + TanSlope * swInner) [widths.rhs.heading swInner Downward] + g4.down.mid sTopHookX (Ascender - archDepthBTop + TanSlope * swInner) [widths.rhs.heading swInner Downward] alsoThru.g2 0.5 0.50 [widths.center swInner] - g4 sTurnX [mix innerSmoothB (CAP - archDepthBTop) 0.5] [widths.lhs.heading swInner Downward] + g4 sTurnX [mix innerSmoothB (Ascender - archDepthBTop) 0.5] [widths.lhs.heading swInner Downward] alsoThru.g2 0.5 0.50 [widths.center swInner] g4 (RightSB - OX) (innerSmoothB - 2 * TanSlope * swInner) [widths.rhs.heading swInner Downward] arcvh @@ -149,6 +149,18 @@ glyph-block Letter-Latin-Eszet : begin select-variant 'eszet' 0xDF +glyph-block Letter-Latin-Upper-Eszet : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + local ymiddle : [mix 0 CAP 0.5] - HalfStroke + local ymiddleCap : [mix 0 CAP 0.54] - HalfStroke + local xmiddle : Math.max (SB + Stroke * HVContrast * 1.2) (RightSB - ymiddle / 2 - Stroke * 0.75) + local xmiddleBot : Math.max (SB + Stroke * HVContrast * 1.2) (RightSB - ymiddle / 2 - Stroke * 0.75) + local xfinal : Math.min + xmiddle - 1 - Stroke * TanSlope + Math.max (SB + Stroke * 2) [mix SB RightSB (1 / 4)] + create-glyph 'Eszet' 0x1E9E : glyph-proc include : MarkSet.capital local rightTopX : RightSB + O * 4 diff --git a/font-src/glyphs/letter/latin-ext/eth.ptl b/font-src/glyphs/letter/latin-ext/eth.ptl index 2ddb87cce..da6759106 100644 --- a/font-src/glyphs/letter/latin-ext/eth.ptl +++ b/font-src/glyphs/letter/latin-ext/eth.ptl @@ -12,15 +12,15 @@ glyph-block Letter-Latin-Eth : begin create-glyph 'eth' 0xF0 : glyph-proc include : MarkSet.b - include : OShape (CAP * 0.6) 0 SB RightSB - local ymiddlea : (CAP * 0.6 + SmallArchDepthA - SmallArchDepthB) / 2 + include : OShape (Ascender * 0.6) 0 SB RightSB + local ymiddlea : (Ascender * 0.6 + SmallArchDepthA - SmallArchDepthB) / 2 include : dispiro widths.lhs g4.up.start (RightSB - OX) ymiddlea quadControls 0 0.8 - g4 (SB + Stroke * 1.1) CAP + g4 (SB + Stroke * 1.1) Ascender include : dispiro widths.center OverlayStroke - flat [mix SB RightSB 0.1] [mix XH CAP (-0.1)] - curl [mix SB RightSB 0.95] [mix XH CAP 0.3] + flat [mix SB RightSB 0.1] [mix XH Ascender (-0.1)] + curl [mix SB RightSB 0.95] [mix XH Ascender 0.3] diff --git a/font-src/glyphs/letter/latin-ext/ezh.ptl b/font-src/glyphs/letter/latin-ext/ezh.ptl index b90709680..6070ac6c3 100644 --- a/font-src/glyphs/letter/latin-ext/ezh.ptl +++ b/font-src/glyphs/letter/latin-ext/ezh.ptl @@ -100,11 +100,11 @@ glyph-block Letter-Latin-Ezh : begin create-glyph 'lyogh.serifless' : glyph-proc include : MarkSet.if include : EzhShape XH Descender 0.4 - include : VBarLeft SB (XH * 0.1) CAP + include : VBarLeft SB (XH * 0.1) Ascender create-glyph 'lyogh.hooky' : glyph-proc include [refer-glyph 'lyogh.serifless'] AS_BASE ALSO_METRICS - include : LeftwardTopSerif SB CAP SideJut + include : LeftwardTopSerif SB Ascender SideJut select-variant 'lyogh' 0x26E diff --git a/font-src/glyphs/letter/latin-ext/f-ligatures.ptl b/font-src/glyphs/letter/latin-ext/f-ligatures.ptl index 8dab13b27..84795022b 100644 --- a/font-src/glyphs/letter/latin-ext/f-ligatures.ptl +++ b/font-src/glyphs/letter/latin-ext/f-ligatures.ptl @@ -38,10 +38,10 @@ glyph-block Letter-Latin-F-ligatures : begin include : dispiro widths.rhs flat m 0 [heading Upward] - curl m (CAP - ArchDepthA) - hookend (CAP - O) - g4 (barr + OXHook) (CAP - Hook) - include : VBarRight barr 0 (CAP - Hook) + curl m (Ascender - ArchDepthA) + hookend (Ascender - O) + g4 (barr + OXHook) (Ascender - Hook) + include : VBarRight barr 0 (Ascender - Hook) include : dispiro widths.rhs flat ([Math.min (m - Stroke * 0.3) hbarleft] - TanSlope * HalfStroke) fbar @@ -54,6 +54,6 @@ glyph-block Letter-Latin-F-ligatures : begin include : new-glyph : glyph-proc include [refer-glyph 'longs.flatHookTailed'] AS_BASE include : Translate shift 0 - include : VBarRight barr 0 CAP + include : VBarRight barr 0 Ascender include : HBarTop hbarleft [mix SB barr 0.65] fbar if SLAB : include : tagged 'serifRB' : RightwardBottomSerif barr 0 SideJut diff --git a/font-src/glyphs/letter/latin-ext/glottal-stop.ptl b/font-src/glyphs/letter/latin-ext/glottal-stop.ptl index bb4287ac7..fc5c0983b 100644 --- a/font-src/glyphs/letter/latin-ext/glottal-stop.ptl +++ b/font-src/glyphs/letter/latin-ext/glottal-stop.ptl @@ -14,9 +14,9 @@ glyph-block Letter-Latin-Glottal-Stop : begin include : MarkSet.b include : dispiro widths.rhs - g4 SB (CAP - Hook) - hookstart (CAP - O) - g4 RightSB (CAP - [AdviceGlottalStopArchDepth CAP 1]) + g4 SB (Ascender - Hook) + hookstart (Ascender - O) + g4 RightSB (Ascender - [AdviceGlottalStopArchDepth Ascender 1]) alsoThru.g2 0.5 0.5 important flat (Middle + HalfStroke * HVContrast) (XH * 0.3) curl (Middle + HalfStroke * HVContrast) 0 [heading Downward] @@ -29,9 +29,9 @@ glyph-block Letter-Latin-Glottal-Stop : begin include : MarkSet.b include : dispiro widths.lhs - g4 RightSB (CAP - Hook) - hookstart (CAP - O) - g4 SB (CAP - [AdviceGlottalStopArchDepth CAP (-1)]) + g4 RightSB (Ascender - Hook) + hookstart (Ascender - O) + g4 SB (Ascender - [AdviceGlottalStopArchDepth Ascender (-1)]) alsoThru.g2 0.5 0.5 important flat (Middle - HalfStroke * HVContrast) (XH * 0.3) curl (Middle - HalfStroke * HVContrast) 0 [heading Downward] @@ -56,9 +56,9 @@ glyph-block Letter-Latin-Glottal-Stop : begin local fine : markHalfStroke * 2 include : dispiro widths.rhs fine - g4 SB (CAP - Hook) - hookstart (CAP - O) - g4 RightSB (CAP - [AdviceGlottalStopArchDepth CAP 1]) + g4 SB (Ascender - Hook) + hookstart (Ascender - O) + g4 RightSB (Ascender - [AdviceGlottalStopArchDepth Ascender 1]) alsoThru.g2 0.5 0.5 important flat (Middle + fine / 2 * HVContrast) (XH * 0.3) curl (Middle + fine / 2 * HVContrast) 0 [heading Downward] @@ -70,21 +70,21 @@ glyph-block Letter-Latin-Glottal-Stop : begin local fine : markHalfStroke * 2 include : dispiro widths.lhs fine - g4 RightSB (CAP - Hook) - hookstart (CAP - O) - g4 SB (CAP - [AdviceGlottalStopArchDepth CAP (-1)]) + g4 RightSB (Ascender - Hook) + hookstart (Ascender - O) + g4 SB (Ascender - [AdviceGlottalStopArchDepth Ascender (-1)]) alsoThru.g2 0.5 0.5 important flat (Middle - fine / 2 * HVContrast) (XH * 0.3) curl (Middle - fine / 2 * HVContrast) 0 [heading Downward] if SLAB : begin include : CenterBottomSerif Middle 0 Jut fine - turned 'invglottalstop' 0x296 'revglottalstop' Middle (CAP / 2) + turned 'invglottalstop' 0x296 'revglottalstop' Middle (Ascender / 2) create-glyph 'glottalstopbar' 0x2A1 : glyph-proc include [refer-glyph 'glottalstop'] AS_BASE - include : HOverlayBar (Middle - LongJut * 0.6) (Middle + LongJut * 0.6) (CAP * 0.25) + include : HOverlayBar (Middle - LongJut * 0.6) (Middle + LongJut * 0.6) (Ascender * 0.25) create-glyph 'revglottalstopbar' 0x2A2 : glyph-proc include [refer-glyph 'revglottalstop'] AS_BASE - include : HOverlayBar (Middle - LongJut * 0.6) (Middle + LongJut * 0.6) (CAP * 0.25) \ No newline at end of file + include : HOverlayBar (Middle - LongJut * 0.6) (Middle + LongJut * 0.6) (Ascender * 0.25) diff --git a/font-src/glyphs/letter/latin-ext/hwair.ptl b/font-src/glyphs/letter/latin-ext/hwair.ptl index 54bac0ce3..466d5393b 100644 --- a/font-src/glyphs/letter/latin-ext/hwair.ptl +++ b/font-src/glyphs/letter/latin-ext/hwair.ptl @@ -15,7 +15,7 @@ glyph-block Letter-Latin-Hwair : begin local df : DivFrame para.diversityM 3 set-width df.width include : df.markSet.b - include : VBarLeft df.leftSB 0 CAP df.mvs + include : VBarLeft df.leftSB 0 Ascender df.mvs include : dispiro nShoulderKnots (df.leftSB + df.mvs * HVContrast) (df.middle + df.mvs * 0.5 * HVContrast) (df.mvs * 0.4) nothing (XH * 0.51) (SmallArchDepthA * 0.6 * df.div) (SmallArchDepthB * 0.6 * df.div) df.mvs flat (df.middle + df.mvs * 0.5 * HVContrast) (XH * 0.5) [heading Downward] @@ -26,7 +26,7 @@ glyph-block Letter-Latin-Hwair : begin flat df.rightSB (SmallArchDepthA * 0.6 * df.div) curl df.rightSB XH [heading Upward] if SLAB : begin - local sf1 : SerifFrame CAP 0 df.leftSB df.rightSB df.mvs + local sf1 : SerifFrame Ascender 0 df.leftSB df.rightSB df.mvs local sf2 : SerifFrame XH 0 (df.middle - df.mvs * 0.5 * HVContrast) df.rightSB df.mvs local jut : Jut * 0.75 include : tagged 'serifLT' sf1.lt.outer diff --git a/font-src/glyphs/letter/latin-ext/long-s.ptl b/font-src/glyphs/letter/latin-ext/long-s.ptl index 5d2cfbf57..0f570f500 100644 --- a/font-src/glyphs/letter/latin-ext/long-s.ptl +++ b/font-src/glyphs/letter/latin-ext/long-s.ptl @@ -46,23 +46,23 @@ glyph-block Letter-Latin-Long-S : begin define [LongSBentHookBase y0 m fSlab] : glyph-proc include : dispiro widths.lhs - g4 (RightSB + RBalance2 + [Math.max 0 (m - [StdSmallFBarLeftPos0])]) (CAP - Hook) - hookstart (CAP - O) - flat m (CAP - ArchDepthA) + g4 (RightSB + RBalance2 + [Math.max 0 (m - [StdSmallFBarLeftPos0])]) (Ascender - Hook) + hookstart (Ascender - O) + flat m (Ascender - ArchDepthA) curl m 0 [heading Downward] - set-base-anchor 'overlay' (m + Stroke * 0.65 * HVContrast) (CAP * OverlayPos) + set-base-anchor 'overlay' (m + Stroke * 0.65 * HVContrast) (Ascender * OverlayPos) if fSlab : include : tagged 'serifLB' CenterBottomSerif (m + HalfStroke * HVContrast + RBalance * 0.35) 0 (Jut + RBalance * 0.65) define [LongSBentHookOverlayBar m] : HOverlayBar m + HalfStroke * HVContrast - LongJut * 0.75 m + HalfStroke * HVContrast + LongJut * 0.75 - [mix (XH - Stroke) CAP 0.5] - HalfStroke + [mix (XH - Stroke) Ascender 0.5] - HalfStroke define [LongSSymmetricOverlayBar m] : HOverlayBar m - LongJut * 0.75 m + LongJut * 0.75 - [mix (XH - Stroke) CAP 0.5] - HalfStroke + [mix (XH - Stroke) Ascender 0.5] - HalfStroke create-glyph 'longs.bentHook' : glyph-proc include : MarkSet.b @@ -91,12 +91,12 @@ glyph-block Letter-Latin-Long-S : begin local hd : FlatHookDepth [DivFrame 1] include : dispiro widths.lhs - flat RightSB CAP - curl (m + hd.x) CAP + flat RightSB Ascender + curl (m + hd.x) Ascender archv - flat m (CAP - hd.y) + flat m (Ascender - hd.y) curl m yBot [heading Downward] - set-base-anchor 'overlay' (m + Stroke * 0.65 * HVContrast) (CAP * OverlayPos) + set-base-anchor 'overlay' (m + Stroke * 0.65 * HVContrast) (Ascender * OverlayPos) if fSlab : begin include : tagged 'serifLB' : CenterBottomSerif (m + HalfStroke * HVContrast + RBalance * 0.35) yBot (Jut + RBalance * 0.65) @@ -117,7 +117,7 @@ glyph-block Letter-Latin-Long-S : begin create-glyph 'longs.flatHookTailed' : glyph-proc include : MarkSet.if - include : LongSShape CAP Descender (HookX + 0.25 * Stroke) Hook + include : LongSShape Ascender Descender (HookX + 0.25 * Stroke) Hook create-forked-glyph 'longsbar.flatHookTailed' : LongSSymmetricOverlayBar Middle @@ -133,7 +133,7 @@ glyph-block Letter-Latin-Long-S : begin local x2 : mix RightSB m1 0.25 local y2 : Descender + O include : union - LongSUpperHalf 1 (Middle - FBalance) CAP 0 (HookX + 0.25 * Stroke) Hook + LongSUpperHalf 1 (Middle - FBalance) Ascender 0 (HookX + 0.25 * Stroke) Hook dispiro widths.lhs flat m1 (-O) [heading Downward] diff --git a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl index 2a93c396b..92a3052b7 100644 --- a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl +++ b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl @@ -153,9 +153,9 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : oeOPart df include : FlipAround df.middle (XH / 2) include : oeOPart df - include : VBar df.middle (XH / 2) CAP df.mvs + include : VBar df.middle (XH / 2) Ascender df.mvs if SLAB : begin - include : LeftwardTopSerif (df.middle - df.mvs / 2 * HVContrast) CAP SideJut + include : LeftwardTopSerif (df.middle - df.mvs / 2 * HVContrast) Ascender SideJut create-glyph 'qp' 0x239 : glyph-proc local df : DivFrame para.diversityM 3 diff --git a/font-src/glyphs/letter/latin-ext/ou.ptl b/font-src/glyphs/letter/latin-ext/ou.ptl index f886fb96a..22d169d0e 100644 --- a/font-src/glyphs/letter/latin-ext/ou.ptl +++ b/font-src/glyphs/letter/latin-ext/ou.ptl @@ -35,10 +35,10 @@ glyph-block Letter-Latin-OU : begin include : OShape bar 0 SB RightSB include : dispiro widths.lhs - flat SB CAP [heading Downward] + flat SB Ascender [heading Downward] curl SB (bar - O - Stroke + ArchDepthB) arcvh g4 (Middle + CorrectionOMidS) (bar - O - Stroke + (Stroke * (1 - CThin))) [widths.lhs (Stroke * CThin)] archv flat RightSB (bar - O - Stroke + ArchDepthA) [widths.lhs] - curl RightSB CAP [heading Upward] + curl RightSB Ascender [heading Upward] diff --git a/font-src/glyphs/letter/latin-ext/rams-horn.ptl b/font-src/glyphs/letter/latin-ext/rams-horn.ptl index 9b0d233d5..2cacdf6c2 100644 --- a/font-src/glyphs/letter/latin-ext/rams-horn.ptl +++ b/font-src/glyphs/letter/latin-ext/rams-horn.ptl @@ -31,7 +31,7 @@ glyph-block Letter-Latin-Rams-Horn : begin create-glyph 'latinGamma' 0x194 : glyph-proc include : MarkSet.if - include : RamsHornShape Descender CAP + include : RamsHornShape Descender Ascender create-glyph 'ramshorn' 0x264 : glyph-proc include : MarkSet.e diff --git a/font-src/glyphs/letter/latin/k.ptl b/font-src/glyphs/letter/latin/k.ptl index a86de68e9..59113beb9 100644 --- a/font-src/glyphs/letter/latin/k.ptl +++ b/font-src/glyphs/letter/latin/k.ptl @@ -280,8 +280,8 @@ glyph-block Letter-Latin-K : begin connex -- [if straightBar 1 0.1] define [KHookTopBar slab straightBar] : union - VBarLeft (SB + [KBalance slab straightBar]) 0 (CAP - Hook - HalfStroke) - VerticalHook (SB + [KBalance slab straightBar] + HalfStroke * HVContrast) (CAP - Hook - HalfStroke) HookX (-Hook) + VBarLeft (SB + [KBalance slab straightBar]) 0 (Ascender - Hook - HalfStroke) + VerticalHook (SB + [KBalance slab straightBar] + HalfStroke * HVContrast) (Ascender - Hook - HalfStroke) HookX (-Hook) define CyrlVbGap : (RightSB - SB) * 0.375 define [CyrlVbLength top] : top * 0.375 + Stroke @@ -493,16 +493,16 @@ glyph-block Letter-Latin-K : begin create-glyph "k.\(suffix)" : glyph-proc include : MarkSet.b - include : VBarLeft (SB + [KBalance slabTop straightBar]) 0 CAP + include : VBarLeft (SB + [KBalance slabTop straightBar]) 0 Ascender include : LegsImpl false SB RightSB Stroke XH slabTop slabLegs - if slabTop : include : LeftwardTopSerif (SB + [KBalance slabTop straightBar]) CAP SideJut + if slabTop : include : LeftwardTopSerif (SB + [KBalance slabTop straightBar]) Ascender SideJut if slabBot : include : tagged 'serifLB' CenterBottomSerif (SB + [KBalance slabTop straightBar] + HalfStroke * HVContrast) 0 Jut create-forked-glyph "kDescender.\(suffix)" : KCyrlNormalDescender XH straightBar slabTop slabLegs create-glyph "kBar.\(suffix)" : glyph-proc include [refer-glyph "k.\(suffix)"] AS_BASE ALSO_METRICS - include : HOverlayBar [mix (SB + [KBalance slabTop straightBar]) 0 0.7] [mix (SB + [KBalance slabTop straightBar]) RightSB 0.5] [mix XH (CAP - [if slabTop Stroke 0]) 0.45] + include : HOverlayBar [mix (SB + [KBalance slabTop straightBar]) 0 0.7] [mix (SB + [KBalance slabTop straightBar]) RightSB 0.5] [mix XH (Ascender - [if slabTop Stroke 0]) 0.45] create-glyph "kHookTop.\(suffix)" : glyph-proc include : MarkSet.b @@ -542,7 +542,7 @@ glyph-block Letter-Latin-K : begin select-variant 'kHookTop' 0x199 turned 'turnK' 0xA7B0 'K' Middle (CAP / 2) - turned 'turnk' 0x29E 'k' Middle (CAP / 2) + turned 'turnk' 0x29E 'k' Middle (XH / 2) [MarkSet.p] select-variant 'cyrl/BashkirUpperKa' 0x4A0 (follow -- 'cyrl/ka') select-variant 'cyrl/BashkirKa' 0x4A1 (follow -- 'cyrl/ka') @@ -576,5 +576,5 @@ glyph-block Letter-Latin-K : begin create-glyph 'mathbb/k' 0x1D55C : glyph-proc include : MarkSet.b - include : BBBarLeft SB 0 CAP + include : BBBarLeft SB 0 Ascender include : BBKLegShape XH (SB + BBD + HVContrast * BBS) RightSB diff --git a/font-src/glyphs/letter/latin/lower-b.ptl b/font-src/glyphs/letter/latin/lower-b.ptl index d03f7e1ea..4188aefbe 100644 --- a/font-src/glyphs/letter/latin/lower-b.ptl +++ b/font-src/glyphs/letter/latin/lower-b.ptl @@ -12,24 +12,24 @@ glyph-block Letter-Latin-Lower-B : begin define [ToothedBody] : union OBarLeftShape - VBarLeft SB 0 CAP + VBarLeft SB 0 Ascender define [ToothlessCornerBody] : union OBarLeftToothlessShape XH SB DToothlessRise DMBlend - VBarLeft SB DToothlessRise CAP + VBarLeft SB DToothlessRise Ascender - define [ToothlessRoundedBody] : OBarLeftRoundedShape XH SB CAP + define [ToothlessRoundedBody] : OBarLeftRoundedShape XH SB Ascender define [FullSerifs] : glyph-proc if SLAB : begin - include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut + include : tagged 'serifLT' : LeftwardTopSerif SB Ascender SideJut include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SideJut define [LTSerifs] : glyph-proc if SLAB : begin - include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut + include : tagged 'serifLT' : LeftwardTopSerif SB Ascender SideJut - define [MotionSerifs] : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut + define [MotionSerifs] : tagged 'serifLT' : LeftwardTopSerif SB Ascender SideJut define BConfig : object toothed { ToothedBody FullSerifs SLAB } @@ -46,7 +46,7 @@ glyph-block Letter-Latin-Lower-B : begin include : Serifs create-glyph "bBar.\(suffix)" : glyph-proc include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS - include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.5] [mix XH (CAP - [if doTS Stroke 0]) 0.45] + include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.5] [mix XH (Ascender - [if doTS Stroke 0]) 0.45] select-variant 'b' 'b' select-variant 'bBar' 0x180 (follow -- 'b') @@ -79,14 +79,14 @@ glyph-block Letter-Latin-Lower-B : begin derive-glyphs 'latinbe' 0x183 'b' : lambda [src gr] : glyph-proc include [refer-glyph src] AS_BASE - include : HBarTop (SB - O) [mix SB RightSB 0.9] CAP + include : HBarTop (SB - O) [mix SB RightSB 0.9] Ascender if SLAB : begin - include : DownwardRightSerif [mix SB RightSB 0.9] CAP VJut + include : DownwardRightSerif [mix SB RightSB 0.9] Ascender VJut glyph-block-import Letter-Blackboard : BBS BBD BBBarLeft create-glyph 'mathbb/b' 0x1D553 : glyph-proc include : MarkSet.b - include : BBBarLeft SB 0 CAP + include : BBBarLeft SB 0 Ascender include : intersection OShapeOutline.NoOvershoot XH 0 (SB + BBD + BBS * HVContrast) RightSB VBarRight (RightSB - BBD - OX) 0 XH BBS diff --git a/font-src/glyphs/letter/latin/lower-d.ptl b/font-src/glyphs/letter/latin/lower-d.ptl index ef9e835aa..b2610c033 100644 --- a/font-src/glyphs/letter/latin/lower-d.ptl +++ b/font-src/glyphs/letter/latin/lower-d.ptl @@ -12,27 +12,27 @@ glyph-block Letter-Latin-Lower-D : begin define [ToothedBody] : union OBarRightShape - VBarRight RightSB 0 CAP + VBarRight RightSB 0 Ascender define [ToothlessCornerBody] : union OBarRightToothlessShape XH RightSB DToothlessRise DMBlend - VBarRight RightSB DToothlessRise CAP + VBarRight RightSB DToothlessRise Ascender define [ToothlessCornerHBBBody] : union OBarRightToothlessShape XH RightSB DToothlessRise DMBlend - VBarRight RightSB 0 CAP + VBarRight RightSB 0 Ascender - define [ToothlessRoundedBody] : OBarRightRoundedShape XH RightSB CAP + define [ToothlessRoundedBody] : OBarRightRoundedShape XH RightSB Ascender define [ToothlessRoundedHBBBody] : union - OBarRightRoundedShape XH RightSB CAP - VBarRight RightSB 0 CAP + OBarRightRoundedShape XH RightSB Ascender + VBarRight RightSB 0 Ascender define [TailedBody] : union OBarRightShape - RightwardTailedBar RightSB 0 CAP + RightwardTailedBar RightSB 0 Ascender define [TopSerif] : tagged 'serifRT' - LeftwardTopSerif (RightSB - Stroke * HVContrast) CAP SideJut + LeftwardTopSerif (RightSB - Stroke * HVContrast) Ascender SideJut define [BaseSerif] : tagged 'serifRB' RightwardBottomSerif RightSB 0 SideJut @@ -61,13 +61,13 @@ glyph-block Letter-Latin-Lower-D : begin create-glyph "dcroat.\(suffix)" : glyph-proc include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS - include : HOverlayBar [mix SB RightSB 0.5] [mix RightSB Width 0.7] [mix XH (CAP - [if topSerif Stroke 0]) 0.45] + include : HOverlayBar [mix SB RightSB 0.5] [mix RightSB Width 0.7] [mix XH (Ascender - [if topSerif Stroke 0]) 0.45] create-glyph "latn/de.\(suffix)" : glyph-proc include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS local xLeft : mix RightSB SB 0.9 include : HBarTop xLeft (RightSB + O) CAP - if topSerif : include : DownwardLeftSerif xLeft CAP : Math.min VJut (0.8 * (CAP - XH)) + if topSerif : include : DownwardLeftSerif xLeft CAP : Math.min VJut (0.8 * (Ascender - XH)) select-variant 'd' 'd' select-variant 'dcroat' 0x111 (follow -- 'd') @@ -92,14 +92,14 @@ glyph-block Letter-Latin-Lower-D : begin include : OBarRightShape XH m1 include : dispiro widths.rhs - flat m1 CAP [heading Downward] + flat m1 Ascender [heading Downward] curl m1 (rinner * 2 + fine) CurlyTail fine rinner m1 0 (m1 + rinner * 2 + fine) x2 y2 - if fSerif : include : LeftwardTopSerif (m1 - Stroke * HVContrast) CAP SideJut + if fSerif : include : LeftwardTopSerif (m1 - Stroke * HVContrast) Ascender SideJut select-variant 'dCurlyTail' 0x221 - define yDHookTopConnect : CAP - Hook - HalfStroke + define yDHookTopConnect : Ascender - Hook - HalfStroke create-glyph 'dHookTop.toothedSerifless' : glyph-proc include : MarkSet.b include : OBarRightShape @@ -157,7 +157,7 @@ glyph-block Letter-Latin-Lower-D : begin glyph-block-import Letter-Blackboard : BBS BBD BBBarRight create-glyph 'mathbb/d' 0x1D555 : glyph-proc include : MarkSet.b - include : BBBarRight RightSB 0 CAP + include : BBBarRight RightSB 0 Ascender include : intersection OShapeOutline.NoOvershoot XH 0 SB (RightSB - BBD - BBS * HVContrast) VBarLeft (SB + BBD + OX) 0 XH BBS diff --git a/font-src/glyphs/letter/latin/lower-f.ptl b/font-src/glyphs/letter/latin/lower-f.ptl index 289925df9..ce066e3cc 100644 --- a/font-src/glyphs/letter/latin/lower-f.ptl +++ b/font-src/glyphs/letter/latin/lower-f.ptl @@ -18,8 +18,8 @@ glyph-block Letter-Latin-Lower-F : begin define [StdFShapeT sink offset barleft sw] : sink widths.lhs sw - g4 (RightSB + RBalance2 - (OX - O) - offset) (CAP - Hook * 0.75) - hookstart (CAP - O - offset) (tight -- true) + g4 (RightSB + RBalance2 - (OX - O) - offset) (Ascender - Hook * 0.75) + hookstart (Ascender - O - offset) (tight -- true) flat (barleft + offset) (CAP - ArchDepthA * 0.8) [if offset corner curl] (barleft + offset) 0 [heading Downward] if offset {[corner (RightSB + RBalance2 - (OX - O) - offset) 0]} {} @@ -86,10 +86,10 @@ glyph-block Letter-Latin-Lower-F : begin local hd : FlatHookDepth df include : dispiro widths.lhs - flat (crossRight + topHookExt) CAP - curl [Math.min (barLeft + hd.x * (1 + topHookHdExt)) (crossRight - 0.1)] CAP + flat (crossRight + topHookExt) Ascender + curl [Math.min (barLeft + hd.x * (1 + topHookHdExt)) (crossRight - 0.1)] Ascender archv.superness DesignParameters.tightHookSuperness - flat barLeft [Math.max XH (CAP - hd.y)] + flat barLeft [Math.max XH (Ascender - hd.y)] curl barLeft 0 [heading Downward] include : HCrossBar.top crossLeft (crossRight + crossBarExt) bh @@ -169,9 +169,9 @@ glyph-block Letter-Latin-Lower-F : begin local barLeft : [mix SB RightSB 0.35] - BBD * 0.25 * HVContrast include : StdFShapeT dispiro 0 barLeft BBS include : intersection - VBarLeft (barLeft + BBD) 0 CAP BBS + VBarLeft (barLeft + BBD) 0 Ascender BBS StdFShapeT spiro-outline 1 barLeft BBS include : difference HCrossBar.top SB [mix SB RightSB 0.95] fbar BBS - Rect CAP 0 barLeft (barLeft + BBD) + Rect Ascender 0 barLeft (barLeft + BBD) include : HBarBottom barLeft (barLeft + BBD) 0 BBS diff --git a/font-src/glyphs/letter/latin/lower-h.ptl b/font-src/glyphs/letter/latin/lower-h.ptl index a594a5014..51bfd1a27 100644 --- a/font-src/glyphs/letter/latin/lower-h.ptl +++ b/font-src/glyphs/letter/latin/lower-h.ptl @@ -12,7 +12,7 @@ glyph-block Letter-Latin-Lower-H : begin glyph-block-import Letter-Shared-Shapes : CyrDescender CyrLeftDescender HooktopLeftBar define [SmallHSerifs tailed hookTop] : glyph-proc : if SLAB : begin - if [not hookTop] : include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut + if [not hookTop] : include : tagged 'serifLT' : LeftwardTopSerif SB Ascender SideJut if [not tailed] if (para.isItalic) : then : include : tagged 'serifRB' : RightwardBottomSerif RightSB 0 SideJut @@ -21,14 +21,14 @@ glyph-block Letter-Latin-Lower-H : begin include : tagged 'serifLB' : CenterBottomSerif (SB + HalfStroke * HVContrast) 0 Jut define [SmallHMotionSerifs tailed hookTop] : glyph-proc - if [not hookTop] : include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut + if [not hookTop] : include : tagged 'serifLT' : LeftwardTopSerif SB Ascender SideJut if [not tailed] : include : tagged 'serifRB' : RightwardBottomSerif RightSB 0 SideJut define [SmallHTopLeftSerifs tailed hookTop] : glyph-proc - if [not hookTop] : include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut + if [not hookTop] : include : tagged 'serifLT' : LeftwardTopSerif SB Ascender SideJut define [HBarOverlay fHasTopSerif] : glyph-proc - local barSpaceTop : CAP - [if fHasTopSerif Stroke 0] + local barSpaceTop : Ascender - [if fHasTopSerif Stroke 0] local s : Math.min OverlayStroke (0.625 * (barSpaceTop - XH)) local xOverlayStart : mix SB 0 0.7 local xOverlayEnd : mix SB RightSB 0.5 @@ -52,7 +52,7 @@ glyph-block Letter-Latin-Lower-H : begin foreach { suffix { fTailed fHasTopSerif Serifs } } [Object.entries HConfig] : do create-glyph "h.\(suffix)" : glyph-proc include : MarkSet.b - include : VBarLeft SB 0 CAP + include : VBarLeft SB 0 Ascender include : nShoulder left -- (SB + Stroke * HVContrast) right -- RightSB @@ -109,7 +109,7 @@ glyph-block Letter-Latin-Lower-H : begin left -- (SB + Stroke * HVContrast) right -- RightSB bottom -- (Hook + HalfStroke + 1) - include : VBarLeft SB 0 CAP + include : VBarLeft SB 0 Ascender include : new-glyph : glyph-proc include : refer-glyph "rtailBR" include : ApparentTranslate RightSB (Hook + HalfStroke) @@ -151,7 +151,7 @@ glyph-block Letter-Latin-Lower-H : begin local bbd BBD set-width df.width include : df.markSet.e - include : BBBarLeft df.leftSB 0 CAP + include : BBBarLeft df.leftSB 0 Ascender include : union HBarBottom (df.rightSB - bbd) df.rightSB 0 bbs nShoulder diff --git a/font-src/glyphs/letter/latin/lower-il.ptl b/font-src/glyphs/letter/latin/lower-il.ptl index 4080c62a2..285aaf6f3 100644 --- a/font-src/glyphs/letter/latin/lower-il.ptl +++ b/font-src/glyphs/letter/latin/lower-il.ptl @@ -214,15 +214,15 @@ glyph-block Letter-Latin-Lower-I : begin set-width df.width include : df.markSet.b local xMiddle : xMiddleT df - include : Body df CAP xMiddle - if Serif : include : tagged 'serifLT' : Serif df CAP xMiddle + include : Body df Ascender xMiddle + if Serif : include : tagged 'serifLT' : Serif df Ascender xMiddle create-glyph "lDotBase.\(suffix)" : glyph-proc local df : DivFrame div set-width df.width include [refer-glyph "l.\(suffix)"] AS_BASE include : Translate (-DotRadius / 2) 0 - set-base-anchor 'cvDecompose' [Math.max (df.middle + HalfStroke + DotRadius) (df.rightSB - DotRadius)] [mix y0R CAP 0.5] + set-base-anchor 'cvDecompose' [Math.max (df.middle + HalfStroke + DotRadius) (df.rightSB - DotRadius)] [mix y0R Ascender 0.5] create-glyph "lRTail.\(suffix)" : glyph-proc local df : DivFrame div @@ -235,11 +235,11 @@ glyph-block Letter-Latin-Lower-I : begin create-glyph "lBelt.\(suffix)" : composite-proc refer-glyph "l.\(suffix)" - Belt CAP [xMiddleT : DivFrame div] + Belt Ascender [xMiddleT : DivFrame div] create-glyph "lBeltRTail.\(suffix)" : composite-proc refer-glyph "lRTail.\(suffix)" - Belt CAP [xMiddleT : DivFrame div] + Belt Ascender [xMiddleT : DivFrame div] create-glyph "lTildeOver.\(suffix)" : composite-proc refer-glyph "l.\(suffix)" @@ -298,10 +298,10 @@ glyph-block Letter-Latin-Lower-I : begin local m1 : df.middle + HalfStroke * HVContrast local x2 : mix SB m1 0.25 local y2 : - fine - if fSerif : include : LeftwardTopSerif df.middle CAP LongJut + if fSerif : include : LeftwardTopSerif df.middle Ascender LongJut include : dispiro widths.rhs - flat m1 CAP [heading Downward] + flat m1 Ascender [heading Downward] curl m1 (fine + rinner * 2) CurlyTail fine rinner m1 0 (m1 + LongJut) x2 y2 @@ -326,15 +326,15 @@ glyph-block Letter-Latin-Lower-I : begin local fine : AdviceStroke 4 include : dispiro widths.center fine - g4.down.start df.middle (CAP - fine * 1.5) [heading Downward] + g4.down.start df.middle (Ascender - fine * 1.5) [heading Downward] arcvh - g4 (df.middle - fine * 1) (CAP - fine * 2.5) [heading Leftward] + g4 (df.middle - fine * 1) (Ascender - fine * 2.5) [heading Leftward] archv - g4 (df.middle - fine * 2) (CAP - fine * 1.5) [heading Upward] + g4 (df.middle - fine * 2) (Ascender - fine * 1.5) [heading Upward] arcvh - g4 (df.middle - fine * 1) (CAP - fine * 0.5) [heading Rightward] + g4 (df.middle - fine * 1) (Ascender - fine * 0.5) [heading Rightward] archv - flat df.middle (CAP - fine * 1.5) [widths.heading HalfStroke HalfStroke Downward] + flat df.middle (Ascender - fine * 1.5) [widths.heading HalfStroke HalfStroke Downward] curl df.middle 0 [heading Downward] arcvh straight.right.end (df.middle + HookX) (-Hook) @@ -354,6 +354,6 @@ glyph-block Letter-Latin-Lower-I : begin create-glyph 'mathbb/l' 0x1D55D : glyph-proc include : MarkSet.b - include : BBBarCenter Middle 0 CAP - include : HBarTop (Middle - BBD / 2 - Jut) Middle CAP BBS - include : HBarBottom (Middle - BBD / 2 - Jut) (Middle + BBD / 2 + Jut) 0 BBS + include : BBBarCenter Middle 0 Ascender + include : HBarTop (Middle - BBD / 2 - Jut) Middle Ascender BBS + include : HBarBottom (Middle - BBD / 2 - Jut) (Middle + BBD / 2 + Jut) 0 BBS diff --git a/font-src/glyphs/letter/latin/lower-t.ptl b/font-src/glyphs/letter/latin/lower-t.ptl index cd5d0534b..8b8b6888d 100644 --- a/font-src/glyphs/letter/latin/lower-t.ptl +++ b/font-src/glyphs/letter/latin/lower-t.ptl @@ -21,8 +21,8 @@ glyph-block Letter-Latin-Lower-T : begin define xSmallTBarLeft : xSmallTBarLeftT : DivFrame 1 define yCrossBar XH - define yShortNeck1 : Math.max [mix XH CAP 0.5] ([mix XH CAP 0.875] - Stroke * 0.125) - define yShortNeck2 : Math.max [mix XH CAP 0.5] ([mix XH CAP 0.75] - Stroke * 0.125) + define yShortNeck1 : Math.max [mix XH Ascender 0.5] ([mix XH Ascender 0.875] - Stroke * 0.125) + define yShortNeck2 : Math.max [mix XH Ascender 0.5] ([mix XH Ascender 0.75] - Stroke * 0.125) define [SmallTHookShapeT sink offset top bot sw] : begin local hookx : xSmallTBarLeft + [Math.max ((Width - SB * 2) * 0.75 + Stroke * 0.25 * HVContrast) (Stroke * HVContrast * 2.25)] @@ -87,7 +87,7 @@ glyph-block Letter-Latin-Lower-T : begin flat xBarLeft [if fRetroflex (bot + Hook + HalfStroke) hd.y] curl xBarLeft top [heading Upward] set-base-anchor 'above' (xBarLeft + 0.5 * Stroke * HVContrast) top - set-base-anchor 'topright' xCrossRight CAP + set-base-anchor 'topright' xCrossRight Ascender set-base-anchor 'overlay' (xBarLeft + 0.625 * Stroke * HVContrast) (XH * 0.58) set-base-anchor 'below' (HalfStroke * HVContrast + [Math.min (xBarLeft + hd.x / 2) (xCrossRight - 1)]) bot @@ -120,15 +120,15 @@ glyph-block Letter-Latin-Lower-T : begin include : TFlatShapeImpl false df top bot 1 0 define SmallTConfig : object - standard { [DivFrame 1] StandardBody CAP } - diagonalTailed { dfNarrowT DiagTailBody CAP } - flatHook { dfNarrowT FlatBody CAP } - phoneticLeft { dfNarrowT FlatBody CAP } - retroflexHookBase { dfNarrowT RetroflexHookBody CAP } - cross { dfNarrowT CrossBody CAP } - hooklessAsymmetric { dfNarrowT HooklessAsymmetricBody CAP } - crossPL { dfNarrowT CrossPLBody CAP } - hooklessAsymmetricPL { dfNarrowT HooklessAsymmetricPLBody CAP } + standard { [DivFrame 1] StandardBody Ascender } + diagonalTailed { dfNarrowT DiagTailBody Ascender } + flatHook { dfNarrowT FlatBody Ascender } + phoneticLeft { dfNarrowT FlatBody Ascender } + retroflexHookBase { dfNarrowT RetroflexHookBody Ascender } + cross { dfNarrowT CrossBody Ascender } + hooklessAsymmetric { dfNarrowT HooklessAsymmetricBody Ascender } + crossPL { dfNarrowT CrossPLBody Ascender } + hooklessAsymmetricPL { dfNarrowT HooklessAsymmetricPLBody Ascender } standardShortNeck { [DivFrame 1] StandardBody yShortNeck1 } diagonalTailedShortNeck { dfNarrowT DiagTailBody yShortNeck1 } @@ -234,7 +234,7 @@ glyph-block Letter-Latin-Lower-T : begin g4 SB SHook define TSUpperConfig : object - standard { CAP } + standard { Ascender } standardShortNeck { yShortNeck1 } standardShortNeck2 { yShortNeck2 } @@ -256,7 +256,7 @@ glyph-block Letter-Latin-Lower-T : begin include : MarkSet.b set-mark-anchor 'cvDecompose' 0 0 include : intersection - TsLigStrokeShape Stroke CAP doBS + TsLigStrokeShape Stroke Ascender doBS MaskBelow XH include : SAutoSlabEnd doBS 0 Stroke Hook @@ -269,15 +269,15 @@ glyph-block Letter-Latin-Lower-T : begin CvDecompose.set currentGlyph { 'tsLig/upperHalf' 'tsLig/lowerHalf' } create-glyph 'mathbb/t' 0x1D565 : glyph-proc - include : HBarTop xSmallTBarLeft (xSmallTBarLeft + BBD) CAP BBS - include : SmallTHookShapeT dispiro 0 CAP 0 BBS + include : HBarTop xSmallTBarLeft (xSmallTBarLeft + BBD) Ascender BBS + include : SmallTHookShapeT dispiro 0 Ascender 0 BBS include : intersection - VBarLeft (xSmallTBarLeft + BBD) 0 CAP BBS - SmallTHookShapeT spiro-outline 1 CAP 0 BBS + VBarLeft (xSmallTBarLeft + BBD) 0 Ascender BBS + SmallTHookShapeT spiro-outline 1 Ascender 0 BBS include : difference HCrossBar.top xSmallTBarLeft + (BBD / 2) - LongJut + TBalance2 xSmallTBarLeft + (BBD / 2) + LongJut + TBalance2 begin yCrossBar begin BBS - Rect CAP 0 xSmallTBarLeft (xSmallTBarLeft + BBD) \ No newline at end of file + Rect Ascender 0 xSmallTBarLeft (xSmallTBarLeft + BBD) \ No newline at end of file diff --git a/font-src/glyphs/letter/latin/lower-y.ptl b/font-src/glyphs/letter/latin/lower-y.ptl index 231abd910..d6b8078d2 100644 --- a/font-src/glyphs/letter/latin/lower-y.ptl +++ b/font-src/glyphs/letter/latin/lower-y.ptl @@ -360,12 +360,12 @@ glyph-block Letter-Latin-Lower-Y : begin foreach { suffix { fStraight fTurn slabType } } [Object.entries LambdaConfig] : do create-glyph "grek/lambda.\(suffix)" : glyph-proc include : MarkSet.b - include : [GenSmallYShape fStraight fTurn slabType].SmallLambdaShape CAP 0 + include : [GenSmallYShape fStraight fTurn slabType].SmallLambdaShape Ascender 0 create-glyph "lambdaSlash.\(suffix)" : glyph-proc include : MarkSet.b include : union LambdaBarOverlayShape - [GenSmallYShape fStraight fTurn slabType].SmallLambdaShape CAP 0 + [GenSmallYShape fStraight fTurn slabType].SmallLambdaShape Ascender 0 select-variant 'grek/lambda' 0x3BB select-variant 'lambdaSlash' 0x19B (follow -- 'grek/lambda') @@ -373,7 +373,6 @@ glyph-block Letter-Latin-Lower-Y : begin # Blackboard glyph-block-import Letter-Blackboard : BBS BBD create-glyph 'mathbb/y' 0x1D56A : glyph-proc - local yCross : CAP * 0.4 local kDiag : DiagCorDs XH ((RightSB - SB) / 2) (BBD * 0.25) include : MarkSet.p include : HBarTop SB (SB + kDiag * BBD) XH BBS diff --git a/font-src/glyphs/letter/latin/upper-b.ptl b/font-src/glyphs/letter/latin/upper-b.ptl index 43f500a48..a2b11410d 100644 --- a/font-src/glyphs/letter/latin/upper-b.ptl +++ b/font-src/glyphs/letter/latin/upper-b.ptl @@ -237,7 +237,7 @@ glyph-block Letter-Latin-Upper-B : begin create-glyph 'grek/betaSymbol' 0x3D0 : glyph-proc include : MarkSet.e - include : ItalicCyrveShape CAP + include : ItalicCyrveShape Ascender alias 'cyrl/ve.BGR' null 'grek/betaSymbol' alias 'cyrl/ve.italic' null 'closeturnepsilon' @@ -250,7 +250,7 @@ glyph-block Letter-Latin-Upper-B : begin include : MarkSet.if define pBar 0.55 define fine : Stroke * CThin - define yMiddle : [mix 0 CAP pBar] - Stroke * 0.7 # Bottom edge + define yMiddle : [mix 0 Ascender pBar] - Stroke * 0.7 # Bottom edge define ada : ArchDepthAOf (ArchDepth * 0.75) Width define adb : ArchDepthBOf (ArchDepth * 0.75) Width define xMidLeft : mix (SB + Stroke * HVContrast) (RightSB - Stroke * HVContrast) 0.3 @@ -258,11 +258,11 @@ glyph-block Letter-Latin-Upper-B : begin include : dispiro widths.rhs flat SB Descender [heading Upward] - curl SB (CAP - SmallArchDepthA) + curl SB (Ascender - SmallArchDepthA) arcvh - g4 ([mix SB (RightSB - OX + O * 3) 0.5] - CorrectionOMidS) (CAP - O) + g4 ([mix SB (RightSB - OX + O * 3) 0.5] - CorrectionOMidS) (Ascender - O) archv - g4 (RightSB - OX + O * 3) [YSmoothMidR yMiddle CAP ada adb] + g4 (RightSB - OX + O * 3) [YSmoothMidR yMiddle Ascender ada adb] arcvh flat xMidArc (yMiddle + Stroke - fine) [widths.rhs.heading fine Leftward] curl xMidLeft (yMiddle + Stroke - fine) [heading Leftward] diff --git a/font-src/glyphs/letter/shared.ptl b/font-src/glyphs/letter/shared.ptl index 457d28d50..bbc9bbcea 100644 --- a/font-src/glyphs/letter/shared.ptl +++ b/font-src/glyphs/letter/shared.ptl @@ -504,7 +504,7 @@ glyph-block Letter-Shared-Shapes : begin define [HooktopLeftBar] : params [bottom] : glyph-proc include : dispiro widths.lhs - straight.left.start (SB + HalfStroke * HVContrast + HookX) CAP + straight.left.start (SB + HalfStroke * HVContrast + HookX) Ascender archv flat SB (CAP - Hook - HalfStroke) curl SB [fallback bottom 0] [heading Downward] diff --git a/font-src/glyphs/symbol/letter.ptl b/font-src/glyphs/symbol/letter.ptl index 128cffab0..f87a91b31 100644 --- a/font-src/glyphs/symbol/letter.ptl +++ b/font-src/glyphs/symbol/letter.ptl @@ -174,12 +174,12 @@ glyph-block Symbol-Letter : begin include : MarkSet.b local fine : Stroke * CThin local coFine : mix fine Stroke 0.5 - local yMid : CAP * 0.6 + local yMid : Ascender * 0.6 local yMid2 : mix yMid [YSmoothMidR yMid 0 SmallArchDepthA SmallArchDepthB] 0.875 local yMockBarStart : yMid2 + Stroke * 0.3 local xTerminal : [mix SB RightSB 0.4] + 0.5 * Stroke * HVContrast - local pStraightBarStart : 0.75 - (Stroke / CAP) - include : intersection [MaskBelow CAP] : dispiro + local pStraightBarStart : 0.75 - (Stroke / Ascender) + include : intersection [MaskBelow Ascender] : dispiro g4.right.start (Middle + CorrectionOMidS - TanSlope * (Stroke - fine)) (O + Stroke - fine + 1/16) [widths.lhs fine] straight.up.mid (RightSB - OX - (1 - CThin) * Stroke * HVContrast) [YSmoothMidR yMid 0 SmallArchDepthA SmallArchDepthB] arcvh diff --git a/font-src/meta/aesthetics.ptl b/font-src/meta/aesthetics.ptl index ed8ff6ef5..10ffc9c80 100644 --- a/font-src/meta/aesthetics.ptl +++ b/font-src/meta/aesthetics.ptl @@ -13,7 +13,8 @@ export : define [calculateMetrics para] : begin define SB para.sb define CAP para.cap define XH para.xHeight - define Descender : fallback para.descender (XH - CAP) + define Ascender para.ascender + define Descender : fallback para.descender (XH - Ascender) define Contrast : fallback para.contrast 1 # Key metrics for symbols define SymbolMid para.symbolMid @@ -198,20 +199,20 @@ export : define [calculateMetrics para] : begin return : 0.5 * HVContrast * (stroke - fine) / stroke + dir * TanSlope return [object - DesignParameters UPM HalfUPM Width SB CAP XH Descender Contrast SymbolMid ParenTop ParenBot - OperTop OperBot TackTop TackBot PlusTop PlusBot PictTop PictBot BgOpTop BgOpBot Italify - Upright Scale Translate ApparentTranslate Rotate GlobalTransform TanSlope HVContrast Upward - Downward Rightward Leftward UpwardT DownwardT LeftwardT RightwardT O OX OXHook Hook AHook - SHook RHook JHook FHook HookX ArchDepth SmallArchDepth Stroke DotSize PeriodSize HBarPos - OverlayPos LongJut Jut VJut AccentStackOffset AccentWidth AccentClearance AccentHeight CThin - CThinB SLAB TailAdjX TailAdjY IBalance IBalance2 JBalance JBalance2 TBalance TBalance2 - RBalance RBalance2 FBalance OneBalance WideWidth0 WideWidth1 WideWidth2 WideWidth3 - WideWidth4 EssUpper EssLower EssQuestion HalfStroke RightSB Middle DotRadius PeriodRadius - SideJut ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX CorrectionOMidS ArchXAdjust - compositeBaseAnchors AdviceStroke AdviceStroke2 OverlayStroke OperatorStroke GeometryStroke - ShoulderFine _SuperXY adviceSSmooth AdviceGlottalStopArchDepth shoulderMidSlope - StrokeWidthBlend ArchDepthAOf ArchDepthBOf SmoothAdjust MidJutSide MidJutCenter YSmoothMidR - YSmoothMidL HSwToV] + DesignParameters UPM HalfUPM Width SB CAP XH Ascender Descender Contrast SymbolMid + ParenTop ParenBot OperTop OperBot TackTop TackBot PlusTop PlusBot PictTop PictBot BgOpTop + BgOpBot Italify Upright Scale Translate ApparentTranslate Rotate GlobalTransform TanSlope + HVContrast Upward Downward Rightward Leftward UpwardT DownwardT LeftwardT RightwardT O OX + OXHook Hook AHook SHook RHook JHook FHook HookX ArchDepth SmallArchDepth Stroke DotSize + PeriodSize HBarPos OverlayPos LongJut Jut VJut AccentStackOffset AccentWidth + AccentClearance AccentHeight CThin CThinB SLAB TailAdjX TailAdjY IBalance IBalance2 + JBalance JBalance2 TBalance TBalance2 RBalance RBalance2 FBalance OneBalance WideWidth0 + WideWidth1 WideWidth2 WideWidth3 WideWidth4 EssUpper EssLower EssQuestion HalfStroke + RightSB Middle DotRadius PeriodRadius SideJut ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX CorrectionOMidS ArchXAdjust compositeBaseAnchors + AdviceStroke AdviceStroke2 OverlayStroke OperatorStroke GeometryStroke ShoulderFine + _SuperXY adviceSSmooth AdviceGlottalStopArchDepth shoulderMidSlope StrokeWidthBlend + ArchDepthAOf ArchDepthBOf SmoothAdjust MidJutSide MidJutCenter YSmoothMidR YSmoothMidL + HSwToV] export : define [setFontMetrics para metrics fm] : begin define [object CAP Descender XH Width] metrics @@ -345,14 +346,14 @@ export : define [MarksetDiv p sbMul me] : begin return : object OfZone buildStandardMarkSet - capital : buildStandardMarkSet {.top me.CAP .bot 0} - b : buildStandardMarkSet {.top me.CAP .bot 0} - e : buildStandardMarkSet {.top me.XH .bot 0} - p : buildStandardMarkSet {.top me.XH .bot me.Descender} - oper : buildStandardMarkSet {.top me.OperTop .bot me.OperBot} - tack : buildStandardMarkSet {.top me.TackTop .bot me.TackBot} - plus : buildStandardMarkSet {.top me.PlusTop .bot me.PlusBot} - if : buildStandardMarkSet {.top me.CAP .bot me.Descender} + capital : buildStandardMarkSet {.top me.CAP .bot 0} + b : buildStandardMarkSet {.top me.Ascender .bot 0} + e : buildStandardMarkSet {.top me.XH .bot 0} + p : buildStandardMarkSet {.top me.XH .bot me.Descender} + oper : buildStandardMarkSet {.top me.OperTop .bot me.OperBot} + tack : buildStandardMarkSet {.top me.TackTop .bot me.TackBot} + plus : buildStandardMarkSet {.top me.PlusTop .bot me.PlusBot} + if : buildStandardMarkSet {.top me.Ascender .bot me.Descender} export : define DesignParameters : object # V shape diff --git a/font-src/meta/macros.ptl b/font-src/meta/macros.ptl index 0a041b480..4e2d626d6 100644 --- a/font-src/meta/macros.ptl +++ b/font-src/meta/macros.ptl @@ -207,9 +207,9 @@ define-macro glyph-block : syntax-rules SpiroFns BooleFns MarkSet AS_BASE ALSO_METRICS pickHash buildGlyphs tagged DivFrame fontMetrics $assignUnicodeImpl$] - define metricImports `[DesignParameters UPM HalfUPM Width SB CAP XH Descender Contrast - SymbolMid ParenTop ParenBot OperTop OperBot TackTop TackBot PlusTop PlusBot PictTop - PictBot BgOpTop BgOpBot Italify Upright Scale Translate ApparentTranslate Rotate + define metricImports `[DesignParameters UPM HalfUPM Width SB CAP XH Ascender Descender + Contrast SymbolMid ParenTop ParenBot OperTop OperBot TackTop TackBot PlusTop PlusBot + PictTop PictBot BgOpTop BgOpBot Italify Upright Scale Translate ApparentTranslate Rotate GlobalTransform TanSlope HVContrast Upward Downward Rightward Leftward UpwardT DownwardT LeftwardT RightwardT O OX OXHook Hook AHook SHook RHook JHook FHook HookX ArchDepth SmallArchDepth Stroke DotSize PeriodSize HBarPos OverlayPos LongJut Jut VJut diff --git a/font-src/support/metric-override.js b/font-src/support/metric-override.js index c54048b8d..e3971ff06 100644 --- a/font-src/support/metric-override.js +++ b/font-src/support/metric-override.js @@ -25,6 +25,7 @@ function applyMetricOverride(para, mo, argv) { const validMetricOverrideFields = new Set([ "cap", + "ascender", "xHeight", "sb", "accentWidth", diff --git a/params/parameters.toml b/params/parameters.toml index 02ce39941..b67837d0c 100644 --- a/params/parameters.toml +++ b/params/parameters.toml @@ -11,7 +11,8 @@ naming.description = 'Spatial efficient monospace font family for programming. B leading = 1250 # Default line height times 1000. descenderPad = 0 # Additional line height, added to descender. -cap = 735 # Cap height (as well as ascender). +cap = 735 # Cap height. +ascender = 735 # Ascender height. xHeight = 520 # X-height. #descender = -205 # Depth of descender. Currently unused. winMetricAscenderPad = 0 # Padding of Win ascnder metrics to avoid clipping. See #343 diff --git a/params/variants.toml b/params/variants.toml index d85e74f71..492d8240a 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -3742,8 +3742,8 @@ tag = "cv44" rank = 1 description = "Standard `t` shape" selector.t = "standard" -selector."t/phoneticLeft1" = "phoneticLeftShortNeck" -selector."t/phoneticLeft2" = "phoneticLeftShortNeck" +selector."t/phoneticLeft1" = "phoneticLeft" +selector."t/phoneticLeft2" = "phoneticLeft" selector.tHookTop = "standard" selector.tRTail = "retroflexHookBase" selector.tLTail = "standard" @@ -3753,8 +3753,8 @@ selector."tsLig/upperHalf" = "standard" rank = 2 description = "`t` with flat hook" selector.t = "flatHook" -selector."t/phoneticLeft1" = "phoneticLeftShortNeck" -selector."t/phoneticLeft2" = "phoneticLeftShortNeck" +selector."t/phoneticLeft1" = "phoneticLeft" +selector."t/phoneticLeft2" = "phoneticLeft" selector.tHookTop = "flatHook" selector.tRTail = "retroflexHookBase" selector.tLTail = "standard" @@ -3764,8 +3764,8 @@ selector."tsLig/upperHalf" = "standard" rank = 3 description = "`t` with diagonal tail" selector.t = "diagonalTailed" -selector."t/phoneticLeft1" = "phoneticLeftShortNeck" -selector."t/phoneticLeft2" = "phoneticLeftShortNeck" +selector."t/phoneticLeft1" = "phoneticLeft" +selector."t/phoneticLeft2" = "phoneticLeft" selector.tHookTop = "diagonalTailed" selector.tRTail = "retroflexHookBase" selector.tLTail = "standard"