Add Characters:
- MODIFIER LETTER RAISED UP ARROW (`U+A71B`) (#1460). - MODIFIER LETTER RAISED DOWN ARROW (`U+A71C`) (#1460). - MODIFIER LETTER RAISED EXCLAMATION MARK (`U+A71D`). - MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK (`U+A71E`). - MODIFIER LETTER LOW INVERTED EXCLAMATION MARK (`U+A71F`). - MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON (`U+10781`) ... MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK (`U+107B9`). - LATIN LETTER SMALL CAPITAL L WITH BELT (`U+1DF04`). - LATIN SMALL LETTER LEZH WITH RETROFLEX HOOK (`U+1DF05`). - LATIN SMALL LETTER TURNED Y WITH BELT (`U+1DF06`). - LATIN SMALL LETTER TURNED R WITH LONG LEG AND RETROFLEX HOOK (`U+1DF08`). - LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK (`U+1DF0A`).
This commit is contained in:
parent
09623460b5
commit
dd54bbcece
17 changed files with 316 additions and 177 deletions
|
@ -7,6 +7,17 @@
|
|||
- LATIN SMALL LETTER F WITH STROKE (`U+A799`) (#1453).
|
||||
- LATIN CAPITAL LETTER U WITH STROKE (`U+A7B8`) (#1453).
|
||||
- LATIN SMALL LETTER U WITH STROKE (`U+A7B9`) (#1453).
|
||||
- MODIFIER LETTER RAISED UP ARROW (`U+A71B`) (#1460).
|
||||
- MODIFIER LETTER RAISED DOWN ARROW (`U+A71C`) (#1460).
|
||||
- MODIFIER LETTER RAISED EXCLAMATION MARK (`U+A71D`).
|
||||
- MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK (`U+A71E`).
|
||||
- MODIFIER LETTER LOW INVERTED EXCLAMATION MARK (`U+A71F`).
|
||||
- MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON (`U+10781`) ... MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK (`U+107B9`).
|
||||
- LATIN LETTER SMALL CAPITAL L WITH BELT (`U+1DF04`).
|
||||
- LATIN SMALL LETTER LEZH WITH RETROFLEX HOOK (`U+1DF05`).
|
||||
- LATIN SMALL LETTER TURNED Y WITH BELT (`U+1DF06`).
|
||||
- LATIN SMALL LETTER TURNED R WITH LONG LEG AND RETROFLEX HOOK (`U+1DF08`).
|
||||
- LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK (`U+1DF0A`).
|
||||
* Fix metrics of ASCII single quotes under Aile (#1454).
|
||||
* Fix overshoot of oval-shaped `0`, and open `6`/`9` (#1455).
|
||||
* Fix serifs of certain letters (#1458):
|
||||
|
|
|
@ -71,21 +71,34 @@ glyph-block AutoBuild-Accents : begin
|
|||
# When recursively building, `recursiveCodes` contain an array of "needed" Unicode list
|
||||
local goalCodes : recursiveCodes || [range 0x0000 0xFFFF]
|
||||
foreach code goalCodes : if [not : glyphStore.queryByUnicode code] : do
|
||||
local parts { }
|
||||
local allFound true
|
||||
|
||||
local customDecomp UnicodeKnowledge.decompOverrides.(code)
|
||||
|
||||
local str : String.fromCodePoint code
|
||||
local nfd : fallback UnicodeKnowledge.decompositionOverrides.(str) : str.normalize 'NFD'
|
||||
if (str !== nfd) : begin
|
||||
local nfdChars : Array.from nfd
|
||||
local parts { }
|
||||
local allFound true
|
||||
foreach part [items-of nfdChars] : begin
|
||||
local part : glyphStore.queryByUnicode [part.codePointAt 0]
|
||||
local nfd : str.normalize 'NFD'
|
||||
|
||||
if customDecomp
|
||||
: then : begin
|
||||
foreach partName customDecomp : begin
|
||||
local part : glyphStore.queryByName partName
|
||||
if [not part]
|
||||
: then : set allFound false
|
||||
: else : parts.push part
|
||||
if allFound : begin
|
||||
local glyphName : 'u' + [code.toString 16 :.padStart 4 '0']
|
||||
set parts : subParts parts
|
||||
set foundDecompositions.(glyphName) { glyphName code parts }
|
||||
|
||||
: else : if (str !== nfd) : begin
|
||||
local nfdChars : Array.from nfd
|
||||
foreach partChar [items-of nfdChars] : begin
|
||||
local part : glyphStore.queryByUnicode [partChar.codePointAt 0]
|
||||
if [not part]
|
||||
: then : set allFound false
|
||||
: else : parts.push part
|
||||
|
||||
if (allFound && parts.length) : begin
|
||||
local glyphName : 'u' + [code.toString 16 :.padStart 4 '0']
|
||||
set parts : subParts parts
|
||||
set foundDecompositions.(glyphName) { glyphName code parts }
|
||||
|
||||
local s_goalName nothing
|
||||
local s_code nothing
|
||||
|
|
|
@ -1240,7 +1240,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin
|
|||
glyph-block-import Recursive-Build : Thinner
|
||||
glyph-block-import Autobuild-Enclosure-Shared : CollectJobs CreateDerivedFontFromJobs EnsureComponentGlyphT applyRelations
|
||||
|
||||
define [createPhoneticLigatures prefix div _shrink1 _shrink2 wadj1 wadj2 demands] : begin
|
||||
define [createPhoneticLigatures prefix div _shrink1 _shrink2 wadj1 wadj2 tfm demands] : begin
|
||||
define CWidth : Width * div
|
||||
define jobs : CollectJobs NON-DECOMPOSABLE NOT-CENTERED ALLOW-PROPORTIONAL prefix "" demands
|
||||
local shrink1 : clamp 0 1 _shrink1
|
||||
|
@ -1288,10 +1288,21 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin
|
|||
include : Translate (CWidth / 2) 0
|
||||
include : Regizmo
|
||||
|
||||
include : tfm div
|
||||
|
||||
applyRelations jobs.relApplications
|
||||
|
||||
define [ToLetter] : glyph-proc
|
||||
define [ToSuperscript div] : glyph-proc
|
||||
local df : DivFrame df
|
||||
include [Ungizmo] true
|
||||
include [Translate (-df.middle) (-CAP)] true
|
||||
include [Scale 0.7] true
|
||||
include [Translate df.middle (CAP + AccentStackOffset / 2)] true
|
||||
include [Regizmo] true
|
||||
|
||||
define stdShrink : clamp 0.75 0.9 : StrokeWidthBlend 0.75 0.9
|
||||
createPhoneticLigatures 'phonetic' para.diversityM stdShrink stdShrink 1 1 : list
|
||||
createPhoneticLigatures 'phonetic' para.diversityM stdShrink stdShrink 1 1 ToLetter : list
|
||||
list 0x02A3 { 'd/phoneticLeft' 'z' } 'b'
|
||||
list 0x02A4 { 'd/phoneticLeft' 'ezh' } 'if'
|
||||
list 0x02A5 { 'd/phoneticLeft' 'zCurlyTail' } 'if'
|
||||
|
@ -1302,10 +1313,23 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin
|
|||
list 0x02AA { 'l/phoneticLeft' 's/phoneticRight' } 'b'
|
||||
list 0x02AB { 'l/phoneticLeft' 'z' } 'b'
|
||||
list 0xAB66 { 'd/phoneticLeft' 'zRTailBR' } 'if'
|
||||
list 0xAB67 { 't/phoneticLeft1' 'sRTail' } null
|
||||
list 0xAB67 { 't/phoneticLeft1' 'sRTail' } 'p'
|
||||
list 0xFB01 { 'f/compLigLeft1' 'dotlessi/compLigRight' } null
|
||||
list 0xFB02 { 'f/compLigLeft2' 'l/compLigRight' } null
|
||||
|
||||
createPhoneticLigatures 'phoneticSuperscript' 1 stdShrink stdShrink 1 1 ToSuperscript : list
|
||||
list 0x10787 { 'd/phoneticLeft' 'z' } 'b'
|
||||
list 0x1078A { 'd/phoneticLeft' 'ezh' } 'if'
|
||||
list 0x10789 { 'd/phoneticLeft' 'zCurlyTail' } 'if'
|
||||
list 0x107AC { 't/phoneticLeft2' 's/phoneticRight' } 'b'
|
||||
list 0x107AE { 't/teshLeft' 'esh' } 'if'
|
||||
list 0x107AB { 't/phoneticLeft1' 'cCurlyTail' } 'b'
|
||||
list 0x10790 { 'f/phoneticLeft' 'eng/phoneticRight' } 'if'
|
||||
list 0x10799 { 'l/phoneticLeft' 's/phoneticRight' } 'b'
|
||||
list 0x1079A { 'l/phoneticLeft' 'z' } 'b'
|
||||
list 0x10788 { 'd/phoneticLeft' 'zRTailBR' } 'if'
|
||||
list 0x107AD { 't/phoneticLeft1' 'sRTail' } 'p'
|
||||
|
||||
glyph-block Autobuild-Double-Emotions : begin
|
||||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
|
|
|
@ -218,13 +218,13 @@ glyph-block Autobuild-Transformed : begin
|
|||
list 0x02B6 'invSmcpR'
|
||||
list 0x02B7 'w'
|
||||
list 0x02B8 'y'
|
||||
list 0x02C0 'fineglottalstop'
|
||||
list 0x02C1 'finerevglottalstop'
|
||||
list 0x02C0 'fineGlottalStop'
|
||||
list 0x02C1 'fineRevGlottalStop'
|
||||
list 0x02E0 'latn/gamma'
|
||||
list 0x02E1 'l'
|
||||
list 0x02E2 's'
|
||||
list 0x02E3 'x'
|
||||
list 0x02E4 'revglottalstop'
|
||||
list 0x02E4 'revGlottalStop'
|
||||
list 0x2071 'i'
|
||||
list 0x207F 'n'
|
||||
list 0x1D43 'a'
|
||||
|
@ -323,17 +323,66 @@ glyph-block Autobuild-Transformed : begin
|
|||
list 0x207C 'equal'
|
||||
list 0x207D 'parenLeft'
|
||||
list 0x207E 'parenRight'
|
||||
list 0xA7F8 'smcpHStroke'
|
||||
list 0xA7F9 'oe'
|
||||
list 0xA702 'subst'
|
||||
list 0xA703 'substBarNoRise'
|
||||
list 0xA704 'supst'
|
||||
list 0xA705 'supstBarNoRise'
|
||||
list 0xAB5C 'heng'
|
||||
list 0xAB69 'turnw'
|
||||
list 0xA71B 'arrowUp.NWID'
|
||||
list 0xA71C 'arrowDown.NWID'
|
||||
list 0xA71D 'alveolarclick'
|
||||
list 0xA71E 'exclamDownAlt'
|
||||
list 0xA7F2 'C'
|
||||
list 0xA7F3 'F'
|
||||
list 0xA7F4 'Q'
|
||||
list 0xA7F8 'smcpHStroke'
|
||||
list 0xA7F9 'oe'
|
||||
list 0xAB5C 'heng'
|
||||
list 0xAB5E 'lTildeOver'
|
||||
list 0xAB69 'turnw'
|
||||
list 0x107AF 'tRTail'
|
||||
list 0x1078B 'dHookBottom'
|
||||
list 0x107A5 'q'
|
||||
list 0x10792 'smcpG'
|
||||
list 0x107B3 'glottalStopBar'
|
||||
list 0x10795 'hBar'
|
||||
list 0x10797 'hHookTopLTail'
|
||||
list 0x107B0 'vHookTop'
|
||||
list 0x107A9 'rFlap'
|
||||
list 0x107A8 'rRTail'
|
||||
list 0x10784 'smcpB'
|
||||
list 0x107AA 'smcpR'
|
||||
list 0x10796 'smcpH'
|
||||
list 0x107B4 'revGlottalStopBar'
|
||||
list 0x1079B 'lBelt'
|
||||
list 0x1079E 'lyogh'
|
||||
list 0x1079D 'lBeltRTail'
|
||||
list 0x1079F 'lyoghRTail'
|
||||
list 0x107A1 'turnyBelt'
|
||||
list 0x1079C 'smcpLBelt'
|
||||
list 0x107A0 'turny'
|
||||
list 0x107A6 'turnrlongleg'
|
||||
list 0x107A7 'rTurnLongLetRTail'
|
||||
list 0x10785 'bHookTop'
|
||||
list 0x1078C 'dHookTop'
|
||||
list 0x1078D 'dHookTopBottom'
|
||||
list 0x10798 'dotlessjBarHookTop'
|
||||
list 0x10793 'gScriptHookTop'
|
||||
list 0x10794 'smcpGHookTop'
|
||||
list 0x107B5 'bullEye'
|
||||
list 0x107B6 'dentalclick'
|
||||
list 0x107B8 'palatoalveolarclick'
|
||||
list 0x107B9 'retroflexClickHook'
|
||||
list 0x107B7 'alveolarlateralclick'
|
||||
list 0x107B2 'smcpY'
|
||||
list 0x107A4 'closeomega'
|
||||
list 0x107A2 'oSlash'
|
||||
list 0x1078E 'eRev'
|
||||
list 0x10791 'ramshorn'
|
||||
list 0x1078F 'closeturnepsilon'
|
||||
list 0x10783 'ae'
|
||||
list 0x107A3 'smcpOE'
|
||||
list 0x10781 'triangleColon'
|
||||
list 0x10782 'halfTriangleColon'
|
||||
list null 'S' # there is no superscript S in unicode, but is is used for the SM symbol
|
||||
|
||||
createSuperscripts 'numerator' NumeratorForm : list
|
||||
|
@ -409,6 +458,7 @@ glyph-block Autobuild-Transformed : begin
|
|||
list 0xA701 'substBarNoRise'
|
||||
list 0xA706 'supst'
|
||||
list 0xA707 'supstBarNoRise'
|
||||
list 0xA71F 'exclamDownAlt'
|
||||
|
||||
createSubscripts 'denominator' DenominatorForm : list
|
||||
list null 'zero.onum'
|
||||
|
|
|
@ -108,6 +108,19 @@ glyph-block Letter-Latin-Ezh : begin
|
|||
|
||||
select-variant 'lyogh' 0x26E
|
||||
|
||||
create-glyph 'lyoghRTail.serifless' : glyph-proc
|
||||
include : MarkSet.if
|
||||
include : EzhShape XH 0 0.4
|
||||
include : VBarLeft SB 0 Ascender
|
||||
include : WithTransform [ApparentTranslate (SB + HVContrast * Stroke - RightSB) (-Descender)]
|
||||
refer-glyph 'rtailBR'
|
||||
|
||||
create-glyph 'lyoghRTail.hooky' : glyph-proc
|
||||
include [refer-glyph 'lyoghRTail.serifless'] AS_BASE ALSO_METRICS
|
||||
include : LeftwardTopSerif SB Ascender SideJut
|
||||
|
||||
select-variant 'lyoghRTail' 0x1DF05 (follow -- 'lyogh')
|
||||
|
||||
create-glyph 'ezhtail' 0x1BA : glyph-proc
|
||||
local b : mix Descender XH 0.25
|
||||
include : EzhShape XH b nothing nothing 0.5
|
||||
|
|
|
@ -11,7 +11,7 @@ glyph-block Letter-Latin-Glottal-Stop : begin
|
|||
glyph-block-import Mark-Shared-Metrics : markHalfStroke
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
|
||||
create-glyph 'glottalstop' 0x294 : glyph-proc
|
||||
create-glyph 'glottalStop' 0x294 : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : dispiro
|
||||
widths.rhs
|
||||
|
@ -24,9 +24,9 @@ glyph-block Letter-Latin-Glottal-Stop : begin
|
|||
if SLAB : begin
|
||||
include : CenterBottomSerif Middle 0 Jut
|
||||
|
||||
alias 'capglottalstop' 0x241 'glottalstop'
|
||||
alias 'capGlottalStop' 0x241 'glottalStop'
|
||||
|
||||
create-glyph 'revglottalstop' 0x295 : glyph-proc
|
||||
create-glyph 'revGlottalStop' 0x295 : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : dispiro
|
||||
widths.lhs
|
||||
|
@ -39,7 +39,7 @@ glyph-block Letter-Latin-Glottal-Stop : begin
|
|||
if SLAB : begin
|
||||
include : CenterBottomSerif Middle 0 Jut
|
||||
|
||||
create-glyph 'smallglottalstop' 0x242 : glyph-proc
|
||||
create-glyph 'smallGlottalStop' 0x242 : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : dispiro
|
||||
widths.rhs
|
||||
|
@ -52,7 +52,7 @@ glyph-block Letter-Latin-Glottal-Stop : begin
|
|||
if SLAB : begin
|
||||
include : CenterBottomSerif Middle 0 Jut
|
||||
|
||||
create-glyph 'fineglottalstop' : glyph-proc
|
||||
create-glyph 'fineGlottalStop' : glyph-proc
|
||||
include : MarkSet.b
|
||||
local fine : markHalfStroke * 2
|
||||
include : dispiro
|
||||
|
@ -66,7 +66,7 @@ glyph-block Letter-Latin-Glottal-Stop : begin
|
|||
if SLAB : begin
|
||||
include : CenterBottomSerif Middle 0 Jut fine
|
||||
|
||||
create-glyph 'finerevglottalstop' : glyph-proc
|
||||
create-glyph 'fineRevGlottalStop' : glyph-proc
|
||||
include : MarkSet.b
|
||||
local fine : markHalfStroke * 2
|
||||
include : dispiro
|
||||
|
@ -80,12 +80,12 @@ glyph-block Letter-Latin-Glottal-Stop : begin
|
|||
if SLAB : begin
|
||||
include : CenterBottomSerif Middle 0 Jut fine
|
||||
|
||||
turned 'invglottalstop' 0x296 'revglottalstop' Middle (Ascender / 2)
|
||||
turned 'invGlottalStop' 0x296 'revGlottalStop' Middle (Ascender / 2)
|
||||
|
||||
create-glyph 'glottalstopbar' 0x2A1 : glyph-proc
|
||||
include [refer-glyph 'glottalstop'] AS_BASE
|
||||
create-glyph 'glottalStopBar' 0x2A1 : glyph-proc
|
||||
include [refer-glyph 'glottalStop'] AS_BASE
|
||||
include : LetterBarOverlay.m.in Middle [if SLAB Stroke 0] (Ascender * 0.5) 0.5
|
||||
|
||||
create-glyph 'revglottalstopbar' 0x2A2 : glyph-proc
|
||||
include [refer-glyph 'revglottalstop'] AS_BASE
|
||||
create-glyph 'revGlottalStopBar' 0x2A2 : glyph-proc
|
||||
include [refer-glyph 'revGlottalStop'] AS_BASE
|
||||
include : LetterBarOverlay.m.in Middle [if SLAB Stroke 0] (Ascender * 0.5) 0.5
|
||||
|
|
|
@ -60,7 +60,7 @@ glyph-block Letter-Latin-Lower-H : begin
|
|||
if fTailed : include : RightwardTailedBar RightSB 0 (XH - SmallArchDepthB)
|
||||
include : Serifs fTailed false
|
||||
|
||||
create-glyph "hbar.\(suffix)" : glyph-proc
|
||||
create-glyph "hBar.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "h.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : HBarOverlay fHasTopSerif
|
||||
|
||||
|
@ -94,7 +94,7 @@ glyph-block Letter-Latin-Lower-H : begin
|
|||
select-variant 'h' 'h'
|
||||
link-reduced-variant 'h/sansSerif' 'h' MathSansSerif
|
||||
turned 'turnh' 0x265 'h' Middle (XH / 2) [MarkSet.p]
|
||||
select-variant 'hbar' 0x127 (follow -- 'h')
|
||||
select-variant 'hBar' 0x127 (follow -- 'h')
|
||||
|
||||
select-variant 'cyrl/shha' 0x4BB (shapeFrom -- 'h')
|
||||
derive-composites 'cyrl/shhaDescender' 0x527 'cyrl/shha' [CyrDescender RightSB]
|
||||
|
@ -142,7 +142,7 @@ glyph-block Letter-Latin-Lower-H : begin
|
|||
include [refer-glyph src]
|
||||
include : MarkSet.if
|
||||
|
||||
alias 'cyrl/tshe' 0x45B 'hbar'
|
||||
alias 'cyrl/tshe' 0x45B 'hBar'
|
||||
|
||||
glyph-block-import Letter-Blackboard : BBS BBD BBBarLeft
|
||||
create-glyph 'mathbb/h' 0x1D559 : glyph-proc
|
||||
|
|
|
@ -200,6 +200,16 @@ glyph-block Letter-Latin-Lower-R : begin
|
|||
include : refer-glyph "rtailBR"
|
||||
include : ApparentTranslate (df.rightSB - xBar + df.leftSB + Stroke * HVContrast) 0
|
||||
|
||||
create-glyph "rTurnLongLetRTail.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "rlongleg.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
eject-contour 'serifLT'
|
||||
include : FlipAround df.middle (XH / 2)
|
||||
include : df.markSet.if
|
||||
|
||||
define [object xBar] : RDim df mode
|
||||
include : new-glyph : glyph-proc
|
||||
include : refer-glyph "rtailBR"
|
||||
include : ApparentTranslate (df.rightSB - xBar + df.leftSB + Stroke * HVContrast) 0
|
||||
|
||||
select-variant 'r' 'r'
|
||||
link-reduced-variant 'r/sansSerif' 'r' MathSansSerif
|
||||
|
@ -218,6 +228,7 @@ glyph-block Letter-Latin-Lower-R : begin
|
|||
include : df.markSet.b
|
||||
|
||||
select-variant 'rTurnRTail' 0x27B
|
||||
select-variant 'rTurnLongLetRTail' 0x1DF08 (follow -- 'rTurnRTail')
|
||||
|
||||
|
||||
define [BBRShape df md doTopSerif doBottomSerif] : glyph-proc
|
||||
|
|
|
@ -12,7 +12,7 @@ glyph-block Letter-Latin-Lower-Y : begin
|
|||
glyph-block-import Mark-Shared-Metrics : markExtend markStroke markStress markFine
|
||||
glyph-block-import Mark-Above : aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack
|
||||
glyph-block-import Mark-Below : belowMarkStack
|
||||
glyph-block-import Letter-Shared-Shapes : nShoulder FlatHookDepth SerifFrame
|
||||
glyph-block-import Letter-Shared-Shapes : nShoulder FlatHookDepth SerifFrame BeltOverlay
|
||||
|
||||
define SLAB-NONE { false false false }
|
||||
define SLAB-AUTO { SLAB SLAB false }
|
||||
|
@ -299,9 +299,17 @@ glyph-block Letter-Latin-Lower-Y : begin
|
|||
set-base-anchor 'overlay' Middle (XH / 2)
|
||||
|
||||
select-variant 'y' 'y'
|
||||
select-variant 'y/nonCursive' (shapeFrom -- 'y')
|
||||
link-reduced-variant 'y/sansSerif' 'y' MathSansSerif
|
||||
alias 'cyrl/u' 0x443 'y'
|
||||
|
||||
turned 'turny' 0x28E 'y/nonCursive' Middle (XH / 2) [MarkSet.b]
|
||||
derive-glyphs 'turnyBelt' 0x1DF06 'y/nonCursive' : function [src sel] : glyph-proc
|
||||
include : MarkSet.b
|
||||
include [refer-glyph src]
|
||||
include : FlipAround Middle (XH / 2)
|
||||
include : BeltOverlay.at Middle XH
|
||||
|
||||
foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do
|
||||
create-glyph "yDotBelowDot1.\(suffix)" : glyph-proc
|
||||
set-mark-anchor 'yBelowDot' 0 0 0 belowMarkStack
|
||||
|
@ -362,8 +370,6 @@ glyph-block Letter-Latin-Lower-Y : begin
|
|||
select-variant 'yHookTop' 0x1B4
|
||||
select-variant 'cyrl/U' 0x423
|
||||
|
||||
turned 'turny' 0x28E 'y' Middle (XH / 2) [MarkSet.b]
|
||||
|
||||
define [LambdaBarOverlayShape] : FlatSlashShape [mix SB RightSB 0.45] [mix 0 CAP 0.8] (OverlayStroke / 2)
|
||||
define LambdaConfig : object
|
||||
straight { true false SLAB-NONE }
|
||||
|
|
|
@ -175,7 +175,7 @@ glyph-block Letter-Latin-O : begin
|
|||
alias 'grek/capSymbolTheta' 0x3F4 'Obar'
|
||||
alias 'cyrl/oe' 0x4E9 'obar'
|
||||
|
||||
create-glyph 'bulleye' 0x298 : glyph-proc
|
||||
create-glyph 'bullEye' 0x298 : glyph-proc
|
||||
include [refer-glyph 'O'] AS_BASE
|
||||
local halfDotWidth : Math.min DotRadius ((RightSB - SB - HVContrast * Stroke * 2) / 4)
|
||||
local halfDotHeight : Math.min DotRadius (halfDotWidth * 1.5)
|
||||
|
|
|
@ -80,5 +80,7 @@ glyph-block Letter-Latin-Upper-L : begin
|
|||
|
||||
create-glyph 'LBarOverlay' : LetterBarOverlay.l.in LBarLeftX 0 CAP
|
||||
create-glyph 'LBeltOverlay' : BeltOverlay CAP (LBarLeftX + 0.5 * HVContrast * Stroke)
|
||||
create-glyph 'smcpLBeltOverlay' : BeltOverlay XH (LBarLeftX + 0.5 * HVContrast * Stroke)
|
||||
derive-composites 'LBar' 0x23D 'L' 'LBarOverlay'
|
||||
derive-composites 'LBelt' 0xA7AD 'L' 'LBeltOverlay'
|
||||
derive-composites 'smcpLBelt' 0x1DF04 'smcpL' 'smcpLBeltOverlay'
|
||||
|
|
|
@ -538,19 +538,22 @@ glyph-block Letter-Shared-Shapes : begin
|
|||
archv
|
||||
straight.down.end SB bottom [heading Downward]
|
||||
|
||||
glyph-block-export BeltOverlay
|
||||
define [BeltOverlay top xMiddle] : begin
|
||||
define [BeltOverlayAt x y] : begin
|
||||
local fine : AdviceStroke 4.5
|
||||
local r : XH * 0.05
|
||||
return : dispiro
|
||||
widths.rhs fine
|
||||
flat xMiddle (0.5 * top + r) [heading Leftward]
|
||||
curl (xMiddle - HalfStroke - r * 1.5) (0.5 * top + r)
|
||||
flat x (y + r) [heading Leftward]
|
||||
curl (x - HalfStroke - r * 1.5) (y + r)
|
||||
archv
|
||||
g4.down.mid (xMiddle - HalfStroke - r * 2.5) (0.5 * top) [heading Downward]
|
||||
g4.down.mid (x - HalfStroke - r * 2.5) y [heading Downward]
|
||||
arcvh
|
||||
flat (xMiddle - HalfStroke - r * 1.5) (0.5 * top - r)
|
||||
curl (xMiddle + HalfStroke + r * 1.5 + fine) (0.5 * top - r)
|
||||
flat (x - HalfStroke - r * 1.5) (y - r)
|
||||
curl (x + HalfStroke + r * 1.5 + fine) (y - r)
|
||||
|
||||
glyph-block-export BeltOverlay
|
||||
define [BeltOverlay top xMiddle] : BeltOverlayAt xMiddle (0.5 * top)
|
||||
set BeltOverlay.at BeltOverlayAt
|
||||
|
||||
glyph-block-export LetterBarOverlay
|
||||
define [LetterBarOverlay] : params [x y space refSw pXInSw sw] : begin
|
||||
|
|
|
@ -17,7 +17,7 @@ glyph-block Symbol-Punctuation-Emotion : begin
|
|||
create-glyph "exclam.\(suffix)" : glyph-proc
|
||||
local df : DivFrame para.diversityF
|
||||
set-width df.width
|
||||
include : MarkSet.capital
|
||||
include : df.markSet.capital
|
||||
include : VBar df.middle [clamp 0 (CAP * 0.4) (emotionBottom * 1.18)] CAP
|
||||
include : DrawAt df.middle dr (dr - overshoot)
|
||||
|
||||
|
@ -35,8 +35,16 @@ glyph-block Symbol-Punctuation-Emotion : begin
|
|||
select-variant 'question/dotPart' (follow -- 'punctuationDot')
|
||||
select-variant 'questionDown/dotPart' (follow -- 'punctuationDot')
|
||||
|
||||
alias 'alveolarclick' 0x1C3 'exclam'
|
||||
turned 'exclamDown' 0xA1 'exclam' [DivFrame para.diversityF].middle (XH / 2)
|
||||
derive-glyphs 'retroflexClickHook' 0x1DF0A 'exclam' : function [src sel] : glyph-proc
|
||||
include [refer-glyph src] AS_BASE ALSO_METRICS
|
||||
local df : DivFrame para.diversityF
|
||||
include : df.markSet.capDesc
|
||||
include : WithTransform [ApparentTranslate (df.middle + HVContrast * HalfStroke - df.rightSB) (-Descender)]
|
||||
refer-glyph "rtailBR"
|
||||
|
||||
alias 'alveolarclick' 0x1C3 'exclam'
|
||||
turned 'exclamDown' 0xA1 'exclam' [DivFrame para.diversityF].middle (XH / 2)
|
||||
turned 'exclamDownAlt' null 'exclam' [DivFrame para.diversityF].middle (XH / 2)
|
||||
|
||||
do "Question"
|
||||
local [YConnectT top emotionBottom] : mix emotionBottom (top - HalfStroke) 0.375
|
||||
|
|
|
@ -10,11 +10,11 @@ glyph-block Symbol-Other-Phonetic : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
|
||||
local triangleSize : Math.min (PeriodRadius) (XH / 5)
|
||||
local triangleSize : Math.min (PeriodRadius) (XH / 6)
|
||||
local toneMarkLeft : mix SB RightSB 0.1
|
||||
local toneMarkRight : Width - toneMarkLeft
|
||||
|
||||
create-glyph 'trianglecolon' 0x2D0 : glyph-proc
|
||||
create-glyph 'triangleColon' 0x2D0 : glyph-proc
|
||||
include : union
|
||||
spiro-outline
|
||||
corner (Middle - triangleSize * 1.35) XH
|
||||
|
@ -25,7 +25,7 @@ glyph-block Symbol-Other-Phonetic : begin
|
|||
corner Middle (0 + triangleSize * 2.75)
|
||||
corner (Middle + triangleSize * 1.35) 0
|
||||
|
||||
create-glyph 'halftrianglecolon' 0x2D1 : glyph-proc
|
||||
create-glyph 'halfTriangleColon' 0x2D1 : glyph-proc
|
||||
include : spiro-outline
|
||||
corner (Middle - triangleSize * 1.35) XH
|
||||
corner Middle (XH - triangleSize * 2.75)
|
||||
|
|
|
@ -34,136 +34,120 @@ export : define markCompositionTf : object
|
|||
'cyrlPsiliAbove' : object
|
||||
'cyrlPokrytieAbove' 'cyrlPsiliPokrytieAbove'
|
||||
|
||||
export : define decompositionOverrides : object
|
||||
export : define decompOverrides : object
|
||||
# Latvians use comma instead of cedillas in several letters.
|
||||
# Record them as custom decomposition.
|
||||
."\u0156" "R\u0326"
|
||||
."\u0157" "r\u0326"
|
||||
."\u0136" "K\u0326"
|
||||
."\u0137" "k\u0326"
|
||||
."\u0145" "N\u0326"
|
||||
."\u0146" "n\u0326"
|
||||
."\u013B" "L\u0326"
|
||||
."\u013C" "l\u0326"
|
||||
."\u0122" "G\u0326"
|
||||
."\u0123" "g\u0312"
|
||||
0x122 { 'G' 'commaBelow' }
|
||||
0x123 { 'g' 'turnCommaAbove' }
|
||||
0x136 { 'K' 'commaBelow' }
|
||||
0x137 { 'k' 'commaBelow' }
|
||||
0x13b { 'L' 'commaBelow' }
|
||||
0x13c { 'l' 'commaBelow' }
|
||||
0x145 { 'N' 'commaBelow' }
|
||||
0x146 { 'n' 'commaBelow' }
|
||||
0x156 { 'R' 'commaBelow' }
|
||||
0x157 { 'r' 'commaBelow' }
|
||||
|
||||
# autobuild Latin glyphs
|
||||
."\u0167" "t\u0335"
|
||||
."\u0197" "I\u0335"
|
||||
."\u019A" "l\u0335"
|
||||
."\u0248" "J\u0335"
|
||||
."\u0249" "j\u0335"
|
||||
."\u0268" "i\u0335"
|
||||
."\u024D" "r\u0335"
|
||||
."\u1D7B" "\u026A\u0335"
|
||||
."\u1D7C" "\u0269\u0335"
|
||||
# Spacing marks
|
||||
0xa8 { 'markBaseSpace' 'dieresisAbove' }
|
||||
0xaf { 'markBaseSpace' 'macronAbove' }
|
||||
0xb8 { 'markBaseSpace' 'cedillaBelow' }
|
||||
0x2c2 { 'markBaseSpace' 'lessAbove' }
|
||||
0x2c3 { 'markBaseSpace' 'greaterAbove' }
|
||||
0x2c4 { 'markBaseSpace' 'upArrowHeadAbove' }
|
||||
0x2c5 { 'markBaseSpace' 'downArrowHeadAbove' }
|
||||
0x2c6 { 'markBaseSpace' 'circumflexAbove' }
|
||||
0x2c7 { 'markBaseSpace' 'caronAbove' }
|
||||
0x2c9 { 'markBaseSpace' 'macronAbove' }
|
||||
0x2ca { 'markBaseSpace' 'acuteAbove' }
|
||||
0x2cb { 'markBaseSpace' 'graveAbove' }
|
||||
0x2cd { 'markBaseSpace' 'macronBelow' }
|
||||
0x2ce { 'markBaseSpace' 'graveBelow' }
|
||||
0x2cf { 'markBaseSpace' 'acuteBelow' }
|
||||
0x2d2 { 'markBaseSpace' 'rightHalfCircleBelow' }
|
||||
0x2d3 { 'markBaseSpace' 'leftHalfCircleBelow' }
|
||||
0x2d4 { 'markBaseSpace' 'uptackBelow' }
|
||||
0x2d5 { 'markBaseSpace' 'downtackBelow' }
|
||||
0x2d6 { 'markBaseSpace' 'plusBelow' }
|
||||
0x2d7 { 'markBaseSpace' 'minusBelow' }
|
||||
0x2d8 { 'markBaseSpace' 'breveAbove' }
|
||||
0x2d9 { 'markBaseSpace' 'dotAbove' }
|
||||
0x2da { 'markBaseSpace' 'ringAbove' }
|
||||
0x2db { 'markBaseSpace' 'ogonekBelow' }
|
||||
0x2dc { 'markBaseSpace' 'tildeAbove' }
|
||||
0x2dd { 'markBaseSpace' 'doubleAcuteAbove' }
|
||||
0x2df { 'markBaseSpace' 'crossAbove' }
|
||||
0x2ec { 'markBaseSpace' 'caronBelow' }
|
||||
0x2ed { 'markBaseSpace' 'dblOverlineAbove' }
|
||||
0x2ef { 'markBaseSpace' 'downArrowHeadBelow' }
|
||||
0x2f0 { 'markBaseSpace' 'upArrowHeadBelow' }
|
||||
0x2f1 { 'markBaseSpace' 'lessBelow' }
|
||||
0x2f2 { 'markBaseSpace' 'greaterBelow' }
|
||||
0x2f3 { 'markBaseSpace' 'ringBelow' }
|
||||
0x2f7 { 'markBaseSpace' 'tildeBelow' }
|
||||
0x2ff { 'markBaseSpace' 'leftArrowBelow' }
|
||||
0x37a { 'markBaseSpace' 'iotaBelow' }
|
||||
0x384 { 'markBaseSpace' 'acuteAbove' }
|
||||
0x385 { 'markBaseSpace' 'dieresisAbove' 'acuteAbove' }
|
||||
0x1fbd { 'markBaseSpace' 'commaAbove' }
|
||||
0x1fbe { 'markBaseSpace' 'iotaBelow' }
|
||||
0x1fbf { 'markBaseSpace' 'commaAbove' }
|
||||
0x1fc0 { 'markBaseSpace' 'perispomeniAbove' }
|
||||
0x1fc1 { 'markBaseSpace' 'dieresisAbove' 'perispomeniAbove' }
|
||||
0x1fed { 'markBaseSpace' 'dieresisAbove' 'graveAbove' }
|
||||
0x1fee { 'markBaseSpace' 'dieresisAbove' 'acuteAbove' }
|
||||
0x1fef { 'markBaseSpace' 'graveAbove' }
|
||||
0x1ffd { 'markBaseSpace' 'acuteAbove' }
|
||||
0x1ffe { 'markBaseSpace' 'revCommaAbove' }
|
||||
|
||||
."\u1D7F" "\u028A\uE001"
|
||||
."\u0289" "u\uE001"
|
||||
."\u0244" "U\uE001"
|
||||
."\u01E5" "g\uE001"
|
||||
."\u01BB" "2\uE001"
|
||||
."\u04B0" "\u04AE\u0335"
|
||||
."\u04B1" "\u04AF\u0335"
|
||||
."\u024F" "y\uE001"
|
||||
."\uAB30" "\uAB64\uE001"
|
||||
."\u1D7D" "p\uE001"
|
||||
0x167 { 't' 'barOver' }
|
||||
0x197 { 'I' 'barOver' }
|
||||
0x19a { 'l' 'barOver' }
|
||||
0x1bb { 'two.lnum' 'longBarOver' }
|
||||
0x23a { 'A' 'longSlashOver' }
|
||||
0x23b { 'C' 'longSlashOver' }
|
||||
0x23c { 'c' 'slashOver' }
|
||||
0x23e { 'T' 'longSlashOver' }
|
||||
0x244 { 'U' 'longBarOver' }
|
||||
0x246 { 'E' 'longSlashOver' }
|
||||
0x247 { 'e' 'slashOver' }
|
||||
0x248 { 'J' 'barOver' }
|
||||
0x249 { 'j' 'barOver' }
|
||||
0x24d { 'r' 'barOver' }
|
||||
0x24f { 'y' 'longBarOver' }
|
||||
|
||||
."\u023A" "A\u0338"
|
||||
."\u023B" "C\u0338"
|
||||
."\u023C" "c\u0337"
|
||||
."\u023E" "T\u0338"
|
||||
."\u0246" "E\u0338"
|
||||
."\u0247" "e\u0337"
|
||||
0x47c { 'cyrl/BroadOmega' 'cyrlPsiliAbove' 'cyrlPokrytieAbove' }
|
||||
0x47d { 'cyrl/broadOmega' 'cyrlPsiliAbove' 'cyrlPokrytieAbove' }
|
||||
0x498 { 'cyrl/Ze' 'cedillaBelow' }
|
||||
0x499 { 'cyrl/ze' 'cedillaBelow' }
|
||||
0x4aa { 'cyrl/Es' 'cedillaBelow' }
|
||||
0x4ab { 'cyrl/es' 'cedillaBelow' }
|
||||
0x4b0 { 'cyrl/Ue' 'barOver' }
|
||||
0x4b1 { 'cyrl/ue' 'barOver' }
|
||||
|
||||
."\u0290" "z\u0322"
|
||||
."\u1D90" "\u0251\u0322"
|
||||
0x1d7c { 'latn/iota' 'barOver' }
|
||||
0x1d7d { 'p' 'longBarOver' }
|
||||
0x1d7f { 'latinupsilon1' 'longBarOver' }
|
||||
0x1e10 { 'D' 'commaBelow' }
|
||||
0x1e11 { 'd' 'commaBelow' }
|
||||
0x1e9c { 'longs' 'shortSlashOver' }
|
||||
0x1eda { 'OHorn' 'acuteAbove' }
|
||||
0x1edb { 'oHorn' 'acuteAbove' }
|
||||
0x1edc { 'OHorn' 'graveAbove' }
|
||||
0x1edd { 'oHorn' 'graveAbove' }
|
||||
0x1ede { 'OHorn' 'hookAbove' }
|
||||
0x1edf { 'oHorn' 'hookAbove' }
|
||||
0x1ee0 { 'OHorn' 'tildeAbove' }
|
||||
0x1ee1 { 'oHorn' 'tildeAbove' }
|
||||
0x1ee2 { 'OHorn' 'dotBelow' }
|
||||
0x1ee3 { 'oHorn' 'dotBelow' }
|
||||
|
||||
."\u1E10" "D\u0326"
|
||||
."\u1E11" "d\u0326"
|
||||
0x2c65 { 'a' 'slashOver' }
|
||||
0x2c66 { 't' 'longSlashOver' }
|
||||
|
||||
."\u1E9C" "\u017F\uE000"
|
||||
|
||||
."\u1EDC" "\u01A0\u0300"
|
||||
."\u1EDD" "\u01A1\u0300"
|
||||
."\u1EDA" "\u01A0\u0301"
|
||||
."\u1EDB" "\u01A1\u0301"
|
||||
."\u1EDE" "\u01A0\u0309"
|
||||
."\u1EDF" "\u01A1\u0309"
|
||||
."\u1EE0" "\u01A0\u0303"
|
||||
."\u1EE1" "\u01A1\u0303"
|
||||
."\u1EE2" "\u01A0\u0323"
|
||||
."\u1EE3" "\u01A1\u0323"
|
||||
|
||||
."\u2C65" "a\u0337"
|
||||
."\u2C66" "t\u0338"
|
||||
|
||||
# Cyrillic composite characters
|
||||
."\u0498" "\u0417\u0327"
|
||||
."\u0499" "\u0437\u0327"
|
||||
."\u04AA" "\u0421\u0327"
|
||||
."\u04AB" "\u0441\u0327"
|
||||
."\u047C" "\uA64C\u0486\u0487"
|
||||
."\u047D" "\uA64D\u0486\u0487"
|
||||
|
||||
# Spacing modifers
|
||||
."\u02CB" "\uE00D\u0300"
|
||||
."\u02CA" "\uE00D\u0301"
|
||||
."\u02C6" "\uE00D\u0302"
|
||||
."\u02DC" "\uE00D\u0303"
|
||||
."\u00AF" "\uE00D\u0304"
|
||||
."\u02C9" "\uE00D\u0304"
|
||||
."\u02D8" "\uE00D\u0306"
|
||||
."\u02D9" "\uE00D\u0307"
|
||||
."\u00A8" "\uE00D\u0308"
|
||||
."\u02DA" "\uE00D\u030A"
|
||||
."\u02C7" "\uE00D\u030C"
|
||||
."\u00B8" "\uE00D\u0327"
|
||||
."\u02CD" "\uE00D\u0331"
|
||||
."\u02CE" "\uE00D\u0316"
|
||||
."\u02CF" "\uE00D\u0317"
|
||||
."\u02D2" "\uE00D\u0339"
|
||||
."\u02D3" "\uE00D\u031C"
|
||||
."\u02D4" "\uE00D\u031D"
|
||||
."\u02D5" "\uE00D\u031E"
|
||||
."\u02D6" "\uE00D\u031F"
|
||||
."\u02D7" "\uE00D\u0320"
|
||||
."\u02DB" "\uE00D\u0328"
|
||||
."\u02DD" "\uE00D\u030B"
|
||||
."\u02DF" "\uE00D\u033D"
|
||||
."\u02EC" "\uE00D\u032C"
|
||||
."\u02ED" "\uE00D\u033F"
|
||||
."\u02F3" "\uE00D\u0325"
|
||||
."\u02F7" "\uE00D\u0330"
|
||||
."\u02BE" "\uE00D\u0357"
|
||||
."\u02BF" "\uE00D\u0351"
|
||||
."\u02C2" "\uE00D\u1DFE"
|
||||
."\u02C3" "\uE00D\u0350"
|
||||
."\u02C4" "\uE00D\uE002"
|
||||
."\u02C5" "\uE00D\uE003"
|
||||
."\u02EF" "\uE00D\uE005"
|
||||
."\u02F0" "\uE00D\uE004"
|
||||
."\u02F1" "\uE00D\u0354"
|
||||
."\u02F2" "\uE00D\u0355"
|
||||
."\u02FF" "\uE00D\u20EE"
|
||||
|
||||
."\u1FED" "\uE00D\u0308\u0300"
|
||||
."\u1FEE" "\uE00D\u0308\u0301"
|
||||
."\u1FEF" "\uE00D\u0300"
|
||||
."\u1FFD" "\uE00D\u0301"
|
||||
."\u1FFE" "\uE00D\u0314"
|
||||
."\u1FBD" "\uE00D\u0313"
|
||||
."\u1FBE" "\uE00D\u0345"
|
||||
."\u1FBF" "\uE00D\u0313"
|
||||
."\u1FC0" "\uE00D\u0342"
|
||||
."\u1FC1" "\uE00D\u0308\u0342"
|
||||
."\u0384" "\uE00D\u0301"
|
||||
."\u0385" "\uE00D\u0308\u0301"
|
||||
."\u037A" "\uE00D\u0345"
|
||||
."\uAB30" "\u0251\uE001"
|
||||
."\uA7B8" "U\u0338"
|
||||
."\uA7B9" "u\u0337"
|
||||
."\uA7BB" "a\uE010"
|
||||
."\uA7BD" "i\uE010"
|
||||
."\uA7BF" "u\uE010"
|
||||
0xa7b8 { 'U' 'longSlashOver' }
|
||||
0xa7b9 { 'u' 'slashOver' }
|
||||
0xa7bb { 'a' 'EgyptologicalYodAbove' }
|
||||
0xa7bd { 'i' 'EgyptologicalYodAbove' }
|
||||
0xa7bf { 'u' 'EgyptologicalYodAbove' }
|
||||
0xab30 { 'scripta' 'longBarOver' }
|
||||
|
|
|
@ -4301,6 +4301,7 @@ tag = "cv49"
|
|||
rank = 1
|
||||
description = "Letter `y` that is fully straight"
|
||||
selector.y = "straight"
|
||||
selector."y/nonCursive" = "straight"
|
||||
selector."y/sansSerif" = "straight"
|
||||
selector.yHookTop = "straight"
|
||||
|
||||
|
@ -4308,6 +4309,7 @@ selector.yHookTop = "straight"
|
|||
rank = 2
|
||||
description = "Letter `y` with straight upper and a tail turns leftward"
|
||||
selector.y = "straightTurn"
|
||||
selector."y/nonCursive" = "straightTurn"
|
||||
selector."y/sansSerif" = "straightTurn"
|
||||
selector.yHookTop = "straightTurn"
|
||||
|
||||
|
@ -4315,6 +4317,7 @@ selector.yHookTop = "straightTurn"
|
|||
rank = 3
|
||||
description = "More curly letter `y`, like Iosevka 2.x"
|
||||
selector.y = "curly"
|
||||
selector."y/nonCursive" = "curly"
|
||||
selector."y/sansSerif" = "curly"
|
||||
selector.yHookTop = "curly"
|
||||
|
||||
|
@ -4322,6 +4325,7 @@ selector.yHookTop = "curly"
|
|||
rank = 4
|
||||
description = "More curly letter `y`, like Iosevka 2.x, with a tail turns leftward"
|
||||
selector.y = "curlyTurn"
|
||||
selector."y/nonCursive" = "curlyTurn"
|
||||
selector."y/sansSerif" = "curlyTurn"
|
||||
selector.yHookTop = "curlyTurn"
|
||||
|
||||
|
@ -4329,6 +4333,7 @@ selector.yHookTop = "curlyTurn"
|
|||
rank = 5
|
||||
description = "Cursive-like `y`"
|
||||
selector.y = "cursive"
|
||||
selector."y/nonCursive" = "straightTurn"
|
||||
selector."y/sansSerif" = "cursive"
|
||||
selector.yHookTop = "cursive"
|
||||
|
||||
|
@ -4336,6 +4341,7 @@ selector.yHookTop = "cursive"
|
|||
rank = 6
|
||||
description = "Cursive-like `y` with flat terminal hook"
|
||||
selector.y = "cursiveFlatHook"
|
||||
selector."y/nonCursive" = "straightTurn"
|
||||
selector."y/sansSerif" = "cursiveFlatHook"
|
||||
selector.yHookTop = "cursiveFlatHook"
|
||||
|
||||
|
@ -4343,6 +4349,7 @@ selector.yHookTop = "cursiveFlatHook"
|
|||
rank = 7
|
||||
description = "Letter `y` that is fully straight, with motion serifs"
|
||||
selector.y = "straightMotionSerifed"
|
||||
selector."y/nonCursive" = "straightMotionSerifed"
|
||||
selector."y/sansSerif" = "straight"
|
||||
selector.yHookTop = "straight"
|
||||
|
||||
|
@ -4350,6 +4357,7 @@ selector.yHookTop = "straight"
|
|||
rank = 8
|
||||
description = "Letter `y` with straight upper and a tail turns leftward, and motion serifs"
|
||||
selector.y = "straightTurnMotionSerifed"
|
||||
selector."y/nonCursive" = "straightTurnMotionSerifed"
|
||||
selector."y/sansSerif" = "straightTurn"
|
||||
selector.yHookTop = "straightTurn"
|
||||
|
||||
|
@ -4357,6 +4365,7 @@ selector.yHookTop = "straightTurn"
|
|||
rank = 9
|
||||
description = "More curly letter `y`, like Iosevka 2.x, with motion serifs"
|
||||
selector.y = "curlyMotionSerifed"
|
||||
selector."y/nonCursive" = "curlyMotionSerifed"
|
||||
selector."y/sansSerif" = "curly"
|
||||
selector.yHookTop = "curly"
|
||||
|
||||
|
@ -4364,6 +4373,7 @@ selector.yHookTop = "curly"
|
|||
rank = 10
|
||||
description = "More curly letter `y`, like Iosevka 2.x, with a tail turns leftward and motion serifs"
|
||||
selector.y = "curlyTurnMotionSerifed"
|
||||
selector."y/nonCursive" = "curlyTurnMotionSerifed"
|
||||
selector."y/sansSerif" = "curlyTurn"
|
||||
selector.yHookTop = "curlyTurn"
|
||||
|
||||
|
@ -4371,6 +4381,7 @@ selector.yHookTop = "curlyTurn"
|
|||
rank = 11
|
||||
description = "Cursive-like `y`, with motion serifs"
|
||||
selector.y = "cursiveMotionSerifed"
|
||||
selector."y/nonCursive" = "straightTurnMotionSerifed"
|
||||
selector."y/sansSerif" = "cursive"
|
||||
selector.yHookTop = "cursive"
|
||||
|
||||
|
@ -4378,6 +4389,7 @@ selector.yHookTop = "cursive"
|
|||
rank = 12
|
||||
description = "Cursive-like `y` with flat terminal hook, and motion serifs"
|
||||
selector.y = "cursiveFlatHookMotionSerifed"
|
||||
selector."y/nonCursive" = "straightTurnMotionSerifed"
|
||||
selector."y/sansSerif" = "cursiveFlatHook"
|
||||
selector.yHookTop = "cursiveFlatHook"
|
||||
|
||||
|
|
|
@ -5,6 +5,8 @@ export async function collectBlockData() {
|
|||
[[0xe0a0, 0xe0df], "Private Use Area — Powerline"],
|
||||
[[0xee00, 0xee3f], "Private Use Area — Progress Bar"],
|
||||
// Missing ranges in UnicodeDataIndex
|
||||
[[0x10780, 0x107bf], "Latin Extended-F"],
|
||||
[[0x1df00, 0x1dfff], "Latin Extended-G"],
|
||||
[[0x1fa70, 0x1faff], "Symbols and Pictographs Extended-A "],
|
||||
[[0x1fb00, 0x1fbff], "Symbols for Legacy Computing"]
|
||||
];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue