diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index 8170422a8..13e7a6556 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1536,7 +1536,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin local shrink : clamp 0 1 _shrink local kern 0 foreach [cycle : range 0 8] : begin - set kern : kKern * (2 * SB * shrink + (0.5 * Stroke * [HSwToV shrink] - OX * 2)) + set kern : kKern * (2 * SB * shrink + (HalfStroke * [HSwToV shrink] - OX * 2)) local tmpShrink : (wwM + kern * (mockNParts - 1)) / (mockNParts * Width) set shrink : Math.max _shrink : clamp 0 1 tmpShrink @@ -1679,7 +1679,7 @@ glyph-block Autobuild-Double-Emotions : begin define CWidth : if FMosaicWide MosaicWidth (Width * div) define shrink1 : if FMosaicWide 1 _shrink1 define shrink2 : if FMosaicWide 1 _shrink2 - define kern : SB * shrink1 + SB * shrink2 + 0.5 * Stroke * [mix shrink1 shrink2 0.5] - OX * 2 + define kern : SB * shrink1 + SB * shrink2 + HalfStroke * [mix shrink1 shrink2 0.5] - OX * 2 define jobs : CollectJobs NON-DECOMPOSABLE NOT-CENTERED ALLOW-PROPORTIONAL prefix MosaicNameSuffix demands define df1 : CreateDerivedFontFromJobs jobs {} : lambda [gs] : Thinner gs shrink1 true @@ -1699,7 +1699,7 @@ glyph-block Autobuild-Double-Emotions : begin include : Translate (dfg1.advanceWidth * wadj1 - kern) 0 include : union dfg1 [with-transform [Translate (dfg1.advanceWidth) 0] dfm1] include : Ungizmo - include : Translate (-refW / 2) 0 + include : Translate ((-refW) / 2) 0 include : Scale [clamp 0 1 ((CWidth - SB * 1.25) / (CWidth - SB * 2) * CWidth / refW)] 1 include : Translate (CWidth / 2) 0 include : Regizmo @@ -1725,7 +1725,7 @@ glyph-block Autobuild-Grouped-Digits : begin HBar.b 0 Width (Descender * 0.75) [AdviceStroke 4] glyph-proc include : refer-glyph "denseShade.WWID" - include : Translate (-Width / 2) 0 + include : Translate ((-Width) / 2) 0 include : Translate (-Width) 0 foreach [gid : items-of numberGlyphIDs] : foreach [nd : items-of {0 1 2 3 4 5 6}] diff --git a/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl b/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl index 183ec6cf4..04cf07cb8 100644 --- a/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl +++ b/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl @@ -129,7 +129,7 @@ export : define Superscript : list list 0xA717 'dotvbar' list 0xA718 'dotslash' list 0xA719 'dothbar' - list 0xA71A 'turnedRevNegate' + list 0xA71A 'invNegate' list 0xA71B 'arrowUp.NWID' list 0xA71C 'arrowDown.NWID' list 0xA71D 'alveolarclick' diff --git a/packages/font-glyphs/src/letter/cyrillic/de.ptl b/packages/font-glyphs/src/letter/cyrillic/de.ptl index ffb86bab7..defc1978a 100644 --- a/packages/font-glyphs/src/letter/cyrillic/de.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/de.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Cyrillic-De : begin glyph-block-import Letter-Greek-Lower-Epsilon : CyrZe EpsilonConfig glyph-block-export BottomExtension - local BottomExtension : 0.25 * Stroke - LongVJut + local BottomExtension : QuarterStroke - LongVJut glyph-block-export CyrDeBottom define [CyrDeBottom left right _sw _desc] : glyph-proc @@ -153,7 +153,7 @@ glyph-block Letter-Cyrillic-De : begin local middle : mix left right 0.5 local sw : fallback _sw df.mvs - local yRingTop : Math.min (XH + O) (XH - Stroke * 0.25) + local yRingTop : Math.min (XH + O) (XH - QuarterStroke) local ada : df.archDepthA (SmallArchDepth * yRingTop / XH) local adb : df.archDepthB (SmallArchDepth * yRingTop / XH) diff --git a/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl b/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl index 052ea88c6..15ff39353 100644 --- a/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl @@ -14,7 +14,7 @@ glyph-block Letter-Cyrillic-Dzhe : begin include : VBar.l SB 0 top include : HBar.b SB RightSB 0 include : VBar.r RightSB 0 top - local desc : 0.25 * Stroke - LongVJut + local desc : QuarterStroke - LongVJut include : VBar.m Middle desc Stroke include : ExtendBelowBaseAnchors desc if SLAB : let [sf : SerifFrame.fromDf [DivFrame 1] top 0] : begin diff --git a/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl b/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl index 206bb69b2..811561bd4 100644 --- a/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl @@ -11,13 +11,13 @@ glyph-block Letter-Cyrillic-Lower-Be : begin create-glyph 'cyrl/be' 0x431 : glyph-proc include : MarkSet.b - local yRingTop : Math.min (XH + O) (XH - Stroke * 0.25) + local yRingTop : Math.min (XH + O) (XH - QuarterStroke) local ada : [DivFrame 1].archDepthA (SmallArchDepth * yRingTop / XH) local adb : [DivFrame 1].archDepthB (SmallArchDepth * yRingTop / XH) include : dispiro widths.rhs ShoulderFine - straight.up.start (SB + OX + [HSwToV (Stroke - ShoulderFine)]) (yRingTop - ada) + straight.up.start (SB + OX + [HSwToV : Stroke - ShoulderFine]) (yRingTop - ada) arch.rhs yRingTop (swBefore -- ShoulderFine) flat (RightSB - OX) (yRingTop - adb) curl (RightSB - OX) ada @@ -25,4 +25,4 @@ glyph-block Letter-Cyrillic-Lower-Be : begin flat (SB + OX) adb curl (SB + OX) (yRingTop - ada) alsoThruThem [list {0.3 0.85} {0.65 0.925}] important g4 - g4 (RightSB - (1 / 16) * [HSwToV Stroke]) Ascender [heading Rightward] + g4 (RightSB - [HSwToV : Stroke / 16]) Ascender [heading Rightward] diff --git a/packages/font-glyphs/src/letter/cyrillic/yat.ptl b/packages/font-glyphs/src/letter/cyrillic/yat.ptl index 547089a85..6f3c32858 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yat.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yat.ptl @@ -28,7 +28,7 @@ glyph-block Letter-Cyrillic-Yat : begin pBar -- pBar stroke -- sw - local cTop : if SLAB (top - Stroke / 2) top + local cTop : if SLAB (top - HalfStroke) top local _xCrossbarLeft : mix 0 df.leftSB : if SLAB 0.25 0.375 local xCrossbarLeft : fallback xCrossbarLeftOverride _xCrossbarLeft diff --git a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl index 6d976581f..976e53e08 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl @@ -280,58 +280,58 @@ glyph-block Letter-Cyrillic-Yeri : begin local df : include : DivFrame 1 include : df.markSet.capital include : Uc CAP - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yeri.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.e include : Lc XH - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/YeriBar.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital include : Uc CAP - left -- df.leftSB + left -- df.leftSB right -- df.rightSB include : YeriOverlayBar df CAP create-glyph "cyrl/yeriBar.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.e include : Lc XH - left -- df.leftSB + left -- df.leftSB right -- df.rightSB include : YeriOverlayBar df XH create-glyph "cyrl/Yer.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.capital include : CyrBackYerShape Uc CAP - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yer.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.e include : CyrBackYerShape Lc XH - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yerTall.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.b include : CyrBackYerShape Lc Ascender - left -- df.leftSB + left -- df.leftSB right -- df.rightSB - pBar -- (YeriBarPos * XH / Ascender) + pBar -- (YeriBarPos * XH / Ascender) create-glyph "cyrl/YerNeutral.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.capital include : CyrNeutralYerShape Uc CAP - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yerNeutral.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.e include : CyrNeutralYerShape Lc XH - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "ZhuangToneSix.\(suffix)" : glyph-proc include : MarkSet.capital @@ -405,13 +405,13 @@ glyph-block Letter-Cyrillic-Yeri : begin local xm : df.middle + [HSwToV : 0.5 * df.mvs] include : RevYeri.RoundShape CAP df.leftSB xm df.mvs include : UpwardHookShape - left -- df.middle - [HSwToV : 0.5 * df.mvs] - right -- df.rightSB + left -- df.middle - [HSwToV : 0.5 * df.mvs] + right -- df.rightSB ybegin -- CAP - yend -- (CAP / 2) - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) - sw -- df.mvs + yend -- (CAP / 2) + ada -- (SmallArchDepthA * 0.6 * df.div) + adb -- (SmallArchDepthB * 0.6 * df.div) + sw -- df.mvs if SLAB : begin include : HSerif.mt df.middle CAP Jut df.mvs local sf2 : [SerifFrame.fromDf df (CAP / 2) 0].slice 1 2 diff --git a/packages/font-glyphs/src/letter/greek/lower-delta.ptl b/packages/font-glyphs/src/letter/greek/lower-delta.ptl index bc5046b68..59d725cca 100644 --- a/packages/font-glyphs/src/letter/greek/lower-delta.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-delta.ptl @@ -12,10 +12,9 @@ glyph-block Letter-Greek-Lower-Delta : begin create-glyph 'grek/delta.rounded' : glyph-proc include : MarkSet.b - local yRingTop : Stroke * 0.25 + Ascender * 0.619 - local xNeck : mix SB RightSB 0.06 + local yRingTop : QuarterStroke + 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 Ascender 0.8] [widths.lhs] @@ -32,7 +31,7 @@ glyph-block Letter-Greek-Lower-Delta : begin flat (SB + OX) SmallArchDepthB curl (SB + OX) (yRingTop - SmallArchDepthA) arcvh - g4 xOTLeft (yRingTop - (Stroke - fine) / 2) [widths.rhs fine] + g4 xOTLeft (yRingTop - QuarterStroke) [widths.rhs HalfStroke] create-glyph 'grek/delta.flatTop' : glyph-proc include : MarkSet.b @@ -40,7 +39,7 @@ glyph-block Letter-Greek-Lower-Delta : begin local fine ShoulderFine local coFine : mix fine Stroke 0.5 local yTop : Ascender - Stroke - local yMid : Stroke * 0.25 + [mix 0 XH (7 / 8)] + local yMid : QuarterStroke + [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 @@ -49,8 +48,8 @@ glyph-block Letter-Greek-Lower-Delta : begin include : HBar.t SB RightSB Ascender include : intersection [MaskBelow yTop] : dispiro widths.lhs fine - flat (RightSB - OX - [HSwToV (Stroke - fine)]) SmallArchDepthA - curl (RightSB - OX - [HSwToV (Stroke - fine)]) (yMid - SmallArchDepthB) + flat (RightSB - OX - [HSwToV : Stroke - fine]) SmallArchDepthA + curl (RightSB - OX - [HSwToV : Stroke - fine]) (yMid - SmallArchDepthB) arch.lhs yMid (swBefore -- fine) flat (SB + OX) (yMid - SmallArchDepthA) curl (SB + OX) SmallArchDepthB diff --git a/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl index eb4f99687..99a285cbf 100644 --- a/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl @@ -18,7 +18,7 @@ glyph-block Letter-Greek-Lower-Lunate-Epsilon : begin arcvh flat [mix SB RightSB 0.625] 0 [heading Rightward] curl RightSB 0 [heading Rightward] - include : HBar.m (SB + [HSwToV HalfStroke]) ([mix SB RightSB 0.75] + 0.25 * Stroke) (XH / 2) [AdviceStroke2 2 3 XH] + include : HBar.m (SB + [HSwToV HalfStroke]) ([mix SB RightSB 0.75] + QuarterStroke) (XH / 2) [AdviceStroke2 2 3 XH] create-glyph 'grek/lowerLunateEpsilonRev' 0x3F6 : glyph-proc include : MarkSet.e @@ -30,4 +30,4 @@ glyph-block Letter-Greek-Lower-Lunate-Epsilon : begin arcvh flat [mix RightSB SB 0.625] 0 [heading Leftward] curl SB 0 [heading Leftward] - include : HBar.m ([mix RightSB SB 0.75] - 0.25 * Stroke) (RightSB - [HSwToV HalfStroke]) (XH / 2) [AdviceStroke2 2 3 XH] + include : HBar.m ([mix RightSB SB 0.75] - QuarterStroke) (RightSB - [HSwToV HalfStroke]) (XH / 2) [AdviceStroke2 2 3 XH] diff --git a/packages/font-glyphs/src/letter/greek/lower-nu.ptl b/packages/font-glyphs/src/letter/greek/lower-nu.ptl index 9f2801d78..52546981a 100644 --- a/packages/font-glyphs/src/letter/greek/lower-nu.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-nu.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Greek-Lower-Nu : begin create-glyph 'grek/nu.casual' : glyph-proc include : MarkSet.e - local xmid : Middle + HalfStroke * 0.75 + local xmid : Middle + 0.375 * Stroke include : dispiro g4 (SB + [HSwToV : 0.4 * Stroke]) (XH - O) [widths.rhs] bezControls 0.33 0.2 1 0.76 6 important diff --git a/packages/font-glyphs/src/letter/greek/pi.ptl b/packages/font-glyphs/src/letter/greek/pi.ptl index 22d06d85e..928043cb4 100644 --- a/packages/font-glyphs/src/letter/greek/pi.ptl +++ b/packages/font-glyphs/src/letter/greek/pi.ptl @@ -15,7 +15,7 @@ glyph-block Letter-Greek-Pi : begin glyph-block-export PiShape define [PiShape] : with-params [df top bottom [shrinkRate 0.05] [fine Stroke] [doSerif false] [endShrink 0] [tailed false]] : glyph-proc local shrink : if doSerif 0 (shrinkRate * (df.rightSB - df.leftSB)) - local endexpand : if doSerif 0 (- endShrink * (df.rightSB - df.leftSB) || shrink / 2) + local endexpand : if doSerif 0 ((-endShrink) * (df.rightSB - df.leftSB) || shrink / 2) include : HBar.t (df.leftSB - endexpand) (df.rightSB + endexpand) top fine include : VBar.l (df.leftSB + shrink) bottom (top - fine / 2) fine if tailed @@ -28,7 +28,7 @@ glyph-block Letter-Greek-Pi : begin define [MathBBPiShape] : with-params [df top bottom [shrinkRate 0.05] [endShrink 0]] : glyph-proc local shrink : shrinkRate * (df.rightSB - df.leftSB) - local endexpand : -endShrink * (df.rightSB - df.leftSB) || shrink / 2 + local endexpand : (-endShrink) * (df.rightSB - df.leftSB) || shrink / 2 include : HBar.t (df.leftSB - endexpand) (df.rightSB + endexpand) top BBS include : BBBarLeft (df.leftSB + shrink) bottom top include : BBBarRight (df.rightSB - shrink) bottom top @@ -53,7 +53,7 @@ glyph-block Letter-Greek-Pi : begin derive-composites 'cyrl/PeDescender' 0x524 'cyrl/Pe' [CyrDescender.rSideJut RightSB 0] derive-composites 'cyrl/peDescender.upright' null 'cyrl/pe.upright' [CyrDescender.rSideJut RightSB 0] - define SmallPiShrink : 1/6 - [HSwToV : 0.25 * Stroke] / (RightSB - SB) + define SmallPiShrink : (1/6) - [HSwToV QuarterStroke] / (RightSB - SB) define SmallPiConfig : object smallCap { {0 SLAB } false } diff --git a/packages/font-glyphs/src/letter/greek/qoppa.ptl b/packages/font-glyphs/src/letter/greek/qoppa.ptl index 0c71a8188..15c7a1fa2 100644 --- a/packages/font-glyphs/src/letter/greek/qoppa.ptl +++ b/packages/font-glyphs/src/letter/greek/qoppa.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Greek-Qoppa : begin create-glyph 'grek/Qoppa' 0x3DE : glyph-proc include : MarkSet.capital - define x1 : SB + [HSwToV : 0.25 * Stroke] - O + define x1 : SB + [HSwToV QuarterStroke] - O define x1co : Width - x1 define x2 : mix SB RightSB 0.3 define x2co : Width - x2 diff --git a/packages/font-glyphs/src/letter/greek/upper-gamma.ptl b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl index 3e081132f..2e354d30e 100644 --- a/packages/font-glyphs/src/letter/greek/upper-gamma.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl @@ -109,7 +109,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin include : MidHook.general left -- (GammaBarLeft + [HSwToV Stroke]) right -- RightSB - top -- (CAP * HBarPos + Stroke / 4) + top -- (CAP * HBarPos + QuarterStroke) ada -- ArchDepthA adb -- ArchDepthB @@ -119,7 +119,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin include : MidHook.general left -- (GammaBarLeft + [HSwToV Stroke]) right -- RightSB - top -- (XH * HBarPos + Stroke / 4) + top -- (XH * HBarPos + QuarterStroke) ada -- (ArchDepthA * (HBarPos ** 0.3)) adb -- (ArchDepthB * (HBarPos ** 0.3)) if para.isItalic : eject-contour 'serifLB' diff --git a/packages/font-glyphs/src/letter/latin-ext/eth.ptl b/packages/font-glyphs/src/letter/latin-ext/eth.ptl index c336a0c12..2e3f531e8 100644 --- a/packages/font-glyphs/src/letter/latin-ext/eth.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/eth.ptl @@ -17,7 +17,7 @@ glyph-block Letter-Latin-Eth : begin define [ArcStartKnots] : list widths.lhs fine - straight.up.mid (RightSB - OX - [HSwToV (Stroke - fine)]) yMid2 + straight.up.mid (RightSB - OX - [HSwToV : Stroke - fine]) yMid2 arch.lhs yMid (swBefore -- fine) g4 (SB + OX) [YSmoothMidL yMid 0 SmallArchDepthA SmallArchDepthB] arch.lhs 0 @@ -34,7 +34,7 @@ glyph-block Letter-Latin-Eth : begin create-glyph 'dInsular.straight-bar' : glyph-proc include : MarkSet.b local yMockBarStart : yMid2 + Stroke * 0.3 - local xTerminal : [mix SB RightSB 0.4] + [HSwToV : 0.5 * Stroke] + local xTerminal : [mix SB RightSB 0.4] + [HSwToV HalfStroke] local pStraightBarStart : 0.75 - (Stroke / Ascender) include : intersection [MaskBelow Ascender] : dispiro ArcStartKnots @@ -46,7 +46,7 @@ glyph-block Letter-Latin-Eth : begin derive-composites 'eth' 0xF0 'dInsular' : dispiro widths.center OverlayStroke - flat [mix SB RightSB 0.1] [mix XH Ascender (-0.05)] + flat [mix SB RightSB 0.1] [mix XH Ascender (-0.05)] curl [mix SB RightSB 0.95] [mix XH Ascender 0.35] create-glyph 'DInsular' 0xA779 : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl index 0dce36619..81c5f3361 100644 --- a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl @@ -39,7 +39,7 @@ glyph-block Letter-Latin-Ezh : begin corner ezhLeft yMidBar [widths.lhs : VSwToH sw] define [CurisveStart df top bot ezhLeft ezhRight yMidBar sw hook] : glyph-proc - define hookTerminalWidth : [AdviceStroke 3.5] / Stroke * sw + define hookTerminalWidth : sw * ([AdviceStroke 3.5] / Stroke) define xDiagWidth : 1 * sw define yFootHeight : [Math.max (0.15 * (top - bot)) (sw * 0.625)] + 0.4 * sw define yHookDepth : hook + sw * 0.25 @@ -171,7 +171,7 @@ glyph-block Letter-Latin-Ezh : begin terminalShape -- CurlyTailTerminalShape create-glyph "ezhRetroflexHook.\(suffix)" : glyph-proc - include : MarkSet.p + include : MarkSet.e include : EzhShape [DivFrame 1] XH 0 isCursive -- isCursive isSerifed -- isSerifed @@ -218,7 +218,7 @@ glyph-block Letter-Latin-Ezh : begin create-glyph "ezhRetroflexHook/phoneticRight.\(suffix)" : glyph-proc include : MarkSet.p - local b : Math.min (O - SHook) ((-LongVJut) + 0.25 * Stroke) + local b : Math.min (O - SHook) ((-LongVJut) + QuarterStroke) include : EzhShape [DivFrame 1] XH b pLeft -- (4/15) isCursive -- isCursive diff --git a/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl b/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl index 9d4186365..f1e73e146 100644 --- a/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl @@ -17,12 +17,12 @@ glyph-block Letter-Latin-Insular-G : begin local fallArcShape : list {0.25 0.1} {0.5 0.21} {0.75 0.38} local xFirstTurn : [mix SB RightSB 0.3] + [if SLAB 0.75 0.5] * [HSwToV Stroke] - local xIntersection : [mix xFirstTurn RightSB 0.3] - [HSwToV : 0.5 * Stroke] + local xIntersection : [mix xFirstTurn RightSB 0.3] - [HSwToV HalfStroke] - local yIntersection : [mix bot top 0.55] - 0.25 * Stroke + local yIntersection : [mix bot top 0.55] - QuarterStroke local yFirstTurn : [mix yIntersection top 0.32] - 0.2 * Stroke - local yBottomRingLeft : [mix bot yIntersection (0.875 * pl)] + 0.25 * Stroke - local yBottomRingRight : [mix bot yIntersection (0.875 * pr)] + 0.25 * Stroke + local yBottomRingLeft : [mix bot yIntersection (0.875 * pl)] + QuarterStroke + local yBottomRingRight : [mix bot yIntersection (0.875 * pr)] + QuarterStroke local yPhantomBowlEnd : mix bot yIntersection 1.2 include : HBar.t SB RightSB top diff --git a/packages/font-glyphs/src/letter/latin-ext/long-s.ptl b/packages/font-glyphs/src/letter/latin-ext/long-s.ptl index 7689a87cd..545ee872f 100644 --- a/packages/font-glyphs/src/letter/latin-ext/long-s.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/long-s.ptl @@ -58,7 +58,7 @@ glyph-block Letter-Latin-Long-S : begin local balance : IBalance2 : DivFrame 1 include : with-transform [Translate balance 0] : glyph-proc include : VBar.m Middle bottom (top - Hook) - include : VerticalHook.m Middle (top - Hook) (-LongJut + balance) (-Hook + HalfStroke) + include : VerticalHook.m Middle (top - Hook) ((-LongJut) + balance) ((-Hook) + HalfStroke) if fSlab : include : union HSerif.lb (Middle - [HSwToV HalfStroke]) bottom (SideJut + balance) HSerif.rb (Middle + [HSwToV HalfStroke]) bottom SideJut @@ -79,7 +79,7 @@ glyph-block Letter-Latin-Long-S : begin HSerif.mt xSerifPos XH serifLength define [LongSBentHookBase y0 m fSlab] : glyph-proc - local xTerminal : RightSB + RBalance2 + [Math.max 0 (m - [StdSmallFBarLeftPos0])] + local xTerminal : RightSB + RBalance2 + [Math.max 0 : m - [StdSmallFBarLeftPos0]] include : dispiro widths.lhs g4 xTerminal (Ascender - Hook) @@ -162,7 +162,7 @@ glyph-block Letter-Latin-Long-S : begin create-glyph "longs.flatHookTailed\(suffix)" : glyph-proc include : MarkSet.bp currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above' - include : LongSShape Ascender Descender (HookX + 0.25 * Stroke) Hook + include : LongSShape Ascender Descender (HookX + QuarterStroke) Hook include : StandardSerifs (Middle - [HSwToV HalfStroke]) serifStyle create-forked-glyph "longsBar.flatHookTailed\(suffix)" : LongSSymmetricOverlayBar Middle @@ -175,7 +175,7 @@ glyph-block Letter-Latin-Long-S : begin currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above' include : union intersection [MaskAbove 0] - LongSShape Ascender Descender (HookX + 0.25 * Stroke) Hook + LongSShape Ascender Descender (HookX + QuarterStroke) Hook SmallFDiagonalTail [DivFrame 1] (Middle - [HSwToV HalfStroke]) StandardSerifs (Middle - [HSwToV HalfStroke]) serifStyle create-forked-glyph "longsBar.flatHookDiagonalTailed\(suffix)" : LongSSymmetricOverlayBar Middle @@ -196,7 +196,7 @@ glyph-block Letter-Latin-Long-S : begin include : MarkSet.bp local m : StdSmallFBarLeftPos true include : LongSBentHookBase (XH / 2) m SLAB_SERIFLESS - include : LongSLowerHalf 1 (m + [HSwToV HalfStroke]) (XH / 2 - O) Descender (HookX + 0.25 * Stroke) Hook Stroke + include : LongSLowerHalf 1 (m + [HSwToV HalfStroke]) (XH / 2 - O) Descender (HookX + QuarterStroke) Hook Stroke include : StandardSerifs m serifStyle create-forked-glyph "longsBar.bentHookTailed\(suffix)" : LongSBentHookOverlayBar m @@ -210,7 +210,7 @@ glyph-block Letter-Latin-Long-S : begin create-glyph "eshBaseline" 0xAB4D : glyph-proc include : MarkSet.b - include : LongSShape Ascender 0 (HookX + 0.25 * Stroke) Hook + include : LongSShape Ascender 0 (HookX + QuarterStroke) Hook select-variant "longs" 0x17F select-variant "longs/compLigLeft" (shapeFrom -- "longs") @@ -226,18 +226,18 @@ glyph-block Letter-Latin-Long-S : begin create-glyph "eshRetroflexHook" 0x1D98 : glyph-proc include : MarkSet.bp - include : LongSShape Ascender 0 (HookX + 0.25 * Stroke) Hook + include : LongSShape Ascender 0 (HookX + QuarterStroke) Hook include : RetroflexHook.l - x -- (Middle - (HookX + 0.25 * Stroke)) + x -- (Middle - (HookX + QuarterStroke)) y -- 0 yOverflow -- Stroke create-glyph "eshRetroflexHook/teshRight" : glyph-proc include : MarkSet.bp - local b : Math.min (2 * O - Stroke) ((-LongVJut) + 0.25 * Stroke) - include : LongSShape Ascender b (HookX + 0.25 * Stroke) Hook + local b : Math.min (2 * O - Stroke) ((-LongVJut) + QuarterStroke) + include : LongSShape Ascender b (HookX + QuarterStroke) Hook include : RetroflexHook.l - x -- (Middle - (HookX + 0.25 * Stroke)) + x -- (Middle - (HookX + QuarterStroke)) y -- b yOverflow -- Stroke @@ -249,7 +249,7 @@ glyph-block Letter-Latin-Long-S : begin # local x2 : mix RightSB m 0.25 # local y2 : Descender + O include : union - LongSUpperHalf 1 (Middle - FBalance) Ascender 0 (HookX + 0.25 * Stroke) Hook + LongSUpperHalf 1 (Middle - FBalance) Ascender 0 (HookX + QuarterStroke) Hook dispiro widths.rhs flat m (-O) [heading Downward] @@ -264,4 +264,4 @@ glyph-block Letter-Latin-Long-S : begin create-glyph "iviby" 0x285 : glyph-proc include : MarkSet.p - include : RevLongSShape XH Descender (HookX + 0.25 * Stroke) Hook + include : RevLongSShape XH Descender (HookX + QuarterStroke) Hook diff --git a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl index 6b6db360e..d18f0c857 100644 --- a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl @@ -233,7 +233,13 @@ glyph-block Letter-Latin-Lower-AE-OE : begin local { subDf } : SubDfAndShift 0 df local bp : RBarPos XH fSlabBot - include : RevRShape legShape XH (df -- subDf) (slab -- revSlabs) (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (sw -- df.mvs) + include : RevRShape legShape XH + df -- subDf + slab -- revSlabs + legSlab -- doLegSlab + bp -- bp + open -- fOpen + sw -- df.mvs eject-contour 'strokeR' eject-contour 'serifRB' @@ -316,7 +322,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : HBar.t subDf.leftSB subDf.rightSB XH subDf.mvs if doTopSerifs : begin - local swVJut : Math.min subDf.mvs (0.625 * (subDf.rightSB - subDf.middle - [HSwToV : 0.5 * subDf.mvs])) + local swVJut : Math.min subDf.mvs : 0.625 * (subDf.rightSB - subDf.middle - [HSwToV : 0.5 * subDf.mvs]) include : VSerif.dr subDf.rightSB XH VJut swVJut if doBottomSerifs : begin local midJutCenter : MidJutCenter * (subDf.width / Width) @@ -383,7 +389,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin define [OODots df kHeight fRound kdr] : glyph-proc local { subDf shift } : SubDfAndShift 0 df OX local space : InnerDot.spaceOfDf subDf - local kHeight2 : [Math.sqrt ([InnerDot.spaceOfDf : DivFrame 1] / space)] * kHeight + local kHeight2 : [Math.sqrt : [InnerDot.spaceOfDf : DivFrame 1] / space] * kHeight local offset : 0.5 * (space + [HSwToV df.mvs]) include : InnerDot (-offset) 0 kHeight2 fRound kdr space 3 include : InnerDot offset 0 kHeight2 fRound kdr space 3 diff --git a/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl index a015882cf..a18dbc1cb 100644 --- a/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl @@ -7,18 +7,17 @@ glyph-module glyph-block Letter-Latin-Sakha-Yat : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Latin-Lower-M : MEnoughSpaceForFullSerifs glyph-block-import Letter-Cyrillic-Yeri : YeriConfig glyph-block-import Letter-Cyrillic-Iotified-A : Iotified define [SakhaYatShape Yeri df top] : glyph-proc include : Yeri top - left -- (df.middle - [HSwToV : 0.5 * df.mvs]) - right -- df.rightSB + left -- (df.middle - [HSwToV : 0.5 * df.mvs]) + right -- df.rightSB stroke -- df.mvs - jut -- [Math.min Jut : Jut * 0.75 * df.div] + jut -- [Math.min Jut : Jut * 0.75 * df.div] - local fEnoughSpaceForFullSerifs : MEnoughSpaceForFullSerifs df + local fEnoughSpaceForFullSerifs : df.width > 7 * para.refJut if [not fEnoughSpaceForFullSerifs] : eject-contour 'serifYeriLB' include : Iotified.[if fEnoughSpaceForFullSerifs 'full' 'outer'] df top (df.middle + [HSwToV : 0.5 * df.mvs]) (top - df.mvs * 0.5) diff --git a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl index 7f3415829..d702fe978 100644 --- a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl @@ -85,7 +85,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin list "\(prefix)/Left" "\(prefix)/LeftMask" "\(prefix)/Right" "\(prefix)/RightMask" function [srcs gr] : glyph-proc define df : DivFrame div 3.5 - define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] + define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) : AdviceStroke 6 define { left leftMask right rightMask } srcs include [refer-glyph left] AS_BASE ALSO_METRICS @@ -102,7 +102,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin derive-multi-part-glyphs 'AO' 0xA734 {"AA/Left" "AA/LeftMask" "OO/right"} function [srcs gr] : glyph-proc define df : DivFrame para.diversityMM 3.5 - define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] + define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) : AdviceStroke 6 define { left leftMask right } srcs include [refer-glyph left] AS_BASE ALSO_METRICS include : difference [refer-glyph right] [refer-glyph leftMask] diff --git a/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl index c154ba34c..19e595d97 100644 --- a/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl @@ -94,7 +94,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin include : HSerif.mb (df.leftSB + [HSwToV : 0.5 * sw]) 0 Jut sw match slabKind [Just SLAB-A-TRI] : begin - include : HSerif.lt df.middle top (MidJutSide + [HSwToV : 0.25 * Stroke]) + include : HSerif.lt df.middle top (MidJutSide + [HSwToV QuarterStroke]) [Just SLAB-A-TOP] : begin include : HSerif.lt df.middle top [mix MidJutSide LongJut 0.5] @@ -129,7 +129,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin include : VSerif.ur df.rightSB 0 jutBot swVJut match slabKind [Just SLAB-E-CAPPED] : begin - local fine : swVJut * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * swVJut / Stroke include : VBar.r xMidRight (yBar - jutMid) (yBar + jutMid) fine do "Ya Half" @@ -148,7 +148,13 @@ glyph-block Letter-Latin-Upper-AE-OE : begin local subDf : df.sliceFine 3 2 0.5 [HSwToV : 0.25 * sw] set-base-anchor 'cvDecompose' 0 0 - include : RevRShape legShape CAP (df -- subDf) (slab -- revSlabs) (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (sw -- sw) + include : RevRShape legShape CAP + df -- subDf + slab -- revSlabs + legSlab -- doLegSlab + bp -- bp + open -- fOpen + sw -- sw eject-contour 'strokeR' eject-contour 'serifRT' @@ -209,7 +215,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin define eBarPos DesignParameters.upperEBarPos define sw : Math.min df.mvs : AdviceStroke2 3 3 top df.div define eleft : df.middle - [HSwToV : sw * [if SLAB (1 / 3) (1 / 4)]] - define swVJut : Math.min sw ((df.rightSB - eleft - [HSwToV sw]) * (4 / 5)) + define swVJut : Math.min sw : (df.rightSB - eleft - [HSwToV sw]) * (4 / 5) define ada : df.archDepthA ArchDepth sw define adb : df.archDepthB ArchDepth sw @@ -239,7 +245,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin include : VSerif.ur df.rightSB 0 jutBot swVJut match slabKind [Just SLAB-E-CAPPED] : begin - local fine : swVJut * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * swVJut / Stroke include : VBar.r xMidRight (yBar - jutMid) (yBar + jutMid) fine foreach { suffix { slabKind } } [Object.entries EConfig] : do diff --git a/packages/font-glyphs/src/letter/latin-ext/wynn.ptl b/packages/font-glyphs/src/letter/latin-ext/wynn.ptl index 4eb04976a..fe15e47be 100644 --- a/packages/font-glyphs/src/letter/latin-ext/wynn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/wynn.ptl @@ -19,7 +19,7 @@ glyph-block Letter-Latin-Wynn : begin define [WynnShape bot top] : glyph-proc include : VBar.l SB bot top - local bowlBottom : 0.5 * Stroke + [mix bot top 0.15] + local bowlBottom : HalfStroke + [mix bot top 0.15] local bowlStartDepth : 0.15 * (top - bowlBottom) local yCounterPesudoBottom : mix bowlBottom top 0.333 diff --git a/packages/font-glyphs/src/letter/latin-ext/yogh.ptl b/packages/font-glyphs/src/letter/latin-ext/yogh.ptl index a5540a59a..9e5b21376 100644 --- a/packages/font-glyphs/src/letter/latin-ext/yogh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/yogh.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Latin-Yogh : begin define SLAB-CLASSICAL 1 define SLAB-INWARD 2 - define [PhantomBotYOfUpperHalf top bot] : [mix bot top OverlayPos] - 0.25 * Stroke + define [PhantomBotYOfUpperHalf top bot] : [mix bot top OverlayPos] - QuarterStroke define [TopYOfLowerHalf top bot] : [mix bot top OverlayPos] + 0.06 * Stroke define [UpperHalfT sink slab offset top bot] : begin @@ -27,7 +27,7 @@ glyph-block Letter-Latin-Yogh : begin __ : list [g4 SB (top - Hook) [widths.rhs]] [hookstart (top - offset)] g4 (RightSB - offset) yRightHalf alsoThruThem {{0.5 0.8} {0.75 0.92}} important - [if (sink == dispiro) g4 corner] ([mix SB RightSB 0.1] + Stroke * 0.25) yBottomTerminal + [if (sink == dispiro) g4 corner] ([mix SB RightSB 0.1] + QuarterStroke) yBottomTerminal define [LowerHalfT sink top bot] : begin local pyt : mix bot [TopYOfLowerHalf top bot] 1.2 diff --git a/packages/font-glyphs/src/letter/latin/k.ptl b/packages/font-glyphs/src/letter/latin/k.ptl index 2cd0bb642..16ca52dae 100644 --- a/packages/font-glyphs/src/letter/latin/k.ptl +++ b/packages/font-glyphs/src/letter/latin/k.ptl @@ -325,7 +325,7 @@ glyph-block Letter-Latin-K : begin CursiveLoopT spiro-outline (-O) left right stroke top slabLT slabLegs define [KHookTopBar xBarLeft] : TopHook.toRight.lBarInner - x -- xBarLeft + x -- xBarLeft yBot -- 0 yTop -- Ascender @@ -372,7 +372,7 @@ glyph-block Letter-Latin-K : begin create-glyph 'UpperKaiSymbolAttachment' : glyph-proc set-width 0 set-mark-anchor 'trailing' 0 0 - define shapeDepth : 0.8 * Descender - 0.25 * Stroke + define shapeDepth : 0.8 * Descender - QuarterStroke define kSw : mix 1 HVContrast Math.SQRT1_2 include : PointingTo 0 0 shapeDepth shapeDepth : function [mag] : union dispiro @@ -404,7 +404,7 @@ glyph-block Letter-Latin-K : begin create-glyph "KDescender.\(suffix)" : glyph-proc include : MarkSet.capital include : KBaseShape Stroke CAP CyrDescender - include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) + include : ExtendBelowBaseAnchors ((-LongVJut) + HalfStroke) create-glyph "KStroke.\(suffix)" : glyph-proc include [refer-glyph "K.\(suffix)"] AS_BASE ALSO_METRICS @@ -432,7 +432,7 @@ glyph-block Letter-Latin-K : begin create-glyph "smcpKDescender.\(suffix)" : glyph-proc include : MarkSet.e include : KBaseShape Stroke XH CyrDescender - include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) + include : ExtendBelowBaseAnchors ((-LongVJut) + HalfStroke) create-glyph "smcpKVBar.\(suffix)" : glyph-proc include : MarkSet.e diff --git a/packages/font-glyphs/src/letter/latin/lower-b.ptl b/packages/font-glyphs/src/letter/latin/lower-b.ptl index 59ec5d6d1..b28a55e8e 100644 --- a/packages/font-glyphs/src/letter/latin/lower-b.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-b.ptl @@ -53,7 +53,7 @@ glyph-block Letter-Latin-Lower-B : begin include : Body Ascender include : Serifs include : LeaningAnchor.Above.VBar.l SB - set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay + set-base-anchor 'overlayOnExtension' (SB + [HSwToV HalfStroke]) yOverlay set-base-anchor 'overlay' Middle (XH / 2) create-glyph "bStroke.\(suffix)" : glyph-proc @@ -113,4 +113,4 @@ glyph-block Letter-Latin-Lower-B : begin VBar.r (RightSB - BBD - OX) 0 XH BBS include : OBarLeft.shape left -- (SB + BBD) - sw -- BBS + sw -- BBS diff --git a/packages/font-glyphs/src/letter/latin/lower-d.ptl b/packages/font-glyphs/src/letter/latin/lower-d.ptl index 995481d09..d6ab3a593 100644 --- a/packages/font-glyphs/src/letter/latin/lower-d.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-d.ptl @@ -17,50 +17,50 @@ glyph-block Letter-Latin-Lower-D : begin define [ToothedBody df yTop] : union OBarRight.shape - left -- df.leftSB + left -- df.leftSB right -- df.rightSB - sw -- df.mvs - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + sw -- df.mvs + ada -- [df.archDepthA SmallArchDepth df.mvs] + adb -- [df.archDepthB SmallArchDepth df.mvs] tagged 'rightBar' : VBar.r df.rightSB 0 yTop define [ToothlessCornerBody df yTop] : union OBarRight.toothless - left -- df.leftSB - right -- df.rightSB - sw -- df.mvs - rise -- DToothlessRise + left -- df.leftSB + right -- df.rightSB + sw -- df.mvs + rise -- DToothlessRise mBlend -- DMBlend - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + ada -- [df.archDepthA SmallArchDepth df.mvs] + adb -- [df.archDepthB SmallArchDepth df.mvs] tagged 'rightBar' : VBar.r df.rightSB DToothlessRise yTop define [ToothlessCornerHBBBody df yTop] : union OBarRight.toothless - left -- df.leftSB - right -- df.rightSB - sw -- df.mvs - rise -- DToothlessRise + left -- df.leftSB + right -- df.rightSB + sw -- df.mvs + rise -- DToothlessRise mBlend -- DMBlend - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + ada -- [df.archDepthA SmallArchDepth df.mvs] + adb -- [df.archDepthB SmallArchDepth df.mvs] tagged 'rightBar' : VBar.r df.rightSB 0 yTop define [ToothlessRoundedBody df yTop] : OBarRight.rounded - left -- df.leftSB - right -- df.rightSB - sw -- df.mvs + left -- df.leftSB + right -- df.rightSB + sw -- df.mvs yTerminal -- yTop - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + ada -- [df.archDepthA SmallArchDepth df.mvs] + adb -- [df.archDepthB SmallArchDepth df.mvs] define [TailedBody df yTop] : union OBarRight.shape - left -- df.leftSB + left -- df.leftSB right -- df.rightSB - sw -- df.mvs - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + sw -- df.mvs + ada -- [df.archDepthA SmallArchDepth df.mvs] + adb -- [df.archDepthB SmallArchDepth df.mvs] RightwardTailedBar df.rightSB 0 yTop define [TopSerif df yTop] : tagged 'serifRT' @@ -132,13 +132,13 @@ glyph-block Letter-Latin-Lower-D : begin eject-contour 'rightBar' include : with-transform [ApparentTranslate (df.width - dfHalf.width) 0] : UpwardHookShape - left -- dfHalf.leftSB - right -- dfHalf.rightSB + left -- dfHalf.leftSB + right -- dfHalf.rightSB ybegin -- Ascender - yend -- (XH / 2) - ada -- [dfHalf.archDepthA SmallArchDepth df.mvs] - adb -- [dfHalf.archDepthB SmallArchDepth df.mvs] - sw -- df.mvs + yend -- (XH / 2) + ada -- [dfHalf.archDepthA SmallArchDepth df.mvs] + adb -- [dfHalf.archDepthB SmallArchDepth df.mvs] + sw -- df.mvs if topSerif : include : topSerif dfHalf Ascender if SLAB : begin @@ -175,7 +175,7 @@ glyph-block Letter-Latin-Lower-D : begin include : RetroflexHook.rExt RightSB 0 include : LeaningAnchor.Below.VBar.r RightSB - CreateCommaCaronComposition 'dCaron' 0x10F 'dCaronBase' (Width - [HSwToV : 0.25 * Stroke]) + CreateCommaCaronComposition 'dCaron' 0x10F 'dCaronBase' (Width - [HSwToV QuarterStroke]) derive-multi-part-glyphs 'dDot' 0x1E0B {'d' 'dotAbove'} : lambda [srcs gr] : glyph-proc local { base mark } srcs @@ -225,4 +225,4 @@ glyph-block Letter-Latin-Lower-D : begin VBar.l (SB + BBD + OX) 0 XH BBS include : OBarRight.shape right -- (RightSB - BBD) - sw -- BBS + sw -- BBS diff --git a/packages/font-glyphs/src/letter/latin/lower-e.ptl b/packages/font-glyphs/src/letter/latin/lower-e.ptl index ccb165439..f384b2466 100644 --- a/packages/font-glyphs/src/letter/latin/lower-e.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-e.ptl @@ -274,7 +274,7 @@ glyph-block Letter-Latin-Lower-E : begin create-glyph "eBar.\(suffix)" : glyph-proc include [refer-glyph "e.\(suffix)"] AS_BASE ALSO_METRICS - include : HBar.m [mix SB 0 0.7] [mix RightSB Width 0.7] (XH * 0.25 + Stroke * 0.25) + include : HBar.m [mix SB 0 0.7] [mix RightSB Width 0.7] (XH * 0.25 + QuarterStroke) Math.min (0.25 * (XH - 3 * Stroke)) : AdviceStroke 5 DefineSelectorGlyph "cyrl/Schwa" suffix [DivFrame 1] 'capital' diff --git a/packages/font-glyphs/src/letter/latin/lower-f.ptl b/packages/font-glyphs/src/letter/latin/lower-f.ptl index cffa1a635..4dce418ae 100644 --- a/packages/font-glyphs/src/letter/latin/lower-f.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-f.ptl @@ -58,7 +58,7 @@ glyph-block Letter-Latin-Lower-F : begin define [StdSmallFBarLeftPos barAtCenter] : [mix SB RightSB : if barAtCenter 0.45 0.35] - [HSwToV : Stroke * [if barAtCenter 0.45 0.25]] glyph-block-export StdSmallFBarLeftPos0 - define [StdSmallFBarLeftPos0] : [mix SB RightSB 0.35] - [HSwToV : 0.25 * Stroke] + define [StdSmallFBarLeftPos0] : [mix SB RightSB 0.35] - [HSwToV QuarterStroke] define [StandardSmallFShape df m bh counterHook] : glyph-proc local barAtCenter : (counterHook === CH-HOOK) || (counterHook === CH-DIAGONAL-HOOK) @@ -66,7 +66,7 @@ glyph-block Letter-Latin-Lower-F : begin local barLeft : StdSmallFBarLeftPos barAtCenter include : LeaningAnchor.Above.Hook barLeft (df.rightSB + barLeft - barLeft0) - set-base-anchor 'overlay' (barLeft + [HSwToV : 0.5 * Stroke]) (bh / 2) + set-base-anchor 'overlay' (barLeft + [HSwToV HalfStroke]) (bh / 2) include : StdFShapeT dispiro df 0 barLeft0 Stroke include : Translate (barLeft - barLeft0) 0 @@ -105,7 +105,7 @@ glyph-block Letter-Latin-Lower-F : begin [mix crossLeft crossRight 0.42] - [HSwToV : 0.375 * Stroke] local hd : FlatHookDepth df - set-base-anchor 'overlay' (barLeft + [HSwToV : 0.5 * Stroke]) (bh / 2) + set-base-anchor 'overlay' (barLeft + [HSwToV HalfStroke]) (bh / 2) include : LeaningAnchor.Above.Hook barLeft (crossRight + topHookExt) include : dispiro diff --git a/packages/font-glyphs/src/letter/latin/lower-il.ptl b/packages/font-glyphs/src/letter/latin/lower-il.ptl index d2c005b04..dce165c77 100644 --- a/packages/font-glyphs/src/letter/latin/lower-il.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-il.ptl @@ -83,7 +83,7 @@ glyph-block Letter-Latin-Lower-I : begin local tailLength : LongJut * 1.05 * [mix 1 df.div 0.75] local hd : FlatHookDepth df - define xFinal : xMiddle + [Math.max (hd.x - [HSwToV : 0.5 * df.mvs] + 1) tailLength] + 0.5 * df.mvs * TanSlope + define xFinal : xMiddle + [Math.max tailLength : hd.x - [HSwToV : 0.5 * df.mvs] + 1] + 0.5 * df.mvs * TanSlope include : dispiro widths.center df.mvs flat xMiddle top [heading Downward] @@ -99,7 +99,7 @@ glyph-block Letter-Latin-Lower-I : begin local hookScaleX : mix 1 df.div 0.5 local hookScaleY : mix 1 df.div 1.25 local x0 : mix (0.5 * df.mvs) (0.5 * df.mvs + (Hook - df.mvs + 1) * 0.85 * df.div + [IBalance2 df]) hookScaleX - local x1 : mix (0.5 * df.mvs) ([Math.max (Hook - 0.5 * df.mvs + 1) tailLength] + [IBalance2 df]) hookScaleX + local x1 : mix (0.5 * df.mvs) ([Math.max tailLength : Hook - 0.5 * df.mvs + 1] + [IBalance2 df]) hookScaleX include : dispiro widths.center df.mvs flat xMiddle top [heading Downward] @@ -112,7 +112,7 @@ glyph-block Letter-Latin-Lower-I : begin set-base-anchor 'palatalHookMask' (xMiddle + x0) (HalfStroke + O) export : define [ShortTailed df top xMiddle] : glyph-proc - include : RightwardTailedBar (xMiddle + [HSwToV : 0.5 * Stroke]) 0 top + include : RightwardTailedBar (xMiddle + [HSwToV HalfStroke]) 0 top export : define [DiagTailed df top xMiddle] : glyph-proc set-base-anchor 'trailing' (xMiddle + [HSwToV : 0.75 * df.mvs]) 0 @@ -132,7 +132,7 @@ glyph-block Letter-Latin-Lower-I : begin curl xMiddle Hook arcvh flat (xMiddle + Hook - 0.5 * df.mvs) (0.5 * df.mvs) - curl [Math.max df.rightSB (xMiddle + [Math.max HookX (LongJut * 1.05 * df.div)])] (0.5 * df.mvs) [heading Rightward] + curl [Math.max df.rightSB : xMiddle + [Math.max HookX : LongJut * 1.05 * df.div]] (0.5 * df.mvs) [heading Rightward] define Serifs : namespace export : define [Hooky df top xMiddle] : HSerif.lt xMiddle top (LongJut * df.div) Stroke df.mvs @@ -366,22 +366,22 @@ glyph-block Letter-Latin-Lower-I : begin derive-glyphs 'lSlash' 0x142 'l' : lambda [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS local anchor currentGlyph.baseAnchors.overlay - local stretch : Math.sqrt (currentGlyph.advanceWidth / UPM * 2) + local stretch : Math.sqrt : currentGlyph.advanceWidth / UPM * 2 include : FlatSlashShape anchor.x anchor.y (0.5 * OverlayStroke) (0.8 * stretch) (0.4 * stretch) # Curly-tail shape define [CurlyTailShape df fSerif] : glyph-proc local fine : AdviceStroke 3.5 - local rinner : LongJut / 2 - fine / 2 - local m1 : df.middle + [HSwToV HalfStroke] - local x2 : mix SB m1 0.25 - local y2 : - fine + # local rinner : LongJut / 2 - fine / 2 + local m : df.middle + [HSwToV HalfStroke] + # local x2 : mix SB m 0.25 + # local y2 : - fine if fSerif : include : HSerif.lt df.middle Ascender LongJut include : dispiro widths.lhs - flat (m1 - [HSwToV Stroke]) Ascender [heading Downward] - curl (m1 - [HSwToV Stroke]) (fine + rinner * 2) - CurlyTail.n fine 0 (m1 + LongJut) SB 0 + flat (m - [HSwToV Stroke]) Ascender [heading Downward] + curl (m - [HSwToV Stroke]) LongJut + CurlyTail.n fine 0 (m + LongJut) SB 0 create-glyph 'lCurlyTail.serifless' : glyph-proc local df : include : DivFrame para.diversityI diff --git a/packages/font-glyphs/src/letter/latin/lower-p.ptl b/packages/font-glyphs/src/letter/latin/lower-p.ptl index 7d2836184..52138f101 100644 --- a/packages/font-glyphs/src/letter/latin/lower-p.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-p.ptl @@ -62,14 +62,13 @@ glyph-block Letter-Latin-Lower-P : begin foreach { suffix { Body {Serifs doTS doBS} }} [Object.entries PConfig] : do local yOverlay : mix 0 (Descender + [if doBS Stroke 0]) 0.5 - local df : DivFrame 1 create-glyph "p.\(suffix)" : glyph-proc include : MarkSet.p include : Body - include : Serifs df XH + include : Serifs [DivFrame 1] XH include : LeaningAnchor.Below.VBar.l SB - set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay + set-base-anchor 'overlayOnExtension' (SB + [HSwToV HalfStroke]) yOverlay set-base-anchor 'strike' Middle (XH / 2) create-glyph "pStrokeBot.\(suffix)" : glyph-proc @@ -82,10 +81,10 @@ glyph-block Letter-Latin-Lower-P : begin create-glyph "thorn.\(suffix)" : glyph-proc include : MarkSet.bp include : SmallThornEaredBody - include : Serifs df Ascender + include : Serifs [DivFrame 1] Ascender include : LeaningAnchor.Above.VBar.l SB include : LeaningAnchor.Below.VBar.l SB - set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay + set-base-anchor 'overlayOnExtension' (SB + [HSwToV HalfStroke]) yOverlay set-base-anchor 'strike' Middle (XH / 2) create-glyph "thornStroke.\(suffix)" : glyph-proc @@ -102,10 +101,10 @@ glyph-block Letter-Latin-Lower-P : begin create-glyph "pPalatalHook.\(suffix)" : glyph-proc include [refer-glyph "p.\(suffix)"] AS_BASE ALSO_METRICS - local tinyGap : Math.max (Width / 32) [AdviceStroke 24] + local tinyGap : Math.max (Width / 32) : AdviceStroke 24 local xMask : Math.max SB + [HSwToV Stroke] + 2 * tinyGap - SB + [HSwToV : 0.5 * Stroke] + MidJutSide + tinyGap + SB + [HSwToV HalfStroke] + MidJutSide + tinyGap include : PalatalHook.r x -- [mix [arch.adjust-x.bot Middle] RightSB 0.75] @@ -153,5 +152,5 @@ glyph-block Letter-Latin-Lower-P : begin OShapeOutline.NoOvershoot XH 0 (SB + BBD + [HSwToV BBS]) RightSB VBar.r (RightSB - BBD - OX) 0 XH BBS include : OBarLeft.shape - left -- SB + BBD - sw -- BBS + left -- (SB + BBD) + sw -- BBS diff --git a/packages/font-glyphs/src/letter/latin/lower-r.ptl b/packages/font-glyphs/src/letter/latin/lower-r.ptl index 56ac32ad2..2e778b843 100644 --- a/packages/font-glyphs/src/letter/latin/lower-r.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-r.ptl @@ -77,7 +77,7 @@ glyph-block Letter-Latin-Lower-R : begin include : LeaningAnchor.Above.Hook mix df.leftSB (xBar - [HSwToV Stroke]) : if doTopSerif 0.5 1 begin df.rightSB - set-base-anchor 'overlay' (xBar - Stroke * 0.25) [mix bottom top 0.5] + set-base-anchor 'overlay' (xBar - QuarterStroke) [mix bottom top 0.5] set-base-anchor 'palatalHookAttach' xBar bottom set-base-anchor 'palatalHookPos' (xBar + [PalatalHook.adviceGap Stroke]) bottom currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above' @@ -88,7 +88,7 @@ glyph-block Letter-Latin-Lower-R : begin include : LeaningAnchor.Below.Hook begin df.leftSB df.width - [mix df.leftSB (xBar - [HSwToV Stroke]) : if doTopSerif 0.5 1] - set-base-anchor 'overlay' (df.width - (xBar - Stroke * 0.25)) [mix bottom top 0.5] + set-base-anchor 'overlay' (df.width - (xBar - QuarterStroke)) [mix bottom top 0.5] currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above' currentGlyph.copyBaseAnchorIfAbsent 'leaningBelow' 'below' @@ -98,7 +98,7 @@ glyph-block Letter-Latin-Lower-R : begin define [object xBar rBottomSerif rTopSerif fine xArchMiddle skew rHookX rHookY hookSuperness] : RDim df md include : dispiro widths.lhs - g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward] + g4.up.start rHookX (XH - rHookY - HalfStroke) [heading Upward] arcvh 32 hookSuperness g4.left.mid (xArchMiddle - CorrectionOMidS * [linreg 72 0.75 108 1 Stroke]) (XH - O) [widths.heading Stroke 0 {.y (-1) .x (-skew)}] archv 32 @@ -141,7 +141,7 @@ glyph-block Letter-Latin-Lower-R : begin define [object xBar xArchMiddle rHookX rHookY hookSuperness rBottomSerif] : RDim df md include : dispiro widths.lhs - g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward] + g4.up.start rHookX (XH - rHookY - HalfStroke) [heading Upward] arcvh nothing hookSuperness g4.left.mid (xArchMiddle - CorrectionOMidS) (XH - O) [heading Leftward] g4 (xBar - [HSwToV Stroke]) (XH - DToothlessRise) @@ -161,7 +161,7 @@ glyph-block Letter-Latin-Lower-R : begin define [FlapHooklessShape df md doTopSerif doBottomSerif] : glyph-proc define [object xBar rBottomSerif xArchMiddle] : RDim df md - set-base-anchor 'overlay' (xBar - [HSwToV : 0.5 * Stroke]) (XH / 2) + set-base-anchor 'overlay' (xBar - [HSwToV HalfStroke]) (XH / 2) include : dispiro widths.lhs g4.left.start (xArchMiddle - CorrectionOMidS * [linreg 72 0.75 108 1 Stroke]) (XH - O) @@ -227,12 +227,12 @@ glyph-block Letter-Latin-Lower-R : begin create-glyph "fInsular.\(suffix)" : glyph-proc include [refer-glyph "rLongLeg.\(suffix)"] AS_BASE ALSO_METRICS define [object xBar rHookX] : RDim df mode - include : HBar.b xBar (rHookX - [Math.max (0.15 * (df.rightSB - df.leftSB)) [HSwToV : 0.25 * Stroke]]) 0 + include : HBar.b xBar (rHookX - [Math.max (0.15 * (df.rightSB - df.leftSB)) [HSwToV QuarterStroke]]) 0 create-glyph "FInsular.\(suffix)" : glyph-proc include [refer-glyph "rCapLongLeg.\(suffix)"] AS_BASE ALSO_METRICS define [object xBar rHookX] : RDim df mode - include : HBar.b xBar (rHookX - [Math.max (0.15 * (df.rightSB - df.leftSB)) [HSwToV : 0.25 * Stroke]]) 0 + include : HBar.b xBar (rHookX - [Math.max (0.15 * (df.rightSB - df.leftSB)) [HSwToV QuarterStroke]]) 0 create-glyph "rPalatalHook.\(suffix)" : glyph-proc include [refer-glyph "r.\(suffix)"] AS_BASE ALSO_METRICS @@ -321,6 +321,12 @@ glyph-block Letter-Latin-Lower-R : begin select-variant 'rTurnLongLegRTail' 0x1DF08 (follow -- 'rTurnRTail') select-variant 'rPalatalHook' 0x1D89 (follow -- 'r') + select-variant 'rFlap' 0x27E (shapeFrom -- 'r') + CreateAccentedComposition 'rFlapTildeOver' 0x1D73 'rFlap' 'tildeOver' + + select-variant 'rTurnPalatalHook' 0x1DF15 (follow -- 'rTurnRTail') + select-variant 'rFlapPalatalHook' 0x1DF16 (shapeFrom -- 'rPalatalHook') (follow -- 'rFlap') + define [BBRShape df md doTopSerif doBottomSerif] : glyph-proc define [object xBar fine xArchMiddle skew rHookX rHookY hookSuperness] : RDim df md BBD BBS include : dispiro @@ -336,9 +342,3 @@ glyph-block Letter-Latin-Lower-R : begin create-glyph 'mathbb/r' 0x1D563 : glyph-proc include : dfR.markSet.e include : BBRShape dfN rStraight 0 0 - - select-variant 'rFlap' 0x27E (shapeFrom -- 'r') - CreateAccentedComposition 'rFlapTildeOver' 0x1D73 'rFlap' 'tildeOver' - - select-variant 'rTurnPalatalHook' 0x1DF15 (follow -- 'rTurnRTail') - select-variant 'rFlapPalatalHook' 0x1DF16 (shapeFrom -- 'rPalatalHook') (follow -- 'rFlap') diff --git a/packages/font-glyphs/src/letter/latin/lower-t.ptl b/packages/font-glyphs/src/letter/latin/lower-t.ptl index e513d13f9..a042f6bd0 100644 --- a/packages/font-glyphs/src/letter/latin/lower-t.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-t.ptl @@ -21,7 +21,7 @@ glyph-block Letter-Latin-Lower-T : begin define SYM-PR-BALANCED 3 define dfNarrowT : DivFrame para.diversityF - define [xSmallTBarLeftT df] : df.middle - TBalance * (df.div ** 2) - [HSwToV HalfStroke] + define [xSmallTBarLeftT df] : df.middle - (df.div ** 2) * TBalance - [HSwToV HalfStroke] define [xSmallTCrossRefT df] : [xSmallTBarLeftT df] + df.div * TBalance2 + [HSwToV HalfStroke] define yCrossBar XH @@ -40,7 +40,7 @@ glyph-block Letter-Latin-Lower-T : begin define [XHookTerminal df sym] : match sym [Just SYM-LEFT] df.rightSB - __ : [BarLeftPos df sym] + [Math.max ((df.width - df.leftSB * 2) * 0.75 + [HSwToV : 0.25 * Stroke]) [HSwToV : 2.25 * Stroke]] + __ : [BarLeftPos df sym] + [Math.max ((df.width - df.leftSB * 2) * 0.75 + [HSwToV QuarterStroke]) [HSwToV : 2.25 * Stroke]] export : define [HookShapeT sink df sym offset top bot sw] : begin local xLeft : BarLeftPos df sym @@ -121,7 +121,7 @@ glyph-block Letter-Latin-Lower-T : begin export : define [BarLeftPos df sym] : match sym [Just SYM-LEFT] : mix df.leftSB [xSmallTBarLeftT df] 0.5 [Just SYM-BALANCED] : [mix [CrossLeft df] [CrossRight df] 0.42] - [HSwToV : 0.375 * Stroke] - ([Just SYM-PR-LEFT] || [Just SYM-PR-BALANCED]) : df.middle - [HSwToV : 0.5 * Stroke] + ([Just SYM-PR-LEFT] || [Just SYM-PR-BALANCED]) : df.middle - [HSwToV HalfStroke] export : define [Body df sym top bot] : Impl NORMAL df sym top bot 0 export : define [Retroflex df sym top bot] : Impl RETROFLEX df sym top bot 0 @@ -321,7 +321,7 @@ glyph-block Letter-Latin-Lower-T : begin return : dispiro widths.lhs stroke flat [xSmallTBarLeftT df] top [heading Downward] - curl [xSmallTBarLeftT df] XH [heading Downward] + curl [xSmallTBarLeftT df] XH [heading Downward] alsoThru.g2 0.5 0.5 [widths.center stroke] g4 df.rightSB (archDepth) [widths.rhs stroke] match sb diff --git a/packages/font-glyphs/src/letter/latin/s.ptl b/packages/font-glyphs/src/letter/latin/s.ptl index 78ceab8e3..d716f0522 100644 --- a/packages/font-glyphs/src/letter/latin/s.ptl +++ b/packages/font-glyphs/src/letter/latin/s.ptl @@ -404,7 +404,7 @@ glyph-block Letter-Latin-S : begin local fine : sw * [mix CThinB 1 0.6] local hd : FlatHookDepth DfCapital local yStart : XH - [ArcStartSerifDepth SHook] - local neckLength : 0.5 * Stroke + local neckLength HalfStroke local leftExt : 0.3 * (RightSB - SB) - [HSwToV : 0.25 * sw] include : dispiro widths.rhs fine diff --git a/packages/font-glyphs/src/letter/latin/upper-b.ptl b/packages/font-glyphs/src/letter/latin/upper-b.ptl index c88ae8fc9..ab58caf27 100644 --- a/packages/font-glyphs/src/letter/latin/upper-b.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-b.ptl @@ -21,7 +21,7 @@ glyph-block Letter-Latin-Upper-B : begin local barleft SB local mockBowlDepth : BowlXDepth top (bowl - stroke) barleft RightSB stroke local curvleft : RightSB - SB * 0.5 - mockBowlDepth + topArcInnerShift - local curvleftTop : Math.min curvleft (RightSB - SB * 0.5 - OX - stroke * 1.375 + topArcInnerShift) + local curvleftTop : Math.min curvleft : RightSB - SB * 0.5 - OX - stroke * 1.375 + topArcInnerShift local xTopArcRight : [mix SB RightSB BArcMix] - OX * 2 + topArcShift local fine : stroke * CThin @@ -78,7 +78,7 @@ glyph-block Letter-Latin-Upper-B : begin define [InterruptShape bp top sw st sb] : begin local bowl : top * bp + sw * (1 - bp) - local gap : Math.max ((RightSB - SB - [HSwToV : 2 * sw]) * 0.15) [AdviceStroke 10] + local gap : Math.max ((RightSB - SB - [HSwToV : 2 * sw]) * 0.15) : AdviceStroke 10 return : VBar.l (SB + [HSwToV sw]) (bowl - 1 * sw + O) (bowl + 0 * sw - O) gap define [StdShape top sw st sb] : BShape top (stroke -- sw) (serifTop -- st) (serifBot -- sb) @@ -88,16 +88,16 @@ glyph-block Letter-Latin-Upper-B : begin define [AsymmetricShape top sw st sb] : BShape top stroke -- [fallback sw : AdviceStroke2 2 3 top] barPos -- AsymmetricBBarPos - topArcShift -- -(RightSB - SB) * 0.05 - topArcInnerShift -- -(RightSB - SB) * 0.1 + topArcShift -- ((-0.05) * (RightSB - SB)) + topArcInnerShift -- ((-0.1) * (RightSB - SB)) serifTop -- st serifBot -- sb define [AsymmetricShapeInterrupted top sw st sb] : difference [AsymmetricShape top sw st sb] [InterruptShape 0.6 top sw st sb] define [AsymmetricMask top sw] : BShapeMask top stroke -- [fallback sw : AdviceStroke2 2 3 top] barPos -- AsymmetricBBarPos - topArcShift -- -(RightSB - SB) * 0.05 - topArcInnerShift -- -(RightSB - SB) * 0.1 + topArcShift -- ((-0.05) * (RightSB - SB)) + topArcInnerShift -- ((-0.1) * (RightSB - SB)) define [BOverlayStroke top bp] : begin local stroke : AdviceStroke2 2 3 top @@ -111,7 +111,7 @@ glyph-block Letter-Latin-Upper-B : begin define [BahtBar sw] : VBar.m [mix SB RightSB 0.48] (CAP - Descender / 2) (Descender / 2) sw define [BitcoinBar sw] : begin local xMid : mix SB RightSB 0.48 - local gap : Math.max [AdviceStroke 4] ((RightSB - SB) / 6) + local gap : Math.max ((RightSB - SB) / 6) : AdviceStroke 4 return : union VBar.m (xMid - (gap + [HSwToV sw]) / 2) (CAP - Descender / 2) (Descender / 2) sw VBar.m (xMid + (gap + [HSwToV sw]) / 2) (CAP - Descender / 2) (Descender / 2) sw diff --git a/packages/font-glyphs/src/letter/latin/upper-e.ptl b/packages/font-glyphs/src/letter/latin/upper-e.ptl index 4bb29da85..1a0edd9b7 100644 --- a/packages/font-glyphs/src/letter/latin/upper-e.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-e.ptl @@ -32,7 +32,7 @@ glyph-block Letter-Latin-Upper-E : begin include : VSerif.dr RightSB top jutTop include : VSerif.ur RightSB 0 jutBot if serifM : begin - local fine : stroke * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * stroke / Stroke include : VBar.r xMidRight (yBar - jutMid) (yBar + jutMid) fine glyph-block-export RevEShape @@ -52,7 +52,7 @@ glyph-block Letter-Latin-Upper-E : begin include : VSerif.dl SB top jutTop include : VSerif.ul SB 0 jutBot if serifM : begin - local fine : stroke * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * stroke / Stroke include : VBar.l xMidLeft (yBar - 0.5 * jutBot) (yBar + 0.5 * jutBot) fine define EConfig : object diff --git a/packages/font-glyphs/src/letter/latin/upper-f.ptl b/packages/font-glyphs/src/letter/latin/upper-f.ptl index 809a0e2d0..6a71599fd 100644 --- a/packages/font-glyphs/src/letter/latin/upper-f.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-f.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Latin-Upper-F : begin glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook glyph-block-export xMidBarShrink - define [xMidBarShrink serifV] : [Math.max HalfStroke ((RightSB - SB) * 0.15)] + [if serifV (Stroke * 0.25) 0] + define [xMidBarShrink serifV] : [Math.max HalfStroke ((RightSB - SB) * 0.15)] + [if serifV QuarterStroke 0] define [yMidBarImpl y] : fallback y DesignParameters.upperEBarPos @@ -47,7 +47,7 @@ glyph-block Letter-Latin-Upper-F : begin include : tagged 'serifBottom' : HSerif.rb (xFBarLeft + [HSwToV HalfStroke]) 0 MidJutSide if serifV : include : VSerif.dr RightSB top jutTop if serifM : begin - local fine : stroke * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * stroke / Stroke include : VBar.r xMidRight (yBar - jutMid) (yBar + jutMid) fine define FConfig : object diff --git a/packages/font-glyphs/src/letter/latin/upper-g.ptl b/packages/font-glyphs/src/letter/latin/upper-g.ptl index fb1b26d88..ee579e13b 100644 --- a/packages/font-glyphs/src/letter/latin/upper-g.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-g.ptl @@ -28,7 +28,7 @@ glyph-block Letter-Latin-Upper-G : begin define SLAB-HOOK-TOP 10 define [GShape toothShape slabShape crossBarShape top ada adb _yBarOverride] : glyph-proc - local yBar : fallback _yBarOverride (top * 0.52 + Stroke * 0.25) + local yBar : fallback _yBarOverride (top * 0.52 + QuarterStroke) local fine ShoulderFine local knots : match slabShape diff --git a/packages/font-glyphs/src/letter/latin/upper-l.ptl b/packages/font-glyphs/src/letter/latin/upper-l.ptl index 08df44d72..4631ef267 100644 --- a/packages/font-glyphs/src/letter/latin/upper-l.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-l.ptl @@ -39,7 +39,7 @@ glyph-block Letter-Latin-Upper-L : begin include : LeaningAnchor.Above.VBar.l [LBarLeftX df] include : LShape df CAP serifGrade Stroke set-base-anchor 'cvDecompose' - [mix df.leftSB df.rightSB 0.65] + [HSwToV : 0.25 * Stroke] + [mix df.leftSB df.rightSB 0.65] + [HSwToV QuarterStroke] mix Stroke CAP 0.5 create-glyph "smcpL.\(suffix)" : glyph-proc @@ -117,9 +117,9 @@ glyph-block Letter-Latin-Upper-L : begin LetterBarOverlay.l.in [LBarLeftX : DivFrame 1] 0 CAP (py -- 0.4) create-glyph 'LBeltOverlay' - BeltOverlay CAP ([LBarLeftX : DivFrame 1] + [HSwToV : 0.5 * Stroke]) + BeltOverlay CAP ([LBarLeftX : DivFrame 1] + [HSwToV HalfStroke]) create-glyph 'smcpLBeltOverlay' - BeltOverlay XH ([LBarLeftX : DivFrame 1] + [HSwToV : 0.5 * Stroke]) + BeltOverlay XH ([LBarLeftX : DivFrame 1] + [HSwToV HalfStroke]) derive-composites 'LBar' 0x23D 'L' 'LBarOverlay' derive-composites 'LDoubleBar' 0x2C60 'L' 'LDoubleBarOverlay' diff --git a/packages/font-glyphs/src/letter/latin/upper-r.ptl b/packages/font-glyphs/src/letter/latin/upper-r.ptl index dbcbec5f1..26e5a6096 100644 --- a/packages/font-glyphs/src/letter/latin/upper-r.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-r.ptl @@ -20,7 +20,7 @@ glyph-block Letter-Latin-Upper-R : begin define LEG-SHAPE-STANDING 2 define [RLegTerminalX legShape right sw] : right - [if legShape (OX * 2) 0] - define [RSlabExtraShift slab sw] : if slab (-Jut / 2 + [HSwToV : 0.5 * sw]) 0 + define [RSlabExtraShift slab sw] : if slab ((-Jut) / 2 + [HSwToV : 0.5 * sw]) 0 define [RLegDiagCor top bottom left right extraShift sw] : DiagCor (top - bottom) (right - left - extraShift) 0 sw define [RStandingLegFine sw] : sw * CThinB @@ -130,7 +130,7 @@ glyph-block Letter-Latin-Upper-R : begin if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0])] [glyph-proc] include : difference RLegShapes.(legShape) [RLegTop top sw bp] legBottom df.middle right top legSlab sw 0 - if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] + if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0)] [glyph-proc] define [RRotundaShape] : with-params [legShape top [df [DivFrame 1]] [mul 1] [pmRotunda 0] [endX df.middle] [hook Hook] [pBar 1] [slab null] [legSlab false] [sw Stroke]] : glyph-proc local bp : pBar * [RBarPos top false] @@ -147,7 +147,7 @@ glyph-block Letter-Latin-Upper-R : begin local left : df.leftSB + O + [if slab (Jut / 8) 0] include : difference RevPShape top (df -- df) (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) (sw -- sw) - if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0]) ] [glyph-proc] + if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0])] [glyph-proc] include : difference RevRLegShapes.(legShape) [RLegTop top sw bp] 0 left df.middle top legSlab sw 0 if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] @@ -191,7 +191,7 @@ glyph-block Letter-Latin-Upper-R : begin if (!fOpen) : create-glyph "RBar.\(suffix)" : glyph-proc include [refer-glyph "R.\(suffix)"] AS_BASE ALSO_METRICS - include : HBar.m [mix 0 SB 0.3] (SB - O) ((CAP - Stroke) * [RBarPos CAP SLAB] + Stroke * 0.25) + include : HBar.m [mix 0 SB 0.3] (SB - O) ((CAP - Stroke) * [RBarPos CAP SLAB] + QuarterStroke) if (!fSlabBot) : create-glyph "RRTail.\(suffix)" : glyph-proc include [refer-glyph "R.\(suffix)"] AS_BASE ALSO_METRICS diff --git a/packages/font-glyphs/src/letter/latin/upper-y.ptl b/packages/font-glyphs/src/letter/latin/upper-y.ptl index 1d63758af..076fba22a 100644 --- a/packages/font-glyphs/src/letter/latin/upper-y.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-y.ptl @@ -55,14 +55,14 @@ glyph-block Letter-Latin-Upper-Y : begin straight.right.start (SB - TailX / 3) (top - Stroke - O) g4 (SB + TailX / 3) (top - TailY) [widths.lhs : AdviceStroke 2.75] quadControls 0.55 0.7 32 unimportant - g4 (Middle - [HSwToV : 0.5 * Stroke]) cross [widths.lhs : AdviceStroke 3.5] + g4 (Middle - [HSwToV HalfStroke]) cross [widths.lhs : AdviceStroke 3.5] define [YHookRightHookedStroke top bot cross] : dispiro widths.rhs straight.left.start (RightSB + TailX / 3) (top - Stroke - O) g4 (RightSB - TailX / 3) (top - TailY) [widths.rhs : AdviceStroke 2.75] quadControls 0.55 0.7 32 unimportant - g4 (Middle + [HSwToV : 0.5 * Stroke]) cross [widths.rhs : AdviceStroke 3.5] + g4 (Middle + [HSwToV HalfStroke]) cross [widths.rhs : AdviceStroke 3.5] define [YHookTopShape] : with-params [bodyType slabType top bot [cross : YCrossPos top bot]] : glyph-proc include : YShape bodyType slabType top bot cross diff --git a/packages/font-glyphs/src/letter/latin/z.ptl b/packages/font-glyphs/src/letter/latin/z.ptl index c3c6652ff..3ff576a29 100644 --- a/packages/font-glyphs/src/letter/latin/z.ptl +++ b/packages/font-glyphs/src/letter/latin/z.ptl @@ -70,9 +70,9 @@ glyph-block Letter-Latin-Z : begin define hookTerminalWidth : AdviceStroke 3.5 define xDiagWidth : 1 * Stroke define yFootHeight : [Math.max (0.15 * top) (Stroke * 0.625)] + 0.7 * Stroke - define kFoot : 1 + 0.5 * Stroke / yFootHeight - define yHookDepth : Hook + Stroke * 0.25 - define yHookStraightDepth : Math.min (yHookDepth - Stroke * 1.1) (yHookDepth / 3 - Stroke / 4) + define kFoot : 1 + HalfStroke / yFootHeight + define yHookDepth : Hook + QuarterStroke + define yHookStraightDepth : Math.min (yHookDepth - Stroke * 1.1) (yHookDepth / 3 - QuarterStroke) define xHookDepth : Math.max (0.25 * (RightSB - SB)) (hookTerminalWidth * 1.5) define xMockTailDepth : Math.max (0.375 * (RightSB - SB)) (hookTerminalWidth * 1.375) define kTop 0.625 @@ -163,7 +163,7 @@ glyph-block Letter-Latin-Z : begin define [ZemlyaBottomStroke] : begin local fine : AdviceStroke 4 - local hx : [Math.max (0.5 * HookX) [HSwToV : 1.25 * fine]] + [HSwToV : 0.125 * fine] + local hx : [Math.max (0.5 * HookX) : HSwToV : 1.25 * fine] + [HSwToV : 0.125 * fine] return : dispiro widths.lhs flat SB 0 [heading Rightward] @@ -179,7 +179,7 @@ glyph-block Letter-Latin-Z : begin define [ZemlyaBottomStrokeCursive] : begin local fine : AdviceStroke 4 - local hx : [Math.max (0.5 * HookX) [HSwToV : 1.25 * fine]] + [HSwToV : 0.125 * fine] + local hx : [Math.max (0.5 * HookX) : HSwToV : 1.25 * fine] + [HSwToV : 0.125 * fine] return : dispiro flat (RightSB - [HSwToV fine]) HalfStroke [widths.lhs.heading fine Downward] curl (RightSB - [HSwToV fine]) [mix (Descender + fine) 0 0.5] [widths.lhs.heading fine Downward] diff --git a/packages/font-glyphs/src/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl index 4d2ce9e49..6e42099b0 100644 --- a/packages/font-glyphs/src/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -923,7 +923,7 @@ glyph-block Letter-Shared-Shapes : begin # Diacritical descender of cyrillics glyph-block-export CyrDescender define CyrDescender : Descenders : function [x y xLink yAttach yOverflow sw] : glyph-proc - local extension : 0.25 * Stroke - LongVJut + local extension : QuarterStroke - LongVJut include : ExtendBelowBaseAnchors (y + extension) include : union xLinkStroke xLink x yAttach sw @@ -931,7 +931,7 @@ glyph-block Letter-Shared-Shapes : begin glyph-block-export CyrTailDescender define CyrTailDescender : Descenders : function [x y xLink yAttach yOverflow sw] : glyph-proc - local extension : 0.25 * Stroke - LongVJut + local extension : QuarterStroke - LongVJut include : ExtendBelowBaseAnchors (y + extension) include : union xLinkStroke xLink x yAttach sw diff --git a/packages/font-glyphs/src/marks/above.ptl b/packages/font-glyphs/src/marks/above.ptl index 3c9560ae7..8d951b746 100644 --- a/packages/font-glyphs/src/marks/above.ptl +++ b/packages/font-glyphs/src/marks/above.ptl @@ -197,11 +197,11 @@ glyph-block Mark-Above : begin create-glyph 'asciiCaret.high' : glyph-proc include : CaretShape xMiddle -- Middle - width -- 3 * markExtend * asciiMarkZoomX - 0.25 * Stroke - top -- [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] + 0.5 * Stroke + width -- (3 * markExtend * asciiMarkZoomX - QuarterStroke) + top -- ([mix aboveMarkMid aboveMarkTop asciiMarkZoomY] + HalfStroke) bottom -- [mix aboveMarkMid aboveMarkBot asciiMarkZoomY] - swEnd -- Stroke * 1.05 - swMid -- [StrokeWidthBlend 1.25 1] * Stroke + swEnd -- (Stroke * 1.05) + swMid -- ([StrokeWidthBlend 1.25 1] * Stroke) create-glyph 'circumflexAbove' 0x302 : glyph-proc set-width 0 @@ -209,8 +209,8 @@ glyph-block Mark-Above : begin include : CaretShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 - bottom -- aboveMarkBot + markStress - markFine + top -- (aboveMarkTop + markFine * 0.7) + bottom -- (aboveMarkBot + markStress - markFine) swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw @@ -220,18 +220,18 @@ glyph-block Mark-Above : begin include : CaretRightShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 - bottom -- aboveMarkBot + markStress - markFine + top -- (aboveMarkTop + markFine * 0.7) + bottom -- (aboveMarkBot + markStress - markFine) swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw include : CaretTopBarShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 + top -- (aboveMarkTop + markFine * 0.7) pL -- (-1) pR -- 0 swMid -- CaretCaronMidSw - swBar -- 2 * markFine + swBar -- (2 * markFine) create-glyph 'upbarAbove' 0x1DC7 : glyph-proc set-width 0 @@ -239,18 +239,18 @@ glyph-block Mark-Above : begin include : CaretLeftShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 - bottom -- aboveMarkBot + markStress - markFine + top -- (aboveMarkTop + markFine * 0.7) + bottom -- (aboveMarkBot + markStress - markFine) swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw include : CaretTopBarShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 + top -- (aboveMarkTop + markFine * 0.7) pL -- 0 pR -- 1 swMid -- CaretCaronMidSw - swBar -- 2 * markFine + swBar -- (2 * markFine) define [CaronLeftShape] : with-params [top bottom xMiddle width swEnd swMid] : dispiro flat (xMiddle - 0.5 * width) top [widths.center swEnd] @@ -272,7 +272,7 @@ glyph-block Mark-Above : begin include : CaronShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop - markStress + 1.7 * markFine + top -- (aboveMarkTop - markStress + 1.7 * markFine) bottom -- aboveMarkBot swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw @@ -283,7 +283,7 @@ glyph-block Mark-Above : begin include : CaronRightShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop - markStress + 1.7 * markFine + top -- (aboveMarkTop - markStress + 1.7 * markFine) bottom -- aboveMarkBot swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw @@ -294,7 +294,7 @@ glyph-block Mark-Above : begin pL -- (-1) pR -- 0 swMid -- CaretCaronMidSw - swBar -- 2 * markFine + swBar -- (2 * markFine) create-glyph 'downbarAbove' 0x1DC5 : glyph-proc set-width 0 @@ -302,7 +302,7 @@ glyph-block Mark-Above : begin include : CaronLeftShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop - markStress + 1.7 * markFine + top -- (aboveMarkTop - markStress + 1.7 * markFine) bottom -- aboveMarkBot swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw @@ -313,7 +313,7 @@ glyph-block Mark-Above : begin pL -- 0 pR -- 1 swMid -- CaretCaronMidSw - swBar -- 2 * markFine + swBar -- (2 * markFine) create-glyph 'dblCircumflexAbove' 0x1AB0 : glyph-proc set-width 0 @@ -359,7 +359,7 @@ glyph-block Mark-Above : begin include : TildeShape ttop -- aboveMarkTop tbot -- aboveMarkBot + markFine / 2 - leftEnd -- (markMiddle - markExtend * 1.5) + leftEnd -- (markMiddle - markExtend * 1.5) rightEnd -- (markMiddle + markExtend * 1.5) hs -- markHalfStroke @@ -367,7 +367,7 @@ glyph-block Mark-Above : begin include : TildeShape ttop -- [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] tbot -- [mix aboveMarkMid (aboveMarkBot + markFine / 2) asciiMarkZoomY] - leftEnd -- SB + leftEnd -- SB rightEnd -- RightSB hs -- (OperatorStroke / 2) @@ -378,7 +378,7 @@ glyph-block Mark-Above : begin include : TildeShape ttop -- [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] tbot -- [mix aboveMarkMid (aboveMarkBot + markFine / 2) asciiMarkZoomY] - leftEnd -- SB + leftEnd -- SB rightEnd -- (emDashWidth - SB) hs -- (OperatorStroke / 2) @@ -397,9 +397,9 @@ glyph-block Mark-Above : begin include : OverlayTildeT TildeShape create-glyph 'overlayTildeOperatorAboveMask' : glyph-proc - define FarRight : Width * 4 - define FarLeft : -Width * 3 - define FarAbove : CAP * 4 + define FarRight : Width * 4 + define FarLeft : (-Width) * 3 + define FarAbove : CAP * 4 define { z1 z2 z3 z4 } : include : OverlayTildeT TildeKnots define arcs : list : list @@ -418,15 +418,15 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.wide - local m [mix aboveMarkBot aboveMarkTop 0.4] - local ttop [mix m aboveMarkTop 0.7] - local tbot [mix m (aboveMarkBot + markFine / 2) 0.7] + local m : mix aboveMarkBot aboveMarkTop 0.4 + local ttop : mix m aboveMarkTop 0.7 + local tbot : mix m (aboveMarkBot + markFine / 2) 0.7 local fine : [AdviceStroke 4.5] / 2 include : TildeShape ttop -- ttop tbot -- tbot - leftEnd -- (markMiddle - markExtend * 1.5) + leftEnd -- (markMiddle - markExtend * 1.5) rightEnd -- (markMiddle + markExtend * 1.5) hs -- fine @@ -449,13 +449,13 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.impl 'above' (1 / 4) 1 local m aboveMarkBot - local ttop [mix m aboveMarkTop 0.7] - local tbot [mix m (aboveMarkBot + markFine / 2) 0.7] + local ttop : mix m aboveMarkTop 0.7 + local tbot : mix m (aboveMarkBot + markFine / 2) 0.7 define [addTilde] : TildeShape ttop -- ttop tbot -- tbot - leftEnd -- (markMiddle - markExtend * 1.5) + leftEnd -- (markMiddle - markExtend * 1.5) rightEnd -- (markMiddle + markExtend * 1.5) hs -- ([AdviceStroke 4.5] / 2) @@ -464,7 +464,7 @@ glyph-block Mark-Above : begin include : ApparentTranslate 0 shift include : addTilde - include : ApparentTranslate 0 (-0.5 * shift) + include : ApparentTranslate 0 ((-0.5) * shift) create-glyph 'macronAbove' 0x304 : glyph-proc set-width 0 @@ -551,17 +551,17 @@ glyph-block Mark-Above : begin include : dispiro widths.lhs boxsw flat (0 - Width) aboveMarkBot - curl 0 aboveMarkBot + curl 0 aboveMarkBot include : dispiro widths.rhs boxsw flat (0 - Width) aboveMarkTop - curl 0 aboveMarkTop + curl 0 aboveMarkTop glyph-block-export BreveShape define [BreveShape] : with-params [top bottom xMiddle width hs] : glyph-proc - local leftEnd (xMiddle - width * 0.5) - local rightEnd (xMiddle + width * 0.5) + local leftEnd : xMiddle - width * 0.5 + local rightEnd : xMiddle + width * 0.5 include : dispiro g4.down.start leftEnd top [widths.heading hs hs Downward] arcvh @@ -571,8 +571,8 @@ glyph-block Mark-Above : begin glyph-block-export InvBreveShape define [InvBreveShape] : with-params [top bottom xMiddle width hs] : glyph-proc - local leftEnd (xMiddle - width * 0.5) - local rightEnd (xMiddle + width * 0.5) + local leftEnd : xMiddle - width * 0.5 + local rightEnd : xMiddle + width * 0.5 include : dispiro g4.up.start leftEnd bottom [widths.heading hs hs Upward] arcvh @@ -585,7 +585,7 @@ glyph-block Mark-Above : begin include : StdAnchors.wide include : BreveShape xMiddle -- markMiddle - width -- 2.4 * markExtend + width -- (2.4 * markExtend) top -- aboveMarkTop bottom -- aboveMarkBot hs -- markHalfStroke @@ -595,7 +595,7 @@ glyph-block Mark-Above : begin include : StdAnchors.wide include : InvBreveShape xMiddle -- markMiddle - width -- 2.4 * markExtend + width -- (2.4 * markExtend) top -- aboveMarkTop bottom -- aboveMarkBot hs -- markHalfStroke @@ -604,10 +604,10 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.medium - local fine : Math.min markFine ((aboveMarkTop - aboveMarkBot) * 0.2) + local fine : Math.min markFine : (aboveMarkTop - aboveMarkBot) * 0.2 - local hookBot (aboveMarkBot - fine / 2) - local hookTop ([mix aboveMarkBot aboveMarkTop 0.9] + fine / 2) + local hookBot : aboveMarkBot - fine / 2 + local hookTop : [mix aboveMarkBot aboveMarkTop 0.9] + fine / 2 include : dispiro widths.lhs (fine * 2) flat (markMiddle - [HSwToV fine]) hookBot [heading Rightward] @@ -671,7 +671,7 @@ glyph-block Mark-Above : begin local radius commaAboveRadius include : Ring (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius) include : dispiro - widths.rhs : Math.min radius (markFine * [linreg 16 2 90 1.75 markStroke]) + widths.rhs [Math.min radius : markFine * [linreg 16 2 90 1.75 markStroke]] straight.down.start (markMiddle + radius) (aboveMarkTop - radius + commaOvershoot) quadControls 0 0.6 g4 [mix markMiddle (markMiddle - radius) 0.2] (aboveMarkBot - radius - commaOvershoot2) @@ -684,7 +684,7 @@ glyph-block Mark-Above : begin local radius : commaAboveRadius * DesignParameters.squareDotScalar include : Rect aboveMarkTop (aboveMarkTop - radius * 2) (markMiddle - radius) (markMiddle + radius) include : dispiro - widths.rhs : Math.min radius (markFine * [linreg 16 2 90 1.75 markStroke]) + widths.rhs [Math.min radius : markFine * [linreg 16 2 90 1.75 markStroke]] flat (markMiddle + radius) aboveMarkTop [heading Downward] curl (markMiddle + radius) (aboveMarkTop - 2 * radius) [heading Downward] quadControls 0 0.6 @@ -712,7 +712,7 @@ glyph-block Mark-Above : begin local radius commaAboveRadius include : Ring (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius) include : dispiro - widths.lhs : Math.min radius (markFine * [linreg 16 2 90 1.75 markStroke]) + widths.lhs [Math.min radius : markFine * [linreg 16 2 90 1.75 markStroke]] straight.down.start (markMiddle - radius) (aboveMarkTop - radius + commaOvershoot) quadControls 0 0.6 g4 [mix markMiddle (markMiddle + radius) 0.2] (aboveMarkBot - radius - commaOvershoot2) @@ -725,7 +725,7 @@ glyph-block Mark-Above : begin local radius : commaAboveRadius * DesignParameters.squareDotScalar include : Rect (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius) include : dispiro - widths.lhs : Math.min radius (markFine * [linreg 16 2 90 1.75 markStroke]) + widths.lhs [Math.min radius : markFine * [linreg 16 2 90 1.75 markStroke]] flat (markMiddle - radius) aboveMarkTop [heading Downward] curl (markMiddle - radius) (aboveMarkTop - 2 * radius) [heading Downward] quadControls 0 0.6 @@ -883,21 +883,21 @@ glyph-block Mark-Above : begin foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do create-glyph "dialytikaTonosAbove.\(suffix)" : glyph-proc set-width 0 - include : with-transform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)" + include : with-transform [ApparentTranslate 0 ((-AccentHeight) / 8)] : refer-glyph "dialytikaAbove.\(suffix)" include : with-transform [ApparentTranslate 0 0] : refer-glyph 'tonosAbove' include : StdAnchors.wide create-glyph "dialytikaVariaAbove.\(suffix)" : glyph-proc set-width 0 local shift : 0.125 * (markExtend * 0.875 - markStress) - include : with-transform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)" + include : with-transform [ApparentTranslate 0 ((-AccentHeight) / 8)] : refer-glyph "dialytikaAbove.\(suffix)" include : with-transform [ApparentTranslate shift 0] : refer-glyph 'variaAbove' include : StdAnchors.wide create-glyph "dialytikaOxiaAbove.\(suffix)" : glyph-proc set-width 0 local shift : 0.125 * (markExtend * 0.875 - markStress) - include : with-transform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)" + include : with-transform [ApparentTranslate 0 ((-AccentHeight) / 8)] : refer-glyph "dialytikaAbove.\(suffix)" include : with-transform [ApparentTranslate (-shift) 0] : refer-glyph 'oxiaAbove' include : StdAnchors.wide @@ -913,12 +913,12 @@ glyph-block Mark-Above : begin local bot aboveMarkBot local exp : Math.sqrt : 1 + (((top - bot) / markExtend) ** 2) include : dispiro - widths.center : markFine * 2 + widths.center (markFine * 2) flat (markMiddle + markExtend) top curl (markMiddle - markExtend) [mix top bot 0.5] [widths.center.heading (markFine * exp) Leftward] include : dispiro - widths.center : markFine * 2 + widths.center (markFine * 2) flat (markMiddle + markExtend) bot curl (markMiddle - markExtend) [mix top bot 0.5] [widths.center.heading (markFine * exp) Leftward] @@ -931,10 +931,10 @@ glyph-block Mark-Above : begin include : dispiro g4.left.start markMiddle aboveMarkTop [widths.center.heading (radiusOut - radiusIn) Leftward] archv - g4.down.mid (markMiddle - (aboveMarkTop - aboveMarkBot) / 2) [mix aboveMarkTop aboveMarkBot 0.5] [heading Downward] + g4.down.mid (markMiddle - (aboveMarkTop - aboveMarkBot) / 2) [mix aboveMarkTop aboveMarkBot 0.5] [heading Downward] arcvh g4.right.end markMiddle aboveMarkBot [heading Rightward] - include : Translate ((aboveMarkTop - aboveMarkBot) / 4) 0 + include : Translate (0.25 * (aboveMarkTop - aboveMarkBot)) 0 create-glyph 'rightHalfCircleAbove' 0x357 : glyph-proc set-width 0 @@ -945,8 +945,8 @@ glyph-block Mark-Above : begin archv g4.down.mid (markMiddle + (aboveMarkTop - aboveMarkBot) / 2) [mix aboveMarkTop aboveMarkBot 0.5] [heading Downward] arcvh - g4.left.end markMiddle aboveMarkBot [heading Leftward] - include : Translate (-(aboveMarkTop - aboveMarkBot) / 4) 0 + g4.left.end markMiddle aboveMarkBot [heading Leftward] + include : Translate ((-0.25) * (aboveMarkTop - aboveMarkBot)) 0 create-glyph 'zigzagAbove' 0x35B : glyph-proc set-width 0 @@ -957,7 +957,7 @@ glyph-block Mark-Above : begin local fr : new Box aboveMarkTop aboveMarkBot (markMiddle - ext) (markMiddle + ext) include : HBar.m fr.left fr.right fr.yMid (markFine * 2) include : intersection [MaskBelow fr.top] [MaskAbove (fr.yMid - markFine)] - ExtLineLhs 4 (markFine * 2) (fr.left + coSlope * (fr.top - fr.yMid - markFine)) fr.top (fr.left - 2 * markFine * coSlope) (fr.yMid - markFine) + ExtLineLhs 4 (markFine * 2) (fr.left + coSlope * (fr.top - fr.yMid - markFine)) fr.top (fr.left - 2 * markFine * coSlope) (fr.yMid - markFine) include : intersection [MaskAbove fr.bot] [MaskBelow (fr.yMid + markFine)] ExtLineLhs 4 (markFine * 2) (fr.right - coSlope * (fr.yMid - fr.bot - markFine)) fr.bot (fr.right + 2 * markFine * coSlope) (fr.yMid + markFine) @@ -969,12 +969,12 @@ glyph-block Mark-Above : begin local bot aboveMarkBot local exp : Math.sqrt : 1 + ((3 * markExtend / (top - bot)) ** 2) include : dispiro - widths.center : markFine * 2 + widths.center (markFine * 2) flat (markMiddle - markExtend) bot curl markMiddle top [widths.center.heading (markFine * exp) Upward] include : dispiro - widths.center : markFine * 2 + widths.center (markFine * 2) flat (markMiddle + markExtend) bot curl markMiddle top [widths.center.heading (markFine * exp) Upward] @@ -984,15 +984,15 @@ glyph-block Mark-Above : begin local fine : [AdviceStroke 6] / 2 local top aboveMarkTop local bot aboveMarkMid - local left : markMiddle - markExtend * 0.75 + local left : markMiddle - markExtend * 0.75 local right : markMiddle + markExtend * 0.75 local exp : Math.sqrt : 1 + (2 * (top - bot)) / (right - left) * (2 * (top - bot)) / (right - left) include : dispiro - widths.center : fine * 2 + widths.center (fine * 2) flat left bot curl [mix left right 0.5] top [widths.heading (fine * exp) (fine * exp) Rightward] include : dispiro - widths.center : fine * 2 + widths.center (fine * 2) flat right bot curl [mix left right 0.5] top [widths.heading (fine * exp) (fine * exp) Leftward] @@ -1008,16 +1008,16 @@ glyph-block Mark-Above : begin local fine : [AdviceStroke 5.75] / 2 local top aboveMarkTop local bot aboveMarkBot - local left : markMiddle - markExtend * 1.5 + local left : markMiddle - markExtend * 1.5 local right : markMiddle - markExtend * 0.5 local exp : Math.sqrt : 1 + (top - bot) / (2 * (right - left)) * (top - bot) / (2 * (right - left)) include : dispiro - widths.center : fine * 2 + widths.center (fine * 2) flat right top curl left [mix top bot 0.5] [widths.heading (fine * exp) (fine * exp) Downward] include : dispiro - widths.center : fine * 2 + widths.center (fine * 2) flat right bot curl left [mix top bot 0.5] [widths.heading (fine * exp) (fine * exp) Upward] @@ -1112,7 +1112,7 @@ glyph-block Mark-Above : begin include : StdAnchors.extraWide include : BreveShape xMiddle -- markMiddle - width -- 3.0 * markExtend + width -- (3 * markExtend) top -- aboveMarkTop bottom -- aboveMarkBot hs -- markHalfStroke @@ -1122,7 +1122,7 @@ glyph-block Mark-Above : begin include : StdAnchors.extraWide include : InvBreveShape xMiddle -- markMiddle - width -- 3.0 * markExtend + width -- (3 * markExtend) top -- aboveMarkTop bottom -- aboveMarkBot hs -- markHalfStroke @@ -1132,7 +1132,7 @@ glyph-block Mark-Above : begin include : StdAnchors.mediumWide local ext : 0.625 * markExtend + markFine - local coSlope 0.2 + local coSlope 0.2 local fr : new Box aboveMarkTop aboveMarkBot (markMiddle - ext) (markMiddle + ext) include : HBar.m fr.left (fr.right - coSlope * (fr.top - fr.yMid)) fr.yMid (markFine * 2) include : intersection [MaskBelow fr.top] [MaskAbove (fr.yMid - markFine)] @@ -1169,7 +1169,7 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.wide - local sw : [AdviceStroke 3.5] / Stroke * markStroke + local sw : markStroke * ([AdviceStroke 3.5] / Stroke) local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 include : dispiro @@ -1195,7 +1195,7 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.wide - local sw : [AdviceStroke 3.5] / Stroke * markStroke + local sw : markStroke * ([AdviceStroke 3.5] / Stroke) local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 include : dispiro @@ -1204,16 +1204,16 @@ glyph-block Mark-Above : begin g4.right.mid [mix markMiddle (markMiddle - extend) 0.5] (aboveMarkBot + 0.5 * sw) [heading Rightward] archv g4.up.end markMiddle aboveMarkTop [heading Upward] - include : HBar.t markMiddle (markMiddle + extend + 0.5 * markStress) aboveMarkTop sw + include : HBar.t markMiddle (markMiddle + extend + 0.5 * markStress) aboveMarkTop sw create-glyph 'macronBreveAbove' 0x1DCC : glyph-proc set-width 0 include : StdAnchors.wide - local sw : [AdviceStroke 3.5] / Stroke * markStroke + local sw : markStroke * ([AdviceStroke 3.5] / Stroke) local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 - include : HBar.t (markMiddle - extend - 0.5 * markStress) markMiddle aboveMarkTop sw + include : HBar.t (markMiddle - extend - 0.5 * markStress) markMiddle aboveMarkTop sw include : dispiro g4.down.start markMiddle aboveMarkTop [widths.center.heading sw Downward] arcvh @@ -1275,7 +1275,7 @@ glyph-block Mark-Above : begin local wide : markExtend * 0.3 local d : markExtend * 0.7 - local fine : 0.5 * [Math.min ([AdviceStroke 3.5] / Stroke * markStroke) (markExtend / 3)] + local fine : 0.5 * [Math.min (markStroke * ([AdviceStroke 3.5] / Stroke)) (markExtend / 3)] local stress : 1.2 * fine include : dispiro @@ -1321,7 +1321,7 @@ glyph-block Mark-Above : begin include : dispiro widths.lhs markFine g4 (left + braceDepth) (aboveMarkTop + markFine) - g4 (left + OX) aboveMarkMid + g4 (left + OX) aboveMarkMid g4 (left + braceDepth) (aboveMarkBot - markFine) create-glyph 'rightParenAbove' 0x1AC2 : glyph-proc @@ -1332,7 +1332,7 @@ glyph-block Mark-Above : begin include : dispiro widths.rhs markFine g4 (right - braceDepth) (aboveMarkTop + markFine) - g4 (right - OX) aboveMarkMid + g4 (right - OX) aboveMarkMid g4 (right - braceDepth) (aboveMarkBot - markFine) create-glyph 'parenAbove' 0x1ABB : glyph-proc @@ -1346,16 +1346,16 @@ glyph-block Mark-Above : begin set-mark-anchor 'aboveBraceL' markMiddle aboveMarkMid (markMiddle - 1.5 * markExtend) aboveMarkMid local braceDepth : markExtend * 0.25 local left : markMiddle - 1.5 * markExtend - local gap : [HSwToV markFine] + [Math.max markFine (markExtend * 0.5)] + local gap : [HSwToV markFine] + [Math.max markFine : markExtend * 0.5] include : dispiro widths.lhs markFine g4 (left + braceDepth) (aboveMarkTop + markFine) - g4 (left + OX) aboveMarkMid + g4 (left + OX) aboveMarkMid g4 (left + braceDepth) (aboveMarkBot - markFine) include : dispiro widths.lhs markFine g4 (left - gap + braceDepth) (aboveMarkTop + markFine) - g4 (left - gap + OX) aboveMarkMid + g4 (left - gap + OX) aboveMarkMid g4 (left - gap + braceDepth) (aboveMarkBot - markFine) create-glyph 'rightDoubleParenAbove' : glyph-proc @@ -1363,16 +1363,16 @@ glyph-block Mark-Above : begin set-mark-anchor 'aboveBraceR' markMiddle aboveMarkMid (markMiddle + 1.5 * markExtend) aboveMarkMid local braceDepth : markExtend * 0.25 local right : markMiddle + 1.5 * markExtend - local gap : [HSwToV markFine] + [Math.max markFine (markExtend * 0.5)] + local gap : [HSwToV markFine] + [Math.max markFine : markExtend * 0.5] include : dispiro widths.rhs markFine g4 (right - braceDepth) (aboveMarkTop + markFine) - g4 (right - OX) aboveMarkMid + g4 (right - OX) aboveMarkMid g4 (right - braceDepth) (aboveMarkBot - markFine) include : dispiro widths.rhs markFine g4 (right + gap - braceDepth) (aboveMarkTop + markFine) - g4 (right + gap - OX) aboveMarkMid + g4 (right + gap - OX) aboveMarkMid g4 (right + gap - braceDepth) (aboveMarkBot - markFine) create-glyph 'doubleParenAbove' 0x1ABC : glyph-proc diff --git a/packages/font-glyphs/src/marks/horn-and-angle.ptl b/packages/font-glyphs/src/marks/horn-and-angle.ptl index 59a1671d8..0eff52ae2 100644 --- a/packages/font-glyphs/src/marks/horn-and-angle.ptl +++ b/packages/font-glyphs/src/marks/horn-and-angle.ptl @@ -18,8 +18,8 @@ glyph-block Mark-Horn-And-Angle : begin # horn and angle marks define [HornDim attX attY overshootX overshootY yrP] : begin local radius commaAboveRadius - local hornFine : Math.min (radius * 0.75) (markFine * 1.75) - local hornStroke : Math.min (radius * 1) (markFine * 1.75) + local hornFine : Math.min (radius * 0.75) (markFine * 1.75) + local hornStroke : Math.min (radius * 1) (markFine * 1.75) local startX : attX + 2 * radius local startY : attY + yrP * radius + (aboveMarkTop - aboveMarkBot) / 2 return : object radius hornFine hornStroke startX startY @@ -42,13 +42,13 @@ glyph-block Mark-Horn-And-Angle : begin include : union RingAt (startX - radius) startY (radius - hornFine / 8) dispiro - g4 (startX + OX) (startY) [widths.rhs (hornFine / 4)] + g4 (startX + OX) (startY) [widths.rhs : hornFine / 4] arcvh g4 (startX - radius) (startY - radius) archv g4 (startX - 2 * radius) (startY) arcvh - g4 (startX - radius) (startY + radius) [widths.rhs (hornFine / 2)] + g4 (startX - radius) (startY + radius) [widths.rhs : hornFine / 2] archv g4 startX startY [widths.rhs hornFine] quadControls 0 0.75 16 : object : blend : lambda [t] @@ -69,52 +69,52 @@ glyph-block Mark-Horn-And-Angle : begin create-glyph 'horn.round' : glyph-proc set-width 0 - include : HornShape 0 XH 0 0 0.5 + include : HornShape 0 XH 0 0 0.5 include : HornMarkAnchor 0 XH 0 0 0.5 create-glyph 'horn.square' : glyph-proc set-width 0 include : SquareHornShape 0 XH 0 0 0.5 - include : HornMarkAnchor 0 XH 0 0 0.5 + include : HornMarkAnchor 0 XH 0 0 0.5 select-variant 'horn' 0x31B (follow -- 'diacriticDot') create-glyph 'longHorn.round' : glyph-proc set-width 0 - include : HornShape 0 XH (Width / 2) (ArchDepthB) 0.5 + include : HornShape 0 XH (Width / 2) (ArchDepthB) 0.5 include : HornMarkAnchor 0 XH (Width / 2) (ArchDepthB) 0.5 create-glyph 'longHorn.square' : glyph-proc set-width 0 include : SquareHornShape 0 XH (Width / 2) (ArchDepthB) 0.5 - include : HornMarkAnchor 0 XH (Width / 2) (ArchDepthB) 0.5 + include : HornMarkAnchor 0 XH (Width / 2) (ArchDepthB) 0.5 select-variant 'longHorn' null (follow -- 'diacriticDot') create-glyph 'leftangleTR' 0x31A : glyph-proc set-width 0 include : VBar.l 0 aboveMarkBot aboveMarkTop (markFine * 2) - include : HBar.t (-markExtend * 1.5) 0 aboveMarkTop (markFine * 2) + include : HBar.t ((-1.5) * markExtend) 0 aboveMarkTop (markFine * 2) set-mark-anchor 'topRight' 0 XH 0 aboveMarkTop - set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceL' ((-0.75) * markExtend) aboveMarkMid set-base-anchor 'aboveBraceR' 0 aboveMarkMid create-glyph 'ltailBR' 0x321 : glyph-proc set-width 0 set-mark-anchor 'bottomRight' 0 0 0 belowMarkBot - set-base-anchor 'belowBraceL' (-0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) (-0.5 * Hook - HalfStroke) - set-base-anchor 'belowBraceR' (-0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) (-0.5 * Hook - HalfStroke) + set-base-anchor 'belowBraceL' ((-0.5) * HookX - 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) ((-0.5) * Hook - HalfStroke) + set-base-anchor 'belowBraceR' ((-0.5) * HookX + 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) ((-0.5) * Hook - HalfStroke) include : dispiro widths.rhs flat 0 (-O) [heading Downward] curl 0 0 [heading Downward] - straight.left.end (-HookX - [HSwToV HalfStroke]) (-Hook - HalfStroke) + straight.left.end ((-HookX) - [HSwToV HalfStroke]) ((-Hook) - HalfStroke) create-glyph 'rtailBR' 0x322 : glyph-proc set-width 0 set-mark-anchor 'bottomRight' 0 0 0 belowMarkBot - set-base-anchor 'belowBraceL' (0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.75 * Stroke]) (-0.5 * Hook - HalfStroke) - set-base-anchor 'belowBraceR' (0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.5 * Stroke]) (-0.5 * Hook - HalfStroke) + set-base-anchor 'belowBraceL' (0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.75 * Stroke]) ((-0.5) * Hook - HalfStroke) + set-base-anchor 'belowBraceR' (0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.5 * Stroke]) ((-0.5) * Hook - HalfStroke) include : dispiro widths.rhs flat 0 (-O) [heading Downward] @@ -126,7 +126,7 @@ glyph-block Mark-Horn-And-Angle : begin set-width 0 local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5 local r : mix radius DotRadius 0.5 - include : DrawAt (-startX + r) startY (r * kdr) + include : DrawAt ((-startX) + r) startY (r * kdr) set-mark-anchor 'topLeft' 0 XH (-startX) startY set-base-anchor 'aboveBraceL' (startX - r) startY set-base-anchor 'aboveBraceR' (startX - r) startY @@ -142,7 +142,7 @@ glyph-block Mark-Horn-And-Angle : begin set-width 0 local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5 local r : mix radius DotRadius 0.5 - include : DrawAt (-startX + r) (XH - startY) (r * kdr) + include : DrawAt ((-startX) + r) (XH - startY) (r * kdr) set-mark-anchor 'bottomLeft' 0 0 (-startX) (XH - startY) set-base-anchor 'belowBraceL' (startX - r) startY set-base-anchor 'belowBraceR' (startX - r) startY @@ -156,8 +156,8 @@ glyph-block Mark-Horn-And-Angle : begin include : refer-glyph src include : ApparentTranslate (RightSB - Middle + DotRadius) 0 set-mark-anchor 'topRight' 0 XH 0 aboveMarkTop - set-base-anchor 'aboveBraceL' (-SB + DotRadius) aboveMarkMid - set-base-anchor 'aboveBraceR' (-SB + DotRadius) aboveMarkMid + set-base-anchor 'aboveBraceL' ((-SB) + DotRadius) aboveMarkMid + set-base-anchor 'aboveBraceR' ((-SB) + DotRadius) aboveMarkMid create-glyph 'cyrlKavykaTR' 0x1DF6 : glyph-proc set-width 0 @@ -168,8 +168,8 @@ glyph-block Mark-Horn-And-Angle : begin bottom -- aboveMarkBot hs -- markHalfStroke set-mark-anchor 'topRight' 0 XH 0 aboveMarkTop - set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid - set-base-anchor 'aboveBraceR' ( 0.75 * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceL' ((-0.75) * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceR' ((+0.75) * markExtend) aboveMarkMid create-glyph 'cyrlKavykaTL' 0x1DF7 : glyph-proc set-width 0 @@ -180,8 +180,8 @@ glyph-block Mark-Horn-And-Angle : begin bottom -- aboveMarkBot hs -- markHalfStroke set-mark-anchor 'topLeft' 0 XH 0 aboveMarkTop - set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid - set-base-anchor 'aboveBraceR' ( 0.75 * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceL' ((-0.75) * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceR' ((+0.75) * markExtend) aboveMarkMid create-glyph 'rightHalfCircleTR' : glyph-proc set-width 0 @@ -215,18 +215,18 @@ glyph-block Mark-Horn-And-Angle : begin dispiro g4 markMiddle 0 [widths.rhs.heading fine Leftward] alsoThru 0.5 (0.375 - 0.2 * markStroke / depth) [widths.rhs : mix fine swMid 0.25] - g4.down.mid (markMiddle - extL) (-0.75 * depth) [widths.rhs.heading swMid {.x HVContrast .y turnSlope}] + g4.down.mid (markMiddle - extL) ((-0.75) * depth) [widths.rhs.heading swMid {.x HVContrast .y turnSlope}] arcvh - g4 (markMiddle + [mix (-extL) extR (11/16)]) (-depth + O) [widths.rhs.heading markStroke Rightward] - g4 (markMiddle + extR) (-depth + 0.5 * O) [heading Rightward] + g4 (markMiddle + [mix (-extL) extR (11/16)]) ((-depth) + O) [widths.rhs.heading markStroke Rightward] + g4 (markMiddle + extR) ((-depth) + 0.5 * O) [heading Rightward] intersection MaskAbove 0 MaskRight markMiddle - set-mark-anchor 'trailing' markMiddle 0 (markMiddle + extR) (-depth - 0.5 * O - markStroke) - set-base-anchor 'belowBraceL' (markMiddle - extL - paren * markExtend - [HSwToV : 0.25 * swMid]) (-0.75 * depth) - set-base-anchor 'belowBraceR' (markMiddle - 0.75 * extL + paren * markExtend) (-0.75 * depth) + set-mark-anchor 'trailing' markMiddle 0 (markMiddle + extR) ((-depth) - 0.5 * O - markStroke) + set-base-anchor 'belowBraceL' (markMiddle - extL - paren * markExtend - [HSwToV : 0.25 * swMid]) ((-0.75) * depth) + set-base-anchor 'belowBraceR' (markMiddle - 0.75 * extL + paren * markExtend) ((-0.75) * depth) create-glyph "\(glyphName)/spacer" : glyph-proc set-width 0 - set-mark-anchor 'below' 0 0 0 (-depth - 0.5 * O - markStroke) + set-mark-anchor 'below' 0 0 0 ((-depth) - 0.5 * O - markStroke) diff --git a/packages/font-glyphs/src/meta/aesthetics.ptl b/packages/font-glyphs/src/meta/aesthetics.ptl index 74130cc36..5b4a4365a 100644 --- a/packages/font-glyphs/src/meta/aesthetics.ptl +++ b/packages/font-glyphs/src/meta/aesthetics.ptl @@ -97,6 +97,8 @@ export : define [calculateMetrics para] : begin AdviceStrokeInSpace spaceV 1 crwY 1 define Stroke : AdviceStroke 2 + define HalfStroke : Stroke / 2 + define QuarterStroke : Stroke / 4 define DotSize : fallback para.dotSize Stroke define PeriodSize : fallback para.periodSize DotSize define HBarPos : DesignParameters.hBarPos - 0.09 * Stroke / CAP @@ -105,8 +107,8 @@ export : define [calculateMetrics para] : begin define LongJut para.longjut define VJut para.vjut define LongVJut : fallback para.longvjut LongJut - define MidJutSide : Math.max Jut : mix [HSwToV : 0.5 * Stroke] LongJut 0.5 - define MidJutCenter : Math.max Jut : mix [HSwToV : 0.5 * Stroke] LongJut 0.6 + define MidJutSide : Math.max Jut : mix [HSwToV HalfStroke] LongJut 0.5 + define MidJutCenter : Math.max Jut : mix [HSwToV HalfStroke] LongJut 0.6 define AccentStackOffset para.accentStackOffset define AccentWidth para.accentWidth define AccentClearance para.accentClearance @@ -117,15 +119,15 @@ export : define [calculateMetrics para] : begin define SLAB para.slab - define [IBalance df] : df.div * df.div * [fallback para.ibalance (LongJut * 0.04)] # Serifed - define [IBalance2 df] : df.div * [fallback para.ibalance2 (LongJut * 0.14)] # Hooky, Tailed - define JBalance : fallback para.jbalance 0 - define JBalance2 : fallback para.jbalance2 (Stroke * 0.25 + LongJut * 0.04) - define TBalance : fallback para.tbalance JBalance + define [IBalance df] : df.div * df.div * [fallback para.ibalance (LongJut * 0.04)] # Serifed + define [IBalance2 df] : df.div * [fallback para.ibalance2 (LongJut * 0.14)] # Hooky, Tailed + define JBalance : fallback para.jbalance 0 + define JBalance2 : fallback para.jbalance2 (QuarterStroke + LongJut * 0.04) + define TBalance : fallback para.tbalance JBalance define TBalance2 : fallback para.tbalance2 TBalance - define RBalance : fallback para.rbalance (JBalance * 0.3) + define RBalance : fallback para.rbalance (JBalance * 0.3) define RBalance2 : fallback para.rbalance2 0 - define FBalance : fallback para.fbalance 0 + define FBalance : fallback para.fbalance 0 define OneBalance : fallback para.onebalance 0 # derived metrics @@ -138,10 +140,9 @@ export : define [calculateMetrics para] : begin define [NarrowUnicodeT wd] : function [u] : if (wd === Width) u null define [WideUnicodeT wd] : function [u] : if (wd !== Width) u null - define EssUpper : Stroke * [fallback para.essRatioUpper para.essRatio Contrast] - define EssLower : Stroke * [fallback para.essRatioLower para.essRatio Contrast] + define EssUpper : Stroke * [fallback para.essRatioUpper para.essRatio Contrast] + define EssLower : Stroke * [fallback para.essRatioLower para.essRatio Contrast] define EssQuestion : Stroke * [fallback para.essRatioQuestion para.essRatio Contrast] - define HalfStroke : Stroke / 2 define RightSB : Width - SB define Middle : Width / 2 define DotRadius : DotSize / 2 @@ -182,7 +183,7 @@ export : define [calculateMetrics para] : begin define CorrectionOMidX : TanSlope * 0.9 * [StrokeWidthBlend 1.3 0.9] define CorrectionOMidS : Stroke * CorrectionOMidX - define OverlayStroke : AdviceStroke 3.75 + define OverlayStroke : AdviceStroke 3.75 define OperatorStroke : AdviceStroke 2.75 define GeometryStroke : AdviceStroke 4 define ShoulderFine : Math.min (Stroke * para.shoulderFineMin) : AdviceStroke 24 @@ -194,20 +195,20 @@ export : define [calculateMetrics para] : begin define TINY : 1 / 128 return [object - DesignParameters UPM HalfUPM Width SB CAP XH Ascender Descender Contrast SymbolMid - ParenTop ParenBot OperTop OperBot TackTop TackBot PlusTop PlusBot PictTop PictBot BgOpTop - BgOpBot BgTkTop BgTkBot Italify Upright Scale Translate ApparentTranslate Rotate - GlobalTransform TanSlope HVContrast Upward Downward Rightward Leftward O OX OXHook Hook - AHook SHook RHook JHook HookX TailX TailY ArchDepth SmallArchDepth Stroke DotSize PeriodSize - HBarPos OverlayPos LongJut LongVJut Jut VJut VJutStroke AccentStackOffset AccentWidth - AccentClearance AccentHeight CThin CThinB SLAB 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 - compositeBaseAnchors AdviceStroke AdviceStroke2 AdviceStrokeInSpace OverlayStroke OperatorStroke - GeometryStroke ShoulderFine AdviceGlottalStopArchDepth StrokeWidthBlend ArchDepthAOf ArchDepthBOf - SmoothAdjust MidJutSide MidJutCenter YSmoothMidR YSmoothMidL HSwToV VSwToH NarrowUnicodeT - WideUnicodeT VERY-FAR TINY] + DesignParameters UPM HalfUPM Width SB CAP XH Ascender Descender Contrast SymbolMid ParenTop + ParenBot OperTop OperBot TackTop TackBot PlusTop PlusBot PictTop PictBot BgOpTop BgOpBot + BgTkTop BgTkBot Italify Upright Scale Translate ApparentTranslate Rotate GlobalTransform + TanSlope HVContrast Upward Downward Rightward Leftward O OX OXHook Hook AHook SHook RHook + JHook HookX TailX TailY ArchDepth SmallArchDepth Stroke HalfStroke QuarterStroke DotSize + PeriodSize HBarPos OverlayPos Jut VJut LongJut LongVJut VJutStroke AccentStackOffset + AccentWidth AccentClearance AccentHeight CThin CThinB SLAB IBalance IBalance2 JBalance + JBalance2 TBalance TBalance2 RBalance RBalance2 FBalance OneBalance WideWidth0 WideWidth1 + WideWidth2 WideWidth3 WideWidth4 EssUpper EssLower EssQuestion RightSB Middle DotRadius + PeriodRadius ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX + CorrectionOMidS compositeBaseAnchors AdviceStroke AdviceStroke2 AdviceStrokeInSpace + OverlayStroke OperatorStroke GeometryStroke ShoulderFine AdviceGlottalStopArchDepth + StrokeWidthBlend ArchDepthAOf ArchDepthBOf SmoothAdjust SideJut MidJutSide MidJutCenter + YSmoothMidR YSmoothMidL HSwToV VSwToH NarrowUnicodeT WideUnicodeT VERY-FAR TINY] export : define [setFontMetrics para metrics fm] : begin define [object CAP Descender XH Width SymbolMid] metrics @@ -323,8 +324,8 @@ define [MarksetDiv p sbMul me] : begin define [MarkBottomLeft zone] {.baseAnchors {.bottomLeft [ta : new Anchor leftSB zone.bot]}} define [MarkBottomRight zone] {.baseAnchors {.bottomRight [ta : new Anchor rightSB zone.bot]}} - define markTieAbove {.baseAnchors {.tieAbove [ta : new Anchor width (me.XH + me.AccentStackOffset * 1.38)]}} - define markTieBelow {.baseAnchors {.tieBelow [ta : new Anchor width me.Descender ]}} + define markTieAbove {.baseAnchors {.tieAbove [ta : new Anchor width (me.XH + me.AccentStackOffset * 1.38)]}} + define markTieBelow {.baseAnchors {.tieBelow [ta : new Anchor width me.Descender ]}} define [buildStandardMarkSet zone] : lambda [] : begin if (this && this.baseAnchors) : begin diff --git a/packages/font-glyphs/src/meta/macros.ptl b/packages/font-glyphs/src/meta/macros.ptl index d5a2353ad..d790bd5b3 100644 --- a/packages/font-glyphs/src/meta/macros.ptl +++ b/packages/font-glyphs/src/meta/macros.ptl @@ -380,16 +380,17 @@ define-macro glyph-block : syntax-rules PictTop PictBot BgOpTop BgOpBot BgTkTop BgTkBot Italify Upright Scale Translate ApparentTranslate Rotate GlobalTransform TanSlope HVContrast Upward Downward Rightward Leftward O OX OXHook Hook AHook SHook RHook JHook HookX TailX TailY ArchDepth - SmallArchDepth Stroke DotSize PeriodSize HBarPos OverlayPos LongJut LongVJut Jut VJut - VJutStroke AccentStackOffset AccentWidth AccentClearance AccentHeight CThin CThinB - SLAB 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 - AdviceStroke AdviceStroke2 AdviceStrokeInSpace OverlayStroke OperatorStroke GeometryStroke - ShoulderFine AdviceGlottalStopArchDepth StrokeWidthBlend ArchDepthAOf ArchDepthBOf - SmoothAdjust MidJutSide MidJutCenter compositeBaseAnchors YSmoothMidR YSmoothMidL HSwToV - VSwToH NarrowUnicodeT WideUnicodeT VERY-FAR TINY] + SmallArchDepth Stroke HalfStroke QuarterStroke DotSize PeriodSize HBarPos OverlayPos + Jut VJut LongJut LongVJut VJutStroke AccentStackOffset AccentWidth AccentClearance + AccentHeight CThin CThinB SLAB IBalance IBalance2 JBalance JBalance2 TBalance + TBalance2 RBalance RBalance2 FBalance OneBalance WideWidth0 WideWidth1 WideWidth2 + WideWidth3 WideWidth4 EssUpper EssLower EssQuestion RightSB Middle DotRadius + PeriodRadius ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX + CorrectionOMidS compositeBaseAnchors AdviceStroke AdviceStroke2 AdviceStrokeInSpace + OverlayStroke OperatorStroke GeometryStroke ShoulderFine AdviceGlottalStopArchDepth + StrokeWidthBlend ArchDepthAOf ArchDepthBOf SmoothAdjust SideJut MidJutSide + MidJutCenter YSmoothMidR YSmoothMidL HSwToV VSwToH NarrowUnicodeT WideUnicodeT + VERY-FAR TINY] define spiroFnImports `[g4 g2 corner flat curl virt close end straight g2c cg2 flatc ccurl widths disable-contrast heading unimportant important alsoThru alsoThruThem bezControls diff --git a/packages/font-glyphs/src/number/1.ptl b/packages/font-glyphs/src/number/1.ptl index 91fcd3b6d..a85726823 100644 --- a/packages/font-glyphs/src/number/1.ptl +++ b/packages/font-glyphs/src/number/1.ptl @@ -26,8 +26,8 @@ glyph-block Digits-One : begin include : HSerif.lt (Middle + balance - [HSwToV HalfStroke]) (top - Stroke / 8 - Hook * pTopSerif * (top / CAP)) (LongJut - [HSwToV HalfStroke]) export : define [TopCut top balance pTopSerif] : glyph-proc - local sl : Middle + balance - [HSwToV : 0.5 * Stroke] - local sr : Middle + balance + [HSwToV : 0.5 * Stroke] + local sl : Middle + balance - [HSwToV HalfStroke] + local sr : Middle + balance + [HSwToV HalfStroke] include : spiro-outline corner sr 0 corner sl 0 diff --git a/packages/font-glyphs/src/number/6.ptl b/packages/font-glyphs/src/number/6.ptl index fe8e9a8b9..2de8b80bf 100644 --- a/packages/font-glyphs/src/number/6.ptl +++ b/packages/font-glyphs/src/number/6.ptl @@ -11,7 +11,7 @@ glyph-block Digits-Six : begin glyph-block-export OpenContourSixShape define [OpenContourSixShape charTop] : glyph-proc - local oTop : charTop * 0.55 + Stroke / 2 + local oTop : charTop * 0.55 + HalfStroke local ymiddlea : (oTop - SmallArchDepthA + SmallArchDepthB) / 2 local ymiddleb : (oTop - SmallArchDepthB + SmallArchDepthA) / 2 include : dispiro @@ -22,7 +22,7 @@ glyph-block Digits-Six : begin arch.rhs 0 g4.up.mid (SB + OX) ymiddlea quadControls 0 0.85 - g4 ([mix SB RightSB 0.85] - [HSwToV : 0.25 * Stroke]) (charTop - O) [widths.rhs] + g4 ([mix SB RightSB 0.85] - [HSwToV QuarterStroke]) (charTop - O) [widths.rhs] glyph-block-export ClosedContourSixShape define [ClosedContourSixShape top] : glyph-proc diff --git a/packages/font-glyphs/src/number/7.ptl b/packages/font-glyphs/src/number/7.ptl index acafa1621..1a62db43f 100644 --- a/packages/font-glyphs/src/number/7.ptl +++ b/packages/font-glyphs/src/number/7.ptl @@ -44,23 +44,23 @@ glyph-block Digits-Seven : begin define [Crossbar top] : glyph-proc local m : mix SevenXLeft (RightSB - [HSwToV HalfStroke]) 0.5 include : HBar.m - m - [HSwToV : 0.25 * Stroke] - LongJut * 0.8 - m + [HSwToV : 0.25 * Stroke] + LongJut * 0.7 - mix 0 (top - Stroke * 0.25) 0.5 + m - [HSwToV QuarterStroke] - LongJut * 0.8 + m + [HSwToV QuarterStroke] + LongJut * 0.7 + mix 0 (top - QuarterStroke) 0.5 define [BendCrossbar top] : glyph-proc local m : [mix SevenXLeftBend (RightSB - [HSwToV HalfStroke]) 0.25] + 0.125 * Stroke include : HBar.m - m - [HSwToV : 0.25 * Stroke] - LongJut * 0.8 - m + [HSwToV : 0.25 * Stroke] + LongJut * 0.7 - mix 0 (top - Stroke * 0.25) 0.5 + m - [HSwToV QuarterStroke] - LongJut * 0.8 + m + [HSwToV QuarterStroke] + LongJut * 0.7 + mix 0 (top - QuarterStroke) 0.5 define [CurlyCrossbar top] : glyph-proc local m : mix SevenXLeftBend (RightSB - [HSwToV HalfStroke]) 0.375 include : HBar.m - m - [HSwToV : 0.25 * Stroke] - LongJut * 0.8 - m + [HSwToV : 0.25 * Stroke] + LongJut * 0.7 - mix 0 (top - Stroke * 0.25) 0.5 + m - [HSwToV QuarterStroke] - LongJut * 0.8 + m + [HSwToV QuarterStroke] + LongJut * 0.7 + mix 0 (top - QuarterStroke) 0.5 local SevenConfig : SuffixCfg.weave object # body diff --git a/packages/font-glyphs/src/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl index d2acb8187..a25b8c509 100644 --- a/packages/font-glyphs/src/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -662,7 +662,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : headFunc arrowX arrowYS arrowX arrowYE headSize define [ShareAlikeArrow] : glyph-proc - local arrowX : l + [HSwToV : 0.5 * Stroke] + local arrowX : l + [HSwToV HalfStroke] local headLength : headSize * Math.SQRT1_2 local gapSize : Math.max (2 * headLength) (CAP - 0 - ada - adb) local gapTop : CAP / 2 + 0.5 * gapSize diff --git a/packages/font-glyphs/src/symbol/counting-rod.ptl b/packages/font-glyphs/src/symbol/counting-rod.ptl index 1709630e4..f465ca68d 100644 --- a/packages/font-glyphs/src/symbol/counting-rod.ptl +++ b/packages/font-glyphs/src/symbol/counting-rod.ptl @@ -9,7 +9,7 @@ glyph-block Symbol-Counting-Rod : begin glyph-block-import Common-Derivatives do "Counting Rods" - define rodDiv : Math.min 2 : mix 1 para.diversityMM 2 + define rodDiv : Math.min 2 : mix 1 para.diversityMM 3 define rodDf : DivFrame rodDiv 5 define rodSw rodDf.mvs define hRodSw : AdviceStroke 3 rodDiv diff --git a/packages/font-glyphs/src/symbol/math/logicals.ptl b/packages/font-glyphs/src/symbol/math/logicals.ptl index 41dd7647f..92ec4b047 100644 --- a/packages/font-glyphs/src/symbol/math/logicals.ptl +++ b/packages/font-glyphs/src/symbol/math/logicals.ptl @@ -20,7 +20,7 @@ glyph-block Symbol-Math-Logicals : begin include : VBar.l SB (SymbolMid - (RightSB - SB) * 0.55) SymbolMid OperatorStroke turned 'turnedNegate' 0x2319 'negate' Middle SymbolMid - turned 'turnedRevNegate' null 'revNegate' Middle SymbolMid + turned 'invNegate' null 'revNegate' Middle SymbolMid local top TackTop local bot TackBot @@ -102,7 +102,7 @@ glyph-block Symbol-Math-Logicals : begin create-glyph 'topring' 0x2355 : glyph-proc define mid : mix bot (top - OperatorStroke / 2) 0.5 define w : (RightSB - SB) * 0.4 - define fine : Math.min (w / 2.5) [AdviceStroke 5] + define fine : Math.min (w / 2.5) : AdviceStroke 5 include : HBar.t SB RightSB top OperatorStroke include : VBar.m Middle top (mid + w) OperatorStroke include : VBar.m Middle (mid - w) bot OperatorStroke @@ -118,7 +118,7 @@ glyph-block Symbol-Math-Logicals : begin create-glyph 'turnedTautologyTautology' 0x27DA : glyph-proc local df : include : DivFrame para.diversityMM 4 local vs : df.mvs * OperatorStroke / Stroke - local innerSB : Math.min (SB * [Math.min (df.div / 1.5) 1]) df.leftSB + local innerSB : Math.min (SB * [Math.min 1 : df.div / 1.5]) df.leftSB local l : Math.max (df.middle - innerSB - vs / 2) : mix df.middle df.leftSB (1 / 3) local r : Math.min (df.middle + innerSB + vs / 2) : mix df.middle df.rightSB (1 / 3) local t : mix SymbolMid top (1 / 3) @@ -133,7 +133,7 @@ glyph-block Symbol-Math-Logicals : begin create-glyph 'dashvvdash' 0x27DB : glyph-proc local df : include : DivFrame para.diversityMM 4 local vs : df.mvs * OperatorStroke / Stroke - local innerSB : Math.min (SB * [Math.min (df.div / 1.5) 1]) df.leftSB + local innerSB : Math.min (SB * [Math.min 1 : df.div / 1.5]) df.leftSB local l : Math.max (df.middle - innerSB - vs / 2) : mix df.middle df.leftSB (1 / 3) local r : Math.min (df.middle + innerSB + vs / 2) : mix df.middle df.rightSB (1 / 3) include : VBar.m l top bot vs diff --git a/packages/font-glyphs/src/symbol/math/relation.ptl b/packages/font-glyphs/src/symbol/math/relation.ptl index c0f12eff6..1878312b4 100644 --- a/packages/font-glyphs/src/symbol/math/relation.ptl +++ b/packages/font-glyphs/src/symbol/math/relation.ptl @@ -863,7 +863,7 @@ glyph-block Symbol-Math-Relation-Subset : begin create-glyph 'elementStroke' 0x22F2 : glyph-proc include : SubsetShape (SymbolMid + dHElem) (SymbolMid - dHElem) - xShift -- ((RightSB - SB) * 0.2 + [HSwToV : 0.25 * Stroke]) + xShift -- ((RightSB - SB) * 0.2 + [HSwToV QuarterStroke]) include : HBar.m (SB + HalfStroke) RightSB SymbolMid OperatorStroke turned 'turnElementStroke' 0x22FA 'elementStroke' Middle SymbolMid diff --git a/packages/font-glyphs/src/symbol/math/v-and-cup.ptl b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl index 15272f376..171218d27 100644 --- a/packages/font-glyphs/src/symbol/math/v-and-cup.ptl +++ b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl @@ -206,7 +206,7 @@ glyph-block Symbol-Math-VAndCup : begin turned 'doubleCap' 0x22D2 'doubleCup' Middle SymbolMid - define pitchForkTop : [mix OperBot OperTop 1.2] + Stroke / 4 + define pitchForkTop : [mix OperBot OperTop 1.2] + QuarterStroke define pitchForkSw : AdviceStroke 3.25 create-glyph 'pitchFork' 0x22D4 : composite-proc diff --git a/packages/font-glyphs/src/symbol/pictograph/heart.ptl b/packages/font-glyphs/src/symbol/pictograph/heart.ptl index cb8448d62..322d57d27 100644 --- a/packages/font-glyphs/src/symbol/pictograph/heart.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/heart.ptl @@ -47,4 +47,4 @@ glyph-block Symbol-Pictograph-Heart : begin set-width Geom.Width include : difference refer-glyph [MangleName 'blackHeart'] - HeartShapeImpl bound GeometryStroke 1.75 0.8 + HeartShapeImpl bound GeometryStroke (1.75 / HVContrast) 0.8 diff --git a/packages/font-glyphs/src/symbol/pictograph/musical.ptl b/packages/font-glyphs/src/symbol/pictograph/musical.ptl index 84dc508cc..b6a404a96 100644 --- a/packages/font-glyphs/src/symbol/pictograph/musical.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/musical.ptl @@ -167,7 +167,7 @@ glyph-block Symbol-Pictograph-Musical : begin include : FlatToneShape create-glyph 'naturalTone' 0x266E : glyph-proc - local k : 0.25 - (Stroke * 0.25 / (nsTop - nsBot)) + local k : 0.25 - (QuarterStroke / (nsTop - nsBot)) local barLeft : VBar.l lNat [mix nsBot nsTop k] nsTop fine local barRight : VBar.r rNat nsBot [mix nsBot nsTop (1 - k)] fine diff --git a/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl b/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl index bfccdf1cc..5b5c2d6ee 100644 --- a/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl @@ -13,7 +13,7 @@ glyph-block Symbol-Punctuation-Ampersand : begin define SwAmpersand : AdviceStroke2 2.5 3 CAP define fineAmp : AdviceStroke 3.5 - define pxUpperLoopRight : 0.75 + 0.5 * Stroke / (RightSB - SB) + define pxUpperLoopRight : 0.75 + HalfStroke / (RightSB - SB) define pxUpperLoopLeft 0.05 define pXTerminal 1.1 define pStraightBar 0.4 diff --git a/packages/font-glyphs/src/symbol/punctuation/dashes.ptl b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl index 84e897fce..425cc8f95 100644 --- a/packages/font-glyphs/src/symbol/punctuation/dashes.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl @@ -37,10 +37,10 @@ glyph-block Symbol-Punctuation-Dashes : begin HBar.b SB RightSB (yBar - openBoxGap) create-glyph "openBox.\(suffix)" : composite-proc HBar.b SB RightSB yBar - OpenBoxSide (yBar + Stroke / 2) + OpenBoxSide (yBar + HalfStroke) create-glyph "openBoxShoulder.\(suffix)" : composite-proc HBar.b SB RightSB yBar - OpenBoxShoulderSide (yBar + Stroke / 2) + OpenBoxShoulderSide (yBar + HalfStroke) select-variant 'underscore' '_' select-variant 'openBox' 0x2423 (follow -- 'underscore') @@ -84,12 +84,14 @@ glyph-block Symbol-Punctuation-Dashes : begin create-glyph [MangleName 'spear'] [MangleUnicode 0x2E43] : glyph-proc set-width emDashWidth + local yExt : (RightSB - SB) * 0.55 + local adb : SmallArchDepthB * ((yExt * 2) / XH) include : dispiro widths.center - flat (SB + [HSwToV HalfStroke] + OX) (SymbolMid + [Math.max ((RightSB - SB) * 0.55) (XH * 0.5)]) [heading Downward] - curl (SB + [HSwToV HalfStroke] + OX) (SymbolMid + SmallArchDepthB) + flat (SB + [HSwToV HalfStroke] + OX) (SymbolMid + yExt) [heading Downward] + curl (SB + [HSwToV HalfStroke] + OX) (SymbolMid + [Math.min adb : yExt - TINY]) arcvh - flat Middle SymbolMid + flat (Middle + [HSwToV HalfStroke]) SymbolMid curl (emDashWidth - SB - OX) SymbolMid [heading Rightward] derive-multi-part-glyphs 'hyphenDieresis' 0x2E1A { 'figureDash' 'dieresisAbove'} diff --git a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl index f8de4da7d..32ea83504 100644 --- a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl @@ -71,7 +71,7 @@ glyph-block Symbol-Punctuation-Percentages : begin set-width Width local l : SB / 2 local r : Width - l - local m : mix l r (1 / 2) + local m : mix l r 0.5 local ada : ArchDepthA * 0.5 local adb : ArchDepthB * 0.5 local swRing : AdviceStroke 3.75 @@ -114,15 +114,15 @@ glyph-block Symbol-Punctuation-Percentages : begin set-width Width local l : SB / 2 local r : Width - l - local m : mix l r (1 / 2) + local m : mix l r 0.5 local ada : ArchDepthA * 0.5 local adb : ArchDepthB * 0.5 local swRing : AdviceStroke 3.5 local swBar : AdviceStroke 3 local fine : AdviceStroke 4 local cor : DiagCorDs CAP (r - l) swBar - local pTerm : (fine / 2) / [Math.hypot CAP (r - l)] - local pFine : 1 / 2 - [Math.max (CAP / 10) (Stroke / 2)] / [Math.hypot CAP (r - l)] + local pTerm : fine / (2 * [Math.hypot CAP (r - l)]) + local pFine : 0.5 - [Math.max (CAP / 10) HalfStroke] / [Math.hypot CAP (r - l)] include : OShape CAP (CAP / 2) l m swRing ada adb include : OShape (CAP / 2) 0 m r swRing ada adb @@ -142,14 +142,14 @@ glyph-block Symbol-Punctuation-Percentages : begin set-width width local l : SB / 2 local r : width - l - local m : mix l r (1 / 2) + local m : mix l r 0.5 local ada : ArchDepthA * 0.5 * para.diversityM local adb : ArchDepthB * 0.5 * para.diversityM local sw : AdviceStroke2 4 5 CAP para.diversityM local fine : AdviceStroke2 5 5 CAP para.diversityM local cor : HSwToV : 1 / [Math.sqrt : 1 - (((r - l - sw) / (CAP - 0)) ** 2)] - local pTerm : (fine / 2) / [Math.hypot CAP (r - l)] - local pFine : 1 / 2 - (Stroke / 2) / [Math.hypot CAP (r - l)] + local pTerm : fine / (2 * [Math.hypot CAP (r - l)]) + local pFine : 0.5 - HalfStroke / [Math.hypot CAP (r - l)] local otop : CAP / 2 - [Math.max (CAP / 5) (fine * 2)] / 2 local coOtop : CAP - otop diff --git a/packages/font-glyphs/src/symbol/punctuation/section.ptl b/packages/font-glyphs/src/symbol/punctuation/section.ptl index 79624e306..a5c74c8b7 100644 --- a/packages/font-glyphs/src/symbol/punctuation/section.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/section.ptl @@ -14,13 +14,13 @@ glyph-block Symbol-Punctuation-Section : begin local bot ParenBot local ada ArchDepthA local [s sink offset] : begin - local sBot : [mix bot top 0.32] - Stroke * 0.25 + local sBot : [mix bot top 0.32] - QuarterStroke return : sink widths.lhs g4 (RightSB - offset) (top - Hook) hookstart (top - offset) g4 (SB + offset) (top - ada) - alsoThru 0.5 0.5 [widths.center : 2 * HalfStroke] + alsoThru 0.5 0.5 [widths.center Stroke] g4 (RightSB - offset) (sBot + ada) [widths.rhs] arcvh flat [arch.adjust-x.bot Middle] (sBot + offset + O)