- LATIN SMALL LETTER B WITH PALATAL HOOK (`U+1D80`) ... LATIN SMALL LETTER Z WITH PALATAL HOOK (`U+1D8E`).
  - MODIFIER LETTER SMALL L WITH PALATAL HOOK (`U+1DAA`).
This commit is contained in:
be5invis 2022-12-13 04:38:52 -08:00
parent 8f895c754c
commit 7769e1f30e
22 changed files with 280 additions and 89 deletions

View file

@ -1,6 +1,8 @@
* Add Characters: * Add Characters:
- LATIN SMALL LETTER INSULAR G (`U+1D79`). - LATIN SMALL LETTER INSULAR G (`U+1D79`).
- LATIN SMALL LETTER TH WITH STRIKETHROUGH (`U+1D7A`). - LATIN SMALL LETTER TH WITH STRIKETHROUGH (`U+1D7A`).
- LATIN SMALL LETTER B WITH PALATAL HOOK (`U+1D80`) ... LATIN SMALL LETTER Z WITH PALATAL HOOK (`U+1D8E`).
- MODIFIER LETTER SMALL L WITH PALATAL HOOK (`U+1DAA`).
- LATIN CAPITAL LETTER MIDDLE-WELSH LL (`U+1EFA`) ... LATIN SMALL LETTER Y WITH LOOP (`U+1EFF`). - LATIN CAPITAL LETTER MIDDLE-WELSH LL (`U+1EFA`) ... LATIN SMALL LETTER Y WITH LOOP (`U+1EFF`).
* Fix shape of: * Fix shape of:
- MODIFIER LETTER SMALL OPEN E (`U+1D4B`). - MODIFIER LETTER SMALL OPEN E (`U+1D4B`).

View file

@ -275,6 +275,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1DA8 'jCurlyTail' list 0x1DA8 'jCurlyTail'
list 0x1DAB 'smcpL' list 0x1DAB 'smcpL'
list 0x1DA9 'lRTail' list 0x1DA9 'lRTail'
list 0x1DAA 'lPalatalHook'
list 0x1DAC 'mLTail' list 0x1DAC 'mLTail'
list 0x1DAD 'turnmLeg' list 0x1DAD 'turnmLeg'
list 0x1DAE 'nltail' list 0x1DAE 'nltail'

View file

@ -258,34 +258,34 @@ glyph-block CommonShapes : begin
curl (left + (stroke - fine) * HVContrast) (top - SmallArchDepthA - 0.01) [widths fine 0] curl (left + (stroke - fine) * HVContrast) (top - SmallArchDepthA - 0.01) [widths fine 0]
glyph-block-export OBarLeftToothlessShape glyph-block-export OBarLeftToothlessShape
define [OBarLeftToothlessShape] : params [[top XH] [left SB] [right RightSB] [rise SHook] [mBlend [Math.sqrt (1 / 2)]]] : glyph-proc define [OBarLeftToothlessShape] : params [[top XH] [left SB] [right RightSB] [rise SHook] [mBlend [Math.sqrt (1 / 2)]] [sw Stroke]] : glyph-proc
local fine ShoulderFine local fine ShoulderFine
local st : shoulderMidSlope fine nothing 1 local st : shoulderMidSlope fine nothing 1
local sb : shoulderMidSlope fine nothing (-1) local sb : shoulderMidSlope fine nothing (-1)
local mt : [mix left right 0.5] + (st - CorrectionOMidX) * Stroke local mt : [mix left right 0.5] + (st - CorrectionOMidX) * sw
local mb : [mix left right 0.5] + CorrectionOMidX * Stroke local mb : [mix left right 0.5] + CorrectionOMidX * sw
include : dispiro include : dispiro
g4 left rise [widths.lhs Stroke] g4 left rise [widths.lhs sw]
alsoThru.g2 0.5 mBlend important alsoThru.g2 0.5 mBlend important
g4.right.mid mb O g4.right.mid mb O
archv archv
flat (right - OX) (0 + SmallArchDepthA) flat (right - OX) (0 + SmallArchDepthA)
curl (right - OX) (top - SmallArchDepthB) curl (right - OX) (top - SmallArchDepthB)
arcvh arcvh
g4 (mt) (top - O) [widths.heading Stroke 0 {.y (-1) .x (-st)}] g4 (mt) (top - O) [widths.heading sw 0 {.y (-1) .x (-st)}]
archv archv
flat (left + (Stroke - fine) * HVContrast) (top - SmallArchDepthA) [widths fine 0] flat (left + (sw - fine) * HVContrast) (top - SmallArchDepthA) [widths fine 0]
curl (left + (Stroke - fine) * HVContrast) (top - SmallArchDepthA - 0.01) [widths fine 0] curl (left + (sw - fine) * HVContrast) (top - SmallArchDepthA - 0.01) [widths fine 0]
glyph-block-export OBarLeftRoundedShape glyph-block-export OBarLeftRoundedShape
define [OBarLeftRoundedShape] : params [[top XH] [left SB] [right RightSB] [yTerminal CAP]] : glyph-proc define [OBarLeftRoundedShape] : params [[top XH] [left SB] [right RightSB] [yTerminal CAP] [sw Stroke]] : glyph-proc
local fine ShoulderFine local fine ShoulderFine
local st : shoulderMidSlope fine nothing 1 local st : shoulderMidSlope fine nothing 1
local sb : shoulderMidSlope fine nothing (-1) local sb : shoulderMidSlope fine nothing (-1)
local mt : [mix left right 0.5] + (st - CorrectionOMidX) * Stroke local mt : [mix left right 0.5] + (st - CorrectionOMidX) * sw
local mb : [mix left right 0.5] + CorrectionOMidX * Stroke local mb : [mix left right 0.5] + CorrectionOMidX * Stroke
include : dispiro include : dispiro
flat left yTerminal [widths.lhs.heading Stroke Downward] flat left yTerminal [widths.lhs.heading sw Downward]
curl left SmallArchDepthB curl left SmallArchDepthB
arcvh arcvh
g4.right.mid mb O g4.right.mid mb O
@ -293,10 +293,10 @@ glyph-block CommonShapes : begin
flat (right - OX) (0 + SmallArchDepthA) flat (right - OX) (0 + SmallArchDepthA)
curl (right - OX) (top - SmallArchDepthB) curl (right - OX) (top - SmallArchDepthB)
arcvh arcvh
g4 (mt) (top - O) [widths.heading Stroke 0 {.y (-1) .x (-st)}] g4 (mt) (top - O) [widths.heading sw 0 {.y (-1) .x (-st)}]
archv archv
flat (left + (Stroke - fine) * HVContrast) (top - SmallArchDepthA) [widths fine 0] flat (left + (sw - fine) * HVContrast) (top - SmallArchDepthA) [widths fine 0]
curl (left + (Stroke - fine) * HVContrast) (top - SmallArchDepthA - 0.01) [widths fine 0] curl (left + (sw - fine) * HVContrast) (top - SmallArchDepthA - 0.01) [widths fine 0]
glyph-block-export OBarLeftToothlessTopShape glyph-block-export OBarLeftToothlessTopShape
define [OBarLeftToothlessTopShape _top _left _rise _mBlend] : glyph-proc define [OBarLeftToothlessTopShape _top _left _rise _mBlend] : glyph-proc

View file

@ -8,7 +8,8 @@ glyph-module
glyph-block Letter-Latin-Long-S : begin glyph-block Letter-Latin-Long-S : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth LetterBarOverlay glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook
glyph-block-import Letter-Latin-Lower-F : StdSmallFBarLeftPos StdSmallFBarLeftPos0 glyph-block-import Letter-Latin-Lower-F : StdSmallFBarLeftPos StdSmallFBarLeftPos0
define [LongSUpperHalf sign x top bottom hookX hookY _sw] : begin define [LongSUpperHalf sign x top bottom hookX hookY _sw] : begin
@ -126,6 +127,10 @@ glyph-block Letter-Latin-Long-S : begin
select-variant 'longs' 0x17F select-variant 'longs' 0x17F
select-variant 'longsbar' 0x1E9D (follow -- 'longs') select-variant 'longsbar' 0x1E9D (follow -- 'longs')
alias 'esh' 0x283 'longs.flatHookTailed' alias 'esh' 0x283 'longs.flatHookTailed'
derive-composites 'eshPalatalHook' 0x1D8B 'esh'
difference
PalatalHook (x -- RightSB) (y -- 0) (xAttach -- Middle)
intersection [MaskBelow 0] [MaskLeft (Middle + HVContrast * HalfStroke + [Math.max (Width / 16) [AdviceStroke 12]])]
create-glyph 'eshCurlyTail' 0x286 : glyph-proc create-glyph 'eshCurlyTail' 0x286 : glyph-proc
include : MarkSet.if include : MarkSet.if

View file

@ -10,7 +10,7 @@ glyph-block Letter-Latin-K : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius DiagonalTailF CyrDescender glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius DiagonalTailF CyrDescender
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook
local [KBalance slab straightBar] : if slab (Width / 16) : if straightBar (Width / 32) 0 local [KBalance slab straightBar] : if slab (Width / 16) : if straightBar (Width / 32) 0
local [KBalanceRight slab straightBar] : if slab 0 : if straightBar (Width / 32) 0 local [KBalanceRight slab straightBar] : if slab 0 : if straightBar (Width / 32) 0
@ -283,6 +283,13 @@ glyph-block Letter-Latin-K : begin
RightSB + [KBalanceRight slab straightBar] - [KO slab straightBar top Stroke] RightSB + [KBalanceRight slab straightBar] - [KO slab straightBar top Stroke]
connex -- [if straightBar 1 0.1] connex -- [if straightBar 1 0.1]
define [KPalatalHook top straightBar slabLeft slab] : begin
local xPos : RightSB + [KBalanceRight slab straightBar] - [KO slab straightBar top Stroke]
return : PalatalHook
x -- xPos + SideJut
y -- 0
xAttach -- xPos - [if straightBar 1 0.1] * HVContrast * Stroke
define [KHookTopBar slab straightBar] : union define [KHookTopBar slab straightBar] : union
VBarLeft (SB + [KBalance slab straightBar]) 0 (Ascender - Hook - HalfStroke) VBarLeft (SB + [KBalance slab straightBar]) 0 (Ascender - Hook - HalfStroke)
VerticalHook (SB + [KBalance slab straightBar] + HalfStroke * HVContrast) (Ascender - Hook - HalfStroke) HookX (-Hook) VerticalHook (SB + [KBalance slab straightBar] + HalfStroke * HVContrast) (Ascender - Hook - HalfStroke) HookX (-Hook)
@ -507,6 +514,7 @@ glyph-block Letter-Latin-K : begin
if slabBot : include : tagged 'serifLB' if slabBot : include : tagged 'serifLB'
CenterBottomSerif (SB + [KBalance slabTop straightBar] + HalfStroke * HVContrast) 0 Jut CenterBottomSerif (SB + [KBalance slabTop straightBar] + HalfStroke * HVContrast) 0 Jut
create-forked-glyph "kDescender.\(suffix)" : KCyrlNormalDescender XH straightBar slabTop slabLegs create-forked-glyph "kDescender.\(suffix)" : KCyrlNormalDescender XH straightBar slabTop slabLegs
create-forked-glyph "kPalatalHook.\(suffix)" : KPalatalHook XH straightBar slabTop slabLegs
create-glyph "kBar.\(suffix)" : glyph-proc create-glyph "kBar.\(suffix)" : glyph-proc
include [refer-glyph "k.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "k.\(suffix)"] AS_BASE ALSO_METRICS
@ -538,6 +546,7 @@ glyph-block Letter-Latin-K : begin
select-variant 'k' 'k' select-variant 'k' 'k'
link-reduced-variant 'k/sansSerif' 'k' MathSansSerif link-reduced-variant 'k/sansSerif' 'k' MathSansSerif
select-variant 'kDescender' 0x2C6A select-variant 'kDescender' 0x2C6A
select-variant 'kPalatalHook' 0x1D84 (follow -- 'kDescender')
select-variant 'kBar' 0xA741 (follow -- 'k') select-variant 'kBar' 0xA741 (follow -- 'k')
select-variant 'cyrl/kaStroke' 0x49F (shapeFrom -- 'kBar') (follow -- 'cyrl/Ka') select-variant 'cyrl/kaStroke' 0x49F (shapeFrom -- 'kBar') (follow -- 'cyrl/Ka')

View file

@ -9,7 +9,8 @@ glyph-block Letter-Latin-Lower-B : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend HooktopLeftBar LetterBarOverlay glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend HooktopLeftBar
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook
define [ToothedBody] : union define [ToothedBody] : union
OBarLeftShape OBarLeftShape
@ -48,9 +49,11 @@ glyph-block Letter-Latin-Lower-B : begin
include : Serifs include : Serifs
set-base-anchor 'overlayOnBar' (SB + 0.5 * Stroke * HVContrast) yOverlay set-base-anchor 'overlayOnBar' (SB + 0.5 * Stroke * HVContrast) yOverlay
set-base-anchor 'overlay' Middle (XH / 2) set-base-anchor 'overlay' Middle (XH / 2)
create-glyph "bBar.\(suffix)" : glyph-proc create-glyph "bBar.\(suffix)" : glyph-proc
include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS
include : LetterBarOverlay.l.in SB XH (Ascender - [if doTS Stroke 0]) include : LetterBarOverlay.l.in SB XH (Ascender - [if doTS Stroke 0])
create-glyph "bSlash.\(suffix)" : glyph-proc create-glyph "bSlash.\(suffix)" : glyph-proc
include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS
include : dispiro include : dispiro
@ -62,6 +65,11 @@ glyph-block Letter-Latin-Lower-B : begin
select-variant 'bBar' 0x180 (follow -- 'b') select-variant 'bBar' 0x180 (follow -- 'b')
select-variant 'bSlash' 0x2422 (follow -- 'b') select-variant 'bSlash' 0x2422 (follow -- 'b')
derive-composites 'bPalatalHook' 0x1D80 'b' : PalatalHook
x -- [mix (Middle + CorrectionOMidS) RightSB 0.75]
y -- 0
yAttach -- [mix O SmallArchDepthA : archv.yFromX 0.75]
link-reduced-variant 'b/sansSerif' 'b' MathSansSerif link-reduced-variant 'b/sansSerif' 'b' MathSansSerif
CreateAccentedComposition 'bTildeOver' 0x1D6C 'b' 'tildeOverOnBar' CreateAccentedComposition 'bTildeOver' 0x1D6C 'b' 'tildeOverOnBar'

View file

@ -10,7 +10,7 @@ glyph-block Letter-Latin-Lower-D : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend CurlyTail glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend CurlyTail
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook
define [ToothedBody] : union define [ToothedBody] : union
OBarRightShape OBarRightShape
@ -82,6 +82,11 @@ glyph-block Letter-Latin-Lower-D : begin
link-reduced-variant 'd/hookBottomBase' 'd' link-reduced-variant 'd/hookBottomBase' 'd'
CreateAccentedComposition 'dTildeOver' 0x1D6D 'd' 'tildeOverOnBar' CreateAccentedComposition 'dTildeOver' 0x1D6D 'd' 'tildeOverOnBar'
derive-composites 'dPalatalHook' 0x1D81 'd/hookBottomBase' : PalatalHook
xAttach -- RightSB
x -- (RightSB + SideJut)
y -- 0
define DCurlyTailConfig : object define DCurlyTailConfig : object
toothedSerifless { false } toothedSerifless { false }
toothedTopSerifed { true } toothedTopSerifed { true }

View file

@ -10,13 +10,21 @@ glyph-block Letter-Latin-Lower-F : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagonalTailL DiagonalTailStdDepth glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagonalTailL DiagonalTailStdDepth
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook
define [SetPalatalHookPos barLeft] : glyph-proc
set-base-anchor 'palatalHookPos' (barLeft + (Stroke + [Math.max VJutStroke (Width / 12)]) * HVContrast) 0
define fbar : XH * DesignParameters.fBarPosToXH + Stroke * DesignParameters.fbarStrokeAdj define fbar : XH * DesignParameters.fBarPosToXH + Stroke * DesignParameters.fbarStrokeAdj
define [SmallFBottomSerif df shift] : dispiro define [SmallFBottomSerif df] : glyph-proc
widths.lhs local l : [mix df.leftSB df.rightSB 0.020] + HalfStroke * TanSlope
flat ([mix df.leftSB df.rightSB 0.02] + HalfStroke * TanSlope + (df.rightSB - df.leftSB) * shift) 0 local r : [mix df.leftSB df.rightSB 0.875] + HalfStroke * TanSlope
curl ([mix df.leftSB df.rightSB 0.875] + HalfStroke * TanSlope + (df.rightSB - df.leftSB) * shift) 0 include : dispiro [widths.lhs] [flat l 0] [curl r 0]
set-base-anchor 'palatalHookPos' r 0
define [NarrowBottomSerif df] : glyph-proc
include : CenterBottomSerif df.middle 0 (LongJut * df.div)
set-base-anchor 'palatalHookPos' (df.middle + LongJut * df.div + HalfStroke * TanSlope) 0
define [StdFShapeT sink offset barleft sw] : sink define [StdFShapeT sink offset barleft sw] : sink
widths.lhs sw widths.lhs sw
@ -62,6 +70,7 @@ glyph-block Letter-Latin-Lower-F : begin
include : HCrossBar.top SB [mix SB RightSB m] bh include : HCrossBar.top SB [mix SB RightSB m] bh
match counterHook match counterHook
[Just CH-NONE] : include : SetPalatalHookPos barLeft
[Just CH-EXTENSION] : include : SmallFDownExtension barLeft [Just CH-EXTENSION] : include : SmallFDownExtension barLeft
[Just CH-HOOK] : begin [Just CH-HOOK] : begin
local barRight : barLeft + Stroke * HVContrast local barRight : barLeft + Stroke * HVContrast
@ -69,7 +78,7 @@ glyph-block Letter-Latin-Lower-F : begin
local counterHookLeft : Math.max SB : barRight - (crossRight - barLeft) local counterHookLeft : Math.max SB : barRight - (crossRight - barLeft)
include : SmallFDownHook df barRight counterHookLeft include : SmallFDownHook df barRight counterHookLeft
[Just CH-DIAGONAL-HOOK] : include : SmallFDiagonalTail df barLeft [Just CH-DIAGONAL-HOOK] : include : SmallFDiagonalTail df barLeft
[Just CH-SERIF] : include : SmallFBottomSerif df 0 [Just CH-SERIF] : include : SmallFBottomSerif df
define [NarrowFShape clcStyle] : function [df m bh counterHook] : glyph-proc define [NarrowFShape clcStyle] : function [df m bh counterHook] : glyph-proc
local topHookExt : match clcStyle local topHookExt : match clcStyle
@ -101,6 +110,7 @@ glyph-block Letter-Latin-Lower-F : begin
include : HCrossBar.top crossLeft (crossRight + crossBarExt) bh include : HCrossBar.top crossLeft (crossRight + crossBarExt) bh
match counterHook match counterHook
[Just CH-NONE] : include : SetPalatalHookPos barLeft
[Just CH-EXTENSION] : include : SmallFDownExtension barLeft [Just CH-EXTENSION] : include : SmallFDownExtension barLeft
[Just CH-HOOK] : begin [Just CH-HOOK] : begin
local barRight : barLeft + Stroke * HVContrast local barRight : barLeft + Stroke * HVContrast
@ -108,7 +118,7 @@ glyph-block Letter-Latin-Lower-F : begin
local counterHookLeft : barRight - (crossRight - barLeft) local counterHookLeft : barRight - (crossRight - barLeft)
include : SmallFDownHook df barRight counterHookLeft include : SmallFDownHook df barRight counterHookLeft
[Just CH-DIAGONAL-HOOK] : include : SmallFDiagonalTail df barLeft [Just CH-DIAGONAL-HOOK] : include : SmallFDiagonalTail df barLeft
[Just CH-SERIF] : include : CenterBottomSerif df.middle 0 (LongJut * df.div) [Just CH-SERIF] : include : NarrowBottomSerif df
define CH-NONE 0 define CH-NONE 0
define CH-SERIF 1 define CH-SERIF 1
@ -159,6 +169,17 @@ glyph-block Letter-Latin-Lower-F : begin
include : df.markSet.(mk) include : df.markSet.(mk)
include : Body df pBar yBar ch include : Body df pBar yBar ch
create-glyph "fPalatalHook.\(suffix)" : glyph-proc
include [refer-glyph "f.\(suffix)"] AS_BASE ALSO_METRICS
if currentGlyph.baseAnchors.palatalHookPos : begin
local attach : currentGlyph.gizmo.unapply currentGlyph.baseAnchors.overlay
local pos : currentGlyph.gizmo.unapply currentGlyph.baseAnchors.palatalHookPos
local gap : Math.max (Width / 8) [AdviceStroke 8]
include : PalatalHook
xAttach -- attach.x
x -- pos.x
y -- pos.y
select-variant 'f' 'f' select-variant 'f' 'f'
link-reduced-variant 'f/sansSerif' 'f' MathSansSerif link-reduced-variant 'f/sansSerif' 'f' MathSansSerif
select-variant 'fLenis' 0xAB35 (shapeFrom -- 'f') select-variant 'fLenis' 0xAB35 (shapeFrom -- 'f')
@ -166,6 +187,7 @@ glyph-block Letter-Latin-Lower-F : begin
select-variant 'f/compLigLeft1' (shapeFrom -- 'f') select-variant 'f/compLigLeft1' (shapeFrom -- 'f')
select-variant 'f/compLigLeft2' (shapeFrom -- 'f') select-variant 'f/compLigLeft2' (shapeFrom -- 'f')
select-variant 'f/phoneticLeft' (shapeFrom -- 'f') select-variant 'f/phoneticLeft' (shapeFrom -- 'f')
select-variant 'fPalatalHook' 0x1D82 (follow -- 'f/tailless')
CreateAccentedComposition 'fBar' 0xA799 'f' 'barOver' CreateAccentedComposition 'fBar' 0xA799 'f' 'barOver'
CreateAccentedComposition 'fTildeOver' 0x1D6E 'f' 'tildeOver' CreateAccentedComposition 'fTildeOver' 0x1D6E 'f' 'tildeOver'

View file

@ -8,7 +8,7 @@ glyph-module
glyph-block Letter-Latin-Lower-G : begin glyph-block Letter-Latin-Lower-G : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend FlatHookDepth glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend FlatHookDepth PalatalHook
create-glyph 'g.doubleStorey' : glyph-proc create-glyph 'g.doubleStorey' : glyph-proc
include : MarkSet.p include : MarkSet.p
@ -77,12 +77,12 @@ glyph-block Letter-Latin-Lower-G : begin
g4 (df.leftSB + offset) (Descender + SHook) g4 (df.leftSB + offset) (Descender + SHook)
if (sink == spiro-outline) {[corner df.leftSB XH]} {} if (sink == spiro-outline) {[corner df.leftSB XH]} {}
export : define [RoundHook df y0] : RoundHookT dispiro df y0 0 Stroke export : define [RoundHook df y0] : RoundHookT dispiro df y0 0 df.mvs
export : define [FlatHook df y0] : begin export : define [FlatHook df y0] : begin
local hd : FlatHookDepth df (9 / 8) local hd : FlatHookDepth df (9 / 8)
local xTerminal : Math.min (df.rightSB - hd.x - 0.1) : mix df.leftSB df.rightSB (1 / 5) local xTerminal : Math.min (df.rightSB - hd.x - 0.1) : mix df.leftSB df.rightSB (1 / 5)
return : dispiro return : dispiro
widths.rhs widths.rhs df.mvs
flat df.rightSB y0 [heading Downward] flat df.rightSB y0 [heading Downward]
curl df.rightSB (Descender + hd.y) curl df.rightSB (Descender + hd.y)
arcvh.superness DesignParameters.tightHookSuperness arcvh.superness DesignParameters.tightHookSuperness
@ -90,10 +90,10 @@ glyph-block Letter-Latin-Lower-G : begin
curl xTerminal Descender [heading Leftward] curl xTerminal Descender [heading Leftward]
export : define [SeriflessBody df top] : glyph-proc export : define [SeriflessBody df top] : glyph-proc
include : OBarRightShape (top -- top) (left -- df.leftSB) (right -- df.rightSB) include : OBarRightShape (top -- top) (left -- df.leftSB) (right -- df.rightSB) (stroke -- df.mvs)
export : define [SerifedBody df top] : glyph-proc export : define [SerifedBody df top] : glyph-proc
include : OBarRightShape (top -- top) (left -- df.leftSB) (right -- df.rightSB) include : SeriflessBody df top
include : tagged 'serifRT' : RightwardTopSerif df.rightSB top SideJut include : tagged 'serifRT' : RightwardTopSerif df.rightSB top SideJut
export : define [EarlessCornerBody df top] : glyph-proc export : define [EarlessCornerBody df top] : glyph-proc
@ -103,6 +103,7 @@ glyph-block Letter-Latin-Lower-G : begin
right -- df.rightSB right -- df.rightSB
rise -- DToothlessRise rise -- DToothlessRise
mBlend -- DMBlend mBlend -- DMBlend
sw -- df.mvs
include : FlipAround df.middle (top / 2) include : FlipAround df.middle (top / 2)
export : define [EarlessRoundedBody df top] : glyph-proc export : define [EarlessRoundedBody df top] : glyph-proc
@ -111,6 +112,7 @@ glyph-block Letter-Latin-Lower-G : begin
left -- df.leftSB left -- df.leftSB
right -- df.rightSB right -- df.rightSB
yTerminal -- (SmallArchDepthB - O) yTerminal -- (SmallArchDepthB - O)
sw -- df.mvs
include : FlipAround df.middle (top / 2) include : FlipAround df.middle (top / 2)
define SingleStoreyConfig : object define SingleStoreyConfig : object
@ -129,18 +131,35 @@ glyph-block Letter-Latin-Lower-G : begin
foreach { suffix { bodyShape hookShape hookStart } } [Object.entries SingleStoreyConfig] : do foreach { suffix { bodyShape hookShape hookStart } } [Object.entries SingleStoreyConfig] : do
create-glyph "g.\(suffix)" : glyph-proc create-glyph "g.\(suffix)" : glyph-proc
define df : DivFrame 1 include : MarkSet.p
include : df.markSet.p
set-base-anchor 'overlay' Middle (XH / 2) set-base-anchor 'overlay' Middle (XH / 2)
define df : DivFrame 1
include : bodyShape df XH include : bodyShape df XH
include : hookShape df (XH - hookStart) include : hookShape df (XH - hookStart)
create-glyph "GScript.\(suffix)" : glyph-proc create-glyph "GScript.\(suffix)" : glyph-proc
define df : DivFrame 1 include : MarkSet.capDesc
include : df.markSet.capDesc
set-base-anchor 'overlay' Middle (CAP / 2) set-base-anchor 'overlay' Middle (CAP / 2)
define df : DivFrame 1
include : bodyShape df CAP include : bodyShape df CAP
include : hookShape df (CAP - hookStart) include : hookShape df (CAP - hookStart)
create-glyph "gPalatalHook.\(suffix)" : glyph-proc
include : MarkSet.p
set-base-anchor 'overlay' Middle (XH / 2)
define dfSub : DivFrame 0.75 2
include : bodyShape dfSub XH
include : hookShape dfSub (XH - hookStart)
include : difference
PalatalHook
x -- RightSB
y -- 0
xAttach -- dfSub.rightSB
intersection
MaskBelow 0
MaskLeft (dfSub.rightSB + [Math.max (Width / 16) [AdviceStroke 12]])
select-variant 'g' 'g' select-variant 'g' 'g'
link-reduced-variant 'g/sansSerif' 'g' MathSansSerif link-reduced-variant 'g/sansSerif' 'g' MathSansSerif
turned 'turng' 0x1D77 'g' Middle [mix Descender XH 0.5] turned 'turng' 0x1D77 'g' Middle [mix Descender XH 0.5]
@ -150,6 +169,9 @@ glyph-block Letter-Latin-Lower-G : begin
follow -- [if SLAB 'gScript/slabSerif' 'gScript/sansSerif'] follow -- [if SLAB 'gScript/slabSerif' 'gScript/sansSerif']
select-variant 'GScript' 0xA7AC select-variant 'GScript' 0xA7AC
follow -- [if SLAB 'gScript/slabSerif' 'gScript/sansSerif'] follow -- [if SLAB 'gScript/slabSerif' 'gScript/sansSerif']
select-variant 'gPalatalHook' 0x1D83
follow -- [if SLAB 'gScript/slabSerif' 'gScript/sansSerif']
alias 'cyrl/de.SRB' null 'gScript' alias 'cyrl/de.SRB' null 'gScript'
alias 'cyrl/de.BGR' null 'gScript' alias 'cyrl/de.BGR' null 'gScript'

View file

@ -11,7 +11,7 @@ glyph-block Letter-Latin-Lower-I : begin
glyph-block-import Letter-Shared : CreateAccentedComposition CreateMultiAccentedComposition CreateOgonekComposition glyph-block-import Letter-Shared : CreateAccentedComposition CreateMultiAccentedComposition CreateOgonekComposition
glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagonalTailR DiagonalTailStdDepth glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagonalTailR DiagonalTailStdDepth
glyph-block-import Letter-Shared : CreateCommaCaronComposition glyph-block-import Letter-Shared : CreateCommaCaronComposition
glyph-block-import Letter-Shared-Shapes : CurlyTail BeltOverlay glyph-block-import Letter-Shared-Shapes : CurlyTail BeltOverlay PalatalHook
glyph-block-export OverrideILMarks glyph-block-export OverrideILMarks
define [OverrideILMarks df xMiddle yTop] : glyph-proc define [OverrideILMarks df xMiddle yTop] : glyph-proc
@ -86,6 +86,7 @@ glyph-block Letter-Latin-Lower-I : begin
local xDot : xMiddle + [StrokeWidthBlend 0.25 0] * TanSlope * df.width local xDot : xMiddle + [StrokeWidthBlend 0.25 0] * TanSlope * df.width
include : OverrideILMarks df xDot top include : OverrideILMarks df xDot top
set-base-anchor 'trailing' [mix left rightTerm 0.5] 0 set-base-anchor 'trailing' [mix left rightTerm 0.5] 0
set-base-anchor 'palatalHookMask' [mix left rightTerm 0.5] (HalfStroke + O)
define [TailedDotlessShape df top xMiddle] : glyph-proc define [TailedDotlessShape df top xMiddle] : glyph-proc
local tailLength : LongJut * 1.05 * [mix 1 df.div 0.75] local tailLength : LongJut * 1.05 * [mix 1 df.div 0.75]
@ -103,6 +104,7 @@ glyph-block Letter-Latin-Lower-I : begin
include : OverrideILMarks df xMiddle top include : OverrideILMarks df xMiddle top
set-base-anchor 'trailing' (xMiddle + x0) 0 set-base-anchor 'trailing' (xMiddle + x0) 0
set-base-anchor 'palatalHookMask' (xMiddle + x0) (HalfStroke + O)
export : define [Tailed df top xMiddle] : if para.isItalic export : define [Tailed df top xMiddle] : if para.isItalic
ItalicDotlessIShape df top xMiddle ItalicDotlessIShape df top xMiddle
@ -126,7 +128,9 @@ glyph-block Letter-Latin-Lower-I : begin
export : define [DiagTailed df top xMiddle] : glyph-proc export : define [DiagTailed df top xMiddle] : glyph-proc
include : OverrideILMarks df xMiddle top include : OverrideILMarks df xMiddle top
set-base-anchor 'trailing' (xMiddle + 0.5 * df.mvs * HVContrast) 0
set-base-anchor 'trailing' (xMiddle + 0.75 * df.mvs * HVContrast) 0
set-base-anchor 'palatalHookMask' currentGlyph.baseAnchors.trailing.x (HalfStroke + O)
include : dispiro include : dispiro
widths.center df.mvs widths.center df.mvs
@ -243,6 +247,23 @@ glyph-block Letter-Latin-Lower-I : begin
include : HOverlayBar [mix SB 0 0.7] [mix RightSB Width 0.7] (0.625 * Ascender) include : HOverlayBar [mix SB 0 0.7] [mix RightSB Width 0.7] (0.625 * Ascender)
include : MarkSet.b include : MarkSet.b
create-glyph "lPalatalHook.\(suffix)" : glyph-proc
include [refer-glyph "l.\(suffix)"] AS_BASE ALSO_METRICS
local attach : if currentGlyph.baseAnchors.trailing
currentGlyph.gizmo.unapply currentGlyph.baseAnchors.trailing
currentGlyph.gizmo.unapply currentGlyph.baseAnchors.overlay
local posX : if currentGlyph.baseAnchors.trailing
attach.x + HVContrast * (0.5 * VJutStroke)
attach.x + HVContrast * HalfStroke + [PalatalHook.adviceGap]
local maskY : if currentGlyph.baseAnchors.palatalHookMask
begin [currentGlyph.gizmo.unapply currentGlyph.baseAnchors.palatalHookMask].y
begin Stroke
include : intersection [MaskBelow maskY] : PalatalHook
x -- posX
y -- 0
xAttach -- attach.x
yOverflow -- Stroke
do "i glyphs" do "i glyphs"
select-variant 'dotlessi' 0x131 select-variant 'dotlessi' 0x131
link-reduced-variant 'dotlessi/sansSerif' 'dotlessi' MathSansSerif link-reduced-variant 'dotlessi/sansSerif' 'dotlessi' MathSansSerif
@ -282,6 +303,7 @@ glyph-block Letter-Latin-Lower-I : begin
select-variant 'lRTail' 0x26D (follow -- 'l/reduced/rtail') select-variant 'lRTail' 0x26D (follow -- 'l/reduced/rtail')
select-variant 'lBeltRTail' 0xA78E (follow -- 'l/reduced/rtailDec') select-variant 'lBeltRTail' 0xA78E (follow -- 'l/reduced/rtailDec')
select-variant 'llWelsh' 0x1EFB (follow -- 'l') select-variant 'llWelsh' 0x1EFB (follow -- 'l')
select-variant 'lPalatalHook' 0x1D85 (follow -- 'l')
CreateCommaCaronComposition 'lcaron' 0x13E 'l' CreateCommaCaronComposition 'lcaron' 0x13E 'l'
derive-glyphs 'lSlash' 0x142 'l' : lambda [src gr] : glyph-proc derive-glyphs 'lSlash' 0x142 'l' : lambda [src gr] : glyph-proc

View file

@ -10,7 +10,7 @@ glyph-block Letter-Latin-Lower-M : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend
glyph-block-import Letter-Shared-Shapes : nShoulder nShoulderMask CyrDescender glyph-block-import Letter-Shared-Shapes : nShoulder nShoulderMask CyrDescender PalatalHook
define [SmallMSmooth df] : df.div * (0.5 * SmallArchDepth + 0.375 * Stroke) define [SmallMSmooth df] : df.div * (0.5 * SmallArchDepth + 0.375 * Stroke)
define [SmallMShoulderSpiro] : params [left right top bottom width fine df coBottom] : glyph-proc define [SmallMShoulderSpiro] : params [left right top bottom width fine df coBottom] : glyph-proc
@ -268,6 +268,11 @@ glyph-block Letter-Latin-Lower-M : begin
alias 'cyrl/te.BGR' null 'cyrl/te.italic' alias 'cyrl/te.BGR' null 'cyrl/te.italic'
derive-composites 'cyrl/teDescender.italic' null 'cyrl/te.italic' derive-composites 'cyrl/teDescender.italic' null 'cyrl/te.italic'
CyrDescender [DivFrame para.diversityM 3].rightSB CyrDescender [DivFrame para.diversityM 3].rightSB
derive-composites 'mPalatalHook' 0x1D86 'cyrl/te.italic'
PalatalHook
xAttach -- [DivFrame para.diversityM 3].rightSB
x -- [DivFrame para.diversityM 3].rightSB + SideJut
y -- 0
select-variant 'mLTail' 0x271 select-variant 'mLTail' 0x271
select-variant 'turnmLeg' 0x270 (follow -- 'm') select-variant 'turnmLeg' 0x270 (follow -- 'm')

View file

@ -12,7 +12,7 @@ glyph-block Letter-Latin-Lower-N : begin
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : CurlyTail nShoulder nShoulderKnots nShoulderMask glyph-block-import Letter-Shared-Shapes : CurlyTail nShoulder nShoulderKnots nShoulderMask
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend
glyph-block-import Letter-Shared-Shapes : CyrDescender glyph-block-import Letter-Shared-Shapes : CyrDescender PalatalHook
define [AdjustTrailingAnchor] : glyph-proc define [AdjustTrailingAnchor] : glyph-proc
define trAnchor currentGlyph.baseAnchors.trailing define trAnchor currentGlyph.baseAnchors.trailing
@ -155,6 +155,11 @@ glyph-block Letter-Latin-Lower-N : begin
CreateAccentedComposition 'nTildeOver' 0x1D70 'n' 'tildeOverWide' CreateAccentedComposition 'nTildeOver' 0x1D70 'n' 'tildeOverWide'
derive-composites 'cyrl/peDescender.italic' null 'cyrl/peItalicDescBase' [CyrDescender RightSB] derive-composites 'cyrl/peDescender.italic' null 'cyrl/peItalicDescBase' [CyrDescender RightSB]
derive-composites 'nPalatalHook' 0x1D87 'cyrl/peItalicDescBase'
PalatalHook
xAttach -- RightSB
x -- RightSB + SideJut
y -- 0
do "n with Apostrophe" do "n with Apostrophe"
derive-glyphs 'nApostrophe/comma' null 'commaAbove/asPunctuation' : function [src gr] : glyph-proc derive-glyphs 'nApostrophe/comma' null 'commaAbove/asPunctuation' : function [src gr] : glyph-proc

View file

@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-P : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend HooktopLeftBar glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend HooktopLeftBar PalatalHook
define [SmallPSerifLT] : tagged 'serifLT' : LeftwardTopSerif SB XH SideJut define [SmallPSerifLT] : tagged 'serifLT' : LeftwardTopSerif SB XH SideJut
@ -60,6 +60,11 @@ glyph-block Letter-Latin-Lower-P : begin
link-reduced-variant 'p/hookTopBase' 'p' link-reduced-variant 'p/hookTopBase' 'p'
select-variant 'cyrl/er' 0x440 (shapeFrom -- 'p') (follow -- 'p') select-variant 'cyrl/er' 0x440 (shapeFrom -- 'p') (follow -- 'p')
derive-composites 'pPalatalHook' 0x1D88 'p' : PalatalHook
x -- [mix (Middle + CorrectionOMidS) RightSB 0.75]
y -- 0
yAttach -- [mix O SmallArchDepthA : archv.yFromX 0.75]
CreateAccentedComposition 'pTildeOver' 0x1D71 'p' 'tildeOverOnBar' CreateAccentedComposition 'pTildeOver' 0x1D71 'p' 'tildeOverOnBar'
derive-glyphs 'cyrl/rrTick' 0x48F 'cyrl/er' : lambda [src gr] : glyph-proc derive-glyphs 'cyrl/rrTick' 0x48F 'cyrl/er' : lambda [src gr] : glyph-proc

View file

@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-R : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend PalatalHook
glyph-block-import Letter-Blackboard : BBS BBD BBBarRight glyph-block-import Letter-Blackboard : BBS BBD BBBarRight
local dfN : DivFrame 1 local dfN : DivFrame 1
@ -41,9 +41,14 @@ glyph-block Letter-Latin-Lower-R : begin
local rSerifX : xBar - strokeBar / 2 * HVContrast local rSerifX : xBar - strokeBar / 2 * HVContrast
local rSerifLeftJut : SideJut + RBalance * (0.3 + rSerifLeftExtender) local rSerifLeftJut : SideJut + RBalance * (0.3 + rSerifLeftExtender)
local rSerifRightJut : rSerifLeftJut * 1.20 local rSerifRightJut : rSerifLeftJut * 1.20
local [rBottomSerif y] : tagged 'serifLB' : union local [rBottomSerif y] : glyph-proc
LeftwardBottomSerif rSerifX y (rSerifLeftJut + (strokeBar / 2) * HVContrast) include : tagged 'serifLB' : union
RightwardBottomSerif rSerifX y (rSerifRightJut + (strokeBar / 2) * HVContrast) LeftwardBottomSerif rSerifX y (rSerifLeftJut + (strokeBar / 2) * HVContrast)
RightwardBottomSerif rSerifX y (rSerifRightJut + (strokeBar / 2) * HVContrast)
local xAtt : rSerifX + rSerifRightJut + (strokeBar / 2) * HVContrast
set-base-anchor 'palatalHookAttach' xAtt 0
set-base-anchor 'palatalHookPos' xAtt 0
local [rTopSerif y] : tagged 'serifLT' local [rTopSerif y] : tagged 'serifLT'
LeftwardTopSerif rSerifX y (rSerifLeftJut + (strokeBar / 2) * HVContrast) LeftwardTopSerif rSerifX y (rSerifLeftJut + (strokeBar / 2) * HVContrast)
local fine ShoulderFine local fine ShoulderFine
@ -67,15 +72,17 @@ glyph-block Letter-Latin-Lower-R : begin
[Just rNarrowSerifed] : mix df.width rHookX df.div [Just rNarrowSerifed] : mix df.width rHookX df.div
[Just rNarrow] : xArchMiddle + 0.1 [Just rNarrow] : xArchMiddle + 0.1
__ rHookX __ rHookX
return : object xBar rBottomSerif rTopSerif fine xArchMiddle skew rHookX rHookXN rHookY hookSuperness local [setMarks doTopSerif] : glyph-proc
set-base-anchor 'above' [mix [mix df.leftSB (xBar - Stroke * HVContrast) : if doTopSerif 0.5 1] df.rightSB 0.5] XH
set-base-anchor 'overlay' (xBar - Stroke * 0.25) (XH * 0.5)
set-base-anchor 'palatalHookAttach' xBar 0
set-base-anchor 'palatalHookPos' (xBar + [PalatalHook.adviceGap]) 0
define [OverrideMarks doTopSerif xBar] : glyph-proc return : object xBar rBottomSerif rTopSerif fine xArchMiddle skew rHookX rHookXN rHookY hookSuperness setMarks
set-base-anchor 'above' [mix [mix df.leftSB (xBar - Stroke * HVContrast) : if doTopSerif 0.5 1] df.rightSB 0.5] XH
set-base-anchor 'overlay' (xBar - Stroke * 0.25) (XH * 0.5)
define [StandardShape df md doTopSerif doBottomSerif] : glyph-proc define [StandardShape df md doTopSerif doBottomSerif] : glyph-proc
define [object xBar rBottomSerif rTopSerif fine xArchMiddle skew rHookX rHookY hookSuperness] : RDim df md define [object xBar rBottomSerif rTopSerif fine xArchMiddle skew rHookX rHookY hookSuperness setMarks] : RDim df md
include : OverrideMarks doTopSerif xBar include : setMarks doTopSerif
include : dispiro include : dispiro
widths.lhs widths.lhs
g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward] g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward]
@ -90,8 +97,8 @@ glyph-block Letter-Latin-Lower-R : begin
define [CompactShape df md ts bs] : CompactShapeImpl df md false ts bs define [CompactShape df md ts bs] : CompactShapeImpl df md false ts bs
define [CornerHookShape df md ts bs] : CompactShapeImpl df md true ts bs define [CornerHookShape df md ts bs] : CompactShapeImpl df md true ts bs
define [CompactShapeImpl df md doHookSerif doTopSerif doBottomSerif] : glyph-proc define [CompactShapeImpl df md doHookSerif doTopSerif doBottomSerif] : glyph-proc
define [object xBar rBottomSerif rTopSerif fine xArchMiddle rHookXN] : RDim df md define [object xBar rBottomSerif rTopSerif fine xArchMiddle rHookXN setMarks] : RDim df md
include : OverrideMarks doTopSerif xBar include : setMarks doTopSerif
define xCor : if doHookSerif 0 : CorrectionOMidS * [linreg 72 0.75 108 1 Stroke] define xCor : if doHookSerif 0 : CorrectionOMidS * [linreg 72 0.75 108 1 Stroke]
define arcTopShift : match md define arcTopShift : match md
@ -119,8 +126,8 @@ glyph-block Letter-Latin-Lower-R : begin
if doTopSerif : include : rTopSerif XH if doTopSerif : include : rTopSerif XH
define [EarlessCornerShape df md doTopSerif doBottomSerif] : glyph-proc define [EarlessCornerShape df md doTopSerif doBottomSerif] : glyph-proc
define [object xBar xArchMiddle rHookX rHookY hookSuperness rBottomSerif] : RDim df md define [object xBar xArchMiddle rHookX rHookY hookSuperness rBottomSerif setMarks] : RDim df md
include : OverrideMarks doTopSerif xBar include : setMarks doTopSerif
include : dispiro include : dispiro
widths.lhs widths.lhs
g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward] g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward]
@ -131,8 +138,8 @@ glyph-block Letter-Latin-Lower-R : begin
if doBottomSerif : include : rBottomSerif 0 if doBottomSerif : include : rBottomSerif 0
define [EarlessRoundedShape df md doTopSerif doBottomSerif] : glyph-proc define [EarlessRoundedShape df md doTopSerif doBottomSerif] : glyph-proc
define [object xBar xArchMiddle rHookX rHookY hookSuperness rBottomSerif] : RDim df md define [object xBar xArchMiddle rHookX rHookY hookSuperness rBottomSerif setMarks] : RDim df md
include : OverrideMarks doTopSerif xBar include : setMarks doTopSerif
local hx : Math.max rHookX (xBar + 1.25 * Stroke) local hx : Math.max rHookX (xBar + 1.25 * Stroke)
include : dispiro include : dispiro
widths.lhs widths.lhs
@ -179,6 +186,12 @@ glyph-block Letter-Latin-Lower-R : begin
include : VBarRight xBar Descender 0 include : VBarRight xBar Descender 0
if doBS : include : rBottomSerif Descender if doBS : include : rBottomSerif Descender
create-glyph "rPalatalHook.\(suffix)" : glyph-proc
include [refer-glyph "r.\(suffix)"] AS_BASE ALSO_METRICS
local attach : currentGlyph.gizmo.unapply currentGlyph.baseAnchors.palatalHookAttach
local pos : currentGlyph.gizmo.unapply currentGlyph.baseAnchors.palatalHookPos
include : PalatalHook (x -- pos.x) (y -- pos.y) (xAttach -- attach.x)
create-glyph "rRTail.\(suffix)" : glyph-proc create-glyph "rRTail.\(suffix)" : glyph-proc
set-width df.width set-width df.width
include : df.markSet.p include : df.markSet.p
@ -229,7 +242,7 @@ glyph-block Letter-Latin-Lower-R : begin
select-variant 'rTurnRTail' 0x27B select-variant 'rTurnRTail' 0x27B
select-variant 'rTurnLongLetRTail' 0x1DF08 (follow -- 'rTurnRTail') select-variant 'rTurnLongLetRTail' 0x1DF08 (follow -- 'rTurnRTail')
select-variant 'rPalatalHook' 0x1D89 (follow -- 'r')
define [BBRShape df md doTopSerif doBottomSerif] : glyph-proc define [BBRShape df md doTopSerif doBottomSerif] : glyph-proc
define [object xBar fine xArchMiddle skew rHookX rHookY hookSuperness] : RDim df md BBD BBS define [object xBar fine xArchMiddle skew rHookX rHookY hookSuperness] : RDim df md BBD BBS

View file

@ -17,6 +17,7 @@ glyph-block Letter-Latin-S : begin
glyph-block-import Letter-Shared-Shapes : ArcStartSerifL ArcEndSerifR glyph-block-import Letter-Shared-Shapes : ArcStartSerifL ArcEndSerifR
glyph-block-import Letter-Shared-Shapes : ArcStartInwardSerifR ArcEndInwardSerifL glyph-block-import Letter-Shared-Shapes : ArcStartInwardSerifR ArcEndInwardSerifL
glyph-block-import Letter-Shared-Shapes : ArcStartInwardSerifL ArcEndInwardSerifR glyph-block-import Letter-Shared-Shapes : ArcStartInwardSerifL ArcEndInwardSerifR
glyph-block-import Letter-Shared-Shapes : PalatalHook
define SLAB-NONE 0 define SLAB-NONE 0
define SLAB-CLASSICAL 1 define SLAB-CLASSICAL 1
@ -375,6 +376,11 @@ glyph-block Letter-Latin-S : begin
select-variant 's/phoneticRight' select-variant 's/phoneticRight'
derive-composites 'sPalatalHook' 0x1D8A 's' : PalatalHook
x -- [mix (Middle + CorrectionOMidS) RightSB 0.75]
y -- 0
yAttach -- [mix O [adviceSSmooth XH (-1) [AdviceStroke2 2 3 XH]] : archv.yFromX 0.75]
CreateAccentedComposition 'sTildeOver' 0x1D74 's' 'tildeOverWide' CreateAccentedComposition 'sTildeOver' 0x1D74 's' 'tildeOverWide'
create-glyph 'mathbb/S' 0x1D54A : glyph-proc create-glyph 'mathbb/S' 0x1D54A : glyph-proc

View file

@ -9,7 +9,7 @@ glyph-block Letter-Latin-V : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-export VShape VShapeOutline glyph-block-export VShape VShapeOutline
glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius SerifFrame glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius SerifFrame PalatalHook
glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Blackboard : BBS BBD
define VCornerHalfWidth : HalfStroke * HVContrast * 1.15 define VCornerHalfWidth : HalfStroke * HVContrast * 1.15
@ -183,10 +183,19 @@ glyph-block Letter-Latin-V : begin
select-variant 'V' 'V' select-variant 'V' 'V'
link-reduced-variant 'V/sansSerif' 'V' MathSansSerif link-reduced-variant 'V/sansSerif' 'V' MathSansSerif
select-variant 'v' 'v'
link-reduced-variant 'v/sansSerif' 'v' MathSansSerif
select-variant 'smcpV' 0x1D20 (shapeFrom -- 'v') (follow -- 'V') select-variant 'smcpV' 0x1D20 (shapeFrom -- 'v') (follow -- 'V')
select-variant 'vHookTop' 0x2C71 (follow -- 'vHookTop')
select-variant 'v' 'v'
select-variant 'v/nonCursive' (shapeFrom -- 'v')
link-reduced-variant 'v/sansSerif' 'v' MathSansSerif
derive-composites 'vPalatalHook' 0x1D8C 'v/nonCursive'
PalatalHook
xAttach -- Middle
x -- (Middle + HVContrast * HalfStroke + [PalatalHook.adviceGap])
y -- 0
select-variant 'vHookTop' 0x2C71 (follow -- 'v/nonCursive')
select-variant 'cyrl/Izhitsa' 0x474 (follow -- 'VHookTop') (shapeFrom -- 'VHookTop') select-variant 'cyrl/Izhitsa' 0x474 (follow -- 'VHookTop') (shapeFrom -- 'VHookTop')
alias 'cyrl/izhitsa' 0x475 'vHookTop' alias 'cyrl/izhitsa' 0x475 'vHookTop'

