diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e49fcb663..394fd77551 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ ## Modifications since last major version +### 31.8.0 + +* Add characters: + - LATIN EPIGRAPHIC LETTER ARCHAIC M (`U+A7FF`) (#2517). + - MUSICAL SYMBOL RINFORZANDO (`U+1D18C`) ... MUSICAL SYMBOL FORTE (`U+1D191`) (#2522). +* Improve glyph for Cyrillic I (`И`/`и`) under slab (#2489). + - Bulgarian locale (`'BGR '`) uses original style for capital. +* Optimize glyph for Tonos Above (`U+0384`) in accented Greek letters. +* Optimize stroke width of bar for split bowl variants of Cyrillic Lower Ef (`ф`). +* Optimize glyph for Cyrillic Capital Ef (`Ф`) under Bulgarian locale (`'BGR '`) under slab. +* Fix seam in glyphs of Cyrillic Capital/Small Letter Zhwe (`U+A684`..`U+A685`). +* Fix broken shape of certain power and playback symbols under quasi-proportional (#2528). +* Fix alignment of the suit part of Playing Cards glyphs under quasi-Proportional (#2529). + + ### 31.7.1 * Fix internal seams of variants of outlined letters U+1CCE6 and U+1CCEF (#2509). diff --git a/changes/31.8.0.md b/changes/31.8.0.md new file mode 100644 index 0000000000..17ce169947 --- /dev/null +++ b/changes/31.8.0.md @@ -0,0 +1,11 @@ +* Add characters: + - LATIN EPIGRAPHIC LETTER ARCHAIC M (`U+A7FF`) (#2517). + - MUSICAL SYMBOL RINFORZANDO (`U+1D18C`) ... MUSICAL SYMBOL FORTE (`U+1D191`) (#2522). +* Improve glyph for Cyrillic I (`И`/`и`) under slab (#2489). + - Bulgarian locale (`'BGR '`) uses original style for capital. +* Optimize glyph for Tonos Above (`U+0384`) in accented Greek letters. +* Optimize stroke width of bar for split bowl variants of Cyrillic Lower Ef (`ф`). +* Optimize glyph for Cyrillic Capital Ef (`Ф`) under Bulgarian locale (`'BGR '`) under slab. +* Fix seam in glyphs of Cyrillic Capital/Small Letter Zhwe (`U+A684`..`U+A685`). +* Fix broken shape of certain power and playback symbols under quasi-proportional (#2528). +* Fix alignment of the suit part of Playing Cards glyphs under quasi-Proportional (#2529). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 74892e487f..7dbcd70a5a 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 31.7.1 +# Package list of Release 31.8.0 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/cv-influences.md b/doc/cv-influences.md index ee711b1c6b..b63cd798bd 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -165,7 +165,7 @@ - `cv41`: - f (`U+0066`), ƒ (`U+0192`), ʩ (`U+02A9`), ᵮ (`U+1D6E`), ᶂ (`U+1D82`), ᶠ (`U+1DA0`), ᷫ (`U+1DEB`), ḟ (`U+1E1F`), ≝ (`U+225D`), ⒡ (`U+24A1`), ⓕ (`U+24D5`), ꞙ (`U+A799`), ꬵ (`U+AB35`), ff (`U+FB00`), fi (`U+FB01`), fl (`U+FB02`), ffi (`U+FB03`), ffl (`U+FB04`), 𐞐 (`U+10790`), 𝐟 (`U+1D41F`), 𝑓 (`U+1D453`), 𝒇 (`U+1D487`), 𝖿 (`U+1D5BF`), 𝗳 (`U+1D5F3`), 𝘧 (`U+1D627`), 𝙛 (`U+1D65B`), 𝚏 (`U+1D68F`) + f (`U+0066`), ƒ (`U+0192`), ʩ (`U+02A9`), ᵮ (`U+1D6E`), ᶂ (`U+1D82`), ᶠ (`U+1DA0`), ᷫ (`U+1DEB`), ḟ (`U+1E1F`), ≝ (`U+225D`), ⒡ (`U+24A1`), ⓕ (`U+24D5`), ꞙ (`U+A799`), ꬵ (`U+AB35`), ff (`U+FB00`), fi (`U+FB01`), fl (`U+FB02`), ffi (`U+FB03`), ffl (`U+FB04`), 𐞐 (`U+10790`), 𝆑 (`U+1D191`), 𝐟 (`U+1D41F`), 𝑓 (`U+1D453`), 𝒇 (`U+1D487`), 𝖿 (`U+1D5BF`), 𝗳 (`U+1D5F3`), 𝘧 (`U+1D627`), 𝙛 (`U+1D65B`), 𝚏 (`U+1D68F`) - `cv42`: @@ -193,7 +193,7 @@ - `cv48`: - m (`U+006D`), ɱ (`U+0271`), ͫ (`U+036B`), ᵐ (`U+1D50`), ᵯ (`U+1D6F`), ᶆ (`U+1D86`), ᶬ (`U+1DAC`), ḿ (`U+1E3F`), ṁ (`U+1E41`), ṃ (`U+1E43`), ₘ (`U+2098`), ₥ (`U+20A5`), ⅿ (`U+217F`), ≞ (`U+225E`), ⒨ (`U+24A8`), ⓜ (`U+24DC`), ꬺ (`U+AB3A`), 𝐦 (`U+1D426`), 𝑚 (`U+1D45A`), 𝒎 (`U+1D48E`), 𝗆 (`U+1D5C6`), 𝗺 (`U+1D5FA`), 𝘮 (`U+1D62E`), 𝙢 (`U+1D662`), 𝚖 (`U+1D696`) + m (`U+006D`), ɱ (`U+0271`), ͫ (`U+036B`), ᵐ (`U+1D50`), ᵯ (`U+1D6F`), ᶆ (`U+1D86`), ᶬ (`U+1DAC`), ḿ (`U+1E3F`), ṁ (`U+1E41`), ṃ (`U+1E43`), ₘ (`U+2098`), ₥ (`U+20A5`), ⅿ (`U+217F`), ≞ (`U+225E`), ⒨ (`U+24A8`), ⓜ (`U+24DC`), ꬺ (`U+AB3A`), 𝆐 (`U+1D190`), 𝐦 (`U+1D426`), 𝑚 (`U+1D45A`), 𝒎 (`U+1D48E`), 𝗆 (`U+1D5C6`), 𝗺 (`U+1D5FA`), 𝘮 (`U+1D62E`), 𝙢 (`U+1D662`), 𝚖 (`U+1D696`) - `cv49`: @@ -201,7 +201,7 @@ - `cv50`: - p (`U+0070`), ƥ (`U+01A5`), ᵖ (`U+1D56`), ᵱ (`U+1D71`), ᵽ (`U+1D7D`), ᶈ (`U+1D88`), ᷮ (`U+1DEE`), ṕ (`U+1E55`), ṗ (`U+1E57`), ₚ (`U+209A`), ⒫ (`U+24AB`), ⓟ (`U+24DF`), ꝑ (`U+A751`), 𝐩 (`U+1D429`), 𝑝 (`U+1D45D`), 𝒑 (`U+1D491`), 𝗉 (`U+1D5C9`), 𝗽 (`U+1D5FD`), 𝘱 (`U+1D631`), 𝙥 (`U+1D665`), 𝚙 (`U+1D699`) + p (`U+0070`), ƥ (`U+01A5`), ᵖ (`U+1D56`), ᵱ (`U+1D71`), ᵽ (`U+1D7D`), ᶈ (`U+1D88`), ᷮ (`U+1DEE`), ṕ (`U+1E55`), ṗ (`U+1E57`), ₚ (`U+209A`), ⒫ (`U+24AB`), ⓟ (`U+24DF`), ꝑ (`U+A751`), 𝆏 (`U+1D18F`), 𝐩 (`U+1D429`), 𝑝 (`U+1D45D`), 𝒑 (`U+1D491`), 𝗉 (`U+1D5C9`), 𝗽 (`U+1D5FD`), 𝘱 (`U+1D631`), 𝙥 (`U+1D665`), 𝚙 (`U+1D699`) - `cv51`: @@ -209,11 +209,11 @@ - `cv52`: - r (`U+0072`), ŕ (`U+0155`), ŗ (`U+0157`), ř (`U+0159`), ȑ (`U+0211`), ȓ (`U+0213`), ɍ (`U+024D`), ɹ (`U+0279`), ɺ (`U+027A`), ɻ (`U+027B`), ɼ (`U+027C`), ɽ (`U+027D`), ɾ (`U+027E`), ʳ (`U+02B3`), ʴ (`U+02B4`), ʵ (`U+02B5`), ͬ (`U+036C`), ᵣ (`U+1D63`), ᵲ (`U+1D72`), ᵳ (`U+1D73`), ᶉ (`U+1D89`), ᷊ (`U+1DCA`), ṙ (`U+1E59`), ṛ (`U+1E5B`), ṝ (`U+1E5D`), ṟ (`U+1E5F`), ⒭ (`U+24AD`), ⓡ (`U+24E1`), ⱹ (`U+2C79`), Ꝼ (`U+A77B`), ꝼ (`U+A77C`), Ꞅ (`U+A784`), ꞅ (`U+A785`), ꞧ (`U+A7A7`), ꭨ (`U+AB68`), 𐞦 (`U+107A6`), 𐞧 (`U+107A7`), 𐞨 (`U+107A8`), 𐞩 (`U+107A9`), 𝐫 (`U+1D42B`), 𝑟 (`U+1D45F`), 𝒓 (`U+1D493`), 𝗋 (`U+1D5CB`), 𝗿 (`U+1D5FF`), 𝘳 (`U+1D633`), 𝙧 (`U+1D667`), 𝚛 (`U+1D69B`), 𝼈 (`U+1DF08`), 𝼕 (`U+1DF15`), 𝼖 (`U+1DF16`) + r (`U+0072`), ŕ (`U+0155`), ŗ (`U+0157`), ř (`U+0159`), ȑ (`U+0211`), ȓ (`U+0213`), ɍ (`U+024D`), ɹ (`U+0279`), ɺ (`U+027A`), ɻ (`U+027B`), ɼ (`U+027C`), ɽ (`U+027D`), ɾ (`U+027E`), ʳ (`U+02B3`), ʴ (`U+02B4`), ʵ (`U+02B5`), ͬ (`U+036C`), ᵣ (`U+1D63`), ᵲ (`U+1D72`), ᵳ (`U+1D73`), ᶉ (`U+1D89`), ᷊ (`U+1DCA`), ṙ (`U+1E59`), ṛ (`U+1E5B`), ṝ (`U+1E5D`), ṟ (`U+1E5F`), ⒭ (`U+24AD`), ⓡ (`U+24E1`), ⱹ (`U+2C79`), Ꝼ (`U+A77B`), ꝼ (`U+A77C`), Ꞅ (`U+A784`), ꞅ (`U+A785`), ꞧ (`U+A7A7`), ꭨ (`U+AB68`), 𐞦 (`U+107A6`), 𐞧 (`U+107A7`), 𐞨 (`U+107A8`), 𐞩 (`U+107A9`), 𝆌 (`U+1D18C`), 𝐫 (`U+1D42B`), 𝑟 (`U+1D45F`), 𝒓 (`U+1D493`), 𝗋 (`U+1D5CB`), 𝗿 (`U+1D5FF`), 𝘳 (`U+1D633`), 𝙧 (`U+1D667`), 𝚛 (`U+1D69B`), 𝼈 (`U+1DF08`), 𝼕 (`U+1DF15`), 𝼖 (`U+1DF16`) - `cv53`: - s (`U+0073`), ś (`U+015B`), ŝ (`U+015D`), ş (`U+015F`), š (`U+0161`), ƨ (`U+01A8`), ƾ (`U+01BE`), ș (`U+0219`), ȿ (`U+023F`), ʂ (`U+0282`), ʦ (`U+02A6`), ʪ (`U+02AA`), ˢ (`U+02E2`), ѕ (`U+0455`), ᵴ (`U+1D74`), ᶊ (`U+1D8A`), ᶳ (`U+1DB3`), ᷤ (`U+1DE4`), ṡ (`U+1E61`), ṣ (`U+1E63`), ṥ (`U+1E65`), ṧ (`U+1E67`), ṩ (`U+1E69`), ₛ (`U+209B`), ₨ (`U+20A8`), ℁ (`U+2101`), ⒮ (`U+24AE`), ⓢ (`U+24E2`), ꙅ (`U+A645`), ꚃ (`U+A683`), ꞩ (`U+A7A9`), ꟊ (`U+A7CA`), ꟍ (`U+A7CD`), ꭧ (`U+AB67`), st (`U+FB06`), 𐞙 (`U+10799`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞺 (`U+107BA`), 𝐬 (`U+1D42C`), 𝑠 (`U+1D460`), 𝒔 (`U+1D494`), 𝗌 (`U+1D5CC`), 𝘀 (`U+1D600`), 𝘴 (`U+1D634`), 𝙨 (`U+1D668`), 𝚜 (`U+1D69C`), 𝼞 (`U+1DF1E`), 𞁩 (`U+1E069`) + s (`U+0073`), ś (`U+015B`), ŝ (`U+015D`), ş (`U+015F`), š (`U+0161`), ƨ (`U+01A8`), ƾ (`U+01BE`), ș (`U+0219`), ȿ (`U+023F`), ʂ (`U+0282`), ʦ (`U+02A6`), ʪ (`U+02AA`), ˢ (`U+02E2`), ѕ (`U+0455`), ᵴ (`U+1D74`), ᶊ (`U+1D8A`), ᶳ (`U+1DB3`), ᷤ (`U+1DE4`), ṡ (`U+1E61`), ṣ (`U+1E63`), ṥ (`U+1E65`), ṧ (`U+1E67`), ṩ (`U+1E69`), ₛ (`U+209B`), ₨ (`U+20A8`), ℁ (`U+2101`), ⒮ (`U+24AE`), ⓢ (`U+24E2`), ꙅ (`U+A645`), ꚃ (`U+A683`), ꞩ (`U+A7A9`), ꟊ (`U+A7CA`), ꟍ (`U+A7CD`), ꭧ (`U+AB67`), st (`U+FB06`), 𐞙 (`U+10799`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞺 (`U+107BA`), 𝆍 (`U+1D18D`), 𝐬 (`U+1D42C`), 𝑠 (`U+1D460`), 𝒔 (`U+1D494`), 𝗌 (`U+1D5CC`), 𝘀 (`U+1D600`), 𝘴 (`U+1D634`), 𝙨 (`U+1D668`), 𝚜 (`U+1D69C`), 𝼞 (`U+1DF1E`), 𞁩 (`U+1E069`) - `cv54`: @@ -241,7 +241,7 @@ - `cv60`: - z (`U+007A`), ź (`U+017A`), ż (`U+017C`), ž (`U+017E`), ƶ (`U+01B6`), ƹ (`U+01B9`), ƺ (`U+01BA`), Dž (`U+01C5`), dž (`U+01C6`), ǯ (`U+01EF`), Dz (`U+01F2`), dz (`U+01F3`), ȥ (`U+0225`), ɀ (`U+0240`), ʐ (`U+0290`), ʑ (`U+0291`), ʒ (`U+0292`), ʓ (`U+0293`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ʫ (`U+02AB`), ӡ (`U+04E1`), ᵶ (`U+1D76`), ᶎ (`U+1D8E`), ᶚ (`U+1D9A`), ᶻ (`U+1DBB`), ᶼ (`U+1DBC`), ᶽ (`U+1DBD`), ᶾ (`U+1DBE`), ᷦ (`U+1DE6`), ẑ (`U+1E91`), ẓ (`U+1E93`), ẕ (`U+1E95`), ⒵ (`U+24B5`), ⓩ (`U+24E9`), ⱬ (`U+2C6C`), ꙁ (`U+A641`), ꙃ (`U+A643`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞚 (`U+1079A`), 𝐳 (`U+1D433`), 𝑧 (`U+1D467`), 𝒛 (`U+1D49B`), 𝗓 (`U+1D5D3`), 𝘇 (`U+1D607`), 𝘻 (`U+1D63B`), 𝙯 (`U+1D66F`), 𝚣 (`U+1D6A3`), 𝼒 (`U+1DF12`), 𝼘 (`U+1DF18`), 🄮 (`U+1F12E`) + z (`U+007A`), ź (`U+017A`), ż (`U+017C`), ž (`U+017E`), ƶ (`U+01B6`), ƹ (`U+01B9`), ƺ (`U+01BA`), Dž (`U+01C5`), dž (`U+01C6`), ǯ (`U+01EF`), Dz (`U+01F2`), dz (`U+01F3`), ȥ (`U+0225`), ɀ (`U+0240`), ʐ (`U+0290`), ʑ (`U+0291`), ʒ (`U+0292`), ʓ (`U+0293`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ʫ (`U+02AB`), ӡ (`U+04E1`), ᵶ (`U+1D76`), ᶎ (`U+1D8E`), ᶚ (`U+1D9A`), ᶻ (`U+1DBB`), ᶼ (`U+1DBC`), ᶽ (`U+1DBD`), ᶾ (`U+1DBE`), ᷦ (`U+1DE6`), ẑ (`U+1E91`), ẓ (`U+1E93`), ẕ (`U+1E95`), ⒵ (`U+24B5`), ⓩ (`U+24E9`), ⱬ (`U+2C6C`), ꙁ (`U+A641`), ꙃ (`U+A643`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞚 (`U+1079A`), 𝆎 (`U+1D18E`), 𝐳 (`U+1D433`), 𝑧 (`U+1D467`), 𝒛 (`U+1D49B`), 𝗓 (`U+1D5D3`), 𝘇 (`U+1D607`), 𝘻 (`U+1D63B`), 𝙯 (`U+1D66F`), 𝚣 (`U+1D6A3`), 𝼒 (`U+1DF12`), 𝼘 (`U+1DF18`), 🄮 (`U+1F12E`) - `cv61`: @@ -692,7 +692,7 @@ - `cv41`: - f (`U+0066`), ƒ (`U+0192`), ʩ (`U+02A9`), ᵮ (`U+1D6E`), ᶂ (`U+1D82`), ᶠ (`U+1DA0`), ᷫ (`U+1DEB`), ḟ (`U+1E1F`), ≝ (`U+225D`), ⒡ (`U+24A1`), ⓕ (`U+24D5`), ꞙ (`U+A799`), ꬵ (`U+AB35`), ff (`U+FB00`), fi (`U+FB01`), fl (`U+FB02`), ffi (`U+FB03`), ffl (`U+FB04`), 𐞐 (`U+10790`), 𝐟 (`U+1D41F`), 𝑓 (`U+1D453`), 𝒇 (`U+1D487`), 𝖿 (`U+1D5BF`), 𝗳 (`U+1D5F3`), 𝘧 (`U+1D627`), 𝙛 (`U+1D65B`), 𝚏 (`U+1D68F`) + f (`U+0066`), ƒ (`U+0192`), ʩ (`U+02A9`), ᵮ (`U+1D6E`), ᶂ (`U+1D82`), ᶠ (`U+1DA0`), ᷫ (`U+1DEB`), ḟ (`U+1E1F`), ≝ (`U+225D`), ⒡ (`U+24A1`), ⓕ (`U+24D5`), ꞙ (`U+A799`), ꬵ (`U+AB35`), ff (`U+FB00`), fi (`U+FB01`), fl (`U+FB02`), ffi (`U+FB03`), ffl (`U+FB04`), 𐞐 (`U+10790`), 𝆑 (`U+1D191`), 𝐟 (`U+1D41F`), 𝑓 (`U+1D453`), 𝒇 (`U+1D487`), 𝖿 (`U+1D5BF`), 𝗳 (`U+1D5F3`), 𝘧 (`U+1D627`), 𝙛 (`U+1D65B`), 𝚏 (`U+1D68F`) - `cv42`: @@ -720,7 +720,7 @@ - `cv48`: - m (`U+006D`), ɱ (`U+0271`), ͫ (`U+036B`), т (`U+0442`), ҭ (`U+04AD`), ԏ (`U+050F`), ᲅ (`U+1C85`), ᲊ (`U+1C8A`), ᵐ (`U+1D50`), ᵯ (`U+1D6F`), ᶆ (`U+1D86`), ᶬ (`U+1DAC`), ḿ (`U+1E3F`), ṁ (`U+1E41`), ṃ (`U+1E43`), ₘ (`U+2098`), ₥ (`U+20A5`), ⅿ (`U+217F`), ≞ (`U+225E`), ⒨ (`U+24A8`), ⓜ (`U+24DC`), ⷮ (`U+2DEE`), ⷵ (`U+2DF5`), ꚋ (`U+A68B`), ꬺ (`U+AB3A`), 𝐦 (`U+1D426`), 𝑚 (`U+1D45A`), 𝒎 (`U+1D48E`), 𝗆 (`U+1D5C6`), 𝗺 (`U+1D5FA`), 𝘮 (`U+1D62E`), 𝙢 (`U+1D662`), 𝚖 (`U+1D696`), 𞁀 (`U+1E040`) + m (`U+006D`), ɱ (`U+0271`), ͫ (`U+036B`), т (`U+0442`), ҭ (`U+04AD`), ԏ (`U+050F`), ᲅ (`U+1C85`), ᲊ (`U+1C8A`), ᵐ (`U+1D50`), ᵯ (`U+1D6F`), ᶆ (`U+1D86`), ᶬ (`U+1DAC`), ḿ (`U+1E3F`), ṁ (`U+1E41`), ṃ (`U+1E43`), ₘ (`U+2098`), ₥ (`U+20A5`), ⅿ (`U+217F`), ≞ (`U+225E`), ⒨ (`U+24A8`), ⓜ (`U+24DC`), ⷮ (`U+2DEE`), ⷵ (`U+2DF5`), ꚋ (`U+A68B`), ꬺ (`U+AB3A`), 𝆐 (`U+1D190`), 𝐦 (`U+1D426`), 𝑚 (`U+1D45A`), 𝒎 (`U+1D48E`), 𝗆 (`U+1D5C6`), 𝗺 (`U+1D5FA`), 𝘮 (`U+1D62E`), 𝙢 (`U+1D662`), 𝚖 (`U+1D696`), 𞁀 (`U+1E040`) - `cv49`: @@ -728,7 +728,7 @@ - `cv50`: - p (`U+0070`), ƥ (`U+01A5`), ᵖ (`U+1D56`), ᵱ (`U+1D71`), ᵽ (`U+1D7D`), ᶈ (`U+1D88`), ᷮ (`U+1DEE`), ṕ (`U+1E55`), ṗ (`U+1E57`), ₚ (`U+209A`), ⒫ (`U+24AB`), ⓟ (`U+24DF`), ꝑ (`U+A751`), 𝐩 (`U+1D429`), 𝑝 (`U+1D45D`), 𝒑 (`U+1D491`), 𝗉 (`U+1D5C9`), 𝗽 (`U+1D5FD`), 𝘱 (`U+1D631`), 𝙥 (`U+1D665`), 𝚙 (`U+1D699`) + p (`U+0070`), ƥ (`U+01A5`), ᵖ (`U+1D56`), ᵱ (`U+1D71`), ᵽ (`U+1D7D`), ᶈ (`U+1D88`), ᷮ (`U+1DEE`), ṕ (`U+1E55`), ṗ (`U+1E57`), ₚ (`U+209A`), ⒫ (`U+24AB`), ⓟ (`U+24DF`), ꝑ (`U+A751`), 𝆏 (`U+1D18F`), 𝐩 (`U+1D429`), 𝑝 (`U+1D45D`), 𝒑 (`U+1D491`), 𝗉 (`U+1D5C9`), 𝗽 (`U+1D5FD`), 𝘱 (`U+1D631`), 𝙥 (`U+1D665`), 𝚙 (`U+1D699`) - `cv51`: @@ -736,11 +736,11 @@ - `cv52`: - r (`U+0072`), ŕ (`U+0155`), ŗ (`U+0157`), ř (`U+0159`), ȑ (`U+0211`), ȓ (`U+0213`), ɍ (`U+024D`), ɹ (`U+0279`), ɺ (`U+027A`), ɻ (`U+027B`), ɼ (`U+027C`), ɽ (`U+027D`), ɾ (`U+027E`), ʳ (`U+02B3`), ʴ (`U+02B4`), ʵ (`U+02B5`), ͬ (`U+036C`), ᵣ (`U+1D63`), ᵲ (`U+1D72`), ᵳ (`U+1D73`), ᶉ (`U+1D89`), ᷊ (`U+1DCA`), ṙ (`U+1E59`), ṛ (`U+1E5B`), ṝ (`U+1E5D`), ṟ (`U+1E5F`), ⒭ (`U+24AD`), ⓡ (`U+24E1`), ⱹ (`U+2C79`), Ꝼ (`U+A77B`), ꝼ (`U+A77C`), Ꞅ (`U+A784`), ꞅ (`U+A785`), ꞧ (`U+A7A7`), ꭨ (`U+AB68`), 𐞦 (`U+107A6`), 𐞧 (`U+107A7`), 𐞨 (`U+107A8`), 𐞩 (`U+107A9`), 𝐫 (`U+1D42B`), 𝑟 (`U+1D45F`), 𝒓 (`U+1D493`), 𝗋 (`U+1D5CB`), 𝗿 (`U+1D5FF`), 𝘳 (`U+1D633`), 𝙧 (`U+1D667`), 𝚛 (`U+1D69B`), 𝼈 (`U+1DF08`), 𝼕 (`U+1DF15`), 𝼖 (`U+1DF16`) + r (`U+0072`), ŕ (`U+0155`), ŗ (`U+0157`), ř (`U+0159`), ȑ (`U+0211`), ȓ (`U+0213`), ɍ (`U+024D`), ɹ (`U+0279`), ɺ (`U+027A`), ɻ (`U+027B`), ɼ (`U+027C`), ɽ (`U+027D`), ɾ (`U+027E`), ʳ (`U+02B3`), ʴ (`U+02B4`), ʵ (`U+02B5`), ͬ (`U+036C`), ᵣ (`U+1D63`), ᵲ (`U+1D72`), ᵳ (`U+1D73`), ᶉ (`U+1D89`), ᷊ (`U+1DCA`), ṙ (`U+1E59`), ṛ (`U+1E5B`), ṝ (`U+1E5D`), ṟ (`U+1E5F`), ⒭ (`U+24AD`), ⓡ (`U+24E1`), ⱹ (`U+2C79`), Ꝼ (`U+A77B`), ꝼ (`U+A77C`), Ꞅ (`U+A784`), ꞅ (`U+A785`), ꞧ (`U+A7A7`), ꭨ (`U+AB68`), 𐞦 (`U+107A6`), 𐞧 (`U+107A7`), 𐞨 (`U+107A8`), 𐞩 (`U+107A9`), 𝆌 (`U+1D18C`), 𝐫 (`U+1D42B`), 𝑟 (`U+1D45F`), 𝒓 (`U+1D493`), 𝗋 (`U+1D5CB`), 𝗿 (`U+1D5FF`), 𝘳 (`U+1D633`), 𝙧 (`U+1D667`), 𝚛 (`U+1D69B`), 𝼈 (`U+1DF08`), 𝼕 (`U+1DF15`), 𝼖 (`U+1DF16`) - `cv53`: - s (`U+0073`), ś (`U+015B`), ŝ (`U+015D`), ş (`U+015F`), š (`U+0161`), ƨ (`U+01A8`), ƾ (`U+01BE`), ș (`U+0219`), ȿ (`U+023F`), ʂ (`U+0282`), ʦ (`U+02A6`), ʪ (`U+02AA`), ˢ (`U+02E2`), г (`U+0433`), ѓ (`U+0453`), ѕ (`U+0455`), ғ (`U+0493`), ӷ (`U+04F7`), ӻ (`U+04FB`), ᵴ (`U+1D74`), ᶊ (`U+1D8A`), ᶳ (`U+1DB3`), ᷤ (`U+1DE4`), ṡ (`U+1E61`), ṣ (`U+1E63`), ṥ (`U+1E65`), ṧ (`U+1E67`), ṩ (`U+1E69`), ₛ (`U+209B`), ₨ (`U+20A8`), ℁ (`U+2101`), ⒮ (`U+24AE`), ⓢ (`U+24E2`), ⷢ (`U+2DE2`), ꙅ (`U+A645`), ꚃ (`U+A683`), ꞩ (`U+A7A9`), ꟊ (`U+A7CA`), ꟍ (`U+A7CD`), ꭧ (`U+AB67`), st (`U+FB06`), 𐞙 (`U+10799`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞺 (`U+107BA`), 𝐬 (`U+1D42C`), 𝑠 (`U+1D460`), 𝒔 (`U+1D494`), 𝗌 (`U+1D5CC`), 𝘀 (`U+1D600`), 𝘴 (`U+1D634`), 𝙨 (`U+1D668`), 𝚜 (`U+1D69C`), 𝼞 (`U+1DF1E`), 𞀳 (`U+1E033`), 𞁔 (`U+1E054`), 𞁩 (`U+1E069`) + s (`U+0073`), ś (`U+015B`), ŝ (`U+015D`), ş (`U+015F`), š (`U+0161`), ƨ (`U+01A8`), ƾ (`U+01BE`), ș (`U+0219`), ȿ (`U+023F`), ʂ (`U+0282`), ʦ (`U+02A6`), ʪ (`U+02AA`), ˢ (`U+02E2`), г (`U+0433`), ѓ (`U+0453`), ѕ (`U+0455`), ғ (`U+0493`), ӷ (`U+04F7`), ӻ (`U+04FB`), ᵴ (`U+1D74`), ᶊ (`U+1D8A`), ᶳ (`U+1DB3`), ᷤ (`U+1DE4`), ṡ (`U+1E61`), ṣ (`U+1E63`), ṥ (`U+1E65`), ṧ (`U+1E67`), ṩ (`U+1E69`), ₛ (`U+209B`), ₨ (`U+20A8`), ℁ (`U+2101`), ⒮ (`U+24AE`), ⓢ (`U+24E2`), ⷢ (`U+2DE2`), ꙅ (`U+A645`), ꚃ (`U+A683`), ꞩ (`U+A7A9`), ꟊ (`U+A7CA`), ꟍ (`U+A7CD`), ꭧ (`U+AB67`), st (`U+FB06`), 𐞙 (`U+10799`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞺 (`U+107BA`), 𝆍 (`U+1D18D`), 𝐬 (`U+1D42C`), 𝑠 (`U+1D460`), 𝒔 (`U+1D494`), 𝗌 (`U+1D5CC`), 𝘀 (`U+1D600`), 𝘴 (`U+1D634`), 𝙨 (`U+1D668`), 𝚜 (`U+1D69C`), 𝼞 (`U+1DF1E`), 𞀳 (`U+1E033`), 𞁔 (`U+1E054`), 𞁩 (`U+1E069`) - `cv54`: @@ -768,7 +768,7 @@ - `cv60`: - z (`U+007A`), ź (`U+017A`), ż (`U+017C`), ž (`U+017E`), ƶ (`U+01B6`), ƹ (`U+01B9`), ƺ (`U+01BA`), Dž (`U+01C5`), dž (`U+01C6`), ǯ (`U+01EF`), Dz (`U+01F2`), dz (`U+01F3`), ȥ (`U+0225`), ɀ (`U+0240`), ʐ (`U+0290`), ʑ (`U+0291`), ʒ (`U+0292`), ʓ (`U+0293`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ʫ (`U+02AB`), ӡ (`U+04E1`), ᵶ (`U+1D76`), ᶎ (`U+1D8E`), ᶚ (`U+1D9A`), ᶻ (`U+1DBB`), ᶼ (`U+1DBC`), ᶽ (`U+1DBD`), ᶾ (`U+1DBE`), ᷦ (`U+1DE6`), ẑ (`U+1E91`), ẓ (`U+1E93`), ẕ (`U+1E95`), ⒵ (`U+24B5`), ⓩ (`U+24E9`), ⱬ (`U+2C6C`), ꙁ (`U+A641`), ꙃ (`U+A643`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞚 (`U+1079A`), 𝐳 (`U+1D433`), 𝑧 (`U+1D467`), 𝒛 (`U+1D49B`), 𝗓 (`U+1D5D3`), 𝘇 (`U+1D607`), 𝘻 (`U+1D63B`), 𝙯 (`U+1D66F`), 𝚣 (`U+1D6A3`), 𝼒 (`U+1DF12`), 𝼘 (`U+1DF18`), 🄮 (`U+1F12E`) + z (`U+007A`), ź (`U+017A`), ż (`U+017C`), ž (`U+017E`), ƶ (`U+01B6`), ƹ (`U+01B9`), ƺ (`U+01BA`), Dž (`U+01C5`), dž (`U+01C6`), ǯ (`U+01EF`), Dz (`U+01F2`), dz (`U+01F3`), ȥ (`U+0225`), ɀ (`U+0240`), ʐ (`U+0290`), ʑ (`U+0291`), ʒ (`U+0292`), ʓ (`U+0293`), ʣ (`U+02A3`), ʤ (`U+02A4`), ʥ (`U+02A5`), ʫ (`U+02AB`), ӡ (`U+04E1`), ᵶ (`U+1D76`), ᶎ (`U+1D8E`), ᶚ (`U+1D9A`), ᶻ (`U+1DBB`), ᶼ (`U+1DBC`), ᶽ (`U+1DBD`), ᶾ (`U+1DBE`), ᷦ (`U+1DE6`), ẑ (`U+1E91`), ẓ (`U+1E93`), ẕ (`U+1E95`), ⒵ (`U+24B5`), ⓩ (`U+24E9`), ⱬ (`U+2C6C`), ꙁ (`U+A641`), ꙃ (`U+A643`), ꭦ (`U+AB66`), 𐞇 (`U+10787`), 𐞈 (`U+10788`), 𐞉 (`U+10789`), 𐞊 (`U+1078A`), 𐞚 (`U+1079A`), 𝆎 (`U+1D18E`), 𝐳 (`U+1D433`), 𝑧 (`U+1D467`), 𝒛 (`U+1D49B`), 𝗓 (`U+1D5D3`), 𝘇 (`U+1D607`), 𝘻 (`U+1D63B`), 𝙯 (`U+1D66F`), 𝚣 (`U+1D6A3`), 𝼒 (`U+1DF12`), 𝼘 (`U+1DF18`), 🄮 (`U+1F12E`) - `cv61`: diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index e76d653f96..462df7f82c 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -9,7 +9,8 @@ - + + @@ -21,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 33a9eda68a..f2863399a9 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -9,7 +9,8 @@ - + + @@ -21,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/images/cs-block-combining-diacritical-marks.dark.svg b/images/cs-block-combining-diacritical-marks.dark.svg index 9f6d9c818d..c7449efec1 100644 --- a/images/cs-block-combining-diacritical-marks.dark.svg +++ b/images/cs-block-combining-diacritical-marks.dark.svg @@ -85,7 +85,7 @@ - + diff --git a/images/cs-block-combining-diacritical-marks.light.svg b/images/cs-block-combining-diacritical-marks.light.svg index 7e490a0bf7..d35b57cc6b 100644 --- a/images/cs-block-combining-diacritical-marks.light.svg +++ b/images/cs-block-combining-diacritical-marks.light.svg @@ -85,7 +85,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg index 9b39d28e87..dbdd276840 100644 --- a/images/cs-block-cyrillic-extended-b.dark.svg +++ b/images/cs-block-cyrillic-extended-b.dark.svg @@ -70,7 +70,7 @@ - + @@ -83,8 +83,8 @@ - - + + diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg index 02bf940c77..90ea5624c2 100644 --- a/images/cs-block-cyrillic-extended-b.light.svg +++ b/images/cs-block-cyrillic-extended-b.light.svg @@ -70,7 +70,7 @@ - + @@ -83,8 +83,8 @@ - - + + diff --git a/images/cs-block-cyrillic-extended-d.dark.svg b/images/cs-block-cyrillic-extended-d.dark.svg index 01aa5ed6cb..9be2e73a33 100644 --- a/images/cs-block-cyrillic-extended-d.dark.svg +++ b/images/cs-block-cyrillic-extended-d.dark.svg @@ -27,7 +27,7 @@ - + @@ -60,7 +60,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-d.light.svg b/images/cs-block-cyrillic-extended-d.light.svg index 7652f4b234..56f364bf67 100644 --- a/images/cs-block-cyrillic-extended-d.light.svg +++ b/images/cs-block-cyrillic-extended-d.light.svg @@ -27,7 +27,7 @@ - + @@ -60,7 +60,7 @@ - + diff --git a/images/cs-block-cyrillic-supplement.dark.svg b/images/cs-block-cyrillic-supplement.dark.svg index acd7070220..5a69503597 100644 --- a/images/cs-block-cyrillic-supplement.dark.svg +++ b/images/cs-block-cyrillic-supplement.dark.svg @@ -26,7 +26,7 @@ - + diff --git a/images/cs-block-cyrillic-supplement.light.svg b/images/cs-block-cyrillic-supplement.light.svg index 4a9f342877..8b95ac20a5 100644 --- a/images/cs-block-cyrillic-supplement.light.svg +++ b/images/cs-block-cyrillic-supplement.light.svg @@ -26,7 +26,7 @@ - + diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg index 8cd71f75ea..f45f794a7e 100644 --- a/images/cs-block-cyrillic.dark.svg +++ b/images/cs-block-cyrillic.dark.svg @@ -32,7 +32,7 @@ - + @@ -43,8 +43,8 @@ - - + + @@ -75,8 +75,8 @@ - - + + @@ -112,7 +112,7 @@ - + @@ -157,8 +157,8 @@ - - + + @@ -244,10 +244,10 @@ - - - - + + + + diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg index 618933875f..54cf97297b 100644 --- a/images/cs-block-cyrillic.light.svg +++ b/images/cs-block-cyrillic.light.svg @@ -32,7 +32,7 @@ - + @@ -43,8 +43,8 @@ - - + + @@ -75,8 +75,8 @@ - - + + @@ -112,7 +112,7 @@ - + @@ -157,8 +157,8 @@ - - + + @@ -244,10 +244,10 @@ - - - - + + + + diff --git a/images/cs-block-greek-and-coptic.dark.svg b/images/cs-block-greek-and-coptic.dark.svg index a659c888d7..49130615fb 100644 --- a/images/cs-block-greek-and-coptic.dark.svg +++ b/images/cs-block-greek-and-coptic.dark.svg @@ -25,7 +25,7 @@ - + @@ -34,17 +34,17 @@ - - - + + + - - - - - - - + + + + + + + @@ -71,11 +71,11 @@ - - - - - + + + + + @@ -103,9 +103,9 @@ - - - + + + diff --git a/images/cs-block-greek-and-coptic.light.svg b/images/cs-block-greek-and-coptic.light.svg index d68394d371..15c98e27a7 100644 --- a/images/cs-block-greek-and-coptic.light.svg +++ b/images/cs-block-greek-and-coptic.light.svg @@ -25,7 +25,7 @@ - + @@ -34,17 +34,17 @@ - - - + + + - - - - - - - + + + + + + + @@ -71,11 +71,11 @@ - - - - - + + + + + @@ -103,9 +103,9 @@ - - - + + + diff --git a/images/cs-block-latin-extended-d.dark.svg b/images/cs-block-latin-extended-d.dark.svg index 0e2c76d95f..dd756b8986 100644 --- a/images/cs-block-latin-extended-d.dark.svg +++ b/images/cs-block-latin-extended-d.dark.svg @@ -155,6 +155,7 @@ + @@ -1492,8 +1493,8 @@ - - + + \ No newline at end of file diff --git a/images/cs-block-latin-extended-d.light.svg b/images/cs-block-latin-extended-d.light.svg index dcf2721ce4..274043aace 100644 --- a/images/cs-block-latin-extended-d.light.svg +++ b/images/cs-block-latin-extended-d.light.svg @@ -155,6 +155,7 @@ + @@ -1492,8 +1493,8 @@ - - + + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg index 28a27d47b3..6bc8418b6b 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg @@ -80,8 +80,8 @@ - - + + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg index 37aa9c1565..092e97bcbf 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg @@ -80,8 +80,8 @@ - - + + diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index 9261e9255c..0458d25656 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -185,35 +185,35 @@ - + - - - - - - - + + + + + + + - - - - - - - - - - - + + + + + + + + + + + diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index c45929c15d..53c1192386 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -185,35 +185,35 @@ - + - - - - - - - + + + + + + + - - - - - - - - - - - + + + + + + + + + + + diff --git a/images/cs-block-musical-symbols.dark.svg b/images/cs-block-musical-symbols.dark.svg index 50811516b0..3ebaba3b71 100644 --- a/images/cs-block-musical-symbols.dark.svg +++ b/images/cs-block-musical-symbols.dark.svg @@ -24,6 +24,12 @@ + + + + + + @@ -905,23 +911,23 @@ - - + + - - + + - - + + - - + + @@ -936,13 +942,13 @@ - - + + - - + + diff --git a/images/cs-block-musical-symbols.light.svg b/images/cs-block-musical-symbols.light.svg index 752a3b9175..6f26da0e43 100644 --- a/images/cs-block-musical-symbols.light.svg +++ b/images/cs-block-musical-symbols.light.svg @@ -24,6 +24,12 @@ + + + + + + @@ -905,23 +911,23 @@ - - + + - - + + - - + + - - + + @@ -936,13 +942,13 @@ - - + + - - + + diff --git a/images/cs-block-playing-cards.dark.svg b/images/cs-block-playing-cards.dark.svg index c169032e1d..e359af941a 100644 --- a/images/cs-block-playing-cards.dark.svg +++ b/images/cs-block-playing-cards.dark.svg @@ -20,65 +20,65 @@ - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + diff --git a/images/cs-block-playing-cards.light.svg b/images/cs-block-playing-cards.light.svg index e05e4f4980..82c9e550d2 100644 --- a/images/cs-block-playing-cards.light.svg +++ b/images/cs-block-playing-cards.light.svg @@ -20,65 +20,65 @@ - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + diff --git a/images/languages.dark.svg b/images/languages.dark.svg index 462da7e107..31f3771a74 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -98,7 +98,7 @@ - + @@ -194,21 +194,21 @@ - + - + - + - + @@ -219,8 +219,8 @@ - - + + @@ -273,7 +273,7 @@ - + @@ -284,11 +284,11 @@ - + - - - + + + diff --git a/images/languages.light.svg b/images/languages.light.svg index 4f647a2a11..73c0f583a8 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -98,7 +98,7 @@ - + @@ -194,21 +194,21 @@ - + - + - + - + @@ -219,8 +219,8 @@ - - + + @@ -273,7 +273,7 @@ - + @@ -284,11 +284,11 @@ - + - - - + + + diff --git a/package-lock.json b/package-lock.json index a7d25fb8e1..afb0cd7a84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "31.7.1", + "version": "31.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "31.7.1", + "version": "31.8.0", "workspaces": [ "packages/*", "tools/*" @@ -3986,16 +3986,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "31.7.1", - "@iosevka/font-otl": "31.7.1", - "@iosevka/geometry": "31.7.1", - "@iosevka/geometry-cache": "31.7.1", - "@iosevka/glyph": "31.7.1", - "@iosevka/param": "31.7.1", - "@iosevka/util": "31.7.1", + "@iosevka/font-glyphs": "31.8.0", + "@iosevka/font-otl": "31.8.0", + "@iosevka/geometry": "31.8.0", + "@iosevka/geometry-cache": "31.8.0", + "@iosevka/glyph": "31.8.0", + "@iosevka/param": "31.8.0", + "@iosevka/util": "31.8.0", "harfbuzzjs": "^0.3.6", "ot-builder": "^1.7.4", "semver": "^7.6.3" @@ -4003,100 +4003,100 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { - "@iosevka/font-kits": "31.7.1", - "@iosevka/geometry": "31.7.1", - "@iosevka/geometry-cache": "31.7.1", - "@iosevka/glyph": "31.7.1", - "@iosevka/util": "31.7.1", + "@iosevka/font-kits": "31.8.0", + "@iosevka/geometry": "31.8.0", + "@iosevka/geometry-cache": "31.8.0", + "@iosevka/glyph": "31.8.0", + "@iosevka/util": "31.8.0", "typo-geom": "^0.16.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { - "@iosevka/geometry": "31.7.1", - "@iosevka/glyph": "31.7.1", - "@iosevka/util": "31.7.1" + "@iosevka/geometry": "31.8.0", + "@iosevka/glyph": "31.8.0", + "@iosevka/util": "31.8.0" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { - "@iosevka/font-glyphs": "31.7.1", - "@iosevka/glyph": "31.7.1", + "@iosevka/font-glyphs": "31.8.0", + "@iosevka/glyph": "31.8.0", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { - "@iosevka/util": "31.7.1", + "@iosevka/util": "31.8.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { - "@iosevka/geometry": "31.7.1", + "@iosevka/geometry": "31.8.0", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { - "@iosevka/geometry": "31.7.1" + "@iosevka/geometry": "31.8.0" } }, "packages/param": { "name": "@iosevka/param", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { - "@iosevka/util": "31.7.1" + "@iosevka/util": "31.8.0" } }, "packages/util": { "name": "@iosevka/util", - "version": "31.7.1" + "version": "31.8.0" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "31.7.1", + "@iosevka/param": "31.8.0", "@unicode/unicode-16.0.0": "^1.0.0" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "31.7.1", + "@iosevka/param": "31.8.0", "@unicode/unicode-16.0.0": "^1.0.0", "cldr": "^7.5.0" } }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { - "@iosevka/data-export": "31.7.1" + "@iosevka/data-export": "31.8.0" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "31.7.1", + "version": "31.8.0", "dependencies": { - "@iosevka/util": "31.7.1", + "@iosevka/util": "31.8.0", "semver": "^7.6.3", "wawoff2": "^2.0.1" } diff --git a/package.json b/package.json index 53f24aaa77..275e0d21a3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "31.7.1", + "version": "31.8.0", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index d395c19337..13dbb29c6a 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./lib/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./lib/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "31.7.1", - "@iosevka/geometry": "31.7.1", - "@iosevka/geometry-cache": "31.7.1", - "@iosevka/glyph": "31.7.1", - "@iosevka/util": "31.7.1", + "@iosevka/font-kits": "31.8.0", + "@iosevka/geometry": "31.8.0", + "@iosevka/geometry-cache": "31.8.0", + "@iosevka/glyph": "31.8.0", + "@iosevka/util": "31.8.0", "typo-geom": "^0.16.1" } } diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index f94520fb1b..c604acd28d 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -832,7 +832,7 @@ glyph-block AutoBuild-Enclosure : begin do "Double-digit circled" local compositions : list - list null {'markBaseSpace'} WideWidth1 + list null {'sp1'} WideWidth1 list 0x2789 {'one/sansSerif.lnum' 'zero.lnum'} WideWidth1 list 0x1F16D {'C' 'C'} WideWidth2 list 0x1F12D {'C' 'D'} WideWidth1 @@ -864,14 +864,12 @@ glyph-block AutoBuild-Enclosure : begin do "Single-digit boxed" local compositions {} - compositions.push { null {'markBaseSpace'} WideWidth1 } foreach [j : range 0 26] : compositions.push {(0x1F130 + j) {[glyphStore.queryNameByUnicode (['A'.charCodeAt 0] + j)]} WideWidth1} compositions.push : list 0x1F1A5 {'d'} WideWidth1 createBoxedGlyphs 1 compositions do "Double-digit boxed" createBoxedGlyphs 2 : list - list null {'markBaseSpace'} WideWidth1 list 0x1F14A {'H' 'V'} WideWidth1 list 0x1F14B {'M' 'V'} WideWidth1 list 0x1F14C {'S' 'D'} WideWidth1 @@ -890,7 +888,6 @@ glyph-block AutoBuild-Enclosure : begin do "Triple-digit boxed" createBoxedGlyphs 3 : list - list null {'markBaseSpace'} WideWidth1 list 0x1F14E {'P' 'P' 'V'} WideWidth1 list 0x1F195 {'N' 'E' 'W'} WideWidth1 list 0x1F198 {'S' 'O' 'S'} WideWidth1 @@ -905,7 +902,6 @@ glyph-block AutoBuild-Enclosure : begin do "Quadruple-digit boxed" createBoxedGlyphs 4 : list - list null {'markBaseSpace'} WideWidth1 list 0x1F192 {'C' 'O' 'O' 'L'} WideWidth1 list 0x1F193 {'F' 'R' 'E' 'E'} WideWidth1 list 0x1F1A2 {'two.lnum' 'two.lnum' 'period' 'two.lnum'} WideWidth1 @@ -913,55 +909,50 @@ glyph-block AutoBuild-Enclosure : begin do "Triple-digit two-row boxed" createTwoRowBoxedGlyphs 3 : list - list null { 'markBaseSpace' 'markBaseSpace' } WideWidth1 list 0x1F19C { 'two.lnum' 'N' 'D' 'S' 'C' 'R' } WideWidth1 list 0x1F1A8 { 'H' 'I' 'hyphen' 'R' 'E' 'S' } WideWidth1 do "Quadruple-digit two-row boxed" createTwoRowBoxedGlyphs 4 : list - list null { 'markBaseSpace' 'markBaseSpace' } WideWidth1 list 0x1F1A9 { 'L' 'O' 'S' 'S' 'L' 'E' 'S' 'S' } WideWidth1 - do "Single-digit playing cards" + do "Playing cards" + # Here we always construct the two-digit cards to ensure that all digit and suit glyphs + # are aligned across all cards. local compositions : list - list null {'markBaseSpace' 'markBaseSpace'} WideWidth1 - list 0x1F0A1 {'A' 'spadeSuit'} WideWidth4 - list 0x1F0AB {'J/noDescend' 'spadeSuit'} WideWidth4 - list 0x1F0AC {'C' 'spadeSuit'} WideWidth4 - list 0x1F0AD {'Q' 'spadeSuit'} WideWidth4 - list 0x1F0AE {'K' 'spadeSuit'} WideWidth4 - list 0x1F0B1 {'A' 'whiteHeartSuit'} WideWidth4 - list 0x1F0BB {'J/noDescend' 'whiteHeartSuit'} WideWidth4 - list 0x1F0BC {'C' 'whiteHeartSuit'} WideWidth4 - list 0x1F0BD {'Q' 'whiteHeartSuit'} WideWidth4 - list 0x1F0BE {'K' 'whiteHeartSuit'} WideWidth4 - list 0x1F0C1 {'A' 'whiteDiamondSuit'} WideWidth4 - list 0x1F0CB {'J/noDescend' 'whiteDiamondSuit'} WideWidth4 - list 0x1F0CC {'C' 'whiteDiamondSuit'} WideWidth4 - list 0x1F0CD {'Q' 'whiteDiamondSuit'} WideWidth4 - list 0x1F0CE {'K' 'whiteDiamondSuit'} WideWidth4 - list 0x1F0D1 {'A' 'clubSuit'} WideWidth4 - list 0x1F0DB {'J/noDescend' 'clubSuit'} WideWidth4 - list 0x1F0DC {'C' 'clubSuit'} WideWidth4 - list 0x1F0DD {'Q' 'clubSuit'} WideWidth4 - list 0x1F0DE {'K' 'clubSuit'} WideWidth4 - foreach [j : range 2 till 9] : compositions.push : list (0x1F0A0 + j) [[digitGlyphNames j].concat {'spadeSuit'}] WideWidth4 - foreach [j : range 2 till 9] : compositions.push : list (0x1F0B0 + j) [[digitGlyphNames j].concat {'whiteHeartSuit'}] WideWidth4 - foreach [j : range 2 till 9] : compositions.push : list (0x1F0C0 + j) [[digitGlyphNames j].concat {'whiteDiamondSuit'}] WideWidth4 - foreach [j : range 2 till 9] : compositions.push : list (0x1F0D0 + j) [[digitGlyphNames j].concat {'clubSuit'}] WideWidth4 - createPlayingCardGlyphs 1 compositions - - do "Double-digit playing cards" - createPlayingCardGlyphs 2 : list - list null { 'markBaseSpace' 'markBaseSpace' } WideWidth1 - list 0x1F0AA { 'one.lnum' 'zero.lnum' 'spadeSuit' 'zwsp' } WideWidth4 - list 0x1F0BA { 'one.lnum' 'zero.lnum' 'whiteHeartSuit' 'zwsp' } WideWidth4 - list 0x1F0CA { 'one.lnum' 'zero.lnum' 'whiteDiamondSuit' 'zwsp' } WideWidth4 - list 0x1F0DA { 'one.lnum' 'zero.lnum' 'clubSuit' 'zwsp' } WideWidth4 + list 0x1F0A1 { 'A' 'sp1' 'spadeSuit' 'zwsp' } WideWidth4 + list 0x1F0AB { 'J/noDescend' 'sp1' 'spadeSuit' 'zwsp' } WideWidth4 + list 0x1F0AC { 'C' 'sp1' 'spadeSuit' 'zwsp' } WideWidth4 + list 0x1F0AD { 'Q' 'sp1' 'spadeSuit' 'zwsp' } WideWidth4 + list 0x1F0AE { 'K' 'sp1' 'spadeSuit' 'zwsp' } WideWidth4 + list 0x1F0B1 { 'A' 'sp1' 'whiteHeartSuit' 'zwsp' } WideWidth4 + list 0x1F0BB { 'J/noDescend' 'sp1' 'whiteHeartSuit' 'zwsp' } WideWidth4 + list 0x1F0BC { 'C' 'sp1' 'whiteHeartSuit' 'zwsp' } WideWidth4 + list 0x1F0BD { 'Q' 'sp1' 'whiteHeartSuit' 'zwsp' } WideWidth4 + list 0x1F0BE { 'K' 'sp1' 'whiteHeartSuit' 'zwsp' } WideWidth4 + list 0x1F0C1 { 'A' 'sp1' 'whiteDiamondSuit' 'zwsp' } WideWidth4 + list 0x1F0CB { 'J/noDescend' 'sp1' 'whiteDiamondSuit' 'zwsp' } WideWidth4 + list 0x1F0CC { 'C' 'sp1' 'whiteDiamondSuit' 'zwsp' } WideWidth4 + list 0x1F0CD { 'Q' 'sp1' 'whiteDiamondSuit' 'zwsp' } WideWidth4 + list 0x1F0CE { 'K' 'sp1' 'whiteDiamondSuit' 'zwsp' } WideWidth4 + list 0x1F0D1 { 'A' 'sp1' 'clubSuit' 'zwsp' } WideWidth4 + list 0x1F0DB { 'J/noDescend' 'sp1' 'clubSuit' 'zwsp' } WideWidth4 + list 0x1F0DC { 'C' 'sp1' 'clubSuit' 'zwsp' } WideWidth4 + list 0x1F0DD { 'Q' 'sp1' 'clubSuit' 'zwsp' } WideWidth4 + list 0x1F0DE { 'K' 'sp1' 'clubSuit' 'zwsp' } WideWidth4 + list 0x1F0AA { 'one.lnum' 'zero.lnum' 'spadeSuit' 'zwsp' } WideWidth4 + list 0x1F0BA { 'one.lnum' 'zero.lnum' 'whiteHeartSuit' 'zwsp' } WideWidth4 + list 0x1F0CA { 'one.lnum' 'zero.lnum' 'whiteDiamondSuit' 'zwsp' } WideWidth4 + list 0x1F0DA { 'one.lnum' 'zero.lnum' 'clubSuit' 'zwsp' } WideWidth4 + foreach [j : range 2 till 9] : begin + compositions.push : list (0x1F0A0 + j) [[digitGlyphNames j].concat {'sp1' 'spadeSuit' 'zwsp'}] WideWidth4 + compositions.push : list (0x1F0B0 + j) [[digitGlyphNames j].concat {'sp1' 'whiteHeartSuit' 'zwsp'}] WideWidth4 + compositions.push : list (0x1F0C0 + j) [[digitGlyphNames j].concat {'sp1' 'whiteDiamondSuit' 'zwsp'}] WideWidth4 + compositions.push : list (0x1F0D0 + j) [[digitGlyphNames j].concat {'sp1' 'clubSuit' 'zwsp'}] WideWidth4 + createPlayingCardGlyphs 2 compositions do "Single-digit trump cards" createTrumpCardGlyphs 1 : list - list null {'markBaseSpace'} WideWidth1 list 0x1F0BF {'vShadeStar.NWID'} WideWidth4 list 0x1F0CF {'blackStar.NWID'} WideWidth4 list 0x1F0DF {'whiteStar.NWID'} WideWidth4 @@ -972,7 +963,6 @@ glyph-block AutoBuild-Enclosure : begin do "Double-digit trump cards" createTrumpCardGlyphs 2 : list - list null {'markBaseSpace'} WideWidth1 list 0x1F0E2 {'I' 'I'} WideWidth4 list 0x1F0E4 {'I' 'V'} WideWidth4 list 0x1F0E6 {'V' 'I'} WideWidth4 @@ -983,7 +973,6 @@ glyph-block AutoBuild-Enclosure : begin do "Triple-digit trump cards" createTrumpCardGlyphs 3 : list - list null {'markBaseSpace'} WideWidth1 list 0x1F0E3 {'I' 'I' 'I'} WideWidth4 list 0x1F0E7 {'V' 'I' 'I'} WideWidth4 list 0x1F0EC {'X' 'I' 'I'} WideWidth4 @@ -994,19 +983,17 @@ glyph-block AutoBuild-Enclosure : begin do "Quadruple-digit trump cards" createTrumpCardGlyphs 4 : list - list null {'markBaseSpace'} WideWidth1 list 0x1F0E8 {'V' 'I' 'I' 'I'} WideWidth4 list 0x1F0ED {'X' 'I' 'I' 'I'} WideWidth4 list 0x1F0F1 {'X' 'V' 'I' 'I'} WideWidth4 do "Quintuple-digit trump cards" createTrumpCardGlyphs 5 : list - list null {'markBaseSpace'} WideWidth1 list 0x1F0F2 {'X' 'V' 'I' 'I' 'I'} WideWidth4 do "Playing card back" createPlayingCardBackGlyphs 1 : list - list 0x1F0A0 {'markBaseSpace'} WideWidth4 + list 0x1F0A0 {'sp1'} WideWidth4 do "Single-digit dashed-boxed" local compositions {} @@ -1047,13 +1034,11 @@ glyph-block AutoBuild-Enclosure : begin do "Single-digit double circled" local compositions {} - compositions.push { null {'markBaseSpace'} WideWidth1 } foreach [j : range 1 till 9] : compositions.push : list (0x24F5 + j - 1) [digitGlyphNames j] WideWidth1 createDoubleCircledGlyphs 1 compositions do "Double-digit double circled" local compositions {} - compositions.push { null {'markBaseSpace'} WideWidth1 } foreach [j : range 10 till 10] : compositions.push : list (0x24F5 + j - 1) [digitGlyphNames j] WideWidth1 createDoubleCircledGlyphs 2 compositions @@ -1223,7 +1208,7 @@ glyph-block Autobuild-Fractions : begin list 0x215C { 'three.lnum' 'eight.lnum' } list 0x215D { 'five.lnum' 'eight.lnum' } list 0x215E { 'seven.lnum' 'eight.lnum' } - list 0x215F { 'one.lnum' 'markBaseSpace' } + list 0x215F { 'one.lnum' 'sp1' } list 0x2189 { 'zero.lnum' 'three.lnum' } list 0x214D { 'A' 'S' } diff --git a/packages/font-glyphs/src/auto-build/recursive-build.ptl b/packages/font-glyphs/src/auto-build/recursive-build.ptl index 0a6c95bdcb..d4797b6612 100644 --- a/packages/font-glyphs/src/auto-build/recursive-build.ptl +++ b/packages/font-glyphs/src/auto-build/recursive-build.ptl @@ -1,6 +1,6 @@ $$include '../meta/macros.ptl' -import [clamp fallback] from "@iosevka/util" +import [mix clamp fallback] from "@iosevka/util" glyph-module @@ -67,3 +67,26 @@ glyph-block Recursive-Build : begin return : Fork glyphs forkedPara glyph-block-export Fork Miniature MiniatureParaT Thinner Widen + +glyph-block Recursive-Build-ParaTfm : begin + glyph-block-export ForkTfm + define ForkTfm : namespace + define [boldGrade g] : begin + local pGrade : (900 - g) / 100 + return : 900 - 100 * (2 / 25) * pGrade * pGrade + + export : define [Bold a] : begin [set a.shape.weight : boldGrade a.shape.weight] + export : define [Italic a] : begin + set a.shape.slope 'italic' + set a.shape.slopeAngle : mix (para.slopeAngle || 0) 15 (94 / 150) + export : define [Sans a] : begin [set a.shape.serifs 'sans'] + + export : define [BoldItalic a] : begin [Bold a] [Italic a] + export : define [SansBold a] : begin [Sans a] [Bold a] + export : define [SansItalic a] : begin [Sans a] [Italic a] + export : define [SansBoldItalic a] : begin [Sans a] [Bold a] [Italic a] + + export : define [TypeWriter a] : begin + set a.shape.spacing 'fixed' + if (a.derivingVariants && a.derivingVariants.mathtt) + set a.variants a.derivingVariants.mathtt diff --git a/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl b/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl new file mode 100644 index 0000000000..709b48328f --- /dev/null +++ b/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl @@ -0,0 +1,476 @@ +export : define Superscript : list + list 0x00AA 'aSbRsbUnderlineBelow' + list 0x00BA 'oSbRsbUnderlineBelow' + list 0x02B0 'h' + list 0x02B1 'hHookTop' + list 0x02B2 'j' + list 0x02B3 'r' + list 0x02B4 'turnr' + list 0x02B5 'rTurnRTail' + list 0x02B6 'invSmcpR' + list 0x02B7 'w' + list 0x02B8 'y' + list 0x02C0 'smallGlottalStop' + list 0x02C1 'smallRevGlottalStop' + list 0x02E0 'latn/gamma' + list 0x02E1 'l' + list 0x02E2 's' + list 0x02E3 'x' + list 0x02E4 'revGlottalStop' + list 0x1D2C 'A' + list 0x1D2D 'AE' + list 0x1D2E 'B' + list 0x1D2F 'BBar' + list 0x1D30 'D' + list 0x1D31 'E' + list 0x1D32 'revE' + list 0x1D33 'G' + list 0x1D34 'H' + list 0x1D35 'I' + list 0x1D36 'J' + list 0x1D37 'K' + list 0x1D38 'L' + list 0x1D39 'M' + list 0x1D3A 'N' + list 0x1D3B 'NRev' + list 0x1D3C 'O' + list 0x1D3D 'OU' + list 0x1D3E 'P' + list 0x1D3F 'R' + list 0x1D40 'T' + list 0x1D41 'U' + list 0x1D42 'W' + list 0x1D43 'a' + list 0x1D44 'turna' + list 0x1D45 'scripta' + list 0x1D46 'turnae' + list 0x1D47 'b' + list 0x1D48 'd' + list 0x1D49 'e' + list 0x1D4A 'schwa' + list 0x1D4B 'latn/epsilon' + list 0x1D4C 'turnepsilon' + list 0x1D4D 'g' + list 0x1D4E 'turni' + list 0x1D4F 'k' + list 0x1D50 'm' + list 0x1D51 'eng' + list 0x1D52 'o' + list 0x1D53 'turnc' + list 0x1D54 'oupperhalf' + list 0x1D55 'olowerhalf' + list 0x1D56 'p' + list 0x1D57 't' + list 0x1D58 'u' + list 0x1D59 'uSideways' + list 0x1D5A 'turnm' + list 0x1D5B 'v' + list 0x1D5C 'latinAyin' + list 0x1D5D 'grek/beta' + list 0x1D5E 'grek/gamma' + list 0x1D5F 'grek/delta' + list 0x1D60 'grek/phi' + list 0x1D61 'grek/chi' + list 0x1D78 'cyrl/en' + list 0x1D9B 'turnscripta' + list 0x1D9C 'c' + list 0x1D9D 'cCurlyTail' + list 0x1D9E 'eth' + list 0x1D9F 'latn/epsilonRev' + list 0x1DA0 'f' + list 0x1DA1 'dotlessjBar' + list 0x1DA2 'gScript' + list 0x1DA3 'turnh' + list 0x1DA4 'iBarOver' + list 0x1DA5 'latn/iota' + list 0x1DA6 'smcpI' + list 0x1DA7 'smcpIBarOver' + list 0x1DA8 'jCurlyTail' + list 0x1DA9 'lRTail' + list 0x1DAA 'lPalatalHook' + list 0x1DAB 'smcpL' + list 0x1DAC 'meng' + list 0x1DAD 'turnmLeg' + list 0x1DAE 'nHookLeft' + list 0x1DAF 'nRTail' + list 0x1DB0 'smcpN' + list 0x1DB1 'obar' + list 0x1DB2 'latn/phi' + list 0x1DB3 'sRTail' + list 0x1DB4 'esh' + list 0x1DB5 'tLTail' + list 0x1DB6 'uLongBarOver' + list 0x1DB7 'latn/upsilon' + list 0x1DB8 'smcpU' + list 0x1DB9 'vHookTop' + list 0x1DBA 'turnv' + list 0x1DBB 'z' + list 0x1DBC 'zRTail' + list 0x1DBD 'zCurlyTail' + list 0x1DBE 'ezh' + list 0x1DBF 'grek/theta' + list 0x2071 'i' + list 0x207A 'plus' + list 0x207B 'minus' + list 0x207C 'equal' + list 0x207D 'parenLeft' + list 0x207E 'parenRight' + list 0x207F 'n' + list 0x2C7D 'V' + list 0x2E0B 'mathBox' + list 0x2E0C 'multiplyStroke2' + list 0x2E0D 'multiplyStroke1' + list 0xA69C 'cyrl/yer' + list 0xA69D 'cyrl/yeri' + list 0xA702 'subst' + list 0xA703 'substBarNoRise' + list 0xA704 'supst' + list 0xA705 'supstBarNoRise' + list 0xA717 'dotvbar' + list 0xA718 'dotslash' + list 0xA719 'dothbar' + list 0xA71A 'turnedRevNegate' + list 0xA71B 'arrowUp.NWID' + list 0xA71C 'arrowDown.NWID' + list 0xA71D 'alveolarclick' + list 0xA71E 'alveolarpercussive' + list 0xA7F2 'C' + list 0xA7F3 'F' + list 0xA7F4 'Q' + list 0xA7F8 'smcpHStroke' + list 0xA7F9 'oe' + list 0xAB5C 'heng' + list 0xAB5D 'lInvLazySOver' + list 0xAB5E 'lTildeOver' + list 0xAB5F 'uHookLeft' + list 0xAB69 'turnw' + list 0x10780 'smcpAA' + list 0x10781 'triangleColon' + list 0x10782 'halfTriangleColon' + list 0x10783 'ae' + list 0x10784 'smcpB' + list 0x10785 'bHookTop' + list 0x1078B 'dHookBottom' + list 0x1078C 'dHookTop' + list 0x1078D 'dHookTopBottom' + list 0x1078E 'eRev' + list 0x1078F 'epsilonRevClosed' + list 0x10791 'ramshorn' + list 0x10792 'smcpG' + list 0x10793 'gHookTop' + list 0x10794 'smcpGHookTop' + list 0x10795 'hStroke' + list 0x10796 'smcpH' + list 0x10797 'hengHookTop' + list 0x10798 'dotlessjBarHookTop' + list 0x1079B 'lBelt' + list 0x1079C 'smcpLBelt' + list 0x1079D 'lBeltRTail' + list 0x1079E 'lyogh' + list 0x1079F 'lyoghRTail' + list 0x107A0 'turny' + list 0x107A1 'turnyBelt' + list 0x107A2 'oSlash' + list 0x107A3 'smcpOE' + list 0x107A4 'closeomega' + list 0x107A5 'q' + list 0x107A6 'turnrLongLeg' + list 0x107A7 'rTurnLongLegRTail' + list 0x107A8 'rRTail' + list 0x107A9 'rFlap' + list 0x107AA 'smcpR' + list 0x107AF 'tRTail' + list 0x107B0 'vHookRight' + list 0x107B2 'smcpY' + list 0x107B3 'glottalStopBar' + list 0x107B4 'revGlottalStopBar' + list 0x107B5 'bullEye' + list 0x107B6 'dentalclick' + list 0x107B7 'alveolarlateralclick' + list 0x107B8 'palatoalveolarclick' + list 0x107B9 'retroflexClickHook' + list 0x107BA 'sCurlyTail' + list 0x1E030 'cyrl/a' + list 0x1E031 'cyrl/be' + list 0x1E032 'cyrl/ve' + list 0x1E033 'cyrl/ghe' + list 0x1E034 'cyrl/de' + list 0x1E035 'cyrl/ie' + list 0x1E036 'cyrl/zhe' + list 0x1E037 'cyrl/ze' + list 0x1E038 'cyrl/i' + list 0x1E039 'cyrl/ka' + list 0x1E03A 'cyrl/el' + list 0x1E03B 'cyrl/em' + list 0x1E03C 'cyrl/o' + list 0x1E03D 'cyrl/pe' + list 0x1E03E 'cyrl/er' + list 0x1E03F 'cyrl/es' + list 0x1E040 'cyrl/te' + list 0x1E041 'cyrl/u' + list 0x1E042 'cyrl/ef' + list 0x1E043 'cyrl/kha' + list 0x1E044 'cyrl/tse' + list 0x1E045 'cyrl/che' + list 0x1E046 'cyrl/sha' + list 0x1E047 'cyrl/yery' + list 0x1E048 'cyrl/e' + list 0x1E049 'cyrl/yu' + list 0x1E04A 'cyrl/dzze' + list 0x1E04B 'cyrl/schwa' + list 0x1E04C 'cyrl/iUkrainian' + list 0x1E04D 'cyrl/je' + list 0x1E04E 'cyrl/oe' + list 0x1E04F 'cyrl/ue' + list 0x1E050 'cyrl/palochka' + list 0x1E06B 'cyrl/the' + list 0x1E06C 'cyrl/yeryBack' + list 0x1E06D 'cyrl/uo' + list 0x1FBCC 'smallBracketLeft' + +export : define Numerator : list + list null 'zero.onum' + list null 'one.onum' + list null 'two.onum' + list null 'three.onum' + list null 'four.onum' + list null 'five.onum' + list null 'six.onum' + list null 'seven.onum' + list null 'eight.onum' + list null 'nine.onum' + list 0x2070 'zero.lnum' + list 0x00B9 'one.lnum' + list 0x00B2 'two.lnum' + list 0x00B3 'three.lnum' + list 0x2074 'four.lnum' + list 0x2075 'five.lnum' + list 0x2076 'six.lnum' + list 0x2077 'seven.lnum' + list 0x2078 'eight.lnum' + list 0x2079 'nine.lnum' + list null 'period' + +export : define ItalicSuperscript : list + list 0x1D18C 'r' + list 0x1D18D 's' + list 0x1D18E 'z' + list 0x1D18F 'p' + list 0x1D190 'm' + list 0x1D191 'f' + +export : define Subscript : list + list 0x1D62 'i' + list 0x1D63 'r' + list 0x1D64 'u' + list 0x1D65 'v' + list 0x1D66 'grek/beta' + list 0x1D67 'grek/gamma' + list 0x1D68 'grek/rho' + list 0x1D69 'grek/phi' + list 0x1D6A 'grek/chi' + list 0x208A 'plus' + list 0x208B 'minus' + list 0x208C 'equal' + list 0x208D 'parenLeft' + list 0x208E 'parenRight' + list 0x2090 'a' + list 0x2091 'e' + list 0x2092 'o' + list 0x2093 'x' + list 0x2094 'schwa' + list 0x2095 'h' + list 0x2096 'k' + list 0x2097 'l' + list 0x2098 'm' + list 0x2099 'n' + list 0x209A 'p' + list 0x209B 's' + list 0x209C 't' + list 0x2C7C 'j' + list 0x2E1C 'multiplyStroke2' + list 0x2E1D 'multiplyStroke1' + list 0xA700 'subst' + list 0xA701 'substBarNoRise' + list 0xA706 'supst' + list 0xA707 'supstBarNoRise' + list 0xA71F 'alveolarpercussive' + list 0x1E051 'cyrl/a' + list 0x1E052 'cyrl/be' + list 0x1E053 'cyrl/ve' + list 0x1E054 'cyrl/ghe' + list 0x1E055 'cyrl/de' + list 0x1E056 'cyrl/ie' + list 0x1E057 'cyrl/zhe' + list 0x1E058 'cyrl/ze' + list 0x1E059 'cyrl/i' + list 0x1E05A 'cyrl/ka' + list 0x1E05B 'cyrl/el' + list 0x1E05C 'cyrl/o' + list 0x1E05D 'cyrl/pe' + list 0x1E05E 'cyrl/es' + list 0x1E05F 'cyrl/u' + list 0x1E060 'cyrl/ef' + list 0x1E061 'cyrl/kha' + list 0x1E062 'cyrl/tse' + list 0x1E063 'cyrl/che' + list 0x1E064 'cyrl/sha' + list 0x1E065 'cyrl/yer' + list 0x1E066 'cyrl/yery' + list 0x1E067 'cyrl/ge' + list 0x1E068 'cyrl/iUkrainian' + list 0x1E069 'cyrl/dze' + list 0x1E06A 'cyrl/dzhe' + +export : define Denominator : list + list null 'zero.onum' + list null 'one.onum' + list null 'two.onum' + list null 'three.onum' + list null 'four.onum' + list null 'five.onum' + list null 'six.onum' + list null 'seven.onum' + list null 'eight.onum' + list null 'nine.onum' + list 0x2080 'zero.lnum' + list 0x2081 'one.lnum' + list 0x2082 'two.lnum' + list 0x2083 'three.lnum' + list 0x2084 'four.lnum' + list 0x2085 'five.lnum' + list 0x2086 'six.lnum' + list 0x2087 'seven.lnum' + list 0x2088 'eight.lnum' + list 0x2089 'nine.lnum' + list null 'period' + +export : define MedievalComb_e : list + list 0x363 'a' + list 0x364 'e' + list 0x366 'o' + list 0x367 'u' + list 0x368 'c' + list 0x36B 'm' + list 0x36C 'r' + list 0x36E 'v' + list 0x36F 'x' + list 0x1ACE 'tInsular' + list 0x1DD3 'flattenedOpena' + list 0x1DD4 'ae' + list 0x1DD5 'ao' + list 0x1DDB 'smcpG' + list 0x1DDE 'smcpL' + list 0x1DDF 'smcpM' + list 0x1DE0 'n' + list 0x1DE1 'smcpN' + list 0x1DE2 'smcpR' + list 0x1DE3 'rRotunda' + list 0x1DE4 's' + list 0x1DE6 'z' + list 0x1DE7 'scripta' + list 0x1DEA 'schwa' + list 0x1DED 'oWithLightCentralizationStroke' + list 0x1DF0 'uWithLightCentralizationStroke' + list 0x1DF1 'w' + list 0x20F0 'asterisk/slashBot' + list 0x2DE1 'cyrl/ve' + list 0x2DE2 'cyrl/ghe' + list 0x2DE3 'cyrl/de' + list 0x2DE4 'cyrl/zhe' + list 0x2DE5 'cyrl/ze' + list 0x2DE6 'cyrl/ka' + list 0x2DE7 'cyrl/el' + list 0x2DE8 'cyrl/em' + list 0x2DE9 'cyrl/en' + list 0x2DEA 'cyrl/o' + list 0x2DEB 'cyrl/pe' + list 0x2DED 'cyrl/es' + list 0x2DEE 'cyrl/te/reduced' + list 0x2DEF 'cyrl/kha' + list 0x2DF0 'cyrl/tse' + list 0x2DF1 'cyrl/che' + list 0x2DF2 'cyrl/sha/reduced' + list 0x2DF3 'cyrl/shcha/reduced' + list 0x2DF4 'cyrl/fita' + list 0x2DF5 'cyrl/este' + list 0x2DF6 'cyrl/a' + list 0x2DF7 'cyrl/ie' + list 0x2DF8 'cyrl/djerv' + list 0x2DFB 'cyrl/yu' + list 0x2DFC 'cyrl/aIotified' + list 0x2DFD 'cyrl/smallYus' + list 0x2DFE 'cyrl/bigYus' + list 0x2DFF 'cyrl/bigYusIotified' + list 0xA674 'cyrl/ye' + list 0xA675 'cyrl/i' + list 0xA678 'cyrl/yer' + list 0xA679 'cyrl/yery' + list 0xA67A 'cyrl/yeri' + list 0xA67B 'cyrl/omega' + list 0xA69F 'cyrl/eIotified' + +export : define MedievalComb_b : list + list 0x365 'i' + list 0x369 'd' + list 0x36A 'h' + list 0x36D 't' + list 0x1DD8 'dInsular' + list 0x1DD9 'eth' + list 0x1DDC 'k' + list 0x1DDD 'l' + list 0x1DE8 'b' + list 0x1DEC 'lDblTildeOver' + list 0x1DF2 'aDieresis' + list 0x1DF3 'oDieresis' + list 0x1DF4 'uDieresis' + list 0x2DE0 'cyrl/be' + list 0x2DF9 'cyrl/uk' + list 0x2DFA 'cyrl/yat' + list 0xA676 'cyrl/yi' + list 0x1E08F 'cyrl/iUkrainian' + +export : define MedievalComb_CAP : list + list 0x1AC6 'numberSign/cap' + +export : define MedievalComb_p : list + list 0x1ACC 'gInsular' + list 0x1ACD 'rInsular' + list 0x1DD7 'cCedilla' + list 0x1DDA 'g' + list 0x1DEE 'p' + list 0x2DEC 'cyrl/er' + list 0xA677 'cyrl/u' + +export : define MedievalComb_bp : list + list 0x1DEB 'f' + list 0x1DE5 'longs' + list 0x1DE9 'latn/beta' + list 0x1DEF 'esh' + list 0xA69E 'cyrl/ef' + +export : define MedievalBelowComb_e : list + list 0x0359 'asterisk/sMid' + list 0x1ABF 'w' + list 0x1AC0 'turnw' + list 0x1DCA 'r' + +export : define Reversed : list + list 0x1B8 'Ezh' + list 0x1B9 'ezh' + list 0x2143 'L/sansSerif' + list 0xA7FB 'F' + list 0xA7FC 'P' + list 0xA7FD 'turnM' + list 0x1DF01 'gScript' + list 0x1DF03 'k' + list 0x1DF07 'eng' + +export : define TextureHandlingRanges : list + list 0x41 0x5A + list 0x61 0x7A + list 0xC0 0xFF + list 0x100 0x2AF + list 0x370 0x3FF + list 0x400 0x4FF + list 0x500 0x52F diff --git a/packages/font-glyphs/src/auto-build/transformed.ptl b/packages/font-glyphs/src/auto-build/transformed.ptl index dedb4f9b4c..b5d9733205 100644 --- a/packages/font-glyphs/src/auto-build/transformed.ptl +++ b/packages/font-glyphs/src/auto-build/transformed.ptl @@ -8,6 +8,9 @@ import [Texture Joining] from "@iosevka/glyph/relation" import [BooleanGeometry StrokeGeometry] from "@iosevka/geometry" import [NumeratorForm DenominatorForm] from "@iosevka/glyph/relation" import [Transform] from "@iosevka/geometry/transform" + +import as JobsData from "./transformed-jobs-data.mjs" + extern Map extern Set @@ -101,268 +104,27 @@ glyph-block Autobuild-Transformed-Shared : begin glyph-block Autobuild-Transformed : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Recursive-Build : Fork Miniature + glyph-block-import Recursive-Build : Fork MiniatureParaT Miniature glyph-block-import Mark-Shared-Metrics : markMiddle glyph-block-import Mark-Above : aboveMarkBot aboveMarkMid aboveMarkTop glyph-block-import Mark-Below : belowMarkBot belowMarkMid belowMarkTop glyph-block-import Autobuild-Transformed-Shared : extendRelatedGlyphs link-relations glyph-block-import Autobuild-Transformed-Shared : ToSuperscript ToSubscript + glyph-block-import Recursive-Build-ParaTfm : ForkTfm + + define [BuildTransformedSimple records relSets targetNameMap gr miniatureFont tfFn] : begin + foreach { unicode glyphid fRelated } [items-of records] + if [not : query-glyph targetNameMap.(glyphid)] : begin + if [not : miniatureFont.queryByName glyphid] : begin + throw : new Error "Cannot find glyph \(glyphid)" + create-glyph (targetNameMap.(glyphid)) unicode + tfFn [miniatureFont.queryByName glyphid] + if ([not fRelated] && gr) : gr.set [query-glyph glyphid] (targetNameMap.(glyphid)) + link-relations relSets + return { targetNameMap records } - do - createSuperscripts 'sup' null : list - list 0x00AA 'aSbRsbUnderlineBelow' - list 0x00BA 'oSbRsbUnderlineBelow' - list 0x02B0 'h' - list 0x02B1 'hHookTop' - list 0x02B2 'j' - list 0x02B3 'r' - list 0x02B4 'turnr' - list 0x02B5 'rTurnRTail' - list 0x02B6 'invSmcpR' - list 0x02B7 'w' - list 0x02B8 'y' - list 0x02C0 'smallGlottalStop' - list 0x02C1 'smallRevGlottalStop' - list 0x02E0 'latn/gamma' - list 0x02E1 'l' - list 0x02E2 's' - list 0x02E3 'x' - list 0x02E4 'revGlottalStop' - list 0x1D2C 'A' - list 0x1D2D 'AE' - list 0x1D2E 'B' - list 0x1D2F 'BBar' - list 0x1D30 'D' - list 0x1D31 'E' - list 0x1D32 'revE' - list 0x1D33 'G' - list 0x1D34 'H' - list 0x1D35 'I' - list 0x1D36 'J' - list 0x1D37 'K' - list 0x1D38 'L' - list 0x1D39 'M' - list 0x1D3A 'N' - list 0x1D3B 'NRev' - list 0x1D3C 'O' - list 0x1D3D 'OU' - list 0x1D3E 'P' - list 0x1D3F 'R' - list 0x1D40 'T' - list 0x1D41 'U' - list 0x1D42 'W' - list 0x1D43 'a' - list 0x1D44 'turna' - list 0x1D45 'scripta' - list 0x1D46 'turnae' - list 0x1D47 'b' - list 0x1D48 'd' - list 0x1D49 'e' - list 0x1D4A 'schwa' - list 0x1D4B 'latn/epsilon' - list 0x1D4C 'turnepsilon' - list 0x1D4D 'g' - list 0x1D4E 'turni' - list 0x1D4F 'k' - list 0x1D50 'm' - list 0x1D51 'eng' - list 0x1D52 'o' - list 0x1D53 'turnc' - list 0x1D54 'oupperhalf' - list 0x1D55 'olowerhalf' - list 0x1D56 'p' - list 0x1D57 't' - list 0x1D58 'u' - list 0x1D59 'uSideways' - list 0x1D5A 'turnm' - list 0x1D5B 'v' - list 0x1D5C 'latinAyin' - list 0x1D5D 'grek/beta' - list 0x1D5E 'grek/gamma' - list 0x1D5F 'grek/delta' - list 0x1D60 'grek/phi' - list 0x1D61 'grek/chi' - list 0x1D78 'cyrl/en' - list 0x1D9B 'turnscripta' - list 0x1D9C 'c' - list 0x1D9D 'cCurlyTail' - list 0x1D9E 'eth' - list 0x1D9F 'latn/epsilonRev' - list 0x1DA0 'f' - list 0x1DA1 'dotlessjBar' - list 0x1DA2 'gScript' - list 0x1DA3 'turnh' - list 0x1DA4 'iBarOver' - list 0x1DA5 'latn/iota' - list 0x1DA6 'smcpI' - list 0x1DA7 'smcpIBarOver' - list 0x1DA8 'jCurlyTail' - list 0x1DA9 'lRTail' - list 0x1DAA 'lPalatalHook' - list 0x1DAB 'smcpL' - list 0x1DAC 'meng' - list 0x1DAD 'turnmLeg' - list 0x1DAE 'nHookLeft' - list 0x1DAF 'nRTail' - list 0x1DB0 'smcpN' - list 0x1DB1 'obar' - list 0x1DB2 'latn/phi' - list 0x1DB3 'sRTail' - list 0x1DB4 'esh' - list 0x1DB5 'tLTail' - list 0x1DB6 'uLongBarOver' - list 0x1DB7 'latn/upsilon' - list 0x1DB8 'smcpU' - list 0x1DB9 'vHookTop' - list 0x1DBA 'turnv' - list 0x1DBB 'z' - list 0x1DBC 'zRTail' - list 0x1DBD 'zCurlyTail' - list 0x1DBE 'ezh' - list 0x1DBF 'grek/theta' - list 0x2071 'i' - list 0x207A 'plus' - list 0x207B 'minus' - list 0x207C 'equal' - list 0x207D 'parenLeft' - list 0x207E 'parenRight' - list 0x207F 'n' - list 0x2C7D 'V' - list 0x2E0B 'mathBox' - list 0x2E0C 'multiplyStroke2' - list 0x2E0D 'multiplyStroke1' - list 0xA69C 'cyrl/yer' - list 0xA69D 'cyrl/yeri' - list 0xA702 'subst' - list 0xA703 'substBarNoRise' - list 0xA704 'supst' - list 0xA705 'supstBarNoRise' - list 0xA717 'dotvbar' - list 0xA718 'dotslash' - list 0xA719 'dothbar' - list 0xA71A 'turnedRevNegate' - list 0xA71B 'arrowUp.NWID' - list 0xA71C 'arrowDown.NWID' - list 0xA71D 'alveolarclick' - list 0xA71E 'alveolarpercussive' - list 0xA7F2 'C' - list 0xA7F3 'F' - list 0xA7F4 'Q' - list 0xA7F8 'smcpHStroke' - list 0xA7F9 'oe' - list 0xAB5C 'heng' - list 0xAB5D 'lInvLazySOver' - list 0xAB5E 'lTildeOver' - list 0xAB5F 'uHookLeft' - list 0xAB69 'turnw' - list 0x10780 'smcpAA' - list 0x10781 'triangleColon' - list 0x10782 'halfTriangleColon' - list 0x10783 'ae' - list 0x10784 'smcpB' - list 0x10785 'bHookTop' - list 0x1078B 'dHookBottom' - list 0x1078C 'dHookTop' - list 0x1078D 'dHookTopBottom' - list 0x1078E 'eRev' - list 0x1078F 'epsilonRevClosed' - list 0x10791 'ramshorn' - list 0x10792 'smcpG' - list 0x10793 'gHookTop' - list 0x10794 'smcpGHookTop' - list 0x10795 'hStroke' - list 0x10796 'smcpH' - list 0x10797 'hengHookTop' - list 0x10798 'dotlessjBarHookTop' - list 0x1079B 'lBelt' - list 0x1079C 'smcpLBelt' - list 0x1079D 'lBeltRTail' - list 0x1079E 'lyogh' - list 0x1079F 'lyoghRTail' - list 0x107A0 'turny' - list 0x107A1 'turnyBelt' - list 0x107A2 'oSlash' - list 0x107A3 'smcpOE' - list 0x107A4 'closeomega' - list 0x107A5 'q' - list 0x107A6 'turnrLongLeg' - list 0x107A7 'rTurnLongLegRTail' - list 0x107A8 'rRTail' - list 0x107A9 'rFlap' - list 0x107AA 'smcpR' - list 0x107AF 'tRTail' - list 0x107B0 'vHookRight' - list 0x107B2 'smcpY' - list 0x107B3 'glottalStopBar' - list 0x107B4 'revGlottalStopBar' - list 0x107B5 'bullEye' - list 0x107B6 'dentalclick' - list 0x107B7 'alveolarlateralclick' - list 0x107B8 'palatoalveolarclick' - list 0x107B9 'retroflexClickHook' - list 0x107BA 'sCurlyTail' - list 0x1E030 'cyrl/a' - list 0x1E031 'cyrl/be' - list 0x1E032 'cyrl/ve' - list 0x1E033 'cyrl/ghe' - list 0x1E034 'cyrl/de' - list 0x1E035 'cyrl/ie' - list 0x1E036 'cyrl/zhe' - list 0x1E037 'cyrl/ze' - list 0x1E038 'cyrl/i' - list 0x1E039 'cyrl/ka' - list 0x1E03A 'cyrl/el' - list 0x1E03B 'cyrl/em' - list 0x1E03C 'cyrl/o' - list 0x1E03D 'cyrl/pe' - list 0x1E03E 'cyrl/er' - list 0x1E03F 'cyrl/es' - list 0x1E040 'cyrl/te' - list 0x1E041 'cyrl/u' - list 0x1E042 'cyrl/ef' - list 0x1E043 'cyrl/kha' - list 0x1E044 'cyrl/tse' - list 0x1E045 'cyrl/che' - list 0x1E046 'cyrl/sha' - list 0x1E047 'cyrl/yery' - list 0x1E048 'cyrl/e' - list 0x1E049 'cyrl/yu' - list 0x1E04A 'cyrl/dzze' - list 0x1E04B 'cyrl/schwa' - list 0x1E04C 'cyrl/iUkrainian' - list 0x1E04D 'cyrl/je' - list 0x1E04E 'cyrl/oe' - list 0x1E04F 'cyrl/ue' - list 0x1E050 'cyrl/palochka' - list 0x1E06B 'cyrl/the' - list 0x1E06C 'cyrl/yeryBack' - list 0x1E06D 'cyrl/uo' - list 0x1FBCC 'smallBracketLeft' - - createSuperscripts 'numerator' NumeratorForm : list - list null 'zero.onum' - list null 'one.onum' - list null 'two.onum' - list null 'three.onum' - list null 'four.onum' - list null 'five.onum' - list null 'six.onum' - list null 'seven.onum' - list null 'eight.onum' - list null 'nine.onum' - list 0x2070 'zero.lnum' - list 0x00B9 'one.lnum' - list 0x00B2 'two.lnum' - list 0x00B3 'three.lnum' - list 0x2074 'four.lnum' - list 0x2075 'five.lnum' - list 0x2076 'six.lnum' - list 0x2077 'seven.lnum' - list 0x2078 'eight.lnum' - list 0x2079 'nine.lnum' - list null 'period' - - : where : [createSuperscripts prefix gr _records] : begin + # Superscripts + define [createSuperscripts prefix gr _records] : begin local {records relSets targetNameMap} : extendRelatedGlyphs prefix _records local pendingGlyphs : records.map : [record] => record.1 local miniatureFont : Miniature pendingGlyphs @@ -370,106 +132,36 @@ glyph-block Autobuild-Transformed : begin scale -- ToSuperscript.crowdAdjScale # mono -- true sbscale -- 0.75 - foreach { unicode glyphid fRelated } [items-of records] - if [not : query-glyph targetNameMap.(glyphid)] : begin - create-glyph (targetNameMap.(glyphid)) unicode : glyph-proc - if [not : miniatureFont.queryByName glyphid] : begin - throw : new Error "Cannot find glyph \(glyphid)" - include [miniatureFont.queryByName glyphid] AS_BASE ALSO_METRICS - include : ToSuperscript (currentGlyph.advanceWidth / Width) - IsSuperscript.set currentGlyph - if ([not fRelated] && gr) : gr.set [query-glyph glyphid] (targetNameMap.(glyphid)) - link-relations relSets - return { targetNameMap records } + return : BuildTransformedSimple records relSets targetNameMap gr miniatureFont + function [derived] : glyph-proc + include derived AS_BASE ALSO_METRICS + include : ToSuperscript (currentGlyph.advanceWidth / Width) + IsSuperscript.set currentGlyph + + createSuperscripts 'sup' null JobsData.Superscript + createSuperscripts 'numerator' NumeratorForm JobsData.Numerator - do - createSubscripts 'sub' null : list - list 0x1D62 'i' - list 0x1D63 'r' - list 0x1D64 'u' - list 0x1D65 'v' - list 0x1D66 'grek/beta' - list 0x1D67 'grek/gamma' - list 0x1D68 'grek/rho' - list 0x1D69 'grek/phi' - list 0x1D6A 'grek/chi' - list 0x208A 'plus' - list 0x208B 'minus' - list 0x208C 'equal' - list 0x208D 'parenLeft' - list 0x208E 'parenRight' - list 0x2090 'a' - list 0x2091 'e' - list 0x2092 'o' - list 0x2093 'x' - list 0x2094 'schwa' - list 0x2095 'h' - list 0x2096 'k' - list 0x2097 'l' - list 0x2098 'm' - list 0x2099 'n' - list 0x209A 'p' - list 0x209B 's' - list 0x209C 't' - list 0x2C7C 'j' - list 0x2E1C 'multiplyStroke2' - list 0x2E1D 'multiplyStroke1' - list 0xA700 'subst' - list 0xA701 'substBarNoRise' - list 0xA706 'supst' - list 0xA707 'supstBarNoRise' - list 0xA71F 'alveolarpercussive' - list 0x1E051 'cyrl/a' - list 0x1E052 'cyrl/be' - list 0x1E053 'cyrl/ve' - list 0x1E054 'cyrl/ghe' - list 0x1E055 'cyrl/de' - list 0x1E056 'cyrl/ie' - list 0x1E057 'cyrl/zhe' - list 0x1E058 'cyrl/ze' - list 0x1E059 'cyrl/i' - list 0x1E05A 'cyrl/ka' - list 0x1E05B 'cyrl/el' - list 0x1E05C 'cyrl/o' - list 0x1E05D 'cyrl/pe' - list 0x1E05E 'cyrl/es' - list 0x1E05F 'cyrl/u' - list 0x1E060 'cyrl/ef' - list 0x1E061 'cyrl/kha' - list 0x1E062 'cyrl/tse' - list 0x1E063 'cyrl/che' - list 0x1E064 'cyrl/sha' - list 0x1E065 'cyrl/yer' - list 0x1E066 'cyrl/yery' - list 0x1E067 'cyrl/ge' - list 0x1E068 'cyrl/iUkrainian' - list 0x1E069 'cyrl/dze' - list 0x1E06A 'cyrl/dzhe' - - createSubscripts 'denominator' DenominatorForm : list - list null 'zero.onum' - list null 'one.onum' - list null 'two.onum' - list null 'three.onum' - list null 'four.onum' - list null 'five.onum' - list null 'six.onum' - list null 'seven.onum' - list null 'eight.onum' - list null 'nine.onum' - list 0x2080 'zero.lnum' - list 0x2081 'one.lnum' - list 0x2082 'two.lnum' - list 0x2083 'three.lnum' - list 0x2084 'four.lnum' - list 0x2085 'five.lnum' - list 0x2086 'six.lnum' - list 0x2087 'seven.lnum' - list 0x2088 'eight.lnum' - list 0x2089 'nine.lnum' - list null 'period' - - : where : [createSubscripts prefix gr _records] : begin + # Italic superscripts + define [createItalicSuperscripts prefix gr _records] : begin + local {records relSets targetNameMap} : extendRelatedGlyphs prefix _records + local pendingGlyphs : records.map : [record] => record.1 + local forkedPara : MiniatureParaT [para.createFork ForkTfm.Italic] + crowd -- ToSuperscript.crowd + scale -- ToSuperscript.crowdAdjScale + # mono -- true + sbscale -- 0.75 + local miniatureFont : Fork pendingGlyphs forkedPara + + return : BuildTransformedSimple records relSets targetNameMap gr miniatureFont + function [derived] : glyph-proc + include derived AS_BASE ALSO_METRICS + include : ToSuperscript (currentGlyph.advanceWidth / Width) + IsSuperscript.set currentGlyph + + createItalicSuperscripts "italsup" null JobsData.ItalicSuperscript + + # Subscripts + define [createSubscripts prefix gr _records] : begin local {records relSets targetNameMap} : extendRelatedGlyphs prefix _records local pendingGlyphs : records.map : [record] => record.1 local miniatureFont : Miniature pendingGlyphs @@ -477,119 +169,18 @@ glyph-block Autobuild-Transformed : begin scale -- ToSubscript.crowdAdjScale # mono -- true sbscale -- 0.75 - foreach { unicode glyphid fRelated } [items-of records] - if [not : query-glyph targetNameMap.(glyphid)] : begin - create-glyph (targetNameMap.(glyphid)) unicode : glyph-proc - include [miniatureFont.queryByName glyphid] AS_BASE ALSO_METRICS - include : ToSubscript (currentGlyph.advanceWidth / Width) - IsSubscript.set currentGlyph - if ([not fRelated] && gr) : gr.set [query-glyph glyphid] (targetNameMap.(glyphid)) - link-relations relSets - do - createMedievalCombs 0 XH : list - list 0x363 'a' - list 0x364 'e' - list 0x366 'o' - list 0x367 'u' - list 0x368 'c' - list 0x369 'd' - list 0x36A 'h' - list 0x36B 'm' - list 0x36C 'r' - list 0x36E 'v' - list 0x36F 'x' - list 0x1ACE 'tInsular' - list 0x1DD3 'flattenedOpena' - list 0x1DD4 'ae' - list 0x1DD5 'ao' - list 0x1DDB 'smcpG' - list 0x1DDE 'smcpL' - list 0x1DDF 'smcpM' - list 0x1DE0 'n' - list 0x1DE1 'smcpN' - list 0x1DE2 'smcpR' - list 0x1DE3 'rRotunda' - list 0x1DE4 's' - list 0x1DE6 'z' - list 0x1DE7 'scripta' - list 0x1DEA 'schwa' - list 0x1DED 'oWithLightCentralizationStroke' - list 0x1DF0 'uWithLightCentralizationStroke' - list 0x1DF1 'w' - list 0x20F0 'asterisk/slashBot' - list 0x2DE1 'cyrl/ve' - list 0x2DE2 'cyrl/ghe' - list 0x2DE3 'cyrl/de' - list 0x2DE4 'cyrl/zhe' - list 0x2DE5 'cyrl/ze' - list 0x2DE6 'cyrl/ka' - list 0x2DE7 'cyrl/el' - list 0x2DE8 'cyrl/em' - list 0x2DE9 'cyrl/en' - list 0x2DEA 'cyrl/o' - list 0x2DEB 'cyrl/pe' - list 0x2DED 'cyrl/es' - list 0x2DEE 'cyrl/te/reduced' - list 0x2DEF 'cyrl/kha' - list 0x2DF0 'cyrl/tse' - list 0x2DF1 'cyrl/che' - list 0x2DF2 'cyrl/sha/reduced' - list 0x2DF3 'cyrl/shcha/reduced' - list 0x2DF4 'cyrl/fita' - list 0x2DF5 'cyrl/este' - list 0x2DF6 'cyrl/a' - list 0x2DF7 'cyrl/ie' - list 0x2DF8 'cyrl/djerv' - list 0x2DF9 'cyrl/uk' - list 0x2DFB 'cyrl/yu' - list 0x2DFC 'cyrl/aIotified' - list 0x2DFD 'cyrl/smallYus' - list 0x2DFE 'cyrl/bigYus' - list 0x2DFF 'cyrl/bigYusIotified' - list 0xA674 'cyrl/ye' - list 0xA675 'cyrl/i' - list 0xA678 'cyrl/yer' - list 0xA679 'cyrl/yery' - list 0xA67A 'cyrl/yeri' - list 0xA67B 'cyrl/omega' - list 0xA69F 'cyrl/eIotified' - - createMedievalCombs 0 CAP : list - list 0x365 'i' - list 0x36D 't' - list 0x1AC6 'numberSign/cap' - list 0x1DD8 'dInsular' - list 0x1DD9 'eth' - list 0x1DDC 'k' - list 0x1DDD 'l' - list 0x1DE8 'b' - list 0x1DEC 'lDblTildeOver' - list 0x1DF2 'aDieresis' - list 0x1DF3 'oDieresis' - list 0x1DF4 'uDieresis' - list 0x2DE0 'cyrl/be' - list 0x2DFA 'cyrl/yat' - list 0xA676 'cyrl/yi' - list 0x1E08F 'cyrl/iUkrainian' - - createMedievalCombs Descender XH : list - list 0x1ACC 'gInsular' - list 0x1DDA 'g' - list 0x1DD7 'cCedilla' - list 0x1DE9 'latn/beta' - list 0x1DEE 'p' - list 0x2DEC 'cyrl/er' - list 0xA677 'cyrl/u' - - createMedievalCombs Descender CAP : list - list 0x1ACD 'rInsular' - list 0x1DEB 'f' - list 0x1DE5 'longs' - list 0x1DEF 'esh' - list 0xA69E 'cyrl/ef' - - : where : [createMedievalCombs defaultLow defaultHigh _records] : begin + return : BuildTransformedSimple records relSets targetNameMap gr miniatureFont + function [derived] : glyph-proc + include derived AS_BASE ALSO_METRICS + include : ToSubscript (currentGlyph.advanceWidth / Width) + IsSubscript.set currentGlyph + + createSubscripts 'sub' null JobsData.Subscript + createSubscripts 'denominator' DenominatorForm JobsData.Denominator + + # Medieval above marks + define [createMedievalCombs defaultLow defaultHigh _records] : begin local { records relSets targetNameMap } : extendRelatedGlyphs 'medievalAbove' _records local pendingGlyphs : records.map : [record] => record.1 local miniatureFont : Miniature pendingGlyphs @@ -598,10 +189,9 @@ glyph-block Autobuild-Transformed : begin mono -- true sbscale -- 1 - foreach {unicode glyphid} [items-of records] : if [not : query-glyph targetNameMap.(glyphid)] - create-glyph targetNameMap.(glyphid) unicode : glyph-proc + return : BuildTransformedSimple records relSets targetNameMap null miniatureFont + function [derived] : glyph-proc set-width 0 - local derived [miniatureFont.queryByName glyphid] local low defaultLow local high defaultHigh if (derived && derived.baseAnchors.above && derived.baseAnchors.below) : begin @@ -615,21 +205,20 @@ glyph-block Autobuild-Transformed : begin include : Scale 0.4 include : Translate markMiddle aboveMarkBot include : Regizmo - local markHeight : 0.4 * (high - low) + 0 * (aboveMarkTop - aboveMarkBot) + local markHeight : 0.4 * (high - low) set-mark-anchor 'above' markMiddle XH markMiddle (aboveMarkBot + markHeight) - set-base-anchor 'aboveBraceL' markMiddle (aboveMarkBot + markHeight / 2) - set-base-anchor 'aboveBraceR' markMiddle (aboveMarkBot + markHeight / 2) + set-base-anchor 'aboveBraceL' markMiddle (aboveMarkBot + 0.5 * markHeight) + set-base-anchor 'aboveBraceR' markMiddle (aboveMarkBot + 0.5 * markHeight) - link-relations relSets + createMedievalCombs 0 XH JobsData.MedievalComb_e + createMedievalCombs 0 Ascender JobsData.MedievalComb_b + createMedievalCombs 0 CAP JobsData.MedievalComb_CAP + createMedievalCombs Descender XH JobsData.MedievalComb_p + createMedievalCombs Descender Ascender JobsData.MedievalComb_bp - do - createMedievalBelowCombs : list - list 0x0359 'asterisk/sMid' - list 0x1ABF 'w' - list 0x1AC0 'turnw' - list 0x1DCA 'r' - : where : [createMedievalBelowCombs _records] : begin + # Medieval below marks + define [createMedievalBelowCombs defaultLow defaultHigh _records] : begin local { records relSets targetNameMap } : extendRelatedGlyphs 'medievalBelow' _records local pendingGlyphs : records.map : [record] => record.1 local miniatureFont : Miniature pendingGlyphs @@ -637,45 +226,41 @@ glyph-block Autobuild-Transformed : begin scale -- 0.4 mono -- true sbscale -- 1 - foreach {unicode glyphid} [items-of records] : if [not : query-glyph targetNameMap.(glyphid)] - create-glyph targetNameMap.(glyphid) unicode : glyph-proc + + return : BuildTransformedSimple records relSets targetNameMap null miniatureFont + function [derived] : glyph-proc set-width 0 - local middle : [miniatureFont.queryByName glyphid].advanceWidth / 2 - include [miniatureFont.queryByName glyphid] + local low defaultLow + local high defaultHigh + if (derived && derived.baseAnchors.above && derived.baseAnchors.below) : begin + set low derived.baseAnchors.below.y + set high derived.baseAnchors.above.y + + local middle : derived.advanceWidth / 2 + include derived include : Ungizmo - include : Translate (-middle) (-XH) + include : Translate (-middle) (-high) include : Scale 0.4 include : Translate markMiddle belowMarkTop include : Regizmo - set-mark-anchor 'below' markMiddle 0 markMiddle belowMarkBot - set-base-anchor 'belowBraceL' markMiddle belowMarkMid - set-base-anchor 'belowBraceR' markMiddle belowMarkMid - link-relations relSets + local markHeight : 0.4 * (high - low) + 0 * (aboveMarkTop - aboveMarkBot) + set-mark-anchor 'below' markMiddle 0 markMiddle (belowMarkTop - markHeight) + set-base-anchor 'belowBraceL' markMiddle (belowMarkTop - 0.5 * markHeight) + set-base-anchor 'belowBraceR' markMiddle (belowMarkTop - 0.5 * markHeight) - do - createReversed : list - list 0x1B8 'Ezh' - list 0x1B9 'ezh' - list 0x2143 'L/sansSerif' - list 0xA7FB 'F' - list 0xA7FC 'P' - list 0xA7FD 'turnM' - list 0x1DF01 'gScript' - list 0x1DF03 'k' - list 0x1DF07 'eng' - - : where : [createReversed _records] : begin + createMedievalBelowCombs 0 XH JobsData.MedievalBelowComb_e + + # Reversed + define [createReversed _records] : begin local { records relSets targetNameMap } : extendRelatedGlyphs 'reversed' _records local pendingGlyphs : records.map : [record] => record.1 local forkedPara : para.createFork : function p : begin set p.shape.slopeAngle (-p.shape.slopeAngle) local miniatureFont : Fork pendingGlyphs forkedPara - foreach {unicode glyphid} [items-of records] : if [not : query-glyph targetNameMap.(glyphid)] - create-glyph targetNameMap.(glyphid) unicode : glyph-proc - # Include the glyph built with negative slope - local g1 : miniatureFont.queryByName glyphid + return : BuildTransformedSimple records relSets targetNameMap null miniatureFont + function [g1] : glyph-proc include g1 AS_BASE ALSO_METRICS # Inverse @@ -693,7 +278,7 @@ glyph-block Autobuild-Transformed : begin if bLeaningAbove : set-base-anchor 'leaningAbove' (currentGlyph.advanceWidth - bLeaningAbove.x) bLeaningAbove.y if bLeaningBelow : set-base-anchor 'leaningBelow' (currentGlyph.advanceWidth - bLeaningBelow.x) bLeaningBelow.y - link-relations relSets + createReversed JobsData.Reversed glyph-block Autobuild-Transformed-Texture : begin if (!(para.buildTextureFeature && !para.isQuasiProportional)) : return nothing @@ -731,21 +316,12 @@ glyph-block Autobuild-Transformed-Texture : begin local shift : (glyphT.advanceWidth - Width) * extL / (extL + extR) currentGlyph.applyTransform [Translate (-shift) 0] true - # Do NOT need this, as texture variants are applied AFTER cv/ss + ### Do NOT need this, as texture variants are applied AFTER cv/ss # link-relations relSets - define ranges : list - list 0x41 0x5A - list 0x61 0x7A - list 0xC0 0xFF - list 0x100 0x2AF - list 0x370 0x3FF - list 0x400 0x4FF - list 0x500 0x52F - define [jobs base] : list local results {} - foreach {low high} [items-of ranges] : begin + foreach {low high} [items-of JobsData.TextureHandlingRanges] : begin foreach lch [range low till high] : begin local source : glyphStore.queryNameByUnicode lch if source : results.push { null source } @@ -765,6 +341,7 @@ glyph-block Autobuild-Transformed-Mathematical : begin glyph-block-import Common-Derivatives glyph-block-import Recursive-Build : Fork glyph-block-import Autobuild-Transformed-Shared : extendRelatedGlyphs link-relations wrapName + glyph-block-import Recursive-Build-ParaTfm : ForkTfm define [createMathDerivedSeriesImpl groupName tfm _records postProcessing] : begin local { records relSets targetNameMap } : extendRelatedGlyphs groupName _records @@ -781,23 +358,6 @@ glyph-block Autobuild-Transformed-Mathematical : begin link-relations relSets - define [boldGrade g] : begin - local pGrade : (900 - g) / 100 - return : 900 - 100 * (2 / 25) * pGrade * pGrade - define [tfBold a] : begin [set a.shape.weight : boldGrade a.shape.weight] - define [tfItalic a] : begin - set a.shape.slope 'italic' - set a.shape.slopeAngle : mix (para.slopeAngle || 0) 15 (94 / 150) - define [tfSans a] : begin [set a.shape.serifs 'sans'] - define [tfBoldItalic a] : begin [tfBold a] [tfItalic a] - define [tfSansBold a] : begin [tfSans a] [tfBold a] - define [tfSansItalic a] : begin [tfSans a] [tfItalic a] - define [tfSansBoldItalic a] : begin [tfSans a] [tfBold a] [tfItalic a] - define [tfTypeWriter a] : begin - set a.shape.spacing 'fixed' - if (a.derivingVariants && a.derivingVariants.mathtt) - set a.variants a.derivingVariants.mathtt - define Digits : Array.from '0123456789' define UpperLatin : Array.from 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' define LowerLatin : Array.from 'abcdefghijklmnopqrstuvwxyz' @@ -834,63 +394,58 @@ glyph-block Autobuild-Transformed-Mathematical : begin CreateMathDerivatives groupName tfm gr base letters overrides CreateMathAliasableImpl groupName altGroupName tfm gr base letters overrides - define [CreateMathBoldFraktur base letters] : begin - local jobs {} - foreach j [range 0 letters.length] : jobs.push { (base + j) ("frak/" + letters.(j)) } - createMathDerivedSeriesImpl 'frakbf' tfBold jobs - # Math bold - CreateMathDerivatives 'mathbf' tfBold null 0x1D400 UpperLatin - CreateMathDerivatives 'mathbf' tfBold null 0x1D41A LowerLatin - CreateMathDerivatives 'mathbf' tfBold null 0x1D6A8 UpperGreek - CreateMathDerivatives 'mathbf' tfBold null 0x1D6C2 LowerGreek - CreateMathDerivatives 'mathbf' tfBold null 0x1D7CE Digits - CreateMathDerivatives 'mathbf' tfBold null 0x1D7CA Greek2 + CreateMathDerivatives 'mathbf' ForkTfm.Bold null 0x1D400 UpperLatin + CreateMathDerivatives 'mathbf' ForkTfm.Bold null 0x1D41A LowerLatin + CreateMathDerivatives 'mathbf' ForkTfm.Bold null 0x1D6A8 UpperGreek + CreateMathDerivatives 'mathbf' ForkTfm.Bold null 0x1D6C2 LowerGreek + CreateMathDerivatives 'mathbf' ForkTfm.Bold null 0x1D7CE Digits + CreateMathDerivatives 'mathbf' ForkTfm.Bold null 0x1D7CA Greek2 # Math Italic - CreateMathDerivatives 'mathit' tfItalic null 0x1D434 UpperLatin - CreateMathDerivatives 'mathit' tfItalic null 0x1D44E LowerLatin2 : list + CreateMathDerivatives 'mathit' ForkTfm.Italic null 0x1D434 UpperLatin + CreateMathDerivatives 'mathit' ForkTfm.Italic null 0x1D44E LowerLatin2 : list list 'h' 0x210E list 'ħ' 0x210F list 'ı' 0x1D6A4 list 'ȷ' 0x1D6A5 - CreateMathDerivatives 'mathit' tfItalic null 0x1D6E2 UpperGreek - CreateMathDerivatives 'mathit' tfItalic null 0x1D6FC LowerGreek + CreateMathDerivatives 'mathit' ForkTfm.Italic null 0x1D6E2 UpperGreek + CreateMathDerivatives 'mathit' ForkTfm.Italic null 0x1D6FC LowerGreek # Math Bold Italic - CreateMathDerivatives 'mathbi' tfBoldItalic null 0x1D468 UpperLatin - CreateMathDerivatives 'mathbi' tfBoldItalic null 0x1D482 LowerLatin - CreateMathDerivatives 'mathbi' tfBoldItalic null 0x1D71C UpperGreek - CreateMathDerivatives 'mathbi' tfBoldItalic null 0x1D736 LowerGreek + CreateMathDerivatives 'mathbi' ForkTfm.BoldItalic null 0x1D468 UpperLatin + CreateMathDerivatives 'mathbi' ForkTfm.BoldItalic null 0x1D482 LowerLatin + CreateMathDerivatives 'mathbi' ForkTfm.BoldItalic null 0x1D71C UpperGreek + CreateMathDerivatives 'mathbi' ForkTfm.BoldItalic null 0x1D736 LowerGreek # Math Sans-serif - CreateMathDerivatives 'mathss' tfSans MathSansSerif 0x1D5A0 UpperLatin - CreateMathDerivatives 'mathss' tfSans MathSansSerif 0x1D5BA LowerLatin - CreateMathDerivatives 'mathss' tfSans MathSansSerif 0x1D7E2 Digits + CreateMathDerivatives 'mathss' ForkTfm.Sans MathSansSerif 0x1D5A0 UpperLatin + CreateMathDerivatives 'mathss' ForkTfm.Sans MathSansSerif 0x1D5BA LowerLatin + CreateMathDerivatives 'mathss' ForkTfm.Sans MathSansSerif 0x1D7E2 Digits - CreateMathDerivatives 'mathsi' tfSansItalic MathSansSerif 0x1D608 UpperLatin - CreateMathDerivatives 'mathsi' tfSansItalic MathSansSerif 0x1D622 LowerLatin + CreateMathDerivatives 'mathsi' ForkTfm.SansItalic MathSansSerif 0x1D608 UpperLatin + CreateMathDerivatives 'mathsi' ForkTfm.SansItalic MathSansSerif 0x1D622 LowerLatin - CreateMathDerivatives 'mathsb' tfSansBold MathSansSerif 0x1D5D4 UpperLatin - CreateMathDerivatives 'mathsb' tfSansBold MathSansSerif 0x1D5EE LowerLatin - CreateMathDerivatives 'mathsb' tfSansBold MathSansSerif 0x1D756 UpperGreek - CreateMathDerivatives 'mathsb' tfSansBold MathSansSerif 0x1D770 LowerGreek - CreateMathDerivatives 'mathsb' tfSansBold MathSansSerif 0x1D7EC Digits + CreateMathDerivatives 'mathsb' ForkTfm.SansBold MathSansSerif 0x1D5D4 UpperLatin + CreateMathDerivatives 'mathsb' ForkTfm.SansBold MathSansSerif 0x1D5EE LowerLatin + CreateMathDerivatives 'mathsb' ForkTfm.SansBold MathSansSerif 0x1D756 UpperGreek + CreateMathDerivatives 'mathsb' ForkTfm.SansBold MathSansSerif 0x1D770 LowerGreek + CreateMathDerivatives 'mathsb' ForkTfm.SansBold MathSansSerif 0x1D7EC Digits - CreateMathDerivatives 'mathsz' tfSansBoldItalic MathSansSerif 0x1D63C UpperLatin - CreateMathDerivatives 'mathsz' tfSansBoldItalic MathSansSerif 0x1D656 LowerLatin - CreateMathDerivatives 'mathsz' tfSansBoldItalic MathSansSerif 0x1D790 UpperGreek - CreateMathDerivatives 'mathsz' tfSansBoldItalic MathSansSerif 0x1D7AA LowerGreek + CreateMathDerivatives 'mathsz' ForkTfm.SansBoldItalic MathSansSerif 0x1D63C UpperLatin + CreateMathDerivatives 'mathsz' ForkTfm.SansBoldItalic MathSansSerif 0x1D656 LowerLatin + CreateMathDerivatives 'mathsz' ForkTfm.SansBoldItalic MathSansSerif 0x1D790 UpperGreek + CreateMathDerivatives 'mathsz' ForkTfm.SansBoldItalic MathSansSerif 0x1D7AA LowerGreek # Math Typewriter local doTypewriter para.isQuasiProportional - CreateMathAliasable doTypewriter 'mathtt' null tfTypeWriter null 0x1D670 UpperLatin - CreateMathAliasable doTypewriter 'mathtt' null tfTypeWriter null 0x1D68A LowerLatin - CreateMathAliasable doTypewriter 'mathtt' null tfTypeWriter null 0x1D7F6 Digits + CreateMathAliasable doTypewriter 'mathtt' null ForkTfm.TypeWriter null 0x1D670 UpperLatin + CreateMathAliasable doTypewriter 'mathtt' null ForkTfm.TypeWriter null 0x1D68A LowerLatin + CreateMathAliasable doTypewriter 'mathtt' null ForkTfm.TypeWriter null 0x1D7F6 Digits # Italic blackboard bold - CreateMathDerivatives 'mathit' tfItalic null 0x2145 ObliqueBlackboardBolds + CreateMathDerivatives 'mathit' ForkTfm.Italic null 0x2145 ObliqueBlackboardBolds # Outlined letters and digits -- for Symbols for Legacy Computing Supplement define [TfOutline para forkedPara] : glyph-proc @@ -899,10 +454,15 @@ glyph-block Autobuild-Transformed-Mathematical : begin local gizmo : currentGlyph.gizmo || GlobalTransform set currentGlyph.geometry : new StrokeGeometry g gizmo sw HVContrast true - CreateMathDerivatives 'legacyComputingOutlined' tfBold null 0x1CCD6 UpperLatin null TfOutline - CreateMathDerivatives 'legacyComputingOutlined' tfBold null 0x1CCF0 Digits null TfOutline + CreateMathDerivatives 'legacyComputingOutlined' ForkTfm.Bold null 0x1CCD6 UpperLatin null TfOutline + CreateMathDerivatives 'legacyComputingOutlined' ForkTfm.Bold null 0x1CCF0 Digits null TfOutline # Math fraktur + define [CreateMathBoldFraktur base letters] : begin + local jobs {} + foreach j [range 0 letters.length] : jobs.push { (base + j) ("frak/" + letters.(j)) } + createMathDerivedSeriesImpl 'frakbf' ForkTfm.Bold jobs + CreateMathBoldFraktur 0x1D56C UpperLatin CreateMathBoldFraktur 0x1D586 LowerLatin diff --git a/packages/font-glyphs/src/letter/cyrillic/de.ptl b/packages/font-glyphs/src/letter/cyrillic/de.ptl index 7e90967e92..b1109a48e3 100644 --- a/packages/font-glyphs/src/letter/cyrillic/de.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/de.ptl @@ -121,7 +121,13 @@ glyph-block Letter-Cyrillic-De : begin local sw : AdviceStroke 2.5 ((sr - sl + 2 * SB) / Width) local shapeBot : de.desc - 0.5 * sw local hook : Hook * (0 - shapeBot) / CAP - local ze : CyrZe 3 sb sw shapeBot sl sr 0.65 hook sw (0.5 * O) (op -- 0.5) + local ze : CyrZe 3 sb sw shapeBot + left -- sl + right -- sr + hook -- hook + stroke -- sw + xo -- 0.5 * O + op -- 0.5 return : union [ze.Shape] [ze.AutoEndSerifL] create-glyph "cyrl/Dzze.\(suffix)" : glyph-proc @@ -176,7 +182,11 @@ glyph-block Letter-Cyrillic-De : begin local xZeLeft : dfLeft.leftSB + df.width - dfLeft.width + OX local xZeRight : dfLeft.rightSB + df.width - dfLeft.width - OX - local ze : CyrZe 1 sb XH Descender xZeLeft xZeRight 0.65 Hook df.mvs + local ze : CyrZe 1 sb XH Descender + left -- xZeLeft + right -- xZeRight + hook -- Hook + stroke -- df.mvs include : union [ze.Shape] [ze.AutoEndSerifL] select-variant 'cyrl/Dzze' 0xA688 (follow -- 'cyrl/ZeBottomSerifOnly') diff --git a/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl b/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl index 9a82f385d1..d6d003a0d5 100644 --- a/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl @@ -53,7 +53,12 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin do "ze subglyph" define [CyrZhweZeShape slabTop slabBot df top hook] : glyph-proc local [object subDf sw] : SubDfDimBy4 0 2 df OX - local ze : CyrZe slabTop slabBot top 0 subDf.leftSB subDf.rightSB 0.65 hook sw (xo -- 0.33 * OX) + local ze : CyrZe slabTop slabBot top 0 + left -- subDf.leftSB + right -- subDf.rightSB + hook -- hook + stroke -- sw + xo -- 0.33 * OX include : ze.Shape include : ze.AutoStartSerifL include : ze.AutoEndSerifL @@ -85,8 +90,14 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin define [ZhweZheShape legShape fSlab fMidSlab df top hook] : glyph-proc local [object subDf sw] : SubDfDimBy4 0 2 df OX - local ze : CyrZe 0 0 top 0 subDf.leftSB subDf.rightSB 0.65 hook (0.5 * sw) - include : difference [CyrRightZheShape legShape fSlab fMidSlab df top subDf.middle] [ze.ShapeMask] + local zeNoO : CyrZe 0 0 top 0 + left -- subDf.leftSB + right -- subDf.rightSB + hook -- hook + stroke -- 0.5 * sw + xo -- 0 + yo -- 0 + include : difference [CyrRightZheShape legShape fSlab fMidSlab df top subDf.middle] [zeNoO.ShapeMask] glyph-block-import Letter-Cyrillic-De : CyrDeItalicShapeT define [DzzheZheItalicShape legShape fSlab fMidSlab df top] : glyph-proc diff --git a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl index e0e1fcb2dd..3c21cbf655 100644 --- a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl @@ -63,8 +63,11 @@ glyph-block Letter-Cyrillic-Orthography : begin link-gr LocalizedForm.BGR 'cyrl/de' 'cyrl/de.BGR' link-gr LocalizedForm.BGR 'cyrl/zhe' 'cyrl/zhe.BGR' link-gr LocalizedForm.BGR 'cyrl/ze' 'cyrl/ze.BGR' + link-gr LocalizedForm.BGR 'cyrl/I' 'cyrl/I.BGR' link-gr LocalizedForm.BGR 'cyrl/i' 'cyrl/i.BGR' + link-gr LocalizedForm.BGR 'cyrl/IBreve' 'cyrl/IBreve.BGR' link-gr LocalizedForm.BGR 'cyrl/ibreve' 'cyrl/ibreve.BGR' + link-gr LocalizedForm.BGR 'cyrl/IGrave' 'cyrl/IGrave.BGR' link-gr LocalizedForm.BGR 'cyrl/igrave' 'cyrl/igrave.BGR' link-gr LocalizedForm.BGR 'cyrl/ka' 'cyrl/ka.BGR' link-gr LocalizedForm.BGR 'cyrl/El' 'cyrl/El.BGR' diff --git a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl index e931c730d3..8a84cf0374 100644 --- a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl @@ -31,7 +31,8 @@ glyph-block Letter-Greek-Lower-Epsilon : begin define VolBlend 0.52 define [SmallEpsilon] : with-params [ - slabTop slabBot top bot blend hook + slabTop slabBot top bot + [blend StdBlend] [hook Hook] [ada2 SmallArchDepthA] [adb2 SmallArchDepthB] ] : namespace export : define [Dim] : begin @@ -100,7 +101,8 @@ glyph-block Letter-Greek-Lower-Epsilon : begin glyph-block-export CyrZe define [CyrZe] : with-params [ - slabTop slabBot top bot left right blend hook [stroke : AdviceStroke2 2 3 (top - bot)] + slabTop slabBot top bot [left SB] [right RightSB] + [blend StdBlend] [hook Hook] [stroke : AdviceStroke2 2 3 (top - bot)] [xo OX] [yo O] [op OverlayPos] [ada2 SmallArchDepthA] [adb2 SmallArchDepthB] ] : namespace export : define [Dim] : begin @@ -218,33 +220,33 @@ glyph-block Letter-Greek-Lower-Epsilon : begin foreach { suffix { slabTop slabBot } } [Object.entries EpsilonConfig] : do create-glyph "latn/Epsilon.\(suffix)" : glyph-proc include : MarkSet.capital - include : let [eps : SmallEpsilon slabTop slabBot CAP 0 StdBlend Hook] + include : let [eps : SmallEpsilon slabTop slabBot CAP 0 (hook -- Hook)] union [eps.Shape] [eps.AutoStartSerifR] [eps.AutoEndSerifR] create-glyph "latn/epsilon.\(suffix)" : glyph-proc include : MarkSet.e - include : let [eps : SmallEpsilon slabTop slabBot XH 0 StdBlend SHook] + include : let [eps : SmallEpsilon slabTop slabBot XH 0 (hook -- SHook)] union [eps.Shape] [eps.AutoStartSerifR] [eps.AutoEndSerifR] create-glyph "cyrl/Ze.\(suffix)" : glyph-proc include : MarkSet.capital - include : let [ze : CyrZe slabTop slabBot CAP 0 SB RightSB StdBlend Hook] + include : let [ze : CyrZe slabTop slabBot CAP 0 (hook -- Hook)] union [ze.Shape] [ze.AutoStartSerifL] [ze.AutoEndSerifL] create-glyph "cyrl/ze.\(suffix)" : glyph-proc include : MarkSet.e - include : let [ze : CyrZe slabTop slabBot XH 0 SB RightSB StdBlend SHook] + include : let [ze : CyrZe slabTop slabBot XH 0 (hook -- SHook)] union [ze.Shape] [ze.AutoStartSerifL] [ze.AutoEndSerifL] create-glyph "cyrl/ze.BGR.\(suffix)" : glyph-proc include : MarkSet.p - include : let [ze : CyrZe slabTop slabBot XH Descender SB RightSB StdBlend SHook] + include : let [ze : CyrZe slabTop slabBot XH Descender (hook -- SHook)] union [ze.Shape] [ze.AutoStartSerifL] [ze.AutoEndSerifL] create-glyph "cyrl/Dhe.\(suffix)" : glyph-proc include [refer-glyph "cyrl/Ze.\(suffix)"] AS_BASE ALSO_METRICS include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke) - include : let [zeNoO : CyrZe slabTop slabBot CAP 0 SB RightSB StdBlend Hook (xo -- 0) (yo -- 0)] + include : let [zeNoO : CyrZe slabTop slabBot CAP 0 (hook -- Hook) (xo -- 0) (yo -- 0)] difference VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] zeNoO.ShapeMask @@ -252,21 +254,21 @@ glyph-block Letter-Greek-Lower-Epsilon : begin create-glyph "cyrl/dhe.\(suffix)" : glyph-proc include [refer-glyph "cyrl/ze.\(suffix)"] AS_BASE ALSO_METRICS include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke) - include : let [zeNoO : CyrZe slabTop slabBot XH 0 SB RightSB StdBlend SHook (xo -- 0) (yo -- 0)] + include : let [zeNoO : CyrZe slabTop slabBot XH 0 (hook -- SHook) (xo -- 0) (yo -- 0)] difference VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] zeNoO.ShapeMask create-glyph "cyrl/DzjeKomi.\(suffix)" : glyph-proc include : MarkSet.capital - local ze : CyrZe slabTop OPEN-VERTICAL CAP 0 SB RightSB StdBlend Hook + local ze : CyrZe slabTop OPEN-VERTICAL CAP 0 (hook -- Hook) include : ze.Shape include : ze.AutoStartSerifL include : CyrDescender.rSideJut (RightSB - OX * 2) 0 create-glyph "cyrl/dzjeKomi.\(suffix)" : glyph-proc include : MarkSet.e - local ze : CyrZe slabTop OPEN-VERTICAL XH 0 SB RightSB StdBlend SHook + local ze : CyrZe slabTop OPEN-VERTICAL XH 0 (hok -- SHook) include : ze.Shape include : ze.AutoStartSerifL include : CyrDescender.rSideJut (RightSB - OX * 2) 0 @@ -276,17 +278,21 @@ glyph-block Letter-Greek-Lower-Epsilon : begin include : df.markSet.capital local xm : df.middle + [HSwToV : 0.5 * df.mvs] - local ze : CyrZe slabTop OPEN-HALF CAP 0 df.leftSB xm StdBlend Hook df.mvs + local ze : CyrZe slabTop OPEN-HALF CAP 0 + left -- df.leftSB + right -- xm + hook -- Hook + stroke -- df.mvs define [object stroke midy] : ze.Dim include : ze.Shape include : UpwardHookShape - left -- xm - OX * 2 - [HSwToV stroke] - right -- df.rightSB + left -- (xm - OX * 2 - [HSwToV stroke]) + right -- df.rightSB ybegin -- [YSmoothMidR (midy + stroke / 2) 0] - yend -- (CAP / 2) - ada -- (ArchDepthA * 0.6 * df.div) - adb -- (ArchDepthB * 0.6 * df.div) - sw -- stroke + yend -- (CAP / 2) + ada -- (ArchDepthA * 0.6 * df.div) + adb -- (ArchDepthB * 0.6 * df.div) + sw -- stroke include : ze.AutoStartSerifL local sf2 : [SerifFrame.fromDf df (CAP / 2) 0].slice 1 2 if SLAB : include sf2.rt.full @@ -296,83 +302,99 @@ glyph-block Letter-Greek-Lower-Epsilon : begin include : df.markSet.e local xm : df.middle + [HSwToV : 0.5 * df.mvs] - local ze : CyrZe slabTop OPEN-HALF XH 0 df.leftSB xm StdBlend SHook df.mvs + local ze : CyrZe slabTop OPEN-HALF XH 0 + left -- df.leftSB + right -- xm + hook -- SHook + stroke -- df.mvs define [object stroke midy] : ze.Dim include : ze.Shape include : UpwardHookShape - left -- xm - OX * 2 - [HSwToV stroke] - right -- df.rightSB + left -- (xm - OX * 2 - [HSwToV stroke]) + right -- df.rightSB ybegin -- [YSmoothMidR (midy + stroke / 2) 0] - yend -- (XH / 2) - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) - sw -- stroke + yend -- (XH / 2) + ada -- (SmallArchDepthA * 0.6 * df.div) + adb -- (SmallArchDepthB * 0.6 * df.div) + sw -- stroke include : ze.AutoStartSerifL local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2 if SLAB : include sf2.rt.full create-glyph "cyrl/KsiBase.\(suffix)" : glyph-proc include : MarkSet.capDesc - include : let [ze : CyrZe slabTop SLAB-NONE CAP 0 SB RightSB StdBlend Hook] + include : let [ze : CyrZe slabTop SLAB-NONE CAP 0 (hook -- Hook)] union [ze.KsiBaseShape] [ze.AutoStartSerifL] create-glyph "cyrl/ksiBase.\(suffix)" : glyph-proc include : MarkSet.p - include : let [ze : CyrZe slabTop SLAB-NONE XH 0 SB RightSB StdBlend SHook] + include : let [ze : CyrZe slabTop SLAB-NONE XH 0 (hook -- SHook)] union [ze.KsiBaseShape] [ze.AutoStartSerifL] do "Closed Epsilon Shapes" create-glyph 'epsilonClosed' 0x29A : glyph-proc include : MarkSet.e - local eps : SmallEpsilon CLOSED-CIRCLE CLOSED-CIRCLE XH 0 StdBlend SHook + local eps : SmallEpsilon CLOSED-CIRCLE CLOSED-CIRCLE XH 0 + hook -- SHook ada2 -- SmallArchDepthA adb2 -- SmallArchDepthB include : eps.Shape create-glyph 'epsilonRevClosed' 0x25E : glyph-proc include : MarkSet.e - local ze : CyrZe CLOSED-CIRCLE CLOSED-CIRCLE XH 0 SB RightSB StdBlend SHook + local ze : CyrZe CLOSED-CIRCLE CLOSED-CIRCLE XH 0 + hook -- SHook ada2 -- SmallArchDepthA adb2 -- SmallArchDepthB include : ze.Shape create-glyph 'OeVolapuk' 0xA79C : glyph-proc include : MarkSet.capital - local eps : SmallEpsilon CLOSED-CIRCLE CLOSED-CIRCLE CAP 0 VolBlend Hook - ada2 -- ArchDepthA - adb2 -- ArchDepthB + local eps : SmallEpsilon CLOSED-CIRCLE CLOSED-CIRCLE CAP 0 + blend -- VolBlend + hook -- Hook + ada2 -- ArchDepthA + adb2 -- ArchDepthB include : eps.Shape create-glyph 'oeVolapuk' 0xA79D : glyph-proc include : MarkSet.e - local eps : SmallEpsilon CLOSED-CIRCLE CLOSED-CIRCLE XH 0 VolBlend SHook - ada2 -- SmallArchDepthA - adb2 -- SmallArchDepthB + local eps : SmallEpsilon CLOSED-CIRCLE CLOSED-CIRCLE XH 0 + blend -- VolBlend + hook -- SHook + ada2 -- SmallArchDepthA + adb2 -- SmallArchDepthB include : eps.Shape do "Volapuk AE" glyph-block-import Letter-Latin-Lower-A : SingleStorey define [FullBarBody df height bar hook ada2 adb2] : glyph-proc - local eps : SmallEpsilon CLOSED-STEM CLOSED-STEM height 0 VolBlend hook - ada2 -- ada2 - adb2 -- adb2 + local eps : SmallEpsilon CLOSED-STEM CLOSED-STEM height 0 + blend -- VolBlend + hook -- hook + ada2 -- ada2 + adb2 -- adb2 define [object stroke] : eps.Dim include : eps.Shape include : bar df height no-shape stroke define [EarlessCornerBody df height bar hook ada2 adb2] : glyph-proc - local eps : SmallEpsilon SLAB-INWARD CLOSED-STEM height 0 VolBlend hook - ada2 -- ada2 - adb2 -- adb2 + local eps : SmallEpsilon SLAB-INWARD CLOSED-STEM height 0 + blend -- VolBlend + hook -- hook + ada2 -- ada2 + adb2 -- adb2 define [object stroke] : eps.Dim include : eps.Shape include : bar df (height - DToothlessRise) no-shape stroke define [EarlessRoundedBody df height bar hook ada2 adb2] : glyph-proc - local eps : SmallEpsilon CLOSED-ROUND CLOSED-STEM height 0 VolBlend hook - ada2 -- ada2 - adb2 -- adb2 + local eps : SmallEpsilon CLOSED-ROUND CLOSED-STEM height 0 + blend -- VolBlend + hook -- hook + ada2 -- ada2 + adb2 -- adb2 define [object stroke] : eps.Dim include : eps.Shape include : bar df (height - adb2) no-shape stroke @@ -408,9 +430,11 @@ glyph-block Letter-Greek-Lower-Epsilon : begin define [UToothed df height slab hook ada2 adb2] : glyph-proc set-base-anchor 'trailing' df.rightSB 0 - local eps : SmallEpsilon OPEN-VERTICAL CLOSED-STEM height 0 VolBlend hook - ada2 -- ada2 - adb2 -- adb2 + local eps : SmallEpsilon OPEN-VERTICAL CLOSED-STEM height 0 + blend -- VolBlend + hook -- hook + ada2 -- ada2 + adb2 -- adb2 define [object stroke] : eps.Dim include : eps.Shape include : VBar.r df.rightSB 0 height stroke @@ -418,27 +442,33 @@ glyph-block Letter-Greek-Lower-Epsilon : begin define [UTailed df height slab hook ada2 adb2] : glyph-proc set-base-anchor 'trailing' (df.rightSB + SideJut) 0 - local eps : SmallEpsilon OPEN-VERTICAL CLOSED-STEM height 0 VolBlend hook - ada2 -- ada2 - adb2 -- adb2 + local eps : SmallEpsilon OPEN-VERTICAL CLOSED-STEM height 0 + blend -- VolBlend + hook -- hook + ada2 -- ada2 + adb2 -- adb2 define [object stroke] : eps.Dim include : eps.Shape include : RightwardTailedBar df.rightSB 0 height stroke include : slab df height define [UToothlessRounded df height slab hook ada2 adb2] : glyph-proc - local eps : SmallEpsilon OPEN-VERTICAL CLOSED-ROUND height 0 VolBlend hook - ada2 -- ada2 - adb2 -- adb2 + local eps : SmallEpsilon OPEN-VERTICAL CLOSED-ROUND height 0 + blend -- VolBlend + hook -- hook + ada2 -- ada2 + adb2 -- adb2 define [object stroke] : eps.Dim include : eps.Shape include : VBar.r df.rightSB ada2 height stroke include : slab df height define [UToothlessCorner df height slab hook ada2 adb2] : glyph-proc - local eps : SmallEpsilon OPEN-VERTICAL SLAB-INWARD height 0 VolBlend hook - ada2 -- ada2 - adb2 -- adb2 + local eps : SmallEpsilon OPEN-VERTICAL SLAB-INWARD height 0 + blend -- VolBlend + hook -- hook + ada2 -- ada2 + adb2 -- adb2 define [object stroke] : eps.Dim include : eps.Shape include : VBar.r df.rightSB DToothlessRise height stroke @@ -528,10 +558,10 @@ glyph-block Letter-Greek-Lower-Epsilon : begin local blend 0.505 local midGap : Math.max [AdviceStroke2 3 12 CAP] (CAP / 8 - [AdviceStroke2 3 6 XH]) local strokeV : AdviceStroke 4 - local ze : CyrZe SLAB-NONE SLAB-NONE CAP midGap SB RightSB blend Hook + local ze : CyrZe SLAB-NONE SLAB-NONE CAP midGap (blend -- blend) (hook -- Hook) local dimUpper : ze.Dim - local epsilon : SmallEpsilon SLAB-NONE SLAB-NONE (CAP - midGap) 0 blend Hook + local epsilon : SmallEpsilon SLAB-NONE SLAB-NONE (CAP - midGap) 0 (blend -- blend) (hook -- Hook) local dimLower : epsilon.Dim include : union [epsilon.LowerShape] [ze.UpperShape] Rect (dimUpper.midy + dimUpper.stroke / 2) (dimLower.midy - dimLower.stroke / 2) (Middle - [HSwToV : 0.5 * strokeV]) (Middle + [HSwToV : 0.5 * strokeV]) diff --git a/packages/font-glyphs/src/letter/greek/phi.ptl b/packages/font-glyphs/src/letter/greek/phi.ptl index 2a2fb52997..e6a8e2eb27 100644 --- a/packages/font-glyphs/src/letter/greek/phi.ptl +++ b/packages/font-glyphs/src/letter/greek/phi.ptl @@ -59,52 +59,52 @@ glyph-block Letter-Greek-Phi : begin flat (df.middle - [HSwToV : 0.5 * df.mvs]) [mix y2 y3 0.66] curl (df.middle - [HSwToV : 0.5 * df.mvs]) (y2 + 0.2 * df.mvs) [heading Downward] - define [StraightBar df y1 y2 y3 y4] : glyph-proc - include : VBar.m df.middle y1 (y2 + HalfStroke) - include : VBar.m df.middle (y3 - HalfStroke) y4 + define [StraightBar df y1 y2 y3 y4 sw] : glyph-proc + include : VBar.m df.middle y1 (y2 + HalfStroke) sw + include : VBar.m df.middle (y3 - HalfStroke) y4 sw - define [CursiveBar df y1 y2 y3 y4] : glyph-proc + define [CursiveBar df y1 y2 y3 y4 sw] : glyph-proc local hd : FlatHookDepth df local xCrossLeft : mix 0 df.leftSB [mix 1 df.div 2] local xCrossRight : mix df.width df.rightSB [mix 1 df.div 2] - local xBarLeft : df.middle - [HSwToV HalfStroke] - local xBarRight : df.middle + [HSwToV HalfStroke] + local xBarLeft : df.middle - [HSwToV : 0.5 * sw] + local xBarRight : df.middle + [HSwToV : 0.5 * sw] include : dispiro - flat xCrossRight y4 [widths.lhs] + flat xCrossRight y4 [widths.lhs sw] curl [Math.min (xBarLeft + hd.x) (xCrossRight - TINY)] y4 archv flat xBarLeft [Math.max y3 (y4 - hd.y)] curl xBarLeft (y3 + O) include : dispiro - flat xCrossLeft y1 [widths.lhs] + flat xCrossLeft y1 [widths.lhs sw] curl [Math.max (xBarRight - hd.x) (xCrossLeft + TINY)] y1 archv flat xBarRight [Math.min y2 (y1 + hd.y)] curl xBarRight (y2 - O) - define [DiagonalTailCursiveBar df y1 y2 y3 y4] : glyph-proc + define [DiagonalTailCursiveBar df y1 y2 y3 y4 sw] : glyph-proc local hd : FlatHookDepth df local xCrossRight : mix df.width df.rightSB [mix 1 df.div 2] - local xBarLeft : df.middle - [HSwToV HalfStroke] + local xBarLeft : df.middle - [HSwToV : 0.5 * sw] include : dispiro - flat xCrossRight y4 [widths.lhs] + flat xCrossRight y4 [widths.lhs sw] curl [Math.min (xBarLeft + hd.x) (xCrossRight - TINY)] y4 archv flat xBarLeft [Math.max y3 (y4 - hd.y)] curl xBarLeft (y3 + O) include : dispiro - flat df.middle (y2 - O) [widths.center.heading Stroke Downward] - DiagTail.L df.middle y1 [DiagTail.StdDepth df Stroke] Stroke + flat df.middle (y2 - O) [widths.center.heading sw Downward] + DiagTail.L df.middle y1 [DiagTail.StdDepth df sw] sw - define [MtSerif df y] : tagged 'serifMT' : HSerif.lt df.middle y Jut - define [MbSerif df y] : tagged 'serifMB' : HSerif.mb df.middle y Jut + define [MtSerif df y sw] : tagged 'serifMT' : HSerif.lt df.middle y Jut sw + define [MbSerif df y sw] : tagged 'serifMB' : HSerif.mb df.middle y Jut sw define [GrekCapitalPhiImpl fFlatTB df] : glyph-proc local y2 : mix [if SLAB Stroke 0] [if SLAB (CAP - Stroke) CAP] 0.125 @@ -114,7 +114,7 @@ glyph-block Letter-Greek-Phi : begin if SLAB : begin include : tagged 'serifMT' : HSerif.mt df.middle CAP MidJutSide - include : tagged 'serifMB' : HSerif.mb df.middle 0 MidJutSide + include : tagged 'serifMB' : HSerif.mb df.middle 0 MidJutSide create-glyph 'grek/Phi' 0x3A6 : glyph-proc local df : include : DivFrame para.diversityM 3 @@ -130,8 +130,10 @@ glyph-block Letter-Greek-Phi : begin local df : include : DivFrame para.diversityM 3 include : df.markSet.capital - local top : CAP + LongJut - [if SLAB 0 HalfStroke] - local bot : 0 - LongJut + [if SLAB 0 HalfStroke] + local vJut : Math.max (LongJut - 0.5 * Stroke) : if SLAB (1.25 * Stroke - O) 0 + + local top : CAP + vJut + local bot : 0 - vJut include : ExtendAboveBaseAnchors top include : ExtendBelowBaseAnchors bot @@ -174,13 +176,13 @@ glyph-block Letter-Greek-Phi : begin include [refer-glyph 'grek/varphi'] AS_BASE ALSO_METRICS if SLAB : begin - include : tagged 'serifMT' : HSerif.mt df.middle Ascender Jut + include : tagged 'serifMT' : HSerif.mt df.middle Ascender Jut include : tagged 'serifMB' : HSerif.mb df.middle Descender Jut define CyrlLowerEfConfig : SuffixCfg.weave object # bowl - "" VarPhiRing - splitBowl CyrlEfSplitRing + "" { VarPhiRing Stroke } + splitBowl { CyrlEfSplitRing [DivFrame para.diversityM 3].mvs } object # bar serifless { StraightBar nothing nothing } topSerifed { StraightBar MtSerif nothing } @@ -188,21 +190,21 @@ glyph-block Letter-Greek-Phi : begin cursive { CursiveBar nothing nothing } diagonalTailedCursive { DiagonalTailCursiveBar nothing nothing } - foreach { suffix { Bowl { Bar sMT sMB } } } [Object.entries CyrlLowerEfConfig] : do + foreach { suffix { { Bowl barSw } { Bar sMT sMB } } } [Object.entries CyrlLowerEfConfig] : do create-glyph "cyrl/ef.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.bp include : Bowl 1 df 0 XH - include : Bar df Descender 0 XH Ascender - if sMT : include : sMT df Ascender - if sMB : include : sMB df Descender + include : Bar df Descender 0 XH Ascender barSw + if sMT : include : sMT df Ascender barSw + if sMB : include : sMB df Descender barSw create-glyph "cyrl/ef.BGR.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.bp include : VarPhiRing 0 df 0 XH - include : Bar df Descender 0 XH Ascender - if sMT : include : sMT df Ascender - if sMB : include : sMB df Descender + include : Bar df Descender 0 XH Ascender barSw + if sMT : include : sMT df Ascender barSw + if sMB : include : sMB df Descender barSw select-variant 'cyrl/ef' 0x444 select-variant 'cyrl/ef.BGR' diff --git a/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl b/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl new file mode 100644 index 0000000000..10b4331c8c --- /dev/null +++ b/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl @@ -0,0 +1,42 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback SuffixCfg] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" + +glyph-module + +glyph-block Letter-Latin-Archaic-M : begin + glyph-block-import CommonShapes + glyph-block-import Letter-Shared-Shapes : SerifFrame + + define [ExtLineJct ke ks sw x1 y1 kl1 kr1 x2 y2 kl2 kr2] : dispiro + flat [mix x1 x2 (-ke)] [mix y1 y2 (-ke)] [widths (sw * kl1) (sw * kr1)] + curl [mix x1 x2 0] [mix y1 y2 0] [widths (sw * kl1) (sw * kr1)] + flat [mix x1 x2 ks] [mix y1 y2 ks] [widths.center sw] + curl [mix x1 x2 (1-ks)] [mix y1 y2 (1-ks)] [widths.center sw] + flat [mix x1 x2 1] [mix y1 y2 1] [widths (sw * kl2) (sw * kr2)] + curl [mix x1 x2 (1+ke)] [mix y1 y2 (1+ke)] [widths (sw * kl2) (sw * kr2)] + + define [ArchaicMShape df top bottom] : glyph-proc + local sw df.mvs + local cl : df.leftSB + 0.5 * HVContrast * sw + local cr : df.rightSB - 0.5 * HVContrast * sw + local kt 0.2 + local ko 0.5 + + include : intersection [Rect top bottom df.leftSB df.rightSB] : union + ExtLineJct 4 0.45 sw [mix cl cr 0.0] bottom ko ko [mix cl cr 0.2] top ko kt + ExtLineJct 4 0.45 sw [mix cl cr 0.2] top ko kt [mix cl cr 0.4] bottom kt ko + ExtLineJct 4 0.45 sw [mix cl cr 0.4] bottom kt ko [mix cl cr 0.6] top ko kt + ExtLineJct 4 0.45 sw [mix cl cr 0.6] top ko kt [mix cl cr 0.8] bottom kt ko + ExtLineJct 4 0.45 sw [mix cl cr 0.8] bottom kt ko [mix cl cr 1.0] top ko ko + + if SLAB : begin + local sf : SerifFrame.fromDf df top bottom (fForceSymmetric -- true) + include : difference sf.lb.full [MaskRight : mix cl cr 0.3] + include : difference sf.rt.full [MaskLeft : mix cl cr 0.7] + + create-glyph "ArchaicM" 0xA7FF : glyph-proc + local df : include : DivFrame para.diversityM 4.5 + include : df.markSet.capital + include : ArchaicMShape df CAP 0 diff --git a/packages/font-glyphs/src/letter/latin-ext/f-ligatures.ptl b/packages/font-glyphs/src/letter/latin-ext/f-ligatures.ptl deleted file mode 100644 index 29a5d962bb..0000000000 --- a/packages/font-glyphs/src/letter/latin-ext/f-ligatures.ptl +++ /dev/null @@ -1,59 +0,0 @@ -$$include '../../meta/macros.ptl' - -import [mix linreg clamp fallback] from "@iosevka/util" - - -glyph-module - -glyph-block Letter-Latin-F-ligatures : begin - glyph-block-import CommonShapes - glyph-block-import Common-Derivatives - glyph-block-import Letter-Latin-Long-S - - define fbar : XH * DesignParameters.fBarPosToXH + Stroke * DesignParameters.fbarStrokeAdj - define shift (-(Width * 0.055 + SB * 0.5)) - define barr RightSB - define hbarleft (SB + shift + Stroke * [if para.slopeAngle 0.5 0.25]) - - create-glyph 'f_i.upright' : glyph-proc - include : MarkSet.b - include : new-glyph : glyph-proc - include : refer-glyph "longs.bentHookSerifless" - include : Translate shift 0 - include : VBar.r barr 0 fbar - include : HBar.t hbarleft barr fbar - if SLAB : include : tagged 'serifRB' : HSerif.mb (barr - [HSwToV HalfStroke]) 0 Jut - - create-glyph 'f_i.italic' : glyph-proc - include : MarkSet.b - include : new-glyph : glyph-proc - include : refer-glyph "longs.flatHookTailed" - include : Translate shift 0 - include : VBar.r barr 0 fbar - include : HBar.t hbarleft barr fbar - if SLAB : include : tagged 'serifRB' : HSerif.rb barr 0 SideJut - - create-glyph 'f_l.upright' : glyph-proc - local m : Middle - JBalance - [HSwToV HalfStroke] + shift - include : dispiro - widths.rhs - flat m 0 [heading Upward] - curl m (Ascender - ArchDepthA) - hookend Ascender - g4 (barr + OXHook) (Ascender - Hook) - include : VBar.r barr 0 (Ascender - Hook) - include : dispiro - widths.rhs - flat ([Math.min (m - Stroke * 0.3) hbarleft] - TanSlope * HalfStroke) fbar - curl ([mix SB barr 0.6] - TanSlope * HalfStroke) fbar - if SLAB : begin - include : tagged 'serifLB' : HSerif.mb (m + [HSwToV HalfStroke] + RBalance * 0.35) 0 (Jut + RBalance * 0.65) - include : tagged 'serifRB' : HSerif.mb (barr - [HSwToV HalfStroke]) 0 Jut - - create-glyph 'f_l.italic' : glyph-proc - include : new-glyph : glyph-proc - include [refer-glyph 'longs.flatHookTailed'] AS_BASE - include : Translate shift 0 - include : VBar.r barr 0 Ascender - include : HBar.t hbarleft [mix SB barr 0.65] fbar - if SLAB : include : tagged 'serifRB' : HSerif.rb barr 0 SideJut diff --git a/packages/font-glyphs/src/letter/latin.ptl b/packages/font-glyphs/src/letter/latin.ptl index 910d8a84fe..8ddb5f85c7 100644 --- a/packages/font-glyphs/src/letter/latin.ptl +++ b/packages/font-glyphs/src/letter/latin.ptl @@ -48,6 +48,7 @@ export : define [apply] : begin run-glyph-module "./latin/orthography.mjs" + run-glyph-module "./latin-ext/archaic-m.mjs" run-glyph-module "./latin-ext/bidental-percussive.mjs" run-glyph-module "./latin-ext/egyptological.mjs" run-glyph-module "./latin-ext/eszet.mjs" @@ -55,7 +56,6 @@ export : define [apply] : begin run-glyph-module "./latin-ext/ezh.mjs" run-glyph-module "./latin-ext/flattened-open-a.mjs" run-glyph-module "./latin-ext/gha.mjs" - # run-glyph-module "./latin-ext/f-ligatures.mjs" run-glyph-module "./latin-ext/glottal-stop.mjs" run-glyph-module "./latin-ext/hwair.mjs" run-glyph-module "./latin-ext/insular-g.mjs" diff --git a/packages/font-glyphs/src/letter/latin/lower-il.ptl b/packages/font-glyphs/src/letter/latin/lower-il.ptl index b2b2ac73f5..b070d0d4dd 100644 --- a/packages/font-glyphs/src/letter/latin/lower-il.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-il.ptl @@ -302,7 +302,7 @@ glyph-block Letter-Latin-Lower-I : begin CreateAccentedComposition 'i/compLigRight' null 'dotlessi/compLigRight' 'tittleAbove' link-reduced-variant 'i/sansSerif' 'i' MathSansSerif - CreateAccentedComposition 'i.TRK' null 'dotlessi' 'dotAbove' + CreateAccentedComposition 'i.TRK' null 'dotlessi' 'i.TRK/tittleAbove' alias 'cyrl/iUkrainian' 0x456 'i' CreateAccentedComposition 'cyrl/yi' 0x457 'dotlessi' 'dieresisAbove' @@ -344,16 +344,16 @@ glyph-block Letter-Latin-Lower-I : begin select-variant 'lPalatalHook/decompress' (shapeFrom -- 'lPalatalHook') (follow -- 'l/reduced/decompress') select-variant 'lHighBar' 0xA749 (follow -- 'l') - derive-composites 'lTildeOver' 0x26B 'l/reduced/decompress' 'tildeOver' + derive-composites 'lTildeOver' 0x26B 'l/reduced/decompress' 'tildeOver' derive-composites 'lInvLazySOver' 0xAB37 'l/reduced/decompress' 'invLazySOver' derive-composites 'lDblTildeOver' 0xAB38 'l/reduced/decompress' 'dblTildeOver' - derive-composites 'lRingOver' 0xAB39 'l/reduced/decompress' 'ringOver' + derive-composites 'lRingOver' 0xAB39 'l/reduced/decompress' 'ringOver' create-glyph 'lBeltOverlay' : glyph-proc set-mark-anchor 'overlay' 0 0 include : BeltOverlay.at 0 0 - derive-composites 'lBelt' 0x26C 'l/reduced/decompress' 'lBeltOverlay' - derive-composites 'lBeltRTail' 0xA78E 'lRTail/decompress' 'lBeltOverlay' + derive-composites 'lBelt' 0x26C 'l/reduced/decompress' 'lBeltOverlay' + derive-composites 'lBeltRTail' 0xA78E 'lRTail/decompress' 'lBeltOverlay' derive-composites 'lBeltPalatalHook' 0x1DF13 'lPalatalHook/decompress' 'lBeltOverlay' derive-composites 'lDot' 0x140 'lDotBase' 'LDotDot' diff --git a/packages/font-glyphs/src/letter/latin/upper-n.ptl b/packages/font-glyphs/src/letter/latin/upper-n.ptl index 4c3032e352..5c392c541a 100644 --- a/packages/font-glyphs/src/letter/latin/upper-n.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-n.ptl @@ -14,6 +14,8 @@ glyph-block Letter-Latin-Upper-N : begin define BODY-SYMMETRIC 1 define BODY-ASYMMETRIC 2 + define BODY-COMPRESSED 3 + define BODY-CYRL-I : if SLAB BODY-COMPRESSED BODY-SYMMETRIC define SLAB-NONE 0 define SLAB-AUTO 1 @@ -63,9 +65,13 @@ glyph-block Letter-Latin-Upper-N : begin local yEnd : match bodyType [Just BODY-SYMMETRIC] 0 [Just BODY-ASYMMETRIC] : top * 0.375 + [Just BODY-COMPRESSED] : if SLAB (swDiag * 1.5) 0 + local yStart : match bodyType + [Just BODY-COMPRESSED] : top - yEnd + __ top local swEnd : match bodyType [Just BODY-SYMMETRIC] swDiag - [Just BODY-ASYMMETRIC] stroke + __ stroke include : union match bodyType @@ -73,15 +79,15 @@ glyph-block Letter-Latin-Upper-N : begin flat left top [widths.lhs.heading stroke Downward] curl left (top * 0.6) [heading Downward] straight.down.end left 0 [widths.lhs.heading swEnd Downward] - [Just BODY-ASYMMETRIC] : VBar.l left 0 top swEnd + __ : VBar.l left 0 top swEnd match bodyType [Just BODY-SYMMETRIC] : dispiro flat right 0 [widths.lhs.heading stroke Upward] curl right (top * 0.4) [heading Upward] straight.up.end right top [widths.lhs.heading swEnd Upward] - [Just BODY-ASYMMETRIC] : VBar.r right 0 top swEnd + __ : VBar.r right 0 top swEnd intersection [Rect top 0 left right] - ExtLineCenter 2 swDiag (left + swDiag) yEnd (right - swDiag) top + ExtLineCenter 2 swDiag (left + swDiag) yEnd (right - swDiag) yStart local sf : SerifFrame top 0 left right (swRef -- stroke) include : match slabType @@ -89,7 +95,9 @@ glyph-block Letter-Latin-Upper-N : begin [Just SLAB-AUTO] : NeedSlab SLAB : composite-proc sf.lt.full sf.rt.outer sf.rb.full [Just SLAB-MOTION] : composite-proc sf.rt.outer [Just SLAB-NONE] : no-shape - [Just SLAB-CYRL-I] : NeedSlab SLAB : composite-proc sf.lt.full sf.lb.outer sf.rt.outer sf.rb.full + [Just SLAB-CYRL-I] : NeedSlab SLAB : match bodyType + [Just BODY-COMPRESSED] : composite-proc sf.lt.full sf.lb.full sf.rt.full sf.rb.full + [Just BODY-SYMMETRIC] : composite-proc sf.lt.full sf.lb.outer sf.rt.outer sf.rb.full [Just SLAB-DIGAMMA] : NeedSlab SLAB : composite-proc sf.lt.full sf.rb.full define NConfig : object @@ -137,32 +145,45 @@ glyph-block Letter-Latin-Upper-N : begin alias 'grek/Nu' 0x39D 'N' alias-reduced-variant 'grek/Nu/sansSerif' 'grek/Nu' 'N/sansSerif' MathSansSerif select-variant 'NRev' (follow -- 'N') - select-variant 'smcpNRev' 0x1D0E (follow -- 'N') derive-composites 'NDescender' 0xA790 'N' [CyrDescender.rSideJut RightSB 0] - CreateAccentedComposition 'NAcute' 0x143 'N' 'acuteAbove' + CreateAccentedComposition 'NAcute' 0x143 'N' 'acuteAbove' CreateAccentedComposition 'NAcute.PLK' null 'N' 'kreskaAbove' - select-variant 'Eng' 0x14A (follow -- 'N') - select-variant 'smcpN' 0x274 (follow -- 'N') - select-variant 'NHookLeft' 0x19D (follow -- 'N') + select-variant 'Eng' 0x14A (follow -- 'N') + select-variant 'NHookLeft' 0x19D (follow -- 'N') + + select-variant 'smcpN' 0x274 (follow -- 'N') + select-variant 'smcpNRev' 0x1D0E (follow -- 'N') + select-variant 'currency/nairaSignBase' (follow -- 'N') create-glyph 'cyrl/I' 0x418 : glyph-proc include : MarkSet.capital - include : NRevShape BODY-SYMMETRIC SLAB-CYRL-I CAP SB RightSB (crDiag -- crD) + include : NRevShape BODY-CYRL-I SLAB-CYRL-I CAP SB RightSB (crDiag -- 4) + + CreateAccentedComposition 'cyrl/IBreve' 0x419 'cyrl/I' 'breveAbove' + CreateAccentedComposition 'cyrl/IGrave' 0x40D 'cyrl/I' 'graveAbove' + + create-glyph 'cyrl/I.BGR' : glyph-proc + include : MarkSet.capital + include : NRevShape BODY-SYMMETRIC SLAB-CYRL-I CAP SB RightSB (crDiag -- 4) + + CreateAccentedComposition 'cyrl/IBreve.BGR' null 'cyrl/I.BGR' 'breveAbove' + CreateAccentedComposition 'cyrl/IGrave.BGR' null 'cyrl/I.BGR' 'graveAbove' + create-glyph 'cyrl/i.upright' : glyph-proc include : MarkSet.e - include : NRevShape BODY-SYMMETRIC SLAB-CYRL-I XH SB RightSB (crDiag -- crD) + include : NRevShape BODY-CYRL-I SLAB-CYRL-I XH SB RightSB (crDiag -- 4) create-glyph 'grek/DigammaPamphylian' 0x376 : glyph-proc include : MarkSet.capital - include : NRevShape BODY-SYMMETRIC SLAB-DIGAMMA CAP SB RightSB (crDiag -- crD) + include : NRevShape BODY-SYMMETRIC SLAB-DIGAMMA CAP SB RightSB (crDiag -- 4) alias 'grek/digammaPamphylian' 0x377 'smcpNRev.standardSerifless' derive-composites 'cyrl/IShortTail' 0x48A 'cyrl/I' [refer-glyph 'breveAbove'] [CyrTailDescender.rSideJut RightSB 0] - derive-composites 'cyrl/iShortTail.upright' null 'cyrl/i.upright' [refer-glyph 'breveAbove'] [CyrTailDescender.rSideJut RightSB 0] + derive-composites 'cyrl/iShortTail.upright' null 'cyrl/i.upright' [refer-glyph 'breveAbove'] [CyrTailDescender.rSideJut RightSB 0] glyph-block-import Letter-Blackboard : BBS BBD create-glyph 'mathbb/N' 0x2115 : glyph-proc diff --git a/packages/font-glyphs/src/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl index 30fb093728..38b1f6171c 100644 --- a/packages/font-glyphs/src/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -732,12 +732,13 @@ glyph-block Letter-Shared-Shapes : begin local-parameter : fForceSymmetric -- false return : new CSerifFrame top bot left right swRef swSerif div hSplit fForceSymmetric - define SerifFrame.fromDf : function [] : with-params [df top bot [swSerif df.mvs]] : begin + define SerifFrame.fromDf : function [] : with-params [df top bot [swSerif df.mvs] [fForceSymmetric false]] : begin return : SerifFrame top bot df.leftSB df.rightSB swRef -- df.mvs div -- df.div hSplit -- [Math.max 2 df.hPack] swSerif -- swSerif + fForceSymmetric -- fForceSymmetric glyph-block-export WithSerifOverflowMask diff --git a/packages/font-glyphs/src/marks/above.ptl b/packages/font-glyphs/src/marks/above.ptl index 7cdf80aeab..254b50ddd8 100644 --- a/packages/font-glyphs/src/marks/above.ptl +++ b/packages/font-glyphs/src/marks/above.ptl @@ -109,8 +109,9 @@ glyph-block Mark-Above : begin select-variant 'tripleDotAbove' 0x1AB4 (follow -- 'diacriticDot') select-variant 'elipsisAbove' 0x20DB (follow -- 'diacriticDot') select-variant 'fourDotsAbove' 0x20DC (follow -- 'diacriticDot') - select-variant 'tittleAbove' (shapeFrom -- "dotAbove") (follow -- 'tittle') - select-variant 'kropkaAbove' (shapeFrom -- "dotAbove") (follow -- 'tittle') + select-variant 'tittleAbove' (shapeFrom -- "dotAbove") (follow -- 'tittle') + select-variant 'i.TRK/tittleAbove' (shapeFrom -- "dotAbove") (follow -- 'diacriticDot') + select-variant 'kropkaAbove' (shapeFrom -- "dotAbove") (follow -- 'tittle') glyph-block-export RingDims RingShape define [RingDims _radiusOut] : begin @@ -817,8 +818,8 @@ glyph-block Mark-Above : begin include : StdAnchors.narrow local shift : 0.05 * markExtend + [HSwToV : markStress - markFine] include : dispiro - flat (markMiddle + shift) (aboveMarkTop + 0.4 * markStress) [widths.center : markStress * 2] - curl (markMiddle - 0.5 * shift) aboveMarkBot [widths.center : markFine * 2] + flat (markMiddle + shift) (aboveMarkTop + 0.4 * markStress) [widths.center.heading (markStress * 2) Downward] + curl (markMiddle - 0.5 * shift) aboveMarkBot [widths.center.heading (markFine * 2) Downward] create-glyph 'tonosGrekUpperTonos' : glyph-proc set-width 0 diff --git a/packages/font-glyphs/src/marks/below.ptl b/packages/font-glyphs/src/marks/below.ptl index 42e0bbe2f5..070a113b26 100644 --- a/packages/font-glyphs/src/marks/below.ptl +++ b/packages/font-glyphs/src/marks/below.ptl @@ -121,7 +121,7 @@ glyph-block Mark-Below : begin include : StdAnchors.mediumWide local boxhs : Math.min (markFine * 2) ((belowMarkTop - belowMarkBot) / 3) - local boxvs : Math.min (markFine * 2) (markExtend * 2 / 3) + local boxvs : Math.min (markFine * 2) ((markExtend * 2) / (HVContrast * 3)) include : VBar.l (markMiddle - markExtend) belowMarkBot belowMarkTop boxvs include : VBar.r (markMiddle + markExtend) belowMarkBot belowMarkTop boxvs @@ -132,10 +132,10 @@ glyph-block Mark-Below : begin set-width 0 include : StdAnchors.mediumWide - local boxsw : Math.min (markFine * 2) ((belowMarkTop - belowMarkBot) / 3) + local eqsw : Math.min (markFine * 2) ((belowMarkTop - belowMarkBot) / 3) - include : HBar.b (markMiddle - markExtend) (markMiddle + markExtend) belowMarkBot boxsw - include : HBar.t (markMiddle - markExtend) (markMiddle + markExtend) belowMarkTop boxsw + include : HBar.b (markMiddle - markExtend) (markMiddle + markExtend) belowMarkBot eqsw + include : HBar.t (markMiddle - markExtend) (markMiddle + markExtend) belowMarkTop eqsw create-glyph 'shelfBelow' : glyph-proc set-width 0 diff --git a/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl b/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl index b889b35bed..0459d814f5 100644 --- a/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl @@ -7,170 +7,170 @@ glyph-module glyph-block Symbol-Pictograph-IEC-Power-And-Playback : for-width-kinds WideWidth1 : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes - define leftFW : 0 + SB * MosaicWidthScalar - define rightFW : MosaicWidth - SB * MosaicWidthScalar - define squareRadiusFW : (rightFW - leftFW) / (2 * [Math.pow MosaicWidthScalar 0.3]) - define topFW : SymbolMid + squareRadiusFW - define bottomFW : SymbolMid - squareRadiusFW - - define df : DivFrame MosaicWidthScalar - define gap : Math.max (squareRadiusFW / 8 * MosaicWidthScalar) GeometryStroke + define Geom : GeometricDim MosaicUnitWidth MosaicWidth + define Size : GeometricSizes Geom + define gap : Math.max (Geom.Size / 8 * MosaicWidthScalar) GeometryStroke create-glyph [MangleName 'powerOff'] [MangleUnicode 0x2B58] : glyph-proc - set-width df.width - include : RingStrokeAt df.middle SymbolMid squareRadiusFW GeometryStroke + set-width Geom.Width + include : RingStrokeAt Geom.MidX Geom.MidY Geom.Size GeometryStroke create-glyph [MangleName 'heavyCircledSaltire'] [MangleUnicode 0x2B59] : glyph-proc - set-width df.width - include : RingStrokeAt df.middle SymbolMid squareRadiusFW GeometryStroke + set-width Geom.Width + include : RingStrokeAt Geom.MidX Geom.MidY Geom.Size GeometryStroke include : intersection - RingAt df.middle SymbolMid squareRadiusFW + RingAt Geom.MidX Geom.MidY Geom.Size union - dispiro [widths.center GeometryStroke] [flat leftFW topFW] [curl rightFW bottomFW] - dispiro [widths.center GeometryStroke] [flat leftFW bottomFW] [curl rightFW topFW] + dispiro [widths.center GeometryStroke] + flat Geom.Left Geom.Top + curl Geom.Right Geom.Bot + dispiro [widths.center GeometryStroke] + flat Geom.Left Geom.Bot + curl Geom.Right Geom.Top create-glyph [MangleName 'powerOn'] [MangleUnicode 0x23FD] : glyph-proc - set-width df.width + set-width Geom.Width include : Rect - SymbolMid + squareRadiusFW - SymbolMid - squareRadiusFW - df.middle - [HSwToV : 0.5 * GeometryStroke] - df.middle + [HSwToV : 0.5 * GeometryStroke] + Geom.MidY + Geom.Size + Geom.MidY - Geom.Size + Geom.MidX - [HSwToV : 0.5 * GeometryStroke] + Geom.MidX + [HSwToV : 0.5 * GeometryStroke] create-glyph [MangleName 'powerOnOff'] [MangleUnicode 0x23FC] : glyph-proc - set-width df.width + set-width Geom.Width include : refer-glyph [MangleName 'powerOff'] include : Rect - SymbolMid + squareRadiusFW - GeometryStroke - gap - SymbolMid - squareRadiusFW + GeometryStroke + gap - df.middle - [HSwToV : 0.5 * GeometryStroke] - df.middle + [HSwToV : 0.5 * GeometryStroke] + Geom.MidY + Geom.Size - GeometryStroke - gap + Geom.MidY - Geom.Size + GeometryStroke + gap + Geom.MidX - [HSwToV : 0.5 * GeometryStroke] + Geom.MidX + [HSwToV : 0.5 * GeometryStroke] create-glyph [MangleName 'powerStandby'] [MangleUnicode 0x23FB] : glyph-proc - set-width df.width + set-width Geom.Width include : union difference refer-glyph [MangleName 'powerOff'] spiro-outline - corner df.middle SymbolMid - corner (df.middle - gap * 4 - [HSwToV GeometryStroke]) (SymbolMid + squareRadiusFW * 2) - corner (df.middle + gap * 4 + [HSwToV GeometryStroke]) (SymbolMid + squareRadiusFW * 2) + corner Geom.MidX Geom.MidY + corner (Geom.MidX - gap * 4 - [HSwToV GeometryStroke]) (Geom.MidY + Geom.Size * 2) + corner (Geom.MidX + gap * 4 + [HSwToV GeometryStroke]) (Geom.MidY + Geom.Size * 2) Rect - SymbolMid + 1.125 * squareRadiusFW - SymbolMid - 0.0 * squareRadiusFW - df.middle - [HSwToV : 0.5 * GeometryStroke] - df.middle + [HSwToV : 0.5 * GeometryStroke] + Geom.MidY + 1.125 * Geom.Size + Geom.MidY - 0.0 * Geom.Size + Geom.MidX - [HSwToV : 0.5 * GeometryStroke] + Geom.MidX + [HSwToV : 0.5 * GeometryStroke] create-glyph [MangleName 'powerSleep'] [MangleUnicode 0x23FE] : glyph-proc - set-width df.width + set-width Geom.Width include : difference - Circle.Outline.At df.middle SymbolMid squareRadiusFW + Circle.Outline.At Geom.MidX Geom.MidY Geom.Size Circle.Outline.At - df.middle + squareRadiusFW * 0.5 - SymbolMid + squareRadiusFW * 0.35 - squareRadiusFW * 1.1 - include : Translate (squareRadiusFW * 0.15) 0 + Geom.MidX + Geom.Size * 0.5 + Geom.MidY + Geom.Size * 0.35 + Geom.Size * 1.1 + include : Translate (Geom.Size * 0.15) 0 create-glyph [MangleName 'playback/record'] [MangleUnicode 0x23FA] : glyph-proc - set-width df.width - include : RingAt df.middle SymbolMid squareRadiusFW GeometryStroke + set-width Geom.Width + include : RingAt Geom.MidX Geom.MidY Geom.Size GeometryStroke create-glyph [MangleName 'playback/stop'] [MangleUnicode 0x23F9] : glyph-proc - set-width df.width - include : Rect (SymbolMid + squareRadiusFW) (SymbolMid - squareRadiusFW) (df.middle - squareRadiusFW) (df.middle + squareRadiusFW) + set-width Geom.Width + include : Rect (Geom.MidY + Geom.Size) (Geom.MidY - Geom.Size) (Geom.MidX - Geom.Size) (Geom.MidX + Geom.Size) create-glyph [MangleName 'playback/pause'] [MangleUnicode 0x23F8] : glyph-proc - set-width df.width - include : Rect (SymbolMid + squareRadiusFW) (SymbolMid - squareRadiusFW) (df.middle - squareRadiusFW) (df.middle - squareRadiusFW / 3) - include : Rect (SymbolMid + squareRadiusFW) (SymbolMid - squareRadiusFW) (df.middle + squareRadiusFW / 3) (df.middle + squareRadiusFW) + set-width Geom.Width + include : Rect (Geom.MidY + Geom.Size) (Geom.MidY - Geom.Size) (Geom.MidX - Geom.Size) (Geom.MidX - Geom.Size / 3) + include : Rect (Geom.MidY + Geom.Size) (Geom.MidY - Geom.Size) (Geom.MidX + Geom.Size / 3) (Geom.MidX + Geom.Size) - local trigRad : squareRadiusFW - O + local trigRad : Geom.Size - O create-glyph [MangleName 'playback/down'] [MangleUnicode 0x23F7] : glyph-proc - set-width df.width + set-width Geom.Width include : spiro-outline - corner (df.middle - trigRad) (SymbolMid + trigRad / 2) - corner (df.middle + trigRad) (SymbolMid + trigRad / 2) - corner (df.middle) (SymbolMid - trigRad / 2) + corner (Geom.MidX - trigRad) (Geom.MidY + trigRad / 2) + corner (Geom.MidX + trigRad) (Geom.MidY + trigRad / 2) + corner (Geom.MidX) (Geom.MidY - trigRad / 2) create-glyph [MangleName 'playback/up'] [MangleUnicode 0x23F6] : glyph-proc - set-width df.width + set-width Geom.Width include : spiro-outline - corner (df.middle - trigRad) (SymbolMid - trigRad / 2) - corner (df.middle + trigRad) (SymbolMid - trigRad / 2) - corner (df.middle) (SymbolMid + trigRad / 2) + corner (Geom.MidX - trigRad) (Geom.MidY - trigRad / 2) + corner (Geom.MidX + trigRad) (Geom.MidY - trigRad / 2) + corner (Geom.MidX) (Geom.MidY + trigRad / 2) create-glyph [MangleName 'playback/right'] [MangleUnicode 0x23F5] : glyph-proc - set-width df.width + set-width Geom.Width include : spiro-outline - corner (df.middle - trigRad / 2) (SymbolMid - trigRad) - corner (df.middle - trigRad / 2) (SymbolMid + trigRad) - corner (df.middle + trigRad / 2) (SymbolMid) + corner (Geom.MidX - trigRad / 2) (Geom.MidY - trigRad) + corner (Geom.MidX - trigRad / 2) (Geom.MidY + trigRad) + corner (Geom.MidX + trigRad / 2) (Geom.MidY) create-glyph [MangleName 'playback/left'] [MangleUnicode 0x23F4] : glyph-proc - set-width df.width + set-width Geom.Width include : spiro-outline - corner (df.middle + trigRad / 2) (SymbolMid - trigRad) - corner (df.middle + trigRad / 2) (SymbolMid + trigRad) - corner (df.middle - trigRad / 2) (SymbolMid) + corner (Geom.MidX + trigRad / 2) (Geom.MidY - trigRad) + corner (Geom.MidX + trigRad / 2) (Geom.MidY + trigRad) + corner (Geom.MidX - trigRad / 2) (Geom.MidY) create-glyph [MangleName 'playback/eject'] [MangleUnicode 0x23CF] : glyph-proc - set-width df.width - include : Rect (SymbolMid - squareRadiusFW / 3) (SymbolMid - squareRadiusFW) (df.middle - squareRadiusFW) (df.middle + squareRadiusFW) + set-width Geom.Width + include : Rect (Geom.MidY - Geom.Size / 3) (Geom.MidY - Geom.Size) (Geom.MidX - Geom.Size) (Geom.MidX + Geom.Size) include : spiro-outline - corner (df.middle - trigRad) (SymbolMid) - corner (df.middle + trigRad) (SymbolMid) - corner (df.middle) (SymbolMid + trigRad) + corner (Geom.MidX - trigRad) (Geom.MidY) + corner (Geom.MidX + trigRad) (Geom.MidY) + corner (Geom.MidX) (Geom.MidY + trigRad) create-glyph [MangleName 'playback/fastForward'] [MangleUnicode 0x23E9] : glyph-proc - set-width df.width + set-width Geom.Width include : spiro-outline - corner (df.middle - trigRad) (SymbolMid - trigRad) - corner (df.middle - trigRad) (SymbolMid + trigRad) - corner df.middle SymbolMid + corner (Geom.MidX - trigRad) (Geom.MidY - trigRad) + corner (Geom.MidX - trigRad) (Geom.MidY + trigRad) + corner Geom.MidX Geom.MidY include : spiro-outline - corner df.middle (SymbolMid - trigRad) - corner df.middle (SymbolMid + trigRad) - corner (df.middle + trigRad) SymbolMid + corner Geom.MidX (Geom.MidY - trigRad) + corner Geom.MidX (Geom.MidY + trigRad) + corner (Geom.MidX + trigRad) Geom.MidY create-glyph [MangleName 'playback/fastForwardToEnd'] [MangleUnicode 0x23ED] : glyph-proc - set-width df.width - local sw : Math.max [AdviceStroke (6 * [Math.sqrt df.div]) df.div] (trigRad / 6) + set-width Geom.Width + local sw : Math.max [AdviceStroke (6 * [Math.sqrt Geom.Scalar]) Geom.Scalar] (trigRad / 6) local swh : HSwToV sw include : spiro-outline - corner (df.middle - trigRad) (SymbolMid - trigRad) - corner (df.middle - trigRad) (SymbolMid + trigRad) - corner (df.middle - swh / 2) SymbolMid + corner (Geom.MidX - trigRad) (Geom.MidY - trigRad) + corner (Geom.MidX - trigRad) (Geom.MidY + trigRad) + corner (Geom.MidX - swh / 2) Geom.MidY include : spiro-outline - corner (df.middle - swh / 2) (SymbolMid - trigRad) - corner (df.middle - swh / 2) (SymbolMid + trigRad) - corner (df.middle + trigRad - swh) SymbolMid - include : VBar.r (df.middle + trigRad) (SymbolMid - trigRad) (SymbolMid + trigRad) sw + corner (Geom.MidX - swh / 2) (Geom.MidY - trigRad) + corner (Geom.MidX - swh / 2) (Geom.MidY + trigRad) + corner (Geom.MidX + trigRad - swh) Geom.MidY + include : VBar.r (Geom.MidX + trigRad) (Geom.MidY - trigRad) (Geom.MidY + trigRad) sw create-glyph [MangleName 'playback/playOrStop'] [MangleUnicode 0x23EF] : glyph-proc - set-width df.width - local sw : Math.max [AdviceStroke (6 * [Math.sqrt df.div]) df.div] (trigRad / 6) + set-width Geom.Width + local sw : Math.max [AdviceStroke (6 * [Math.sqrt Geom.Scalar]) Geom.Scalar] (trigRad / 6) local swh : HSwToV sw - local gap : Math.max [AdviceStroke (4 * [Math.sqrt df.div]) df.div] (trigRad / 4) + local gap : Math.max [AdviceStroke (4 * [Math.sqrt Geom.Scalar]) Geom.Scalar] (trigRad / 4) local width : trigRad + swh * 2 + gap include : spiro-outline - corner (df.middle - width / 2) (SymbolMid - trigRad) - corner (df.middle - width / 2) (SymbolMid + trigRad) - corner (df.middle - width / 2 + trigRad) SymbolMid - include : VBar.r (df.middle + width / 2 - swh - gap) (SymbolMid - trigRad) (SymbolMid + trigRad) sw - include : VBar.r (df.middle + width / 2) (SymbolMid - trigRad) (SymbolMid + trigRad) sw + corner (Geom.MidX - width / 2) (Geom.MidY - trigRad) + corner (Geom.MidX - width / 2) (Geom.MidY + trigRad) + corner (Geom.MidX - width / 2 + trigRad) Geom.MidY + include : VBar.r (Geom.MidX + width / 2 - swh - gap) (Geom.MidY - trigRad) (Geom.MidY + trigRad) sw + include : VBar.r (Geom.MidX + width / 2) (Geom.MidY - trigRad) (Geom.MidY + trigRad) sw create-glyph [MangleName 'playback/fastUpward'] [MangleUnicode 0x23EB] : glyph-proc - set-width df.width + set-width Geom.Width include : spiro-outline - corner (df.middle - trigRad) (SymbolMid - trigRad) - corner (df.middle + trigRad) (SymbolMid - trigRad) - corner (df.middle) SymbolMid + corner (Geom.MidX - trigRad) (Geom.MidY - trigRad) + corner (Geom.MidX + trigRad) (Geom.MidY - trigRad) + corner (Geom.MidX) Geom.MidY include : spiro-outline - corner (df.middle - trigRad) SymbolMid - corner (df.middle + trigRad) SymbolMid - corner (df.middle) (SymbolMid + trigRad) + corner (Geom.MidX - trigRad) Geom.MidY + corner (Geom.MidX + trigRad) Geom.MidY + corner (Geom.MidX) (Geom.MidY + trigRad) - turned [MangleName 'playback/fastBackward'] [MangleUnicode 0x23EA] [MangleName 'playback/fastForward'] df.middle SymbolMid - turned [MangleName 'playback/fastBackwardToEnd'] [MangleUnicode 0x23EE] [MangleName 'playback/fastForwardToEnd'] df.middle SymbolMid - turned [MangleName 'playback/fastDownward'] [MangleUnicode 0x23EC] [MangleName 'playback/fastUpward'] df.middle SymbolMid + turned [MangleName 'playback/fastBackward'] [MangleUnicode 0x23EA] [MangleName 'playback/fastForward'] Geom.MidX Geom.MidY + turned [MangleName 'playback/fastBackwardToEnd'] [MangleUnicode 0x23EE] [MangleName 'playback/fastForwardToEnd'] Geom.MidX Geom.MidY + turned [MangleName 'playback/fastDownward'] [MangleUnicode 0x23EC] [MangleName 'playback/fastUpward'] Geom.MidX Geom.MidY diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 4dfa3af3d1..455f4f7875 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-kits", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { "./derived-coordinates": "./src/derived-coordinates.mjs", @@ -8,8 +8,8 @@ "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "31.7.1", - "@iosevka/glyph": "31.7.1", - "@iosevka/util": "31.7.1" + "@iosevka/geometry": "31.8.0", + "@iosevka/glyph": "31.8.0", + "@iosevka/util": "31.8.0" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index 756ca6cacf..c830c3d7bf 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./lib/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "31.7.1", - "@iosevka/glyph": "31.7.1", + "@iosevka/font-glyphs": "31.8.0", + "@iosevka/glyph": "31.8.0", "toposort": "^2.0.2" } } diff --git a/packages/font-otl/src/gsub-locl.ptl b/packages/font-otl/src/gsub-locl.ptl index cd33f63851..0037ae0e67 100644 --- a/packages/font-otl/src/gsub-locl.ptl +++ b/packages/font-otl/src/gsub-locl.ptl @@ -21,13 +21,19 @@ export : define [buildLOCL gsub para glyphStore] : begin define latnMOL : gsub.copyLanguage 'latn_MOL ' 'latn_DFLT' define latnTRK : gsub.copyLanguage 'latn_TRK ' 'latn_DFLT' define latnAZE : gsub.copyLanguage 'latn_AZE ' 'latn_DFLT' + define latnCRT : gsub.copyLanguage 'latn_CRT ' 'latn_DFLT' define latnGAG : gsub.copyLanguage 'latn_GAG ' 'latn_DFLT' + define latnJCT : gsub.copyLanguage 'latn_JCT ' 'latn_DFLT' define latnKAZ : gsub.copyLanguage 'latn_KAZ ' 'latn_DFLT' + define latnKJJ : gsub.copyLanguage 'latn_KJJ ' 'latn_DFLT' + define latnKMZ : gsub.copyLanguage 'latn_KMZ ' 'latn_DFLT' define latnTAT : gsub.copyLanguage 'latn_TAT ' 'latn_DFLT' - define latnCRT : gsub.copyLanguage 'latn_CRT ' 'latn_DFLT' + define latnTLY : gsub.copyLanguage 'latn_TLY ' 'latn_DFLT' + define latnUDI : gsub.copyLanguage 'latn_UDI ' 'latn_DFLT' + define latnZZA : gsub.copyLanguage 'latn_ZZA ' 'latn_DFLT' define latnVIT : gsub.copyLanguage 'latn_VIT ' 'latn_DFLT' - define grekIPPH : gsub.copyLanguage 'grek_IPPH ' 'grek_DFLT' - define grekAPPH : gsub.copyLanguage 'grek_APPH ' 'grek_DFLT' + define grekIPPH : gsub.copyLanguage 'grek_IPPH' 'grek_DFLT' + define grekAPPH : gsub.copyLanguage 'grek_APPH' 'grek_DFLT' # SRB define loclSRB : gsub.createFeature 'locl' @@ -70,10 +76,16 @@ export : define [buildLOCL gsub para glyphStore] : begin define loclTRK : gsub.createFeature 'locl' latnTRK.addFeature loclTRK latnAZE.addFeature loclTRK + latnCRT.addFeature loclTRK latnGAG.addFeature loclTRK + latnJCT.addFeature loclTRK latnKAZ.addFeature loclTRK + latnKJJ.addFeature loclTRK + latnKMZ.addFeature loclTRK latnTAT.addFeature loclTRK - latnCRT.addFeature loclTRK + latnTLY.addFeature loclTRK + latnUDI.addFeature loclTRK + latnZZA.addFeature loclTRK loclTRK.addLookup : createGsubLookupFromGr gsub glyphStore LocalizedForm.TRK # VIT diff --git a/packages/font/package.json b/packages/font/package.json index dfe5e7f5ae..ebaa55c0cd 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "31.7.1", - "@iosevka/font-otl": "31.7.1", - "@iosevka/geometry": "31.7.1", - "@iosevka/geometry-cache": "31.7.1", - "@iosevka/glyph": "31.7.1", - "@iosevka/param": "31.7.1", - "@iosevka/util": "31.7.1", + "@iosevka/font-glyphs": "31.8.0", + "@iosevka/font-otl": "31.8.0", + "@iosevka/geometry": "31.8.0", + "@iosevka/geometry-cache": "31.8.0", + "@iosevka/glyph": "31.8.0", + "@iosevka/param": "31.8.0", + "@iosevka/util": "31.8.0", "harfbuzzjs": "^0.3.6", "ot-builder": "^1.7.4", "semver": "^7.6.3" diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index 253fd44d76..70366ab8eb 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "31.7.1", + "@iosevka/geometry": "31.8.0", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index 8d3524930d..9cb56a6de4 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -15,7 +15,7 @@ "./spiro-pen-expand": "./src/spiro-pen-expand.mjs" }, "dependencies": { - "@iosevka/util": "31.7.1", + "@iosevka/util": "31.8.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index d01fd98d89..6d65551f97 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "31.7.1" + "@iosevka/geometry": "31.8.0" } } diff --git a/packages/param/package.json b/packages/param/package.json index e82ea90331..ea41b3639e 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "31.7.1" + "@iosevka/util": "31.8.0" } } diff --git a/packages/util/package.json b/packages/util/package.json index 34709dbd7a..c3d69b29bd 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index f91e66dede..9c766b8c58 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "31.7.1", + "@iosevka/param": "31.8.0", "@unicode/unicode-16.0.0": "^1.0.0" } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index cdccd03df8..3998c92682 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "31.7.1", + "@iosevka/param": "31.8.0", "@unicode/unicode-16.0.0": "^1.0.0", "cldr": "^7.5.0" } diff --git a/tools/data-export/src/coverage-export/additional-char-data.txt b/tools/data-export/src/coverage-export/additional-char-data.txt index 5db6e10337..16cd0c7e46 100644 --- a/tools/data-export/src/coverage-export/additional-char-data.txt +++ b/tools/data-export/src/coverage-export/additional-char-data.txt @@ -1,737 +1 @@ -# Additional characters for legacy computing -# Copied from https://www.unicode.org/L2/L2021/21235r-terminals-supplement.pdf -# DELETE THIS DATA AFTER UNICODE 16 IS RELEASED -! NameSuffix; (Proposed by L2/21-235R) -2427;SYMBOL FOR DELETE SQUARE CHECKER BOARD FORM;So;0;ON;;;;;N;;;;; -2428;SYMBOL FOR DELETE RECTANGULAR CHECKER BOARD FORM;So;0;ON;;;;;N;;;;; -2429;SYMBOL FOR DELETE MEDIUM SHADE FORM;So;0;ON;;;;;N;;;;; -1CC00;UP-POINTING GO-KART;So;0;ON;;;;;N;;;;; -1CC01;RIGHT-POINTING GO-KART;So;0;ON;;;;;N;;;;; -1CC02;LEFT-POINTING STICK FIGURE;So;0;ON;;;;;N;;;;; -1CC03;RIGHT-POINTING STICK FIGURE;So;0;ON;;;;;N;;;;; -1CC04;DOWN-POINTING STICK FIGURE;So;0;ON;;;;;N;;;;; -1CC05;LOWER HORIZONTAL RULER SEGMENT;So;0;ON;;;;;N;;;;; -1CC06;RIGHT VERTICAL RULER SEGMENT;So;0;ON;;;;;N;;;;; -1CC07;LOWER RIGHT RULER SEGMENT;So;0;ON;;;;;N;;;;; -1CC08;ANTENNA;So;0;ON;;;;;N;;;;; -1CC09;HORIZONTAL RESISTOR SEGMENT;So;0;ON;;;;;N;;;;; -1CC0A;VERTICAL RESISTOR SEGMENT;So;0;ON;;;;;N;;;;; -1CC0B;LEFT THIRD INDUCTOR;So;0;ON;;;;;N;;;;; -1CC0C;MIDDLE THIRD INDUCTOR;So;0;ON;;;;;N;;;;; -1CC0D;RIGHT THIRD INDUCTOR;So;0;ON;;;;;N;;;;; -1CC0E;LEFT-POINTING DIODE;So;0;ON;;;;;N;;;;; -1CC0F;RIGHT-POINTING DIODE;So;0;ON;;;;;N;;;;; -1CC10;NPN TRANSISTOR;So;0;ON;;;;;N;;;;; -1CC11;PNP TRANSISTOR;So;0;ON;;;;;N;;;;; -1CC12;RECEPTACLE;So;0;ON;;;;;N;;;;; -1CC13;HORIZONTAL CAPACITOR;So;0;ON;;;;;N;;;;; -1CC14;VERTICAL CAPACITOR;So;0;ON;;;;;N;;;;; -1CC15;LOGIC GATE OR;So;0;ON;;;;;N;;;;; -1CC16;LOGIC GATE AND;So;0;ON;;;;;N;;;;; -1CC17;LOGIC GATE INVERTED INPUTS;So;0;ON;;;;;N;;;;; -1CC18;LOGIC GATE INVERTED OUTPUT;So;0;ON;;;;;N;;;;; -1CC19;LOGIC GATE BUFFER;So;0;ON;;;;;N;;;;; -1CC1A;LOGIC GATE BUFFER WITH INVERTED INPUT;So;0;ON;;;;;N;;;;; -1CC1B;BOX DRAWINGS LIGHT HORIZONTAL AND UPPER RIGHT;So;0;ON;;;;;N;;;;; -1CC1C;BOX DRAWINGS LIGHT HORIZONTAL AND LOWER RIGHT;So;0;ON;;;;;N;;;;; -1CC1D;BOX DRAWINGS LIGHT TOP AND UPPER LEFT;So;0;ON;;;;;N;;;;; -1CC1E;BOX DRAWINGS LIGHT BOTTOM AND LOWER LEFT;So;0;ON;;;;;N;;;;; -1CC1F;BOX DRAWINGS DOUBLE DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;;;;; -1CC20;BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;;;;; -1CC21;SEPARATED BLOCK QUADRANT-1;So;0;ON;;;;;N;;;;; -1CC22;SEPARATED BLOCK QUADRANT-2;So;0;ON;;;;;N;;;;; -1CC23;SEPARATED BLOCK QUADRANT-12;So;0;ON;;;;;N;;;;; -1CC24;SEPARATED BLOCK QUADRANT-3;So;0;ON;;;;;N;;;;; -1CC25;SEPARATED BLOCK QUADRANT-13;So;0;ON;;;;;N;;;;; -1CC26;SEPARATED BLOCK QUADRANT-23;So;0;ON;;;;;N;;;;; -1CC27;SEPARATED BLOCK QUADRANT-123;So;0;ON;;;;;N;;;;; -1CC28;SEPARATED BLOCK QUADRANT-4;So;0;ON;;;;;N;;;;; -1CC29;SEPARATED BLOCK QUADRANT-14;So;0;ON;;;;;N;;;;; -1CC2A;SEPARATED BLOCK QUADRANT-24;So;0;ON;;;;;N;;;;; -1CC2B;SEPARATED BLOCK QUADRANT-124;So;0;ON;;;;;N;;;;; -1CC2C;SEPARATED BLOCK QUADRANT-34;So;0;ON;;;;;N;;;;; -1CC2D;SEPARATED BLOCK QUADRANT-134;So;0;ON;;;;;N;;;;; -1CC2E;SEPARATED BLOCK QUADRANT-234;So;0;ON;;;;;N;;;;; -1CC2F;SEPARATED BLOCK QUADRANT-1234;So;0;ON;;;;;N;;;;; -1CC30;UPPER LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC31;UPPER CENTRE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC32;UPPER CENTRE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC33;UPPER RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC34;UPPER MIDDLE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC35;UPPER LEFT QUARTER CIRCLE;So;0;ON;;;;;N;;;;; -1CC36;UPPER RIGHT QUARTER CIRCLE;So;0;ON;;;;;N;;;;; -1CC37;UPPER MIDDLE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC38;LOWER MIDDLE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC39;LOWER LEFT QUARTER CIRCLE;So;0;ON;;;;;N;;;;; -1CC3A;LOWER RIGHT QUARTER CIRCLE;So;0;ON;;;;;N;;;;; -1CC3B;LOWER MIDDLE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC3C;LOWER LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC3D;LOWER CENTRE LEFT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC3E;LOWER CENTRE RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC3F;LOWER RIGHT TWELFTH CIRCLE;So;0;ON;;;;;N;;;;; -1CC40;SPARSE HORIZONTAL FILL;So;0;ON;;;;;N;;;;; -1CC41;SPARSE VERTICAL FILL;So;0;ON;;;;;N;;;;; -1CC42;ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; -1CC43;DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; -1CC44;DENSE VERTICAL FILL;So;0;ON;;;;;N;;;;; -1CC45;DENSE HORIZONTAL FILL;So;0;ON;;;;;N;;;;; -1CC46;SPECKLE FILL FRAME-1;So;0;ON;;;;;N;;;;; -1CC47;SPECKLE FILL FRAME-2;So;0;ON;;;;;N;;;;; -1CC48;LEFT-FACING BASSINET;So;0;ON;;;;;N;;;;; -1CC49;RIGHT-FACING BASSINET;So;0;ON;;;;;N;;;;; -1CC4A;FLYING SAUCER WITH BEAMS;So;0;ON;;;;;N;;;;; -1CC4B;FLYING SAUCER WITHOUT BEAMS;So;0;ON;;;;;N;;;;; -1CC4C;ALIEN MONSTER OPEN JAWS;So;0;ON;;;;;N;;;;; -1CC4D;ALIEN MONSTER CLOSED JAWS;So;0;ON;;;;;N;;;;; -1CC4E;ALIEN SQUID OPEN TENTACLES;So;0;ON;;;;;N;;;;; -1CC4F;ALIEN SQUID CLOSED TENTACLES;So;0;ON;;;;;N;;;;; -1CC50;ALIEN CRAB STEPPING RIGHT;So;0;ON;;;;;N;;;;; -1CC51;ALIEN CRAB STEPPING LEFT;So;0;ON;;;;;N;;;;; -1CC52;ALIEN SPIDER CROUCHING;So;0;ON;;;;;N;;;;; -1CC53;ALIEN SPIDER SPREAD;So;0;ON;;;;;N;;;;; -1CC54;ALIEN MONSTER STEP-1;So;0;ON;;;;;N;;;;; -1CC55;ALIEN MONSTER STEP-2;So;0;ON;;;;;N;;;;; -1CC56;LEFT-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;; -1CC57;UP-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;; -1CC58;RIGHT-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;; -1CC59;DOWN-POINTING ROCKET SHIP;So;0;ON;;;;;N;;;;; -1CC5A;TOP HALF LEFT-FACING ROBOT;So;0;ON;;;;;N;;;;; -1CC5B;TOP HALF FORWARD-FACING ROBOT;So;0;ON;;;;;N;;;;; -1CC5C;TOP HALF RIGHT-FACING ROBOT;So;0;ON;;;;;N;;;;; -1CC5D;BOTTOM HALF LEFT-FACING ROBOT;So;0;ON;;;;;N;;;;; -1CC5E;BOTTOM HALF FORWARD-FACING ROBOT;So;0;ON;;;;;N;;;;; -1CC5F;BOTTOM HALF RIGHT-FACING ROBOT;So;0;ON;;;;;N;;;;; -1CC60;LEFT-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;; -1CC61;UP-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;; -1CC62;RIGHT-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;; -1CC63;DOWN-POINTING ATOMIC BOMB;So;0;ON;;;;;N;;;;; -1CC64;MUSHROOM CLOUD;So;0;ON;;;;;N;;;;; -1CC65;LEFT-POINTING RIFLE;So;0;ON;;;;;N;;;;; -1CC66;UP-POINTING RIFLE;So;0;ON;;;;;N;;;;; -1CC67;RIGHT-POINTING RIFLE;So;0;ON;;;;;N;;;;; -1CC68;DOWN-POINTING RIFLE;So;0;ON;;;;;N;;;;; -1CC69;EIGHT RAYS INWARD;So;0;ON;;;;;N;;;;; -1CC6A;EIGHT RAYS OUTWARD;So;0;ON;;;;;N;;;;; -1CC6B;BLACK LARGE CIRCLE MINUS LEFT QUARTER SECTION;So;0;ON;;;;;N;;;;; -1CC6C;BLACK LARGE CIRCLE MINUS UPPER QUARTER SECTION;So;0;ON;;;;;N;;;;; -1CC6D;BLACK LARGE CIRCLE MINUS RIGHT QUARTER SECTION;So;0;ON;;;;;N;;;;; -1CC6E;BLACK LARGE CIRCLE MINUS LOWER QUARTER SECTION;So;0;ON;;;;;N;;;;; -1CC6F;BLACK NEUTRAL FACE;So;0;ON;;;;;N;;;;; -1CC70;LEFT-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; -1CC71;UP-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; -1CC72;RIGHT-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; -1CC73;DOWN-FACING SNAKE HEAD WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; -1CC74;LEFT-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;; -1CC75;UP-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;; -1CC76;RIGHT-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;; -1CC77;DOWN-FACING SNAKE HEAD WITH CLOSED MOUTH;So;0;ON;;;;;N;;;;; -1CC78;LEFT-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;; -1CC79;UP-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;; -1CC7A;RIGHT-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;; -1CC7B;DOWN-POINTING ENERGY WAVE;So;0;ON;;;;;N;;;;; -1CC7C;SQUARE SPIRAL FROM TOP LEFT;So;0;ON;;;;;N;;;;; -1CC7D;SQUARE SPIRAL FROM TOP RIGHT;So;0;ON;;;;;N;;;;; -1CC7E;SQUARE SPIRAL FROM BOTTOM RIGHT;So;0;ON;;;;;N;;;;; -1CC7F;SQUARE SPIRAL FROM BOTTOM LEFT;So;0;ON;;;;;N;;;;; -1CC80;STRIPED LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; -1CC81;STRIPED UP-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; -1CC82;STRIPED RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; -1CC83;STRIPED DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; -1CC84;VERTICAL LADDER;So;0;ON;;;;;N;;;;; -1CC85;HORIZONTAL LADDER;So;0;ON;;;;;N;;;;; -1CC86;WHITE LOWER LEFT POINTER;So;0;ON;;;;;N;;;;; -1CC87;WHITE LOWER RIGHT POINTER;So;0;ON;;;;;N;;;;; -1CC88;TWO RINGS ALIGNED HORIZONTALLY;So;0;ON;;;;;N;;;;; -1CC89;SQUARE FOUR CORNER SALTIRES;So;0;ON;;;;;N;;;;; -1CC8A;SQUARE FOUR CORNER DIAGONALS;So;0;ON;;;;;N;;;;; -1CC8B;SQUARE FOUR CORNER BLACK TRIANGLES;So;0;ON;;;;;N;;;;; -1CC8C;SQUARE APERTURE;So;0;ON;;;;;N;;;;; -1CC8D;INVERSE BLACK DIAMOND;So;0;ON;;;;;N;;;;; -1CC8E;LEFT AND UPPER ONE EIGHTH BLOCK CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; -1CC8F;INVERSE BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; -1CC90;VERTICAL LINE WITH FOUR TICK MARKS;So;0;ON;;;;;N;;;;; -1CC91;HORIZONTAL LINE WITH FOUR TICK MARKS;So;0;ON;;;;;N;;;;; -1CC92;LEFT-FACING FISH;So;0;ON;;;;;N;;;;; -1CC93;RIGHT-FACING FISH;So;0;ON;;;;;N;;;;; -1CC94;LEFT-FACING FISH WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; -1CC95;RIGHT-FACING FISH WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; -1CC96;FLAPPING BIRD;So;0;ON;;;;;N;;;;; -1CC97;LEFT-POINTING RACING CAR;So;0;ON;;;;;N;;;;; -1CC98;UP-POINTING RACING CAR;So;0;ON;;;;;N;;;;; -1CC99;RIGHT-POINTING RACING CAR;So;0;ON;;;;;N;;;;; -1CC9A;DOWN-POINTING RACING CAR;So;0;ON;;;;;N;;;;; -1CC9B;HORIZONTAL RACING CAR;So;0;ON;;;;;N;;;;; -1CC9C;VERTICAL RACING CAR;So;0;ON;;;;;N;;;;; -1CC9D;VERTICAL GO-KART;So;0;ON;;;;;N;;;;; -1CC9E;LEFT-POINTING TANK;So;0;ON;;;;;N;;;;; -1CC9F;RIGHT-POINTING TANK;So;0;ON;;;;;N;;;;; -1CCA0;LEFT-POINTING ROCKET BOOSTER;So;0;ON;;;;;N;;;;; -1CCA1;RIGHT-POINTING ROCKET BOOSTER;So;0;ON;;;;;N;;;;; -1CCA2;LEFT-POINTING ROLLER COASTER CAR;So;0;ON;;;;;N;;;;; -1CCA3;RIGHT-POINTING ROLLER COASTER CAR;So;0;ON;;;;;N;;;;; -1CCA4;LEFT HALF FLYING SAUCER;So;0;ON;;;;;N;;;;; -1CCA5;RIGHT HALF FLYING SAUCER;So;0;ON;;;;;N;;;;; -1CCA6;UPPER LEFT QUADRANT FACE WITH OPEN EYES;So;0;ON;;;;;N;;;;; -1CCA7;UPPER RIGHT QUADRANT FACE WITH OPEN EYES;So;0;ON;;;;;N;;;;; -1CCA8;UPPER LEFT QUADRANT FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;; -1CCA9;UPPER RIGHT QUADRANT FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;; -1CCAA;LOWER LEFT QUADRANT SMILING FACE;So;0;ON;;;;;N;;;;; -1CCAB;LOWER RIGHT QUADRANT SMILING FACE;So;0;ON;;;;;N;;;;; -1CCAC;LOWER LEFT QUADRANT NEUTRAL FACE;So;0;ON;;;;;N;;;;; -1CCAD;LOWER RIGHT QUADRANT NEUTRAL FACE;So;0;ON;;;;;N;;;;; -1CCAE;LOWER LEFT QUADRANT FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; -1CCAF;LOWER RIGHT QUADRANT FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;; -1CCB0;LOWER LEFT QUADRANT FROWNING FACE;So;0;ON;;;;;N;;;;; -1CCB1;LOWER RIGHT QUADRANT FROWNING FACE;So;0;ON;;;;;N;;;;; -1CCB2;UPPER LEFT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;; -1CCB3;UPPER RIGHT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;; -1CCB4;LOWER LEFT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;; -1CCB5;LOWER RIGHT QUADRANT TELEVISION;So;0;ON;;;;;N;;;;; -1CCB6;UPPER LEFT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;; -1CCB7;UPPER RIGHT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;; -1CCB8;LOWER LEFT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;; -1CCB9;LOWER RIGHT QUADRANT MICROCOMPUTER;So;0;ON;;;;;N;;;;; -1CCBA;UPPER LEFT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;; -1CCBB;UPPER RIGHT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;; -1CCBC;LOWER LEFT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;; -1CCBD;LOWER RIGHT QUADRANT CHESS KING;So;0;ON;;;;;N;;;;; -1CCBE;UPPER LEFT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;; -1CCBF;UPPER RIGHT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;; -1CCC0;LOWER LEFT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;; -1CCC1;LOWER RIGHT QUADRANT CHESS QUEEN;So;0;ON;;;;;N;;;;; -1CCC2;UPPER LEFT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;; -1CCC3;UPPER RIGHT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;; -1CCC4;LOWER LEFT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;; -1CCC5;LOWER RIGHT QUADRANT CHESS ROOK;So;0;ON;;;;;N;;;;; -1CCC6;UPPER LEFT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;; -1CCC7;UPPER RIGHT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;; -1CCC8;LOWER LEFT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;; -1CCC9;LOWER RIGHT QUADRANT CHESS BISHOP;So;0;ON;;;;;N;;;;; -1CCCA;UPPER LEFT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;; -1CCCB;UPPER RIGHT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;; -1CCCC;LOWER LEFT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;; -1CCCD;LOWER RIGHT QUADRANT CHESS KNIGHT;So;0;ON;;;;;N;;;;; -1CCCE;UPPER LEFT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;; -1CCCF;UPPER RIGHT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;; -1CCD0;LOWER LEFT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;; -1CCD1;LOWER RIGHT QUADRANT CHESS PAWN;So;0;ON;;;;;N;;;;; -1CCD2;UPPER LEFT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;; -1CCD3;UPPER RIGHT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;; -1CCD4;LOWER LEFT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;; -1CCD5;LOWER RIGHT QUADRANT STANDING KNIGHT;So;0;ON;;;;;N;;;;; -1CCD6;OUTLINED LATIN CAPITAL LETTER A;So;0;L; 0041;;;;N;;;;; -1CCD7;OUTLINED LATIN CAPITAL LETTER B;So;0;L; 0042;;;;N;;;;; -1CCD8;OUTLINED LATIN CAPITAL LETTER C;So;0;L; 0043;;;;N;;;;; -1CCD9;OUTLINED LATIN CAPITAL LETTER D;So;0;L; 0044;;;;N;;;;; -1CCDA;OUTLINED LATIN CAPITAL LETTER E;So;0;L; 0045;;;;N;;;;; -1CCDB;OUTLINED LATIN CAPITAL LETTER F;So;0;L; 0046;;;;N;;;;; -1CCDC;OUTLINED LATIN CAPITAL LETTER G;So;0;L; 0047;;;;N;;;;; -1CCDD;OUTLINED LATIN CAPITAL LETTER H;So;0;L; 0048;;;;N;;;;; -1CCDE;OUTLINED LATIN CAPITAL LETTER I;So;0;L; 0049;;;;N;;;;; -1CCDF;OUTLINED LATIN CAPITAL LETTER J;So;0;L; 004A;;;;N;;;;; -1CCE0;OUTLINED LATIN CAPITAL LETTER K;So;0;L; 004B;;;;N;;;;; -1CCE1;OUTLINED LATIN CAPITAL LETTER L;So;0;L; 004C;;;;N;;;;; -1CCE2;OUTLINED LATIN CAPITAL LETTER M;So;0;L; 004D;;;;N;;;;; -1CCE3;OUTLINED LATIN CAPITAL LETTER N;So;0;L; 004E;;;;N;;;;; -1CCE4;OUTLINED LATIN CAPITAL LETTER O;So;0;L; 004F;;;;N;;;;; -1CCE5;OUTLINED LATIN CAPITAL LETTER P;So;0;L; 0050;;;;N;;;;; -1CCE6;OUTLINED LATIN CAPITAL LETTER Q;So;0;L; 0051;;;;N;;;;; -1CCE7;OUTLINED LATIN CAPITAL LETTER R;So;0;L; 0052;;;;N;;;;; -1CCE8;OUTLINED LATIN CAPITAL LETTER S;So;0;L; 0053;;;;N;;;;; -1CCE9;OUTLINED LATIN CAPITAL LETTER T;So;0;L; 0054;;;;N;;;;; -1CCEA;OUTLINED LATIN CAPITAL LETTER U;So;0;L; 0055;;;;N;;;;; -1CCEB;OUTLINED LATIN CAPITAL LETTER V;So;0;L; 0056;;;;N;;;;; -1CCEC;OUTLINED LATIN CAPITAL LETTER W;So;0;L; 0057;;;;N;;;;; -1CCED;OUTLINED LATIN CAPITAL LETTER X;So;0;L; 0058;;;;N;;;;; -1CCEE;OUTLINED LATIN CAPITAL LETTER Y;So;0;L; 0059;;;;N;;;;; -1CCEF;OUTLINED LATIN CAPITAL LETTER Z;So;0;L; 005A;;;;N;;;;; -1CCF0;OUTLINED DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; -1CCF1;OUTLINED DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; -1CCF2;OUTLINED DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; -1CCF3;OUTLINED DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; -1CCF4;OUTLINED DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; -1CCF5;OUTLINED DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; -1CCF6;OUTLINED DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; -1CCF7;OUTLINED DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; -1CCF8;OUTLINED DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; -1CCF9;OUTLINED DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; -1CD00;BLOCK OCTANT-3;So;0;ON;;;;;N;;;;; -1CD01;BLOCK OCTANT-23;So;0;ON;;;;;N;;;;; -1CD02;BLOCK OCTANT-123;So;0;ON;;;;;N;;;;; -1CD03;BLOCK OCTANT-4;So;0;ON;;;;;N;;;;; -1CD04;BLOCK OCTANT-14;So;0;ON;;;;;N;;;;; -1CD05;BLOCK OCTANT-124;So;0;ON;;;;;N;;;;; -1CD06;BLOCK OCTANT-34;So;0;ON;;;;;N;;;;; -1CD07;BLOCK OCTANT-134;So;0;ON;;;;;N;;;;; -1CD08;BLOCK OCTANT-234;So;0;ON;;;;;N;;;;; -1CD09;BLOCK OCTANT-5;So;0;ON;;;;;N;;;;; -1CD0A;BLOCK OCTANT-15;So;0;ON;;;;;N;;;;; -1CD0B;BLOCK OCTANT-25;So;0;ON;;;;;N;;;;; -1CD0C;BLOCK OCTANT-125;So;0;ON;;;;;N;;;;; -1CD0D;BLOCK OCTANT-135;So;0;ON;;;;;N;;;;; -1CD0E;BLOCK OCTANT-235;So;0;ON;;;;;N;;;;; -1CD0F;BLOCK OCTANT-1235;So;0;ON;;;;;N;;;;; -1CD10;BLOCK OCTANT-45;So;0;ON;;;;;N;;;;; -1CD11;BLOCK OCTANT-145;So;0;ON;;;;;N;;;;; -1CD12;BLOCK OCTANT-245;So;0;ON;;;;;N;;;;; -1CD13;BLOCK OCTANT-1245;So;0;ON;;;;;N;;;;; -1CD14;BLOCK OCTANT-345;So;0;ON;;;;;N;;;;; -1CD15;BLOCK OCTANT-1345;So;0;ON;;;;;N;;;;; -1CD16;BLOCK OCTANT-2345;So;0;ON;;;;;N;;;;; -1CD17;BLOCK OCTANT-12345;So;0;ON;;;;;N;;;;; -1CD18;BLOCK OCTANT-6;So;0;ON;;;;;N;;;;; -1CD19;BLOCK OCTANT-16;So;0;ON;;;;;N;;;;; -1CD1A;BLOCK OCTANT-26;So;0;ON;;;;;N;;;;; -1CD1B;BLOCK OCTANT-126;So;0;ON;;;;;N;;;;; -1CD1C;BLOCK OCTANT-36;So;0;ON;;;;;N;;;;; -1CD1D;BLOCK OCTANT-136;So;0;ON;;;;;N;;;;; -1CD1E;BLOCK OCTANT-236;So;0;ON;;;;;N;;;;; -1CD1F;BLOCK OCTANT-1236;So;0;ON;;;;;N;;;;; -1CD20;BLOCK OCTANT-146;So;0;ON;;;;;N;;;;; -1CD21;BLOCK OCTANT-246;So;0;ON;;;;;N;;;;; -1CD22;BLOCK OCTANT-1246;So;0;ON;;;;;N;;;;; -1CD23;BLOCK OCTANT-346;So;0;ON;;;;;N;;;;; -1CD24;BLOCK OCTANT-1346;So;0;ON;;;;;N;;;;; -1CD25;BLOCK OCTANT-2346;So;0;ON;;;;;N;;;;; -1CD26;BLOCK OCTANT-12346;So;0;ON;;;;;N;;;;; -1CD27;BLOCK OCTANT-56;So;0;ON;;;;;N;;;;; -1CD28;BLOCK OCTANT-156;So;0;ON;;;;;N;;;;; -1CD29;BLOCK OCTANT-256;So;0;ON;;;;;N;;;;; -1CD2A;BLOCK OCTANT-1256;So;0;ON;;;;;N;;;;; -1CD2B;BLOCK OCTANT-356;So;0;ON;;;;;N;;;;; -1CD2C;BLOCK OCTANT-1356;So;0;ON;;;;;N;;;;; -1CD2D;BLOCK OCTANT-2356;So;0;ON;;;;;N;;;;; -1CD2E;BLOCK OCTANT-12356;So;0;ON;;;;;N;;;;; -1CD2F;BLOCK OCTANT-456;So;0;ON;;;;;N;;;;; -1CD30;BLOCK OCTANT-1456;So;0;ON;;;;;N;;;;; -1CD31;BLOCK OCTANT-2456;So;0;ON;;;;;N;;;;; -1CD32;BLOCK OCTANT-12456;So;0;ON;;;;;N;;;;; -1CD33;BLOCK OCTANT-3456;So;0;ON;;;;;N;;;;; -1CD34;BLOCK OCTANT-13456;So;0;ON;;;;;N;;;;; -1CD35;BLOCK OCTANT-23456;So;0;ON;;;;;N;;;;; -1CD36;BLOCK OCTANT-17;So;0;ON;;;;;N;;;;; -1CD37;BLOCK OCTANT-27;So;0;ON;;;;;N;;;;; -1CD38;BLOCK OCTANT-127;So;0;ON;;;;;N;;;;; -1CD39;BLOCK OCTANT-37;So;0;ON;;;;;N;;;;; -1CD3A;BLOCK OCTANT-137;So;0;ON;;;;;N;;;;; -1CD3B;BLOCK OCTANT-237;So;0;ON;;;;;N;;;;; -1CD3C;BLOCK OCTANT-1237;So;0;ON;;;;;N;;;;; -1CD3D;BLOCK OCTANT-47;So;0;ON;;;;;N;;;;; -1CD3E;BLOCK OCTANT-147;So;0;ON;;;;;N;;;;; -1CD3F;BLOCK OCTANT-247;So;0;ON;;;;;N;;;;; -1CD40;BLOCK OCTANT-1247;So;0;ON;;;;;N;;;;; -1CD41;BLOCK OCTANT-347;So;0;ON;;;;;N;;;;; -1CD42;BLOCK OCTANT-1347;So;0;ON;;;;;N;;;;; -1CD43;BLOCK OCTANT-2347;So;0;ON;;;;;N;;;;; -1CD44;BLOCK OCTANT-12347;So;0;ON;;;;;N;;;;; -1CD45;BLOCK OCTANT-157;So;0;ON;;;;;N;;;;; -1CD46;BLOCK OCTANT-257;So;0;ON;;;;;N;;;;; -1CD47;BLOCK OCTANT-1257;So;0;ON;;;;;N;;;;; -1CD48;BLOCK OCTANT-357;So;0;ON;;;;;N;;;;; -1CD49;BLOCK OCTANT-2357;So;0;ON;;;;;N;;;;; -1CD4A;BLOCK OCTANT-12357;So;0;ON;;;;;N;;;;; -1CD4B;BLOCK OCTANT-457;So;0;ON;;;;;N;;;;; -1CD4C;BLOCK OCTANT-1457;So;0;ON;;;;;N;;;;; -1CD4D;BLOCK OCTANT-12457;So;0;ON;;;;;N;;;;; -1CD4E;BLOCK OCTANT-3457;So;0;ON;;;;;N;;;;; -1CD4F;BLOCK OCTANT-13457;So;0;ON;;;;;N;;;;; -1CD50;BLOCK OCTANT-23457;So;0;ON;;;;;N;;;;; -1CD51;BLOCK OCTANT-67;So;0;ON;;;;;N;;;;; -1CD52;BLOCK OCTANT-167;So;0;ON;;;;;N;;;;; -1CD53;BLOCK OCTANT-267;So;0;ON;;;;;N;;;;; -1CD54;BLOCK OCTANT-1267;So;0;ON;;;;;N;;;;; -1CD55;BLOCK OCTANT-367;So;0;ON;;;;;N;;;;; -1CD56;BLOCK OCTANT-1367;So;0;ON;;;;;N;;;;; -1CD57;BLOCK OCTANT-2367;So;0;ON;;;;;N;;;;; -1CD58;BLOCK OCTANT-12367;So;0;ON;;;;;N;;;;; -1CD59;BLOCK OCTANT-467;So;0;ON;;;;;N;;;;; -1CD5A;BLOCK OCTANT-1467;So;0;ON;;;;;N;;;;; -1CD5B;BLOCK OCTANT-2467;So;0;ON;;;;;N;;;;; -1CD5C;BLOCK OCTANT-12467;So;0;ON;;;;;N;;;;; -1CD5D;BLOCK OCTANT-3467;So;0;ON;;;;;N;;;;; -1CD5E;BLOCK OCTANT-13467;So;0;ON;;;;;N;;;;; -1CD5F;BLOCK OCTANT-23467;So;0;ON;;;;;N;;;;; -1CD60;BLOCK OCTANT-123467;So;0;ON;;;;;N;;;;; -1CD61;BLOCK OCTANT-567;So;0;ON;;;;;N;;;;; -1CD62;BLOCK OCTANT-1567;So;0;ON;;;;;N;;;;; -1CD63;BLOCK OCTANT-2567;So;0;ON;;;;;N;;;;; -1CD64;BLOCK OCTANT-12567;So;0;ON;;;;;N;;;;; -1CD65;BLOCK OCTANT-3567;So;0;ON;;;;;N;;;;; -1CD66;BLOCK OCTANT-13567;So;0;ON;;;;;N;;;;; -1CD67;BLOCK OCTANT-23567;So;0;ON;;;;;N;;;;; -1CD68;BLOCK OCTANT-123567;So;0;ON;;;;;N;;;;; -1CD69;BLOCK OCTANT-4567;So;0;ON;;;;;N;;;;; -1CD6A;BLOCK OCTANT-14567;So;0;ON;;;;;N;;;;; -1CD6B;BLOCK OCTANT-24567;So;0;ON;;;;;N;;;;; -1CD6C;BLOCK OCTANT-124567;So;0;ON;;;;;N;;;;; -1CD6D;BLOCK OCTANT-34567;So;0;ON;;;;;N;;;;; -1CD6E;BLOCK OCTANT-134567;So;0;ON;;;;;N;;;;; -1CD6F;BLOCK OCTANT-234567;So;0;ON;;;;;N;;;;; -1CD70;BLOCK OCTANT-1234567;So;0;ON;;;;;N;;;;; -1CD71;BLOCK OCTANT-18;So;0;ON;;;;;N;;;;; -1CD72;BLOCK OCTANT-28;So;0;ON;;;;;N;;;;; -1CD73;BLOCK OCTANT-128;So;0;ON;;;;;N;;;;; -1CD74;BLOCK OCTANT-38;So;0;ON;;;;;N;;;;; -1CD75;BLOCK OCTANT-138;So;0;ON;;;;;N;;;;; -1CD76;BLOCK OCTANT-238;So;0;ON;;;;;N;;;;; -1CD77;BLOCK OCTANT-1238;So;0;ON;;;;;N;;;;; -1CD78;BLOCK OCTANT-48;So;0;ON;;;;;N;;;;; -1CD79;BLOCK OCTANT-148;So;0;ON;;;;;N;;;;; -1CD7A;BLOCK OCTANT-248;So;0;ON;;;;;N;;;;; -1CD7B;BLOCK OCTANT-1248;So;0;ON;;;;;N;;;;; -1CD7C;BLOCK OCTANT-348;So;0;ON;;;;;N;;;;; -1CD7D;BLOCK OCTANT-1348;So;0;ON;;;;;N;;;;; -1CD7E;BLOCK OCTANT-2348;So;0;ON;;;;;N;;;;; -1CD7F;BLOCK OCTANT-12348;So;0;ON;;;;;N;;;;; -1CD80;BLOCK OCTANT-58;So;0;ON;;;;;N;;;;; -1CD81;BLOCK OCTANT-158;So;0;ON;;;;;N;;;;; -1CD82;BLOCK OCTANT-258;So;0;ON;;;;;N;;;;; -1CD83;BLOCK OCTANT-1258;So;0;ON;;;;;N;;;;; -1CD84;BLOCK OCTANT-358;So;0;ON;;;;;N;;;;; -1CD85;BLOCK OCTANT-1358;So;0;ON;;;;;N;;;;; -1CD86;BLOCK OCTANT-2358;So;0;ON;;;;;N;;;;; -1CD87;BLOCK OCTANT-12358;So;0;ON;;;;;N;;;;; -1CD88;BLOCK OCTANT-458;So;0;ON;;;;;N;;;;; -1CD89;BLOCK OCTANT-1458;So;0;ON;;;;;N;;;;; -1CD8A;BLOCK OCTANT-2458;So;0;ON;;;;;N;;;;; -1CD8B;BLOCK OCTANT-12458;So;0;ON;;;;;N;;;;; -1CD8C;BLOCK OCTANT-3458;So;0;ON;;;;;N;;;;; -1CD8D;BLOCK OCTANT-13458;So;0;ON;;;;;N;;;;; -1CD8E;BLOCK OCTANT-23458;So;0;ON;;;;;N;;;;; -1CD8F;BLOCK OCTANT-123458;So;0;ON;;;;;N;;;;; -1CD90;BLOCK OCTANT-168;So;0;ON;;;;;N;;;;; -1CD91;BLOCK OCTANT-268;So;0;ON;;;;;N;;;;; -1CD92;BLOCK OCTANT-1268;So;0;ON;;;;;N;;;;; -1CD93;BLOCK OCTANT-368;So;0;ON;;;;;N;;;;; -1CD94;BLOCK OCTANT-2368;So;0;ON;;;;;N;;;;; -1CD95;BLOCK OCTANT-12368;So;0;ON;;;;;N;;;;; -1CD96;BLOCK OCTANT-468;So;0;ON;;;;;N;;;;; -1CD97;BLOCK OCTANT-1468;So;0;ON;;;;;N;;;;; -1CD98;BLOCK OCTANT-12468;So;0;ON;;;;;N;;;;; -1CD99;BLOCK OCTANT-3468;So;0;ON;;;;;N;;;;; -1CD9A;BLOCK OCTANT-13468;So;0;ON;;;;;N;;;;; -1CD9B;BLOCK OCTANT-23468;So;0;ON;;;;;N;;;;; -1CD9C;BLOCK OCTANT-568;So;0;ON;;;;;N;;;;; -1CD9D;BLOCK OCTANT-1568;So;0;ON;;;;;N;;;;; -1CD9E;BLOCK OCTANT-2568;So;0;ON;;;;;N;;;;; -1CD9F;BLOCK OCTANT-12568;So;0;ON;;;;;N;;;;; -1CDA0;BLOCK OCTANT-3568;So;0;ON;;;;;N;;;;; -1CDA1;BLOCK OCTANT-13568;So;0;ON;;;;;N;;;;; -1CDA2;BLOCK OCTANT-23568;So;0;ON;;;;;N;;;;; -1CDA3;BLOCK OCTANT-123568;So;0;ON;;;;;N;;;;; -1CDA4;BLOCK OCTANT-4568;So;0;ON;;;;;N;;;;; -1CDA5;BLOCK OCTANT-14568;So;0;ON;;;;;N;;;;; -1CDA6;BLOCK OCTANT-24568;So;0;ON;;;;;N;;;;; -1CDA7;BLOCK OCTANT-124568;So;0;ON;;;;;N;;;;; -1CDA8;BLOCK OCTANT-34568;So;0;ON;;;;;N;;;;; -1CDA9;BLOCK OCTANT-134568;So;0;ON;;;;;N;;;;; -1CDAA;BLOCK OCTANT-234568;So;0;ON;;;;;N;;;;; -1CDAB;BLOCK OCTANT-1234568;So;0;ON;;;;;N;;;;; -1CDAC;BLOCK OCTANT-178;So;0;ON;;;;;N;;;;; -1CDAD;BLOCK OCTANT-278;So;0;ON;;;;;N;;;;; -1CDAE;BLOCK OCTANT-1278;So;0;ON;;;;;N;;;;; -1CDAF;BLOCK OCTANT-378;So;0;ON;;;;;N;;;;; -1CDB0;BLOCK OCTANT-1378;So;0;ON;;;;;N;;;;; -1CDB1;BLOCK OCTANT-2378;So;0;ON;;;;;N;;;;; -1CDB2;BLOCK OCTANT-12378;So;0;ON;;;;;N;;;;; -1CDB3;BLOCK OCTANT-478;So;0;ON;;;;;N;;;;; -1CDB4;BLOCK OCTANT-1478;So;0;ON;;;;;N;;;;; -1CDB5;BLOCK OCTANT-2478;So;0;ON;;;;;N;;;;; -1CDB6;BLOCK OCTANT-12478;So;0;ON;;;;;N;;;;; -1CDB7;BLOCK OCTANT-3478;So;0;ON;;;;;N;;;;; -1CDB8;BLOCK OCTANT-13478;So;0;ON;;;;;N;;;;; -1CDB9;BLOCK OCTANT-23478;So;0;ON;;;;;N;;;;; -1CDBA;BLOCK OCTANT-123478;So;0;ON;;;;;N;;;;; -1CDBB;BLOCK OCTANT-578;So;0;ON;;;;;N;;;;; -1CDBC;BLOCK OCTANT-1578;So;0;ON;;;;;N;;;;; -1CDBD;BLOCK OCTANT-2578;So;0;ON;;;;;N;;;;; -1CDBE;BLOCK OCTANT-12578;So;0;ON;;;;;N;;;;; -1CDBF;BLOCK OCTANT-3578;So;0;ON;;;;;N;;;;; -1CDC0;BLOCK OCTANT-13578;So;0;ON;;;;;N;;;;; -1CDC1;BLOCK OCTANT-23578;So;0;ON;;;;;N;;;;; -1CDC2;BLOCK OCTANT-123578;So;0;ON;;;;;N;;;;; -1CDC3;BLOCK OCTANT-4578;So;0;ON;;;;;N;;;;; -1CDC4;BLOCK OCTANT-14578;So;0;ON;;;;;N;;;;; -1CDC5;BLOCK OCTANT-24578;So;0;ON;;;;;N;;;;; -1CDC6;BLOCK OCTANT-124578;So;0;ON;;;;;N;;;;; -1CDC7;BLOCK OCTANT-34578;So;0;ON;;;;;N;;;;; -1CDC8;BLOCK OCTANT-134578;So;0;ON;;;;;N;;;;; -1CDC9;BLOCK OCTANT-234578;So;0;ON;;;;;N;;;;; -1CDCA;BLOCK OCTANT-1234578;So;0;ON;;;;;N;;;;; -1CDCB;BLOCK OCTANT-678;So;0;ON;;;;;N;;;;; -1CDCC;BLOCK OCTANT-1678;So;0;ON;;;;;N;;;;; -1CDCD;BLOCK OCTANT-2678;So;0;ON;;;;;N;;;;; -1CDCE;BLOCK OCTANT-12678;So;0;ON;;;;;N;;;;; -1CDCF;BLOCK OCTANT-3678;So;0;ON;;;;;N;;;;; -1CDD0;BLOCK OCTANT-13678;So;0;ON;;;;;N;;;;; -1CDD1;BLOCK OCTANT-23678;So;0;ON;;;;;N;;;;; -1CDD2;BLOCK OCTANT-123678;So;0;ON;;;;;N;;;;; -1CDD3;BLOCK OCTANT-4678;So;0;ON;;;;;N;;;;; -1CDD4;BLOCK OCTANT-14678;So;0;ON;;;;;N;;;;; -1CDD5;BLOCK OCTANT-24678;So;0;ON;;;;;N;;;;; -1CDD6;BLOCK OCTANT-124678;So;0;ON;;;;;N;;;;; -1CDD7;BLOCK OCTANT-34678;So;0;ON;;;;;N;;;;; -1CDD8;BLOCK OCTANT-134678;So;0;ON;;;;;N;;;;; -1CDD9;BLOCK OCTANT-234678;So;0;ON;;;;;N;;;;; -1CDDA;BLOCK OCTANT-1234678;So;0;ON;;;;;N;;;;; -1CDDB;BLOCK OCTANT-15678;So;0;ON;;;;;N;;;;; -1CDDC;BLOCK OCTANT-25678;So;0;ON;;;;;N;;;;; -1CDDD;BLOCK OCTANT-125678;So;0;ON;;;;;N;;;;; -1CDDE;BLOCK OCTANT-35678;So;0;ON;;;;;N;;;;; -1CDDF;BLOCK OCTANT-235678;So;0;ON;;;;;N;;;;; -1CDE0;BLOCK OCTANT-1235678;So;0;ON;;;;;N;;;;; -1CDE1;BLOCK OCTANT-45678;So;0;ON;;;;;N;;;;; -1CDE2;BLOCK OCTANT-145678;So;0;ON;;;;;N;;;;; -1CDE3;BLOCK OCTANT-1245678;So;0;ON;;;;;N;;;;; -1CDE4;BLOCK OCTANT-1345678;So;0;ON;;;;;N;;;;; -1CDE5;BLOCK OCTANT-2345678;So;0;ON;;;;;N;;;;; -1CDE6;TOP HALF STANDING PERSON;So;0;ON;;;;;N;;;;; -1CDE7;BOTTOM HALF STANDING PERSON;So;0;ON;;;;;N;;;;; -1CDE8;TOP HALF RIGHT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; -1CDE9;BOTTOM HALF RIGHT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; -1CDEA;TOP HALF RIGHT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; -1CDEB;BOTTOM HALF RIGHT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; -1CDEC;TOP HALF LEFT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; -1CDED;BOTTOM HALF LEFT-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; -1CDEE;TOP HALF LEFT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; -1CDEF;BOTTOM HALF LEFT-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; -1CDF0;TOP HALF FORWARD-FACING RUNNER;So;0;ON;;;;;N;;;;; -1CDF1;BOTTOM HALF FORWARD-FACING RUNNER FRAME-1;So;0;ON;;;;;N;;;;; -1CDF2;BOTTOM HALF FORWARD-FACING RUNNER FRAME-2;So;0;ON;;;;;N;;;;; -1CDF3;BOTTOM HALF FORWARD-FACING RUNNER FRAME-3;So;0;ON;;;;;N;;;;; -1CDF4;BOTTOM HALF FORWARD-FACING RUNNER FRAME-4;So;0;ON;;;;;N;;;;; -1CDF5;MOON LANDER;So;0;ON;;;;;N;;;;; -1CDF6;TOP HALF FLAILING ROBOT FRAME-1;So;0;ON;;;;;N;;;;; -1CDF7;TOP HALF FLAILING ROBOT FRAME-2;So;0;ON;;;;;N;;;;; -1CDF8;DOWN-POINTING AIRPLANE;So;0;ON;;;;;N;;;;; -1CDF9;LEFT-POINTING AIRPLANE;So;0;ON;;;;;N;;;;; -1CDFA;SMALL UP-POINTING AIRPLANE;So;0;ON;;;;;N;;;;; -1CDFB;UP-POINTING FROG;So;0;ON;;;;;N;;;;; -1CDFC;DOWN-POINTING FROG;So;0;ON;;;;;N;;;;; -1CDFD;EXPLOSION FRAME-1;So;0;ON;;;;;N;;;;; -1CDFE;EXPLOSION FRAME-2;So;0;ON;;;;;N;;;;; -1CDFF;EXPLOSION FRAME-3;So;0;ON;;;;;N;;;;; -1CE00;RIGHT HALF AND LEFT HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; -1CE01;LOWER HALF AND UPPER HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; -1CE02;EXPLOSION AT HORIZON;So;0;ON;;;;;N;;;;; -1CE03;UPPER HALF HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;; -1CE04;LOWER HALF HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;; -1CE05;HEAVY WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE;So;0;ON;;;;;N;;;;; -1CE06;WHITE VERTICAL RECTANGLE WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;; -1CE07;TOP RIGHT BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;;;;; -1CE08;FUNNEL;So;0;ON;;;;;N;;;;; -1CE09;BOX DRAWINGS DOUBLE DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER -RIGHT;So;0;ON;;;;;N;;;;; -1CE0A;BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER -RIGHT;So;0;ON;;;;;N;;;;; -1CE0B;LEFT HALF WHITE ELLIPSE;So;0;ON;;;;;N;;;;; -1CE0C;RIGHT HALF WHITE ELLIPSE;So;0;ON;;;;;N;;;;; -1CE0D;LEFT HALF TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;;;;; -1CE0E;RIGHT HALF TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;;;;; -1CE0F;HORIZONTAL LINE WITH TICK MARK;So;0;ON;;;;;N;;;;; -1CE10;LEFT HALF HORIZONTAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; -1CE11;RIGHT HALF HORIZONTAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; -1CE12;HORIZONTAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; -1CE13;LOWER HALF VERTICAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; -1CE14;UPPER HALF VERTICAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; -1CE15;VERTICAL LINE WITH THREE TICK MARKS;So;0;ON;;;;;N;;;;; -1CE16;BOX DRAWINGS LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;; -1CE17;BOX DRAWINGS LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;; -1CE18;BOX DRAWINGS LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;; -1CE19;BOX DRAWINGS LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;; -1CE1A;LARGE TYPE PIECE UPPER LEFT ARC;So;0;ON;;;;;N;;;;; -1CE1B;LARGE TYPE PIECE UPPER LEFT CORNER;So;0;ON;;;;;N;;;;; -1CE1C;LARGE TYPE PIECE UPPER TERMINAL;So;0;ON;;;;;N;;;;; -1CE1D;LARGE TYPE PIECE UPPER LEFT CROTCH;So;0;ON;;;;;N;;;;; -1CE1E;LARGE TYPE PIECE LEFT ARM;So;0;ON;;;;;N;;;;; -1CE1F;LARGE TYPE PIECE CROSSBAR;So;0;ON;;;;;N;;;;; -1CE20;LARGE TYPE PIECE CROSSBAR WITH LOWER STEM;So;0;ON;;;;;N;;;;; -1CE21;LARGE TYPE PIECE UPPER HALF VERTEX OF M;So;0;ON;;;;;N;;;;; -1CE22;LARGE TYPE PIECE DIAGONAL LOWER LEFT;So;0;ON;;;;;N;;;;; -1CE23;LARGE TYPE PIECE SHORT UPPER TERMINAL;So;0;ON;;;;;N;;;;; -1CE24;LARGE TYPE PIECE UPPER RIGHT ARC;So;0;ON;;;;;N;;;;; -1CE25;LARGE TYPE PIECE RIGHT ARM;So;0;ON;;;;;N;;;;; -1CE26;LARGE TYPE PIECE UPPER RIGHT CROTCH;So;0;ON;;;;;N;;;;; -1CE27;LARGE TYPE PIECE UPPER RIGHT CORNER;So;0;ON;;;;;N;;;;; -1CE28;LARGE TYPE PIECE STEM WITH RIGHT CROSSBAR;So;0;ON;;;;;N;;;;; -1CE29;LARGE TYPE PIECE STEM;So;0;ON;;;;;N;;;;; -1CE2A;LARGE TYPE PIECE DIAGONAL UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; -1CE2B;LARGE TYPE PIECE DIAGONAL UPPER RIGHT;So;0;ON;;;;;N;;;;; -1CE2C;LARGE TYPE PIECE DIAGONAL LOWER RIGHT;So;0;ON;;;;;N;;;;; -1CE2D;LARGE TYPE PIECE SHORT LOWER TERMINAL;So;0;ON;;;;;N;;;;; -1CE2E;LARGE TYPE PIECE LOWER LEFT AND UPPER LEFT ARC;So;0;ON;;;;;N;;;;; -1CE2F;LARGE TYPE PIECE CENTRE OF K;So;0;ON;;;;;N;;;;; -1CE30;LARGE TYPE PIECE LOWER HALF VERTEX OF M;So;0;ON;;;;;N;;;;; -1CE31;LARGE TYPE PIECE UPPER HALF VERTEX OF W;So;0;ON;;;;;N;;;;; -1CE32;LARGE TYPE PIECE CENTRE OF X;So;0;ON;;;;;N;;;;; -1CE33;LARGE TYPE PIECE CENTRE OF Y;So;0;ON;;;;;N;;;;; -1CE34;LARGE TYPE PIECE CENTRE OF Z WITH CROSSBAR;So;0;ON;;;;;N;;;;; -1CE35;LARGE TYPE PIECE RAISED UPPER RIGHT ARC;So;0;ON;;;;;N;;;;; -1CE36;LARGE TYPE PIECE STEM WITH LEFT CROSSBAR;So;0;ON;;;;;N;;;;; -1CE37;LARGE TYPE PIECE LOWER RIGHT AND UPPER RIGHT ARC;So;0;ON;;;;;N;;;;; -1CE38;LARGE TYPE PIECE DIAGONAL UPPER LEFT AND LOWER LEFT;So;0;ON;;;;;N;;;;; -1CE39;LARGE TYPE PIECE STEM WITH LEFT JOINT;So;0;ON;;;;;N;;;;; -1CE3A;LARGE TYPE PIECE STEM WITH CROSSBAR;So;0;ON;;;;;N;;;;; -1CE3B;LARGE TYPE PIECE DIAGONAL UPPER LEFT;So;0;ON;;;;;N;;;;; -1CE3C;LARGE TYPE PIECE LOWER TERMINAL;So;0;ON;;;;;N;;;;; -1CE3D;LARGE TYPE PIECE LOWER LEFT CORNER;So;0;ON;;;;;N;;;;; -1CE3E;LARGE TYPE PIECE LOWER LEFT ARC;So;0;ON;;;;;N;;;;; -1CE3F;LARGE TYPE PIECE LOWER LEFT CROTCH;So;0;ON;;;;;N;;;;; -1CE40;LARGE TYPE PIECE CROSSBAR WITH UPPER STEM;So;0;ON;;;;;N;;;;; -1CE41;LARGE TYPE PIECE VERTEX OF V;So;0;ON;;;;;N;;;;; -1CE42;LARGE TYPE PIECE LOWER HALF VERTEX OF W;So;0;ON;;;;;N;;;;; -1CE43;LARGE TYPE PIECE LOWER RIGHT ARC;So;0;ON;;;;;N;;;;; -1CE44;LARGE TYPE PIECE LOWER RIGHT CORNER;So;0;ON;;;;;N;;;;; -1CE45;LARGE TYPE PIECE LOWER RIGHT ARC WITH TAIL;So;0;ON;;;;;N;;;;; -1CE46;LARGE TYPE PIECE LOWER RIGHT CROTCH;So;0;ON;;;;;N;;;;; -1CE47;LARGE TYPE PIECE STEM-45;So;0;ON;;;;;N;;;;; -1CE48;LARGE TYPE PIECE STEM-2345;So;0;ON;;;;;N;;;;; -1CE49;LARGE TYPE PIECE STEM-4;So;0;ON;;;;;N;;;;; -1CE4A;LARGE TYPE PIECE STEM-34;So;0;ON;;;;;N;;;;; -1CE4B;LARGE TYPE PIECE STEM-234;So;0;ON;;;;;N;;;;; -1CE4C;LARGE TYPE PIECE STEM-1234;So;0;ON;;;;;N;;;;; -1CE4D;LARGE TYPE PIECE STEM-3;So;0;ON;;;;;N;;;;; -1CE4E;LARGE TYPE PIECE STEM-23;So;0;ON;;;;;N;;;;; -1CE4F;LARGE TYPE PIECE STEM-2;So;0;ON;;;;;N;;;;; -1CE50;LARGE TYPE PIECE STEM-12;So;0;ON;;;;;N;;;;; -1CE51;SEPARATED BLOCK SEXTANT-1;So;0;ON;;;;;N;;;;; -1CE52;SEPARATED BLOCK SEXTANT-2;So;0;ON;;;;;N;;;;; -1CE53;SEPARATED BLOCK SEXTANT-12;So;0;ON;;;;;N;;;;; -1CE54;SEPARATED BLOCK SEXTANT-3;So;0;ON;;;;;N;;;;; -1CE55;SEPARATED BLOCK SEXTANT-13;So;0;ON;;;;;N;;;;; -1CE56;SEPARATED BLOCK SEXTANT-23;So;0;ON;;;;;N;;;;; -1CE57;SEPARATED BLOCK SEXTANT-123;So;0;ON;;;;;N;;;;; -1CE58;SEPARATED BLOCK SEXTANT-4;So;0;ON;;;;;N;;;;; -1CE59;SEPARATED BLOCK SEXTANT-14;So;0;ON;;;;;N;;;;; -1CE5A;SEPARATED BLOCK SEXTANT-24;So;0;ON;;;;;N;;;;; -1CE5B;SEPARATED BLOCK SEXTANT-124;So;0;ON;;;;;N;;;;; -1CE5C;SEPARATED BLOCK SEXTANT-34;So;0;ON;;;;;N;;;;; -1CE5D;SEPARATED BLOCK SEXTANT-134;So;0;ON;;;;;N;;;;; -1CE5E;SEPARATED BLOCK SEXTANT-234;So;0;ON;;;;;N;;;;; -1CE5F;SEPARATED BLOCK SEXTANT-1234;So;0;ON;;;;;N;;;;; -1CE60;SEPARATED BLOCK SEXTANT-5;So;0;ON;;;;;N;;;;; -1CE61;SEPARATED BLOCK SEXTANT-15;So;0;ON;;;;;N;;;;; -1CE62;SEPARATED BLOCK SEXTANT-25;So;0;ON;;;;;N;;;;; -1CE63;SEPARATED BLOCK SEXTANT-125;So;0;ON;;;;;N;;;;; -1CE64;SEPARATED BLOCK SEXTANT-35;So;0;ON;;;;;N;;;;; -1CE65;SEPARATED BLOCK SEXTANT-135;So;0;ON;;;;;N;;;;; -1CE66;SEPARATED BLOCK SEXTANT-235;So;0;ON;;;;;N;;;;; -1CE67;SEPARATED BLOCK SEXTANT-1235;So;0;ON;;;;;N;;;;; -1CE68;SEPARATED BLOCK SEXTANT-45;So;0;ON;;;;;N;;;;; -1CE69;SEPARATED BLOCK SEXTANT-145;So;0;ON;;;;;N;;;;; -1CE6A;SEPARATED BLOCK SEXTANT-245;So;0;ON;;;;;N;;;;; -1CE6B;SEPARATED BLOCK SEXTANT-1245;So;0;ON;;;;;N;;;;; -1CE6C;SEPARATED BLOCK SEXTANT-345;So;0;ON;;;;;N;;;;; -1CE6D;SEPARATED BLOCK SEXTANT-1345;So;0;ON;;;;;N;;;;; -1CE6E;SEPARATED BLOCK SEXTANT-2345;So;0;ON;;;;;N;;;;; -1CE6F;SEPARATED BLOCK SEXTANT-12345;So;0;ON;;;;;N;;;;; -1CE70;SEPARATED BLOCK SEXTANT-6;So;0;ON;;;;;N;;;;; -1CE71;SEPARATED BLOCK SEXTANT-16;So;0;ON;;;;;N;;;;; -1CE72;SEPARATED BLOCK SEXTANT-26;So;0;ON;;;;;N;;;;; -1CE73;SEPARATED BLOCK SEXTANT-126;So;0;ON;;;;;N;;;;; -1CE74;SEPARATED BLOCK SEXTANT-36;So;0;ON;;;;;N;;;;; -1CE75;SEPARATED BLOCK SEXTANT-136;So;0;ON;;;;;N;;;;; -1CE76;SEPARATED BLOCK SEXTANT-236;So;0;ON;;;;;N;;;;; -1CE77;SEPARATED BLOCK SEXTANT-1236;So;0;ON;;;;;N;;;;; -1CE78;SEPARATED BLOCK SEXTANT-46;So;0;ON;;;;;N;;;;; -1CE79;SEPARATED BLOCK SEXTANT-146;So;0;ON;;;;;N;;;;; -1CE7A;SEPARATED BLOCK SEXTANT-246;So;0;ON;;;;;N;;;;; -1CE7B;SEPARATED BLOCK SEXTANT-1246;So;0;ON;;;;;N;;;;; -1CE7C;SEPARATED BLOCK SEXTANT-346;So;0;ON;;;;;N;;;;; -1CE7D;SEPARATED BLOCK SEXTANT-1346;So;0;ON;;;;;N;;;;; -1CE7E;SEPARATED BLOCK SEXTANT-2346;So;0;ON;;;;;N;;;;; -1CE7F;SEPARATED BLOCK SEXTANT-12346;So;0;ON;;;;;N;;;;; -1CE80;SEPARATED BLOCK SEXTANT-56;So;0;ON;;;;;N;;;;; -1CE81;SEPARATED BLOCK SEXTANT-156;So;0;ON;;;;;N;;;;; -1CE82;SEPARATED BLOCK SEXTANT-256;So;0;ON;;;;;N;;;;; -1CE83;SEPARATED BLOCK SEXTANT-1256;So;0;ON;;;;;N;;;;; -1CE84;SEPARATED BLOCK SEXTANT-356;So;0;ON;;;;;N;;;;; -1CE85;SEPARATED BLOCK SEXTANT-1356;So;0;ON;;;;;N;;;;; -1CE86;SEPARATED BLOCK SEXTANT-2356;So;0;ON;;;;;N;;;;; -1CE87;SEPARATED BLOCK SEXTANT-12356;So;0;ON;;;;;N;;;;; -1CE88;SEPARATED BLOCK SEXTANT-456;So;0;ON;;;;;N;;;;; -1CE89;SEPARATED BLOCK SEXTANT-1456;So;0;ON;;;;;N;;;;; -1CE8A;SEPARATED BLOCK SEXTANT-2456;So;0;ON;;;;;N;;;;; -1CE8B;SEPARATED BLOCK SEXTANT-12456;So;0;ON;;;;;N;;;;; -1CE8C;SEPARATED BLOCK SEXTANT-3456;So;0;ON;;;;;N;;;;; -1CE8D;SEPARATED BLOCK SEXTANT-13456;So;0;ON;;;;;N;;;;; -1CE8E;SEPARATED BLOCK SEXTANT-23456;So;0;ON;;;;;N;;;;; -1CE8F;SEPARATED BLOCK SEXTANT-123456;So;0;ON;;;;;N;;;;; -1CE90;UPPER LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE91;UPPER CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE92;UPPER CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE93;UPPER RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE94;UPPER MIDDLE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE95;UPPER MIDDLE CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE96;UPPER MIDDLE CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE97;UPPER MIDDLE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE98;LOWER MIDDLE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE99;LOWER MIDDLE CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE9A;LOWER MIDDLE CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE9B;LOWER MIDDLE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE9C;LOWER LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE9D;LOWER CENTRE LEFT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE9E;LOWER CENTRE RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CE9F;LOWER RIGHT ONE SIXTEENTH BLOCK;So;0;ON;;;;;N;;;;; -1CEA0;RIGHT HALF LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEA1;RIGHT THREE QUARTERS LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEA2;LEFT THREE QUARTERS LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEA3;LEFT HALF LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEA4;LOWER HALF LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEA5;LOWER THREE QUARTERS LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEA6;UPPER THREE QUARTERS LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEA7;UPPER HALF LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEA8;LEFT HALF UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEA9;LEFT THREE QUARTERS UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEAA;RIGHT THREE QUARTERS UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEAB;RIGHT HALF UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEAC;UPPER HALF RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEAD;UPPER THREE QUARTERS RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEAE;LOWER THREE QUARTERS RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1CEAF;LOWER HALF RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1F8B3;DOWNWARDS BLACK ARROW TO BAR;So;0;ON;;;;;N;;;;; -1F8B4;NEGATIVE SQUARED LEFTWARDS ARROW;So;0;ON;;;;;N;;;;; -1F8B5;NEGATIVE SQUARED UPWARDS ARROW;So;0;ON;;;;;N;;;;; -1F8B6;NEGATIVE SQUARED RIGHTWARDS ARROW;So;0;ON;;;;;N;;;;; -1F8B7;NEGATIVE SQUARED DOWNWARDS ARROW;So;0;ON;;;;;N;;;;; -1F8B8;NORTH WEST ARROW FROM BAR;So;0;ON;;;;;N;;;;; -1F8B9;NORTH EAST ARROW FROM BAR;So;0;ON;;;;;N;;;;; -1F8BA;SOUTH EAST ARROW FROM BAR;So;0;ON;;;;;N;;;;; -1F8BB;SOUTH WEST ARROW FROM BAR;So;0;ON;;;;;N;;;;; -1FBCB;WHITE CROSS MARK;So;0;ON;;;;;N;;;;; -1FBCC;RAISED SMALL LEFT SQUARE BRACKET;So;0;ON;;;;;N;;;;; -1FBCD;BLACK SMALL UP-POINTING CHEVRON;So;0;ON;;;;;N;;;;; -1FBCE;LEFT TWO THIRDS BLOCK;So;0;ON;;;;;N;;;;; -1FBCF;LEFT ONE THIRD BLOCK;So;0;ON;;;;;N;;;;; -1FBD0;BOX DRAWINGS LIGHT DIAGONAL MIDDLE RIGHT TO LOWER LEFT;So;0;ON;;;;;N;;;;; -1FBD1;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO MIDDLE LEFT;So;0;ON;;;;;N;;;;; -1FBD2;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT;So;0;ON;;;;;N;;;;; -1FBD3;BOX DRAWINGS LIGHT DIAGONAL MIDDLE LEFT TO LOWER RIGHT;So;0;ON;;;;;N;;;;; -1FBD4;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER CENTRE;So;0;ON;;;;;N;;;;; -1FBD5;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;; -1FBD6;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER CENTRE;So;0;ON;;;;;N;;;;; -1FBD7;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO LOWER LEFT;So;0;ON;;;;;N;;;;; -1FBD8;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT;So;0;ON;;;;;N;;;;; -1FBD9;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO MIDDLE CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;; -1FBDA;BOX DRAWINGS LIGHT DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;; -1FBDB;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO LOWER LEFT;So;0;ON;;;;;N;;;;; -1FBDC;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER CENTRE TO UPPER RIGHT;So;0;ON;;;;;N;;;;; -1FBDD;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO MIDDLE LEFT TO LOWER RIGHT;So;0;ON;;;;;N;;;;; -1FBDE;BOX DRAWINGS LIGHT DIAGONAL LOWER LEFT TO UPPER CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;; -1FBDF;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT TO LOWER LEFT;So;0;ON;;;;;N;;;;; -1FBE0;TOP JUSTIFIED LOWER HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; -1FBE1;RIGHT JUSTIFIED LEFT HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; -1FBE2;BOTTOM JUSTIFIED UPPER HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; -1FBE3;LEFT JUSTIFIED RIGHT HALF WHITE CIRCLE;So;0;ON;;;;;N;;;;; -1FBE4;UPPER CENTRE ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1FBE5;LOWER CENTRE ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1FBE6;MIDDLE LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1FBE7;MIDDLE RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -1FBE8;TOP JUSTIFIED LOWER HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; -1FBE9;RIGHT JUSTIFIED LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; -1FBEA;BOTTOM JUSTIFIED UPPER HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; -1FBEB;LEFT JUSTIFIED RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; -1FBEC;TOP RIGHT JUSTIFIED LOWER LEFT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;; -1FBED;BOTTOM LEFT JUSTIFIED UPPER RIGHT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;; -1FBEE;BOTTOM RIGHT JUSTIFIED UPPER LEFT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;; -1FBEF;TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE;So;0;ON;;;;;N;;;;; +# Unused. diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index 890683e1b1..df479637b4 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "31.7.1", + "version": "31.8.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "31.7.1" + "@iosevka/data-export": "31.8.0" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index 380ae1c1dd..e70649c0f2 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,10 +1,10 @@ { "name": "@iosevka/misc", - "version": "31.7.1", + "version": "31.8.0", "private": true, "dependencies": { "semver": "^7.6.3", "wawoff2": "^2.0.1", - "@iosevka/util": "31.7.1" + "@iosevka/util": "31.8.0" } }