View file

@ -160,6 +160,7 @@ glyph-block Letter-Latin-X : begin
derive-composites 'cyrl/HaHook' 0x4FC 'cyrl/Ha' [CyrHookDescender RightSB] derive-composites 'cyrl/HaHook' 0x4FC 'cyrl/Ha' [CyrHookDescender RightSB]
derive-composites 'cyrl/haHook' 0x4FD 'cyrl/ha' [CyrHookDescender RightSB] derive-composites 'cyrl/haHook' 0x4FD 'cyrl/ha' [CyrHookDescender RightSB]
alias 'xPalatalHook' 0x1D8D 'cyrl/haHook'
define [CyrlHaBarShape top] : HOverlayBar [mix SB RightSB 0.08] [mix SB RightSB 0.92] (top / 2) define [CyrlHaBarShape top] : HOverlayBar [mix SB RightSB 0.08] [mix SB RightSB 0.92] (top / 2)
derive-composites 'cyrl/HaBar' 0x4FE 'cyrl/Ha' [CyrlHaBarShape CAP] derive-composites 'cyrl/HaBar' 0x4FE 'cyrl/Ha' [CyrlHaBarShape CAP]

View file

@ -9,7 +9,7 @@ glyph-block Letter-Latin-Z : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : HCurlyTail glyph-block-import Letter-Shared-Shapes : HCurlyTail PalatalHook
glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Blackboard : BBS BBD
glyph-block-import Letter-Latin-X : XStrand glyph-block-import Letter-Latin-X : XStrand
@ -88,8 +88,8 @@ glyph-block Letter-Latin-Z : begin
corner (RightSB - xDiagWidth) (2 * top) corner (RightSB - xDiagWidth) (2 * top)
corner (RightSB - xDiagWidth) (top - yFootHeight) corner (RightSB - xDiagWidth) (top - yFootHeight)
dispiro dispiro
flat (SB + 2 * O) (top - yHookDepth) [widths.rhs.heading hookTerminalWidth Upward] flat SB (top - yHookDepth) [widths.rhs.heading hookTerminalWidth Upward]
curl (SB + 2 * O) (top - yHookDepth + yHookStraightDepth) [heading Upward] curl SB (top - yHookDepth + yHookStraightDepth) [heading Upward]
arcvh arcvh
g2.right.mid (SB + xHookDepth) (top - O) [widths.rhs.heading Stroke Rightward] g2.right.mid (SB + xHookDepth) (top - O) [widths.rhs.heading Stroke Rightward]
flat [mix (SB + xMockTailDepth) RightSB kTop] (top - kTop * yTailDepth) flat [mix (SB + xMockTailDepth) RightSB kTop] (top - kTop * yTailDepth)
@ -139,8 +139,8 @@ glyph-block Letter-Latin-Z : begin
corner RightSB top corner RightSB top
dispiro dispiro
flat (RightSB - 2 * O) yHookDepth [widths.rhs.heading hookTerminalWidth Downward] flat RightSB yHookDepth [widths.rhs.heading hookTerminalWidth Downward]
curl (RightSB - 2 * O) (yHookDepth - yHookStraightDepth) [heading Downward] curl RightSB (yHookDepth - yHookStraightDepth) [heading Downward]
arcvh arcvh
g2.left.mid (RightSB - xHookDepth) O [widths.rhs.heading Stroke Leftward] g2.left.mid (RightSB - xHookDepth) O [widths.rhs.heading Stroke Leftward]
flat [mix (RightSB - xHookDepth) SB kBot] (kBot * yTailDepth) flat [mix (RightSB - xHookDepth) SB kBot] (kBot * yTailDepth)
@ -239,7 +239,14 @@ glyph-block Letter-Latin-Z : begin
create-glyph "zDesc.\(suffix)" : glyph-proc create-glyph "zDesc.\(suffix)" : glyph-proc
include [refer-glyph "z.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "z.\(suffix)"] AS_BASE ALSO_METRICS
eject-contour 'serifRB' eject-contour 'serifRB'
include : VBarRight [mix SB RightSB 1.05] (HalfStroke - LongJut) Stroke include : VBarRight RightSB (HalfStroke - LongJut)
if (small == SmallZCursiveShape) Hook Stroke
create-glyph "zPalatalHook.\(suffix)" : glyph-proc
include [refer-glyph "z.\(suffix)"] AS_BASE ALSO_METRICS
eject-contour 'serifRB'
include : PalatalHook RightSB 0
yOverflow -- [if (small == SmallZCursiveShape) Hook Stroke]
create-glyph "z/rtailBase.\(suffix)" : glyph-proc create-glyph "z/rtailBase.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
@ -296,6 +303,7 @@ glyph-block Letter-Latin-Z : begin
select-variant 'ZSwash' 0x2C7F (follow -- 'ZDesc') select-variant 'ZSwash' 0x2C7F (follow -- 'ZDesc')
select-variant 'zSwash' 0x240 (follow -- 'zDesc') select-variant 'zSwash' 0x240 (follow -- 'zDesc')
select-variant 'zCurlyTail' 0x291 (follow -- 'zDesc') select-variant 'zCurlyTail' 0x291 (follow -- 'zDesc')
select-variant 'zPalatalHook' 0x1D8E (follow -- 'zDesc')
alias 'grek/Zeta' 0x396 'Z/reduced' alias 'grek/Zeta' 0x396 'Z/reduced'
alias-reduced-variant 'grek/Zeta/sansSerif' 'grek/Zeta' 'Z/reduced/sansSerif' MathSansSerif alias-reduced-variant 'grek/Zeta/sansSerif' 'grek/Zeta' 'Z/reduced/sansSerif' MathSansSerif

View file

@ -501,16 +501,11 @@ glyph-block Letter-Shared-Shapes : begin
define [CyrHookDescender] : params [x [connex 0.5] [overflow nothing]] : begin define [CyrHookDescender] : params [x [connex 0.5] [overflow nothing]] : begin
local descenderOverflow : fallback overflow SideJut local descenderOverflow : fallback overflow SideJut
local xRef : x + descenderOverflow + 0.25 * Stroke local xRef : x + descenderOverflow + 0.25 * Stroke
local hd : FlatHookDepth [DivFrame 1] PalatalHook
return : union x -- x + descenderOverflow + 0.25 * Stroke
HBarTop (x - connex * Stroke * HVContrast) (x + descenderOverflow) Stroke y -- 0
dispiro xAttach -- (x - connex * Stroke * HVContrast)
widths.rhs VJutStroke yOverflow -- Stroke
flat xRef Stroke [heading Downward]
curl xRef (hd.y - Hook - 0.25 * VJutStroke) [heading Downward]
arcvh
flat (xRef - hd.x + 0.25 * VJutStroke * HVContrast) (0 - Hook)
curl (xRef - HookX - 0.5 * VJutStroke * HVContrast) (0 - Hook)
glyph-block-export CyrTailDescender glyph-block-export CyrTailDescender
define [CyrTailDescender] : params [x [connex 0.5] [overflow nothing]] : begin define [CyrTailDescender] : params [x [connex 0.5] [overflow nothing]] : begin
@ -534,6 +529,20 @@ glyph-block Letter-Shared-Shapes : begin
HBarTop (x + connex * Stroke * HVContrast) (x - descenderOverflow) Stroke HBarTop (x + connex * Stroke * HVContrast) (x - descenderOverflow) Stroke
glyph-proc glyph-proc
glyph-block-export PalatalHook
define [PalatalHook] : params [x y [xAttach x] [yAttach y] [yOverflow 0]] : glyph-proc
local hd : FlatHookDepth [DivFrame 1]
if (xAttach < x) : include : HBarBottom xAttach x yAttach
include : dispiro
widths.rhs VJutStroke
flat x (yAttach + yOverflow) [heading Downward]
curl x (y + hd.y - Hook - 0.25 * VJutStroke)
arcvh
flat (x - hd.x + 0.25 * VJutStroke * HVContrast) (y - Hook)
curl (x - HookX - 0.5 * VJutStroke * HVContrast) (y - Hook)
set PalatalHook.adviceGap : function [] : HVContrast * VJutStroke + [Math.max (Width / 16) [AdviceStroke 12]]
glyph-block-export HooktopLeftBar glyph-block-export HooktopLeftBar
define [HooktopLeftBar] : params [[bottom 0]] : glyph-proc define [HooktopLeftBar] : params [[bottom 0]] : glyph-proc
local yTurn : CAP - Hook - HalfStroke local yTurn : CAP - Hook - HalfStroke

View file

@ -351,6 +351,10 @@ export function SetupBuilders(bindings) {
arcvh.superness = function (s) { arcvh.superness = function (s) {
return arcvh(DEFAULT_STEPS, s); return arcvh(DEFAULT_STEPS, s);
}; };
archv.yFromX = function (px, _s) {
const s = fallback(_s, Superness);
return 1 - Math.pow(1 - Math.pow(px, s), 1 / s);
};
function dispiro(...args) { function dispiro(...args) {
return new DispiroImpl(bindings, args); return new DispiroImpl(bindings, args);
} }

View file

@ -20,27 +20,37 @@ define-macro params : syntax-rules
local ta : env.newt local ta : env.newt
local tb : env.newt local tb : env.newt
local t : env.newt local t : env.newt
local ps `[begin local ps `[begin
[local @ta : {}.slice.call arguments 0] [local @ta : {}.slice.call arguments 0]
[local @tb {}] [local @tb {}]
[for [local @t 0] (@t < @ta.length) [inc @t] : if [not : @ta.(@t) <@ $NamedParameterPair$] : @tb.push @ta.(@t)] [for [local @t 0] (@t < @ta.length) [inc @t] : if [not : @ta.(@t) <@ $NamedParameterPair$] : @tb.push @ta.(@t)]
] ]
local aps `[begin]
local dps `[begin] local declarations `[begin]
local namedAssigns `[begin]
local indexAssigns `[begin]
local tearDowns `[begin]
local j 0 local j 0
foreach [pf : items-of : formOf _pairs] : begin foreach [pf : items-of : formOf _pairs] : begin
local name local name
if [atom pf] : then if [atom pf] : then
ps.push `[local @pf : fallback @pf (@tb).(@{".quote" j})] declarations.push `[local @pf]
indexAssigns.push `[set @pf : fallback @pf (@tb).(@{".quote" j})]
set name pf set name pf
: else : else
ps.push `[local @(pf.0) : fallback @(pf.0) (@tb).(@{".quote" j}) @(pf.1)] declarations.push `[local @(pf.0)]
indexAssigns.push `[set @(pf.0) : fallback @(pf.0) (@tb).(@{".quote" j}) @(pf.1)]
set name pf.0 set name pf.0
aps.push `[if (@t && @t <@ $NamedParameterPair$ && @t.left == @{".quote" name}) [set @name @t.right]] if pf.2 : tearDowns.push `[local @(pf.2) @name]
if pf.2 : dps.push `[local @(pf.2) @name] namedAssigns.push `[if (@t && @t <@ $NamedParameterPair$ && @t.left == @{".quote" name}) [set @name @t.right]]
inc j inc j
ps.push `[foreach [@t : items-of @ta] @aps]
ps.push dps ps.push declarations
ps.push `[foreach [@t : items-of @ta] @namedAssigns]
ps.push indexAssigns
ps.push tearDowns
ps.push : formOf body ps.push : formOf body
return : dirty ps return : dirty ps

View file

@ -2153,6 +2153,7 @@ selector."f/sansSerif" = "serifless"
selector."f/compLigLeft1" = "flatHookCLC1" selector."f/compLigLeft1" = "flatHookCLC1"
selector."f/compLigLeft2" = "flatHookCLC2" selector."f/compLigLeft2" = "flatHookCLC2"
selector."f/phoneticLeft" = "seriflessCrossbarAtXHeight" selector."f/phoneticLeft" = "seriflessCrossbarAtXHeight"
selector."f/tailless" = "serifless"
selector.fLenis = "serifless" selector.fLenis = "serifless"
selector.fLTail = "tailed" selector.fLTail = "tailed"
selector.dotlessjWithStrokeAndHook = "tailed" selector.dotlessjWithStrokeAndHook = "tailed"
@ -2165,6 +2166,7 @@ selector."f/sansSerif" = "serifless"
selector."f/compLigLeft1" = "flatHookSerifedCLC1" selector."f/compLigLeft1" = "flatHookSerifedCLC1"
selector."f/compLigLeft2" = "flatHookSerifedCLC2" selector."f/compLigLeft2" = "flatHookSerifedCLC2"
selector."f/phoneticLeft" = "serifedCrossbarAtXHeight" selector."f/phoneticLeft" = "serifedCrossbarAtXHeight"
selector."f/tailless" = "serifed"
selector.fLenis = "serifless" selector.fLenis = "serifless"
selector.fLTail = "tailed" selector.fLTail = "tailed"
selector.dotlessjWithStrokeAndHook = "tailed" selector.dotlessjWithStrokeAndHook = "tailed"
@ -2177,6 +2179,7 @@ selector."f/sansSerif" = "tailed"
selector."f/compLigLeft1" = "flatHookTailedCLC1" selector."f/compLigLeft1" = "flatHookTailedCLC1"
selector."f/compLigLeft2" = "flatHookTailedCLC2" selector."f/compLigLeft2" = "flatHookTailedCLC2"
selector."f/phoneticLeft" = "tailedCrossbarAtXHeight" selector."f/phoneticLeft" = "tailedCrossbarAtXHeight"
selector."f/tailless" = "serifless"
selector.fLenis = "serifless" selector.fLenis = "serifless"
selector.fLTail = "tailed" selector.fLTail = "tailed"
selector.dotlessjWithStrokeAndHook = "tailed" selector.dotlessjWithStrokeAndHook = "tailed"
@ -2189,6 +2192,7 @@ selector."f/sansSerif" = "extended"
selector."f/compLigLeft1" = "flatHookExtendedCLC1" selector."f/compLigLeft1" = "flatHookExtendedCLC1"
selector."f/compLigLeft2" = "flatHookExtendedCLC2" selector."f/compLigLeft2" = "flatHookExtendedCLC2"
selector."f/phoneticLeft" = "extendedCrossbarAtXHeight" selector."f/phoneticLeft" = "extendedCrossbarAtXHeight"
selector."f/tailless" = "serifless"
selector.fLenis = "serifless" selector.fLenis = "serifless"
selector.fLTail = "tailed" selector.fLTail = "tailed"
selector.dotlessjWithStrokeAndHook = "tailed" selector.dotlessjWithStrokeAndHook = "tailed"
@ -2201,6 +2205,7 @@ selector."f/sansSerif" = "diagonalTailed"
selector."f/compLigLeft1" = "flatHookDiagonalTailedCLC1" selector."f/compLigLeft1" = "flatHookDiagonalTailedCLC1"
selector."f/compLigLeft2" = "flatHookDiagonalTailedCLC2" selector."f/compLigLeft2" = "flatHookDiagonalTailedCLC2"
selector."f/phoneticLeft" = "diagonalTailedCrossbarAtXHeight" selector."f/phoneticLeft" = "diagonalTailedCrossbarAtXHeight"
selector."f/tailless" = "serifless"
selector.fLenis = "serifless" selector.fLenis = "serifless"
selector.fLTail = "tailed" selector.fLTail = "tailed"
selector.dotlessjWithStrokeAndHook = "tailed" selector.dotlessjWithStrokeAndHook = "tailed"
@ -2213,6 +2218,7 @@ selector."f/sansSerif" = "seriflessCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookCLC1" selector."f/compLigLeft1" = "flatHookCLC1"
selector."f/compLigLeft2" = "flatHookCLC2" selector."f/compLigLeft2" = "flatHookCLC2"
selector."f/phoneticLeft" = "seriflessCrossbarAtXHeight" selector."f/phoneticLeft" = "seriflessCrossbarAtXHeight"
selector."f/tailless" = "seriflessCrossbarAtXHeight"
selector.fLenis = "seriflessCrossbarAtXHeight" selector.fLenis = "seriflessCrossbarAtXHeight"
selector.fLTail = "tailedCrossbarAtXHeight" selector.fLTail = "tailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight"
@ -2225,6 +2231,7 @@ selector."f/sansSerif" = "seriflessCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookSerifedCLC1" selector."f/compLigLeft1" = "flatHookSerifedCLC1"
selector."f/compLigLeft2" = "flatHookSerifedCLC2" selector."f/compLigLeft2" = "flatHookSerifedCLC2"
selector."f/phoneticLeft" = "serifedCrossbarAtXHeight" selector."f/phoneticLeft" = "serifedCrossbarAtXHeight"
selector."f/tailless" = "serifedCrossbarAtXHeight"
selector.fLenis = "seriflessCrossbarAtXHeight" selector.fLenis = "seriflessCrossbarAtXHeight"
selector.fLTail = "tailedCrossbarAtXHeight" selector.fLTail = "tailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight"
@ -2237,6 +2244,7 @@ selector."f/sansSerif" = "tailedCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookTailedCLC1" selector."f/compLigLeft1" = "flatHookTailedCLC1"
selector."f/compLigLeft2" = "flatHookTailedCLC2" selector."f/compLigLeft2" = "flatHookTailedCLC2"
selector."f/phoneticLeft" = "tailedCrossbarAtXHeight" selector."f/phoneticLeft" = "tailedCrossbarAtXHeight"
selector."f/tailless" = "seriflessCrossbarAtXHeight"
selector.fLenis = "seriflessCrossbarAtXHeight" selector.fLenis = "seriflessCrossbarAtXHeight"
selector.fLTail = "tailedCrossbarAtXHeight" selector.fLTail = "tailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight"
@ -2249,6 +2257,7 @@ selector."f/sansSerif" = "extendedCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookExtendedCLC1" selector."f/compLigLeft1" = "flatHookExtendedCLC1"
selector."f/compLigLeft2" = "flatHookExtendedCLC2" selector."f/compLigLeft2" = "flatHookExtendedCLC2"
selector."f/phoneticLeft" = "extendedCrossbarAtXHeight" selector."f/phoneticLeft" = "extendedCrossbarAtXHeight"
selector."f/tailless" = "seriflessCrossbarAtXHeight"
selector.fLenis = "seriflessCrossbarAtXHeight" selector.fLenis = "seriflessCrossbarAtXHeight"
selector.fLTail = "tailedCrossbarAtXHeight" selector.fLTail = "tailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight"
@ -2261,6 +2270,7 @@ selector."f/sansSerif" = "diagonalTailedCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookDiagonalTailedCLC1" selector."f/compLigLeft1" = "flatHookDiagonalTailedCLC1"
selector."f/compLigLeft2" = "flatHookDiagonalTailedCLC2" selector."f/compLigLeft2" = "flatHookDiagonalTailedCLC2"
selector."f/phoneticLeft" = "diagonalTailedCrossbarAtXHeight" selector."f/phoneticLeft" = "diagonalTailedCrossbarAtXHeight"
selector."f/tailless" = "seriflessCrossbarAtXHeight"
selector.fLenis = "seriflessCrossbarAtXHeight" selector.fLenis = "seriflessCrossbarAtXHeight"
selector.fLTail = "tailedCrossbarAtXHeight" selector.fLTail = "tailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "tailedCrossbarAtXHeight"
@ -2273,6 +2283,7 @@ selector."f/sansSerif" = "flatHook"
selector."f/compLigLeft1" = "flatHookCLC1" selector."f/compLigLeft1" = "flatHookCLC1"
selector."f/compLigLeft2" = "flatHookCLC2" selector."f/compLigLeft2" = "flatHookCLC2"
selector."f/phoneticLeft" = "flatHookCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookCrossbarAtXHeight"
selector."f/tailless" = "flatHook"
selector.fLenis = "flatHook" selector.fLenis = "flatHook"
selector.fLTail = "flatHookTailed" selector.fLTail = "flatHookTailed"
selector.dotlessjWithStrokeAndHook = "flatHookTailed" selector.dotlessjWithStrokeAndHook = "flatHookTailed"
@ -2285,6 +2296,7 @@ selector."f/sansSerif" = "flatHook"
selector."f/compLigLeft1" = "flatHookSerifedCLC1" selector."f/compLigLeft1" = "flatHookSerifedCLC1"
selector."f/compLigLeft2" = "flatHookSerifedCLC2" selector."f/compLigLeft2" = "flatHookSerifedCLC2"
selector."f/phoneticLeft" = "flatHookSerifedCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookSerifedCrossbarAtXHeight"
selector."f/tailless" = "flatHookSerifed"
selector.fLenis = "flatHook" selector.fLenis = "flatHook"
selector.fLTail = "flatHookTailed" selector.fLTail = "flatHookTailed"
selector.dotlessjWithStrokeAndHook = "flatHookTailed" selector.dotlessjWithStrokeAndHook = "flatHookTailed"
@ -2297,6 +2309,7 @@ selector."f/sansSerif" = "flatHookTailed"
selector."f/compLigLeft1" = "flatHookTailedCLC1" selector."f/compLigLeft1" = "flatHookTailedCLC1"
selector."f/compLigLeft2" = "flatHookTailedCLC2" selector."f/compLigLeft2" = "flatHookTailedCLC2"
selector."f/phoneticLeft" = "flatHookTailedCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookTailedCrossbarAtXHeight"
selector."f/tailless" = "flatHook"
selector.fLenis = "flatHook" selector.fLenis = "flatHook"
selector.fLTail = "flatHookTailed" selector.fLTail = "flatHookTailed"
selector.dotlessjWithStrokeAndHook = "flatHookTailed" selector.dotlessjWithStrokeAndHook = "flatHookTailed"
@ -2309,6 +2322,7 @@ selector."f/sansSerif" = "flatHookExtended"
selector."f/compLigLeft1" = "flatHookExtendedCLC1" selector."f/compLigLeft1" = "flatHookExtendedCLC1"
selector."f/compLigLeft2" = "flatHookExtendedCLC2" selector."f/compLigLeft2" = "flatHookExtendedCLC2"
selector."f/phoneticLeft" = "flatHookExtendedCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookExtendedCrossbarAtXHeight"
selector."f/tailless" = "flatHook"
selector.fLenis = "flatHook" selector.fLenis = "flatHook"
selector.fLTail = "flatHookTailed" selector.fLTail = "flatHookTailed"
selector.dotlessjWithStrokeAndHook = "flatHookTailed" selector.dotlessjWithStrokeAndHook = "flatHookTailed"
@ -2321,6 +2335,7 @@ selector."f/sansSerif" = "flatHookDiagonalTailed"
selector."f/compLigLeft1" = "flatHookDiagonalTailedCLC1" selector."f/compLigLeft1" = "flatHookDiagonalTailedCLC1"
selector."f/compLigLeft2" = "flatHookDiagonalTailedCLC2" selector."f/compLigLeft2" = "flatHookDiagonalTailedCLC2"
selector."f/phoneticLeft" = "flatHookDiagonalTailedCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookDiagonalTailedCrossbarAtXHeight"
selector."f/tailless" = "flatHook"
selector.fLenis = "flatHook" selector.fLenis = "flatHook"
selector.fLTail = "flatHookTailed" selector.fLTail = "flatHookTailed"
selector.dotlessjWithStrokeAndHook = "flatHookTailed" selector.dotlessjWithStrokeAndHook = "flatHookTailed"
@ -2333,6 +2348,7 @@ selector."f/sansSerif" = "flatHookCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookCLC1" selector."f/compLigLeft1" = "flatHookCLC1"
selector."f/compLigLeft2" = "flatHookCLC2" selector."f/compLigLeft2" = "flatHookCLC2"
selector."f/phoneticLeft" = "flatHookCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookCrossbarAtXHeight"
selector."f/tailless" = "flatHookCrossbarAtXHeight"
selector.fLenis = "flatHookCrossbarAtXHeight" selector.fLenis = "flatHookCrossbarAtXHeight"
selector.fLTail = "flatHookTailedCrossbarAtXHeight" selector.fLTail = "flatHookTailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight"
@ -2345,6 +2361,7 @@ selector."f/sansSerif" = "flatHookCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookSerifedCLC1" selector."f/compLigLeft1" = "flatHookSerifedCLC1"
selector."f/compLigLeft2" = "flatHookSerifedCLC2" selector."f/compLigLeft2" = "flatHookSerifedCLC2"
selector."f/phoneticLeft" = "flatHookSerifedCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookSerifedCrossbarAtXHeight"
selector."f/tailless" = "flatHookSerifedCrossbarAtXHeight"
selector.fLenis = "flatHookCrossbarAtXHeight" selector.fLenis = "flatHookCrossbarAtXHeight"
selector.fLTail = "flatHookTailedCrossbarAtXHeight" selector.fLTail = "flatHookTailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight"
@ -2357,6 +2374,7 @@ selector."f/sansSerif" = "flatHookTailedCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookTailedCLC1" selector."f/compLigLeft1" = "flatHookTailedCLC1"
selector."f/compLigLeft2" = "flatHookTailedCLC2" selector."f/compLigLeft2" = "flatHookTailedCLC2"
selector."f/phoneticLeft" = "flatHookTailedCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookTailedCrossbarAtXHeight"
selector."f/tailless" = "flatHookCrossbarAtXHeight"
selector.fLenis = "flatHookCrossbarAtXHeight" selector.fLenis = "flatHookCrossbarAtXHeight"
selector.fLTail = "flatHookTailedCrossbarAtXHeight" selector.fLTail = "flatHookTailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight"
@ -2369,6 +2387,7 @@ selector."f/sansSerif" = "flatHookExtendedCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookExtendedCLC1" selector."f/compLigLeft1" = "flatHookExtendedCLC1"
selector."f/compLigLeft2" = "flatHookExtendedCLC2" selector."f/compLigLeft2" = "flatHookExtendedCLC2"
selector."f/phoneticLeft" = "flatHookExtendedCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookExtendedCrossbarAtXHeight"
selector."f/tailless" = "flatHookCrossbarAtXHeight"
selector.fLenis = "flatHookCrossbarAtXHeight" selector.fLenis = "flatHookCrossbarAtXHeight"
selector.fLTail = "flatHookTailedCrossbarAtXHeight" selector.fLTail = "flatHookTailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight"
@ -2381,6 +2400,7 @@ selector."f/sansSerif" = "flatHookDiagonalTailedCrossbarAtXHeight"
selector."f/compLigLeft1" = "flatHookDiagonalTailedCLC1" selector."f/compLigLeft1" = "flatHookDiagonalTailedCLC1"
selector."f/compLigLeft2" = "flatHookDiagonalTailedCLC2" selector."f/compLigLeft2" = "flatHookDiagonalTailedCLC2"
selector."f/phoneticLeft" = "flatHookDiagonalTailedCrossbarAtXHeight" selector."f/phoneticLeft" = "flatHookDiagonalTailedCrossbarAtXHeight"
selector."f/tailless" = "flatHookCrossbarAtXHeight"
selector.fLenis = "flatHookCrossbarAtXHeight" selector.fLenis = "flatHookCrossbarAtXHeight"
selector.fLTail = "flatHookTailedCrossbarAtXHeight" selector.fLTail = "flatHookTailedCrossbarAtXHeight"
selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight" selector.dotlessjWithStrokeAndHook = "flatHookTailedCrossbarAtXHeight"
@ -4088,42 +4108,42 @@ rank = 1
description = "Standard, straight `v`" description = "Standard, straight `v`"
selector.v = "straight" selector.v = "straight"
selector."v/sansSerif" = "straight" selector."v/sansSerif" = "straight"
selector.vHookTop = "straight" selector."v/nonCursive" = "straight"
[prime.v.variants.curly] [prime.v.variants.curly]
rank = 2 rank = 2
description = "Slightly curly `v`, like Iosevka 2.x" description = "Slightly curly `v`, like Iosevka 2.x"
selector.v = "curly" selector.v = "curly"
selector."v/sansSerif" = "curly" selector."v/sansSerif" = "curly"
selector.vHookTop = "curly" selector."v/nonCursive" = "curly"
[prime.v.variants.cursive] [prime.v.variants.cursive]
rank = 3 rank = 3
description = "Cursive `v`" description = "Cursive `v`"
selector.v = "cursive" selector.v = "cursive"
selector."v/sansSerif" = "cursive" selector."v/sansSerif" = "cursive"
selector.vHookTop = "straight" selector."v/nonCursive" = "straight"
[prime.v.variants.straight-motion-serifed] [prime.v.variants.straight-motion-serifed]
rank = 4 rank = 4
description = "Standard, straight `v`, with motion serifs" description = "Standard, straight `v`, with motion serifs"
selector.v = "straightMotionSerifed" selector.v = "straightMotionSerifed"
selector."v/sansSerif" = "straight" selector."v/sansSerif" = "straight"
selector.vHookTop = "straightMotionSerifed" selector."v/nonCursive" = "straightMotionSerifed"
[prime.v.variants.curly-motion-serifed] [prime.v.variants.curly-motion-serifed]
rank = 5 rank = 5
description = "Slightly curly `v`, like Iosevka 2.x, with motion serifs" description = "Slightly curly `v`, like Iosevka 2.x, with motion serifs"
selector.v = "curlyMotionSerifed" selector.v = "curlyMotionSerifed"
selector."v/sansSerif" = "curly" selector."v/sansSerif" = "curly"
selector.vHookTop = "curlyMotionSerifed" selector."v/nonCursive" = "curlyMotionSerifed"
[prime.v.variants.cursive-serifed] [prime.v.variants.cursive-serifed]
rank = 6 rank = 6
description = "Cursive `v` with motion serifs" description = "Cursive `v` with motion serifs"
selector.v = "cursiveMotionSerifed" selector.v = "cursiveMotionSerifed"
selector."v/sansSerif" = "cursive" selector."v/sansSerif" = "cursive"
selector.vHookTop = "straightMotionSerifed" selector."v/nonCursive" = "straightMotionSerifed"