diff --git a/CHANGELOG.md b/CHANGELOG.md index db7b29faeb..5cd8362302 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ ## Modifications since last major version +### 29.2.1 + +* Refine shape of `U+1CC09`, `U+1CC0A`, `U+1CC10` and `U+1CC11`. +* Refine terminal shape of Schwa and Reversed Lower E (`U+018F`, `U+0258`..`U+025A`, `U+04D8`..`U+04D9`) under italics. +* Make CYRILLIC CAPITAL LETTER SHHA (`U+04BA`) follow variants of Capital H (`cv08`). +* Add characters: + - ARC (`U+2312`) ... SECTOR (`U+2314`). + - ERASE TO THE RIGHT (`U+2326`) ... X IN A RECTANGLE BOX (`U+2327`) (#2289). + - ERASE TO THE LEFT (`U+232B`) (#2289). + - NOT CHECK MARK (`U+237B`). + - BELL SYMBOL (`U+237E`) ... VERTICAL LINE WITH MIDDLE DOT (`U+237F`). + - WHITE SQUARE WITH CENTRE VERTICAL LINE (`U+2385`). + - MONOSTABLE SYMBOL (`U+238D`). + - DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT (`U+23BE`) ... DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT (`U+23CC`). + - EARTH GROUND (`U+23DA`) ... FUSE (`U+23DB`). + - WHITE TRAPEZIUM (`U+23E2`). + - STRAIGHTNESS (`U+23E4`) ... FLATNESS (`U+23E5`). + - UP ARROWHEAD IN A RECTANGLE BOX (`U+2BB9`). + - BALLOT BOX WITH LIGHT X (`U+2BBD`) ... CIRCLED BOLD X (`U+2BBF`). + - LEFT-FACING SNAKE HEAD WITH OPEN MOUTH (`U+1CC70`) ... DOWN-FACING SNAKE HEAD WITH CLOSED MOUTH (`U+1CC77`) (Proposed for Unicode 16; L2/21-235). + - UPPER LEFT QUADRANT FACE WITH OPEN EYES (`U+1CCA6`) ... BOTTOM HALF FORWARD-FACING RUNNER FRAME-4 (`U+1CDF4`) (Proposed for Unicode 16; L2/21-235). + - TOP HALF FLAILING ROBOT FRAME-1 (`U+1CDF6`) ... TOP HALF FLAILING ROBOT FRAME-2 (`U+1CDF7`) (Proposed for Unicode 16; L2/21-235). +* Fix `zero` feature application on MATHEMATICAL MONOSPACE DIGIT ZERO (`U+1D7F6`) (#2298). + + ### 29.2.0 * Drop NWID glyphs for ligatures in quasi-proportionals as they do not make sense for these styles. This change will save around 2MB for each Aile or Etoile font. diff --git a/changes/29.2.1.md b/changes/29.2.1.md new file mode 100644 index 0000000000..cafc89ce5c --- /dev/null +++ b/changes/29.2.1.md @@ -0,0 +1,21 @@ +* Refine shape of `U+1CC09`, `U+1CC0A`, `U+1CC10` and `U+1CC11`. +* Refine terminal shape of Schwa and Reversed Lower E (`U+018F`, `U+0258`..`U+025A`, `U+04D8`..`U+04D9`) under italics. +* Make CYRILLIC CAPITAL LETTER SHHA (`U+04BA`) follow variants of Capital H (`cv08`). +* Add characters: + - ARC (`U+2312`) ... SECTOR (`U+2314`). + - ERASE TO THE RIGHT (`U+2326`) ... X IN A RECTANGLE BOX (`U+2327`) (#2289). + - ERASE TO THE LEFT (`U+232B`) (#2289). + - NOT CHECK MARK (`U+237B`). + - BELL SYMBOL (`U+237E`) ... VERTICAL LINE WITH MIDDLE DOT (`U+237F`). + - WHITE SQUARE WITH CENTRE VERTICAL LINE (`U+2385`). + - MONOSTABLE SYMBOL (`U+238D`). + - DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT (`U+23BE`) ... DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT (`U+23CC`). + - EARTH GROUND (`U+23DA`) ... FUSE (`U+23DB`). + - WHITE TRAPEZIUM (`U+23E2`). + - STRAIGHTNESS (`U+23E4`) ... FLATNESS (`U+23E5`). + - UP ARROWHEAD IN A RECTANGLE BOX (`U+2BB9`). + - BALLOT BOX WITH LIGHT X (`U+2BBD`) ... CIRCLED BOLD X (`U+2BBF`). + - LEFT-FACING SNAKE HEAD WITH OPEN MOUTH (`U+1CC70`) ... DOWN-FACING SNAKE HEAD WITH CLOSED MOUTH (`U+1CC77`) (Proposed for Unicode 16; L2/21-235). + - UPPER LEFT QUADRANT FACE WITH OPEN EYES (`U+1CCA6`) ... BOTTOM HALF FORWARD-FACING RUNNER FRAME-4 (`U+1CDF4`) (Proposed for Unicode 16; L2/21-235). + - TOP HALF FLAILING ROBOT FRAME-1 (`U+1CDF6`) ... TOP HALF FLAILING ROBOT FRAME-2 (`U+1CDF7`) (Proposed for Unicode 16; L2/21-235). +* Fix `zero` feature application on MATHEMATICAL MONOSPACE DIGIT ZERO (`U+1D7F6`) (#2298). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 7b2e4b925f..eaddae7f5d 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 29.2.0 +# Package list of Release 29.2.1 ## 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 2b4e746175..62c2da687e 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -33,7 +33,7 @@ - `cv08`: - H (`U+0048`), Ĥ (`U+0124`), Ħ (`U+0126`), Ƕ (`U+01F6`), Ȟ (`U+021E`), ʜ (`U+029C`), Ͱ (`U+0370`), ͱ (`U+0371`), Ή (`U+0389`), Η (`U+0397`), Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`), ᴴ (`U+1D34`), Ḣ (`U+1E22`), Ḥ (`U+1E24`), Ḧ (`U+1E26`), Ḩ (`U+1E28`), Ḫ (`U+1E2A`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), Ὴ (`U+1FCA`), Ή (`U+1FCB`), ῌ (`U+1FCC`), ␁ (`U+2401`), ␉ (`U+2409`), Ⓗ (`U+24BD`), Ⱨ (`U+2C67`), Ⱶ (`U+2C75`), ⱶ (`U+2C76`), Ꜧ (`U+A726`), Ɥ (`U+A78D`), Ɦ (`U+A7AA`), Ꟶ (`U+A7F5`), ꟶ (`U+A7F6`), ꟸ (`U+A7F8`), 𐞖 (`U+10796`), 𜳝 (`U+1CCDD`), 𝐇 (`U+1D407`), 𝐻 (`U+1D43B`), 𝑯 (`U+1D46F`), 𝖧 (`U+1D5A7`), 𝗛 (`U+1D5DB`), 𝘏 (`U+1D60F`), 𝙃 (`U+1D643`), 𝙷 (`U+1D677`), 𝚮 (`U+1D6AE`), 𝛨 (`U+1D6E8`), 𝜢 (`U+1D722`), 𝝜 (`U+1D75C`), 𝞖 (`U+1D796`), 🄗 (`U+1F117`), 🄷 (`U+1F137`), 🅊 (`U+1F14A`), 🅗 (`U+1F157`), 🅷 (`U+1F177`), 🆦 (`U+1F1A6`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`), 🆪 (`U+1F1AA`), 🆫 (`U+1F1AB`) + H (`U+0048`), Ĥ (`U+0124`), Ħ (`U+0126`), Ƕ (`U+01F6`), Ȟ (`U+021E`), ʜ (`U+029C`), Ͱ (`U+0370`), ͱ (`U+0371`), Ή (`U+0389`), Η (`U+0397`), Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Һ (`U+04BA`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԧ (`U+0526`), Ԩ (`U+0528`), ᴴ (`U+1D34`), Ḣ (`U+1E22`), Ḥ (`U+1E24`), Ḧ (`U+1E26`), Ḩ (`U+1E28`), Ḫ (`U+1E2A`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), Ὴ (`U+1FCA`), Ή (`U+1FCB`), ῌ (`U+1FCC`), ␁ (`U+2401`), ␉ (`U+2409`), Ⓗ (`U+24BD`), Ⱨ (`U+2C67`), Ⱶ (`U+2C75`), ⱶ (`U+2C76`), Ꜧ (`U+A726`), Ɥ (`U+A78D`), Ɦ (`U+A7AA`), Ꟶ (`U+A7F5`), ꟶ (`U+A7F6`), ꟸ (`U+A7F8`), 𐞖 (`U+10796`), 𜳝 (`U+1CCDD`), 𝐇 (`U+1D407`), 𝐻 (`U+1D43B`), 𝑯 (`U+1D46F`), 𝖧 (`U+1D5A7`), 𝗛 (`U+1D5DB`), 𝘏 (`U+1D60F`), 𝙃 (`U+1D643`), 𝙷 (`U+1D677`), 𝚮 (`U+1D6AE`), 𝛨 (`U+1D6E8`), 𝜢 (`U+1D722`), 𝝜 (`U+1D75C`), 𝞖 (`U+1D796`), 🄗 (`U+1F117`), 🄷 (`U+1F137`), 🅊 (`U+1F14A`), 🅗 (`U+1F157`), 🅷 (`U+1F177`), 🆦 (`U+1F1A6`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`), 🆪 (`U+1F1AA`), 🆫 (`U+1F1AB`) - `cv09`: @@ -385,7 +385,7 @@ - `cv96`: - \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⟓ (`U+27D3`), ⟔ (`U+27D4`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⪽ (`U+2ABD`), ⪾ (`U+2ABE`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) + \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ⍿ (`U+237F`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⟓ (`U+27D3`), ⟔ (`U+27D4`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⪽ (`U+2ABD`), ⪾ (`U+2ABE`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) - `cv97`: @@ -496,7 +496,7 @@ - `cv08`: - H (`U+0048`), Ĥ (`U+0124`), Ħ (`U+0126`), Ƕ (`U+01F6`), Ȟ (`U+021E`), ʜ (`U+029C`), Ͱ (`U+0370`), ͱ (`U+0371`), Ή (`U+0389`), Η (`U+0397`), Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`), ᴴ (`U+1D34`), Ḣ (`U+1E22`), Ḥ (`U+1E24`), Ḧ (`U+1E26`), Ḩ (`U+1E28`), Ḫ (`U+1E2A`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), Ὴ (`U+1FCA`), Ή (`U+1FCB`), ῌ (`U+1FCC`), ␁ (`U+2401`), ␉ (`U+2409`), Ⓗ (`U+24BD`), Ⱨ (`U+2C67`), Ⱶ (`U+2C75`), ⱶ (`U+2C76`), Ꜧ (`U+A726`), Ɥ (`U+A78D`), Ɦ (`U+A7AA`), Ꟶ (`U+A7F5`), ꟶ (`U+A7F6`), ꟸ (`U+A7F8`), 𐞖 (`U+10796`), 𜳝 (`U+1CCDD`), 𝐇 (`U+1D407`), 𝐻 (`U+1D43B`), 𝑯 (`U+1D46F`), 𝖧 (`U+1D5A7`), 𝗛 (`U+1D5DB`), 𝘏 (`U+1D60F`), 𝙃 (`U+1D643`), 𝙷 (`U+1D677`), 𝚮 (`U+1D6AE`), 𝛨 (`U+1D6E8`), 𝜢 (`U+1D722`), 𝝜 (`U+1D75C`), 𝞖 (`U+1D796`), 🄗 (`U+1F117`), 🄷 (`U+1F137`), 🅊 (`U+1F14A`), 🅗 (`U+1F157`), 🅷 (`U+1F177`), 🆦 (`U+1F1A6`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`), 🆪 (`U+1F1AA`), 🆫 (`U+1F1AB`) + H (`U+0048`), Ĥ (`U+0124`), Ħ (`U+0126`), Ƕ (`U+01F6`), Ȟ (`U+021E`), ʜ (`U+029C`), Ͱ (`U+0370`), ͱ (`U+0371`), Ή (`U+0389`), Η (`U+0397`), Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Һ (`U+04BA`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԧ (`U+0526`), Ԩ (`U+0528`), ᴴ (`U+1D34`), Ḣ (`U+1E22`), Ḥ (`U+1E24`), Ḧ (`U+1E26`), Ḩ (`U+1E28`), Ḫ (`U+1E2A`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), Ὴ (`U+1FCA`), Ή (`U+1FCB`), ῌ (`U+1FCC`), ␁ (`U+2401`), ␉ (`U+2409`), Ⓗ (`U+24BD`), Ⱨ (`U+2C67`), Ⱶ (`U+2C75`), ⱶ (`U+2C76`), Ꜧ (`U+A726`), Ɥ (`U+A78D`), Ɦ (`U+A7AA`), Ꟶ (`U+A7F5`), ꟶ (`U+A7F6`), ꟸ (`U+A7F8`), 𐞖 (`U+10796`), 𜳝 (`U+1CCDD`), 𝐇 (`U+1D407`), 𝐻 (`U+1D43B`), 𝑯 (`U+1D46F`), 𝖧 (`U+1D5A7`), 𝗛 (`U+1D5DB`), 𝘏 (`U+1D60F`), 𝙃 (`U+1D643`), 𝙷 (`U+1D677`), 𝚮 (`U+1D6AE`), 𝛨 (`U+1D6E8`), 𝜢 (`U+1D722`), 𝝜 (`U+1D75C`), 𝞖 (`U+1D796`), 🄗 (`U+1F117`), 🄷 (`U+1F137`), 🅊 (`U+1F14A`), 🅗 (`U+1F157`), 🅷 (`U+1F177`), 🆦 (`U+1F1A6`), 🆧 (`U+1F1A7`), 🆨 (`U+1F1A8`), 🆪 (`U+1F1AA`), 🆫 (`U+1F1AB`) - `cv09`: @@ -912,7 +912,7 @@ - `VSAM`: - | (`U+007C`), ¦ (`U+00A6`), ‖ (`U+2016`), ⦀ (`U+2980`) + | (`U+007C`), ¦ (`U+00A6`), ‖ (`U+2016`), ⍿ (`U+237F`), ⦀ (`U+2980`) - `VSAN`: diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index 4b5238eaba..113d451574 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -9,7 +9,7 @@ - + @@ -21,7 +21,7 @@ - + diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 0f99be2d3c..a0e11c145c 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -9,7 +9,7 @@ - + @@ -21,7 +21,7 @@ - + diff --git a/images/cs-block-cyrillic-supplement.dark.svg b/images/cs-block-cyrillic-supplement.dark.svg index b0b70c9768..2b406ee118 100644 --- a/images/cs-block-cyrillic-supplement.dark.svg +++ b/images/cs-block-cyrillic-supplement.dark.svg @@ -57,7 +57,7 @@ - + diff --git a/images/cs-block-cyrillic-supplement.light.svg b/images/cs-block-cyrillic-supplement.light.svg index f7c901618b..849bb7d2dd 100644 --- a/images/cs-block-cyrillic-supplement.light.svg +++ b/images/cs-block-cyrillic-supplement.light.svg @@ -57,7 +57,7 @@ - + diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg index 2c1132ffb7..9871137a7a 100644 --- a/images/cs-block-cyrillic.dark.svg +++ b/images/cs-block-cyrillic.dark.svg @@ -204,8 +204,8 @@ - - + + diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg index 75dd5fee65..0230cb755e 100644 --- a/images/cs-block-cyrillic.light.svg +++ b/images/cs-block-cyrillic.light.svg @@ -204,8 +204,8 @@ - - + + diff --git a/images/cs-block-emoticons.dark.svg b/images/cs-block-emoticons.dark.svg index d5d8b83718..c667b7926b 100644 --- a/images/cs-block-emoticons.dark.svg +++ b/images/cs-block-emoticons.dark.svg @@ -20,11 +20,11 @@ - + - - - + + + diff --git a/images/cs-block-emoticons.light.svg b/images/cs-block-emoticons.light.svg index 50af8ebf18..c4b8693467 100644 --- a/images/cs-block-emoticons.light.svg +++ b/images/cs-block-emoticons.light.svg @@ -20,11 +20,11 @@ - + - - - + + + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg index 9758262618..0681229ffa 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg @@ -117,34 +117,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1272,38 +1276,38 @@ - - + + - + - + - + - - + + - - + + - - + + @@ -1318,47 +1322,47 @@ - + - + - + - + - + - + - + - + - + @@ -1368,32 +1372,32 @@ - + - + - + - + - + - + @@ -1418,7 +1422,7 @@ - + @@ -1538,42 +1542,42 @@ - + - + - + - + - + - + - + - + @@ -1658,7 +1662,7 @@ - + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg index e80e704fde..0e0c265e0f 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg @@ -117,34 +117,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1272,38 +1276,38 @@ - - + + - + - + - + - - + + - - + + - - + + @@ -1318,47 +1322,47 @@ - + - + - + - + - + - + - + - + - + @@ -1368,32 +1372,32 @@ - + - + - + - + - + - + @@ -1418,7 +1422,7 @@ - + @@ -1538,42 +1542,42 @@ - + - + - + - + - + - + - + - + @@ -1658,7 +1662,7 @@ - + diff --git a/images/cs-block-miscellaneous-symbols.dark.svg b/images/cs-block-miscellaneous-symbols.dark.svg index 4d38869095..d81fc92529 100644 --- a/images/cs-block-miscellaneous-symbols.dark.svg +++ b/images/cs-block-miscellaneous-symbols.dark.svg @@ -42,8 +42,8 @@ - - + + diff --git a/images/cs-block-miscellaneous-symbols.light.svg b/images/cs-block-miscellaneous-symbols.light.svg index 3f718df6f5..b2eb1174c0 100644 --- a/images/cs-block-miscellaneous-symbols.light.svg +++ b/images/cs-block-miscellaneous-symbols.light.svg @@ -42,8 +42,8 @@ - - + + diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index 7c4b6e88d3..cd938665fa 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -30,146 +30,177 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -362,23 +393,23 @@ - - + + - - + + - - + + - + @@ -398,7 +429,7 @@ - + @@ -413,22 +444,22 @@ - + - + - + - + @@ -443,22 +474,22 @@ - + - + - + - + @@ -472,13 +503,13 @@ - - + + - - + + @@ -488,17 +519,17 @@ - + - + - - + + @@ -558,57 +589,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -623,82 +654,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -713,82 +744,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -803,82 +834,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -893,62 +924,62 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -958,17 +989,17 @@ - + - - + + - - + + @@ -1007,8 +1038,8 @@ - - + + @@ -1023,22 +1054,22 @@ - + - + - + - + @@ -1047,8 +1078,8 @@ - - + + @@ -1093,12 +1124,12 @@ - + - + @@ -1128,27 +1159,27 @@ - + - + - + - + - + @@ -1163,77 +1194,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1253,22 +1284,22 @@ - + - + - + - + @@ -1293,42 +1324,42 @@ - + - + - + - + - + - + - - + + - - + + @@ -1342,68 +1373,68 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1413,12 +1444,12 @@ - + - + @@ -1482,13 +1513,13 @@ - - + + - - + + @@ -1532,8 +1563,8 @@ - - + + @@ -1542,13 +1573,13 @@ - - + + - - + + @@ -1563,42 +1594,42 @@ - + - + - + - + - + - + - + - + @@ -1633,57 +1664,57 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index 0a2800cd11..75170f1dbc 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -30,146 +30,177 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -362,23 +393,23 @@ - - + + - - + + - - + + - + @@ -398,7 +429,7 @@ - + @@ -413,22 +444,22 @@ - + - + - + - + @@ -443,22 +474,22 @@ - + - + - + - + @@ -472,13 +503,13 @@ - - + + - - + + @@ -488,17 +519,17 @@ - + - + - - + + @@ -558,57 +589,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -623,82 +654,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -713,82 +744,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -803,82 +834,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -893,62 +924,62 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -958,17 +989,17 @@ - + - - + + - - + + @@ -1007,8 +1038,8 @@ - - + + @@ -1023,22 +1054,22 @@ - + - + - + - + @@ -1047,8 +1078,8 @@ - - + + @@ -1093,12 +1124,12 @@ - + - + @@ -1128,27 +1159,27 @@ - + - + - + - + - + @@ -1163,77 +1194,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1253,22 +1284,22 @@ - + - + - + - + @@ -1293,42 +1324,42 @@ - + - + - + - + - + - + - - + + - - + + @@ -1342,68 +1373,68 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1413,12 +1444,12 @@ - + - + @@ -1482,13 +1513,13 @@ - - + + - - + + @@ -1532,8 +1563,8 @@ - - + + @@ -1542,13 +1573,13 @@ - - + + - - + + @@ -1563,42 +1594,42 @@ - + - + - + - + - + - + - + - + @@ -1633,57 +1664,57 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-symbols-for-legacy-computing-supplement-proposed.dark.svg b/images/cs-block-symbols-for-legacy-computing-supplement-proposed.dark.svg index 85975e4e6c..8d4249045a 100644 --- a/images/cs-block-symbols-for-legacy-computing-supplement-proposed.dark.svg +++ b/images/cs-block-symbols-for-legacy-computing-supplement-proposed.dark.svg @@ -28,13 +28,13 @@ - - + + - - + + @@ -85,488 +85,529 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1165,33 +1206,33 @@ - - + + - - + + - - + + - - + + - - + + - - + + @@ -1252,37 +1293,37 @@ - + - + - + - + - + - + - + @@ -1297,83 +1338,83 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -1389,82 +1430,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1480,12 +1521,12 @@ - + - + @@ -1515,37 +1556,37 @@ - + - + - + - + - + - + - + @@ -1600,53 +1641,53 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1661,53 +1702,53 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1874,52 +1915,52 @@ - + - + - + - + - + - + - + - + - + - + @@ -1935,82 +1976,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2026,52 +2067,52 @@ - + - + - + - + - + - + - + - + - + - + @@ -2117,82 +2158,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2208,82 +2249,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2299,82 +2340,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2390,82 +2431,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2481,82 +2522,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2572,82 +2613,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2663,82 +2704,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2754,82 +2795,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2845,82 +2886,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2936,82 +2977,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3027,82 +3068,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3118,82 +3159,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3209,82 +3250,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3300,82 +3341,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3391,32 +3432,32 @@ - + - + - + - + - + - + @@ -3481,28 +3522,28 @@ - - + + - - + + - - + + - - + + - - + + @@ -3511,13 +3552,13 @@ - - + + - - + + @@ -3573,82 +3614,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3664,82 +3705,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3755,82 +3796,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3846,82 +3887,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3937,82 +3978,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4028,82 +4069,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4119,82 +4160,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4210,82 +4251,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4301,82 +4342,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4392,82 +4433,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4483,82 +4524,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-symbols-for-legacy-computing-supplement-proposed.light.svg b/images/cs-block-symbols-for-legacy-computing-supplement-proposed.light.svg index aabf498c03..d017f21f48 100644 --- a/images/cs-block-symbols-for-legacy-computing-supplement-proposed.light.svg +++ b/images/cs-block-symbols-for-legacy-computing-supplement-proposed.light.svg @@ -28,13 +28,13 @@ - - + + - - + + @@ -85,488 +85,529 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1165,33 +1206,33 @@ - - + + - - + + - - + + - - + + - - + + - - + + @@ -1252,37 +1293,37 @@ - + - + - + - + - + - + - + @@ -1297,83 +1338,83 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -1389,82 +1430,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1480,12 +1521,12 @@ - + - + @@ -1515,37 +1556,37 @@ - + - + - + - + - + - + - + @@ -1600,53 +1641,53 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1661,53 +1702,53 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1874,52 +1915,52 @@ - + - + - + - + - + - + - + - + - + - + @@ -1935,82 +1976,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2026,52 +2067,52 @@ - + - + - + - + - + - + - + - + - + - + @@ -2117,82 +2158,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2208,82 +2249,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2299,82 +2340,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2390,82 +2431,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2481,82 +2522,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2572,82 +2613,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2663,82 +2704,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2754,82 +2795,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2845,82 +2886,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2936,82 +2977,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3027,82 +3068,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3118,82 +3159,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3209,82 +3250,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3300,82 +3341,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3391,32 +3432,32 @@ - + - + - + - + - + - + @@ -3481,28 +3522,28 @@ - - + + - - + + - - + + - - + + - - + + @@ -3511,13 +3552,13 @@ - - + + - - + + @@ -3573,82 +3614,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3664,82 +3705,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3755,82 +3796,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3846,82 +3887,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3937,82 +3978,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4028,82 +4069,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4119,82 +4160,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4210,82 +4251,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4301,82 +4342,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4392,82 +4433,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4483,82 +4524,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cv-c-bilateral-inward-serifed.dark.svg b/images/cv-c-bilateral-inward-serifed.dark.svg index c25d609045..966bab6ef9 100644 --- a/images/cv-c-bilateral-inward-serifed.dark.svg +++ b/images/cv-c-bilateral-inward-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-c-bilateral-inward-serifed.light.svg b/images/cv-c-bilateral-inward-serifed.light.svg index 6184940794..f5c1f5c90b 100644 --- a/images/cv-c-bilateral-inward-serifed.light.svg +++ b/images/cv-c-bilateral-inward-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-c-bilateral-inward-serifed.dark.svg b/images/cv-capital-c-bilateral-inward-serifed.dark.svg index ae12316e69..f194b936ed 100644 --- a/images/cv-capital-c-bilateral-inward-serifed.dark.svg +++ b/images/cv-capital-c-bilateral-inward-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-c-bilateral-inward-serifed.light.svg b/images/cv-capital-c-bilateral-inward-serifed.light.svg index d51bac61bf..14a6705ac5 100644 --- a/images/cv-capital-c-bilateral-inward-serifed.light.svg +++ b/images/cv-capital-c-bilateral-inward-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-s-bilateral-inward-serifed.dark.svg b/images/cv-capital-s-bilateral-inward-serifed.dark.svg index 97baa314e6..a653318fae 100644 --- a/images/cv-capital-s-bilateral-inward-serifed.dark.svg +++ b/images/cv-capital-s-bilateral-inward-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-capital-s-bilateral-inward-serifed.light.svg b/images/cv-capital-s-bilateral-inward-serifed.light.svg index 62889d468f..af5ccf118e 100644 --- a/images/cv-capital-s-bilateral-inward-serifed.light.svg +++ b/images/cv-capital-s-bilateral-inward-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-capital-ze-bilateral-inward-serifed.dark.svg b/images/cv-cyrl-capital-ze-bilateral-inward-serifed.dark.svg index 22042bef45..7c3331a34c 100644 --- a/images/cv-cyrl-capital-ze-bilateral-inward-serifed.dark.svg +++ b/images/cv-cyrl-capital-ze-bilateral-inward-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-capital-ze-bilateral-inward-serifed.light.svg b/images/cv-cyrl-capital-ze-bilateral-inward-serifed.light.svg index 36d036043c..51029c5f17 100644 --- a/images/cv-cyrl-capital-ze-bilateral-inward-serifed.light.svg +++ b/images/cv-cyrl-capital-ze-bilateral-inward-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ze-bilateral-inward-serifed.dark.svg b/images/cv-cyrl-ze-bilateral-inward-serifed.dark.svg index 0374eda2e8..e18d1c2343 100644 --- a/images/cv-cyrl-ze-bilateral-inward-serifed.dark.svg +++ b/images/cv-cyrl-ze-bilateral-inward-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ze-bilateral-inward-serifed.light.svg b/images/cv-cyrl-ze-bilateral-inward-serifed.light.svg index e4bb629d8f..77361f9e25 100644 --- a/images/cv-cyrl-ze-bilateral-inward-serifed.light.svg +++ b/images/cv-cyrl-ze-bilateral-inward-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-s-bilateral-inward-serifed.dark.svg b/images/cv-s-bilateral-inward-serifed.dark.svg index 29b6d3c5c8..7277df2142 100644 --- a/images/cv-s-bilateral-inward-serifed.dark.svg +++ b/images/cv-s-bilateral-inward-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-s-bilateral-inward-serifed.light.svg b/images/cv-s-bilateral-inward-serifed.light.svg index 9b36f27fbd..6889b677ef 100644 --- a/images/cv-s-bilateral-inward-serifed.light.svg +++ b/images/cv-s-bilateral-inward-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.dark.svg b/images/package-sample-IosevkaFixedSS16.dark.svg index f135728f64..39b95b4ba1 100644 --- a/images/package-sample-IosevkaFixedSS16.dark.svg +++ b/images/package-sample-IosevkaFixedSS16.dark.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.light.svg b/images/package-sample-IosevkaFixedSS16.light.svg index c13d8656a9..c394c8c959 100644 --- a/images/package-sample-IosevkaFixedSS16.light.svg +++ b/images/package-sample-IosevkaFixedSS16.light.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.dark.svg b/images/package-sample-IosevkaSS16.dark.svg index f135728f64..39b95b4ba1 100644 --- a/images/package-sample-IosevkaSS16.dark.svg +++ b/images/package-sample-IosevkaSS16.dark.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.light.svg b/images/package-sample-IosevkaSS16.light.svg index c13d8656a9..c394c8c959 100644 --- a/images/package-sample-IosevkaSS16.light.svg +++ b/images/package-sample-IosevkaSS16.light.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.dark.svg b/images/package-sample-IosevkaTermSS16.dark.svg index f135728f64..39b95b4ba1 100644 --- a/images/package-sample-IosevkaTermSS16.dark.svg +++ b/images/package-sample-IosevkaTermSS16.dark.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.light.svg b/images/package-sample-IosevkaTermSS16.light.svg index c13d8656a9..c394c8c959 100644 --- a/images/package-sample-IosevkaTermSS16.light.svg +++ b/images/package-sample-IosevkaTermSS16.light.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index d09e09c09f..7f257b4b1f 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index 75fade8d2b..ae97774f68 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/images/ss-u-ss16-1.dark.svg b/images/ss-u-ss16-1.dark.svg index 5638a6396b..0aa7bdc08a 100644 --- a/images/ss-u-ss16-1.dark.svg +++ b/images/ss-u-ss16-1.dark.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/images/ss-u-ss16-1.light.svg b/images/ss-u-ss16-1.light.svg index e78c065a1e..7984011821 100644 --- a/images/ss-u-ss16-1.light.svg +++ b/images/ss-u-ss16-1.light.svg @@ -3,7 +3,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -125,7 +125,7 @@ - + diff --git a/package-lock.json b/package-lock.json index 6f82eafbfe..17c3072aaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "29.2.0", + "version": "29.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "29.2.0", + "version": "29.2.1", "workspaces": [ "packages/*", "tools/*" @@ -4310,16 +4310,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "29.2.0", - "@iosevka/font-otl": "29.2.0", - "@iosevka/geometry": "29.2.0", - "@iosevka/geometry-cache": "29.2.0", - "@iosevka/glyph": "29.2.0", - "@iosevka/param": "29.2.0", - "@iosevka/util": "29.2.0", + "@iosevka/font-glyphs": "29.2.1", + "@iosevka/font-otl": "29.2.1", + "@iosevka/geometry": "29.2.1", + "@iosevka/geometry-cache": "29.2.1", + "@iosevka/glyph": "29.2.1", + "@iosevka/param": "29.2.1", + "@iosevka/util": "29.2.1", "harfbuzzjs": "^0.3.4", "ot-builder": "^1.7.3", "semver": "^7.6.0" @@ -4327,100 +4327,100 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { - "@iosevka/font-kits": "29.2.0", - "@iosevka/geometry": "29.2.0", - "@iosevka/geometry-cache": "29.2.0", - "@iosevka/glyph": "29.2.0", - "@iosevka/util": "29.2.0", + "@iosevka/font-kits": "29.2.1", + "@iosevka/geometry": "29.2.1", + "@iosevka/geometry-cache": "29.2.1", + "@iosevka/glyph": "29.2.1", + "@iosevka/util": "29.2.1", "typo-geom": "^0.15.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { - "@iosevka/geometry": "29.2.0", - "@iosevka/glyph": "29.2.0", - "@iosevka/util": "29.2.0" + "@iosevka/geometry": "29.2.1", + "@iosevka/glyph": "29.2.1", + "@iosevka/util": "29.2.1" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { - "@iosevka/font-glyphs": "29.2.0", - "@iosevka/glyph": "29.2.0", + "@iosevka/font-glyphs": "29.2.1", + "@iosevka/glyph": "29.2.1", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { - "@iosevka/util": "29.2.0", + "@iosevka/util": "29.2.1", "spiro": "^3.0.1", "typo-geom": "^0.15.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { - "@iosevka/geometry": "29.2.0", + "@iosevka/geometry": "29.2.1", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { - "@iosevka/geometry": "29.2.0" + "@iosevka/geometry": "29.2.1" } }, "packages/param": { "name": "@iosevka/param", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { - "@iosevka/util": "29.2.0" + "@iosevka/util": "29.2.1" } }, "packages/util": { "name": "@iosevka/util", - "version": "29.2.0" + "version": "29.2.1" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "29.2.0", + "@iosevka/param": "29.2.1", "@unicode/unicode-15.1.0": "^1.5.2" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "29.2.0", + "@iosevka/param": "29.2.1", "@unicode/unicode-15.1.0": "^1.5.2", "cldr": "^7.5.0" } }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { - "@iosevka/data-export": "29.2.0" + "@iosevka/data-export": "29.2.1" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "29.2.0", + "version": "29.2.1", "dependencies": { - "@iosevka/util": "29.2.0", + "@iosevka/util": "29.2.1", "semver": "^7.6.0", "wawoff2": "^2.0.1" } diff --git a/package.json b/package.json index 5b840fb694..950dc55b3b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "29.2.0", + "version": "29.2.1", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 0a0ea39dbc..81b60731b9 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "29.2.0", - "@iosevka/geometry": "29.2.0", - "@iosevka/geometry-cache": "29.2.0", - "@iosevka/glyph": "29.2.0", - "@iosevka/util": "29.2.0", + "@iosevka/font-kits": "29.2.1", + "@iosevka/geometry": "29.2.1", + "@iosevka/geometry-cache": "29.2.1", + "@iosevka/glyph": "29.2.1", + "@iosevka/util": "29.2.1", "typo-geom": "^0.15.1" } } diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index 64fe054a40..a596bd31cb 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -625,6 +625,7 @@ glyph-block AutoBuild-Enclosure : begin list 0xA9 {'C'} WideWidth2 list 0x1F12F {'revC'} WideWidth2 list 0x2117 {'P'} WideWidth2 + # list 0x267E {'infty'} WideWidth1 list 0x1F10E {'ccCcwArrow'} WideWidth2 list 0x1F16F {'ccHumanFigure'} WideWidth2 list 0x1F1AD {'M'} WideWidth2 diff --git a/packages/font-glyphs/src/auto-build/transformed.ptl b/packages/font-glyphs/src/auto-build/transformed.ptl index 39e7da72f5..e94eebdcd2 100644 --- a/packages/font-glyphs/src/auto-build/transformed.ptl +++ b/packages/font-glyphs/src/auto-build/transformed.ptl @@ -315,7 +315,7 @@ glyph-block Autobuild-Transformed : begin list 0x1E040 'cyrl/te' list 0x1E041 'cyrl/u' list 0x1E042 'cyrl/ef' - list 0x1E043 'cyrl/ha' + list 0x1E043 'cyrl/kha' list 0x1E044 'cyrl/tse' list 0x1E045 'cyrl/che' list 0x1E046 'cyrl/sha' @@ -432,7 +432,7 @@ glyph-block Autobuild-Transformed : begin list 0x1E05E 'cyrl/es' list 0x1E05F 'cyrl/u' list 0x1E060 'cyrl/ef' - list 0x1E061 'cyrl/ha' + list 0x1E061 'cyrl/kha' list 0x1E062 'cyrl/tse' list 0x1E063 'cyrl/che' list 0x1E064 'cyrl/sha' @@ -529,7 +529,7 @@ glyph-block Autobuild-Transformed : begin list 0x2DEB 'cyrl/pe' list 0x2DED 'cyrl/es' list 0x2DEE 'cyrl/te' - list 0x2DEF 'cyrl/ha' + list 0x2DEF 'cyrl/kha' list 0x2DF0 'cyrl/tse' list 0x2DF1 'cyrl/che' list 0x2DF2 'cyrl/sha' diff --git a/packages/font-glyphs/src/common/derivatives.ptl b/packages/font-glyphs/src/common/derivatives.ptl index 1fc4c5e056..d5eb8ea48b 100644 --- a/packages/font-glyphs/src/common/derivatives.ptl +++ b/packages/font-glyphs/src/common/derivatives.ptl @@ -1,7 +1,7 @@ $$include '../meta/macros.ptl' import [mix linreg clamp fallback] from "@iosevka/util" -import [Cv AnyCv AnyDerivingCv Dotless SvInheritableRelations PseudoCvDecompose getGrMesh] from "@iosevka/glyph/relation" +import [Cv AnyCv AnyDerivingCv Dotless Zero SvInheritableRelations PseudoCvDecompose getGrMesh] from "@iosevka/glyph/relation" extern Map @@ -131,6 +131,7 @@ glyph-block Common-Derivatives : begin foreach [gr : items-of : AnyCv.query glyphSrc] : begin gr.set glyphDst [gr.get glyphSrc] if [gr.getPreventDeriving glyphSrc] : gr.setPreventDeriving glyphDst + if [Zero.get glyphSrc] : Zero.set glyphDst [Zero.get glyphSrc] if [Dotless.get glyphSrc] : Dotless.set glyphDst [Dotless.get glyphSrc] glyph-block-export turned diff --git a/packages/font-glyphs/src/common/shapes.ptl b/packages/font-glyphs/src/common/shapes.ptl index 1150891ca4..4a017339ab 100644 --- a/packages/font-glyphs/src/common/shapes.ptl +++ b/packages/font-glyphs/src/common/shapes.ptl @@ -430,12 +430,12 @@ glyph-block CommonShapes : begin define nHookSegments 12 define [HookShape toStraight toFinish isStart args] : begin - local [object y tight sw swItalicAdj noAdjTerminalY turnSlope isTail suppressSwash] args + local [object y tight sw swItalicAdj noAdjTerminalY turnSlope isTail noSwash] args local atBottom : toStraight.y > y local ltr : if isStart (toFinish.x < toStraight.x) (toFinish.x > toStraight.x) local dtu : if isStart (y > toFinish.y) (y < toFinish.y) - local doSwash : !suppressSwash && !tight && !isStart && atBottom && (para.isItalic || isTail) && [if (para.slopeAngle >= 0) ltr [not ltr]] + local doSwash : !noSwash && !tight && !isStart && atBottom && (para.isItalic || isTail) && [if (para.slopeAngle >= 0) ltr [not ltr]] local superness : if tight DesignParameters.tightHookSuperness DesignParameters.superness # Adjust terminal's position if necessary @@ -528,9 +528,9 @@ glyph-block CommonShapes : begin local-parameter : noAdjTerminalY -- false local-parameter : turnSlope -- nothing local-parameter : isTail -- false - local-parameter : suppressSwash -- false + local-parameter : noSwash -- false return : Interpolator hookStartBlender - object y tight sw swItalicAdj noAdjTerminalY turnSlope isTail suppressSwash + object y tight sw swItalicAdj noAdjTerminalY turnSlope isTail noSwash glyph-block-export hookend define flex-params [hookend] : begin @@ -541,9 +541,9 @@ glyph-block CommonShapes : begin local-parameter : noAdjTerminalY -- false local-parameter : turnSlope -- nothing local-parameter : isTail -- false - local-parameter : suppressSwash -- false + local-parameter : noSwash -- false return : Interpolator hookEndBlender - object y tight sw swItalicAdj noAdjTerminalY turnSlope isTail suppressSwash + object y tight sw swItalicAdj noAdjTerminalY turnSlope isTail noSwash glyph-block-export Ungizmo define [Ungizmo] : glyph-proc diff --git a/packages/font-glyphs/src/letter/cyrillic/che.ptl b/packages/font-glyphs/src/letter/cyrillic/che.ptl index cb60518c0a..fc61d75405 100644 --- a/packages/font-glyphs/src/letter/cyrillic/che.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/che.ptl @@ -23,9 +23,10 @@ glyph-block Letter-Cyrillic-Che : begin ALL 1 LOWER 2 TOP 3 - TAILED-I 4 - ALL-BGR 5 - TAILED-BGR 6 + BOT 4 + TAILED-I 5 + ALL-BGR 6 + TAILED-BGR 7 glyph-block-export CyrCheShape define [CyrCheShape] : with-params [df top pyBar bodyType slabType [sw df.mvs]] : glyph-proc @@ -59,6 +60,7 @@ glyph-block Letter-Cyrillic-Che : begin [Just SERIFS.ALL] sf.rb.fullSide [Just SERIFS.ALL-BGR] sf.rb.fullSide [Just SERIFS.LOWER] sf.rb.outer + [Just SERIFS.BOT] sf.rb.outer __ : glyph-proc create-glyph 'cyrl/Che' 0x427 : glyph-proc @@ -102,13 +104,28 @@ glyph-block Letter-Cyrillic-Che : begin refer-glyph 'cyrl/che.standard' CyrDescender.lSideJut (RightSB - [HSwToV Stroke]) 0 (jut -- MidJutSide) - CreateTurnedLetter 'cyrl/Shha' 0x4BA 'cyrl/Che' HalfAdvance (CAP / 2) - derive-composites 'cyrl/ShhaDescender' 0x526 'cyrl/Shha' [CyrDescender.rSideJut RightSB 0] - - define [ChrVBar top] : begin + define [ChrVBar top pyBar] : begin local SwCheVBar : Math.min OverlayStroke (0.625 * (RightSB - SB - [HSwToV : 2 * Stroke]) / HVContrast) - local yc : top * [if SLAB 0.45 0.35] + Stroke * 0.1 + local yc : top * [fallback pyBar 0.5] + Stroke * 0.1 return : VBar.m Middle (yc + LongJut * 0.8) (yc - LongJut * 0.8) SwCheVBar - derive-composites 'cyrl/CheVBar' 0x4B8 'cyrl/Che' [ChrVBar CAP] - derive-composites 'cyrl/cheVBar' 0x4B9 'cyrl/che' [ChrVBar XH] + derive-composites 'cyrl/CheVBar' 0x4B8 'cyrl/Che' [ChrVBar CAP [if SLAB 0.45 0.35]] + derive-composites 'cyrl/cheVBar' 0x4B9 'cyrl/che' [ChrVBar XH [if SLAB 0.45 0.4 ]] + + define ShhaConfig : object + serifless SERIFS.NONE + topLeftSerifed SERIFS.BOT + topLeftBottomRightSerifed SERIFS.LOWER + serifed SERIFS.ALL + + foreach { suffix serifs } [pairs-of ShhaConfig] : do + create-glyph "cyrl/Shha.\(suffix)" : glyph-proc + include : MarkSet.capital + include : LeaningAnchor.Above.VBar.l SB + include : CyrCheShape [DivFrame 1] CAP 0.4 BODY.STRAIGHT serifs + include : FlipAround Middle (CAP / 2) + + select-variant 'cyrl/Shha' 0x4BA (follow -- 'H') + select-variant 'cyrl/Shha/descBase' (shapeFrom -- 'cyrl/Shha') (follow -- 'H/descenderBase') + + derive-composites 'cyrl/ShhaDescender' 0x526 'cyrl/Shha/descBase' [CyrDescender.rSideJut RightSB 0] diff --git a/packages/font-glyphs/src/letter/greek/upper-gamma.ptl b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl index 0059ca5634..6745b0aeb0 100644 --- a/packages/font-glyphs/src/letter/greek/upper-gamma.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl @@ -139,7 +139,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin select-variant 'grek/smcpGamma' 0x1D26 (shapeFrom -- 'cyrl/ghe.upright') (follow -- 'grek/Gamma') select-variant 'cyrl/ge' 0x491 select-variant 'cyrl/gheMidHook' 0x495 (follow -- 'cyrl/ghe.upright') - + create-glyph "grek/digamma.serifless" : glyph-proc include : MarkSet.p include : GammaShape XH Descender SLAB-NONE diff --git a/packages/font-glyphs/src/letter/latin/lower-e.ptl b/packages/font-glyphs/src/letter/latin/lower-e.ptl index f81afa589f..9319cd983e 100644 --- a/packages/font-glyphs/src/letter/latin/lower-e.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-e.ptl @@ -10,16 +10,16 @@ glyph-block Letter-Latin-Lower-E : begin glyph-block-import Common-Derivatives glyph-block-import Letter-Shared : CreateSelectorVariants DefineSelectorGlyph CreateTurnedLetter glyph-block-import Letter-Shared-Shapes : FlatHookDepth RetroflexHook - glyph-block-import Letter-Shared-Shapes : SerifedArcEnd ArcEndSerif DToothlessRise + glyph-block-import Letter-Shared-Shapes : SerifedArcEnd InwardSlabArcEnd ArcEndSerif glyph-block-import Mark-Shared-Metrics : markExtend markStroke markStress markFine glyph-block-import Mark-Above : aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors glyph-block-import Letter-Latin-C : CConfig - define [xTerminalR df] : df.rightSB - OX * [if para.isItalic 0 0.5] + define [HookHeightFull top stroke noItalicAdj] : Math.min Hook (AHook / XH * top) - define [HookHeight top stroke] : Math.min Hook (AHook / XH * top) - if para.isItalic top (stroke / 2 + (top - stroke * 3) / 4) + define [HookHeight top stroke noItalicAdj] : Math.min [HookHeightFull top stroke noItalicAdj] + if (para.isItalic && !noItalicAdj) top (stroke / 2 + (top - stroke * 3) / 4) define SLAB-NONE 0 define SLAB-CLASSICAL 1 @@ -27,18 +27,16 @@ glyph-block Letter-Latin-Lower-E : begin define [SmallESerifedTerminalShape df top stroke tailSlab schwaTail] : match tailSlab [Just SLAB-CLASSICAL] : begin - SerifedArcEnd.LtrLhs df.rightSB df.middle 0 stroke [HookHeight top stroke] - [Just SLAB-INWARD] : list - arcvh - g4 (df.middle + CorrectionOMidX * stroke) O - g4 df.rightSB (DToothlessRise) + SerifedArcEnd.LtrLhs df.rightSB df.middle 0 stroke [HookHeightFull top stroke schwaTail] + [Just SLAB-INWARD] : begin + InwardSlabArcEnd.LtrLhs df.rightSB df.middle 0 stroke [HookHeightFull top stroke schwaTail] __ : list - hookend O (sw -- stroke) (suppressSwash -- schwaTail) - g4 [xTerminalR df] [HookHeight top stroke] + hookend O (sw -- stroke) (noSwash -- schwaTail) + g4 (df.rightSB - [if (para.isItalic && !schwaTail) 0 0.5] * OX) [HookHeight top stroke schwaTail] define [SmallETerminalSerif df top stroke tailSlab schwaTail] : match tailSlab - [Just SLAB-CLASSICAL] : ArcEndSerif.R df.rightSB 0 stroke [HookHeight top stroke] - [Just SLAB-INWARD] : ArcEndSerif.InwardR df.rightSB 0 stroke [HookHeight top stroke] + [Just SLAB-CLASSICAL] : ArcEndSerif.R df.rightSB 0 stroke [HookHeightFull top stroke schwaTail] + [Just SLAB-INWARD] : ArcEndSerif.InwardR df.rightSB 0 stroke [HookHeightFull top stroke schwaTail] __ : no-shape glyph-block-export SmallEShape @@ -51,10 +49,10 @@ glyph-block Letter-Latin-Lower-E : begin flat (df.rightSB - OX) barbottom [heading Upward] curl (df.rightSB - OX) (top - [df.archDepthB SmallArchDepth]) arcvh - g4 (df.middle - CorrectionOMidS) (top - O) + g4 (df.middle - CorrectionOMidS) (top - O) archv flat (df.leftSB + OX) (top - [df.archDepthA SmallArchDepth]) - curl (df.leftSB + OX) (0 + [df.archDepthB SmallArchDepth]) + curl (df.leftSB + OX) (0 + [df.archDepthB SmallArchDepth]) SmallESerifedTerminalShape df top stroke tailSlab schwaTail include : SmallETerminalSerif df top stroke tailSlab schwaTail @@ -63,22 +61,20 @@ glyph-block Letter-Latin-Lower-E : begin glyph-block-export RevSmallEShape define [RevSmallEShape] : with-params [df top stroke barpos] : glyph-proc - local barbottom (top * [fallback barpos DesignParameters.eBarPos] - HalfStroke) - local hookx df.leftSB - local hookmiddle : [mix (df.rightSB - O) hookx 0.55] + CorrectionOMidS + local barbottom : top * [fallback barpos DesignParameters.eBarPos] - (stroke / 2) - include : HBar.b (df.leftSB + (stroke / 2)) (df.rightSB - (stroke / 2)) barbottom stroke + include : HBar.b (df.leftSB + (stroke / 2) + OX) (df.rightSB - (stroke / 2) - OX) barbottom stroke include : dispiro widths.rhs stroke flat (df.leftSB + OX) barbottom [heading Upward] curl (df.leftSB + OX) (top - [df.archDepthA SmallArchDepth]) arcvh - g4 df.middle (top - O) + g4 (df.middle - CorrectionOMidS) (top - O) archv flat (df.rightSB - OX) (top - [df.archDepthB SmallArchDepth]) - curl (df.rightSB - OX) [df.archDepthA SmallArchDepth] + curl (df.rightSB - OX) (0 + [df.archDepthA SmallArchDepth]) hookend O (sw -- stroke) - g4 (df.width - [xTerminalR df]) [HookHeight top stroke] + g4 (df.leftSB + 0.5 * OX) [HookHeight top stroke true] glyph-block-export SmallERoundedShape define [SmallERoundedShape] : with-params [df top stroke barpos tailSlab schwaTail] : glyph-proc @@ -93,14 +89,14 @@ glyph-block Letter-Latin-Lower-E : begin widths.lhs stroke [if para.isItalic g2 flat] xStart (barbottom - pfIt * [StrokeWidthBlend 2 3] * O) if para.isItalic [alsoThru.g2 0.5 0.8] [list] - [if para.isItalic g2 curl] [mix (xStart + pfIt * 0.25 * [HSwToV stroke]) df.rightSB pBarRight] (barbottom + pfIt * [StrokeWidthBlend 0.25 1] * O) + [if para.isItalic g2 curl] [mix (xStart + pfIt * [HSwToV : 0.25 * stroke]) df.rightSB pBarRight] (barbottom + pfIt * [StrokeWidthBlend 0.25 1] * O) if para.isItalic {} [archv] - g4 (df.rightSB - OX) [mix barbottom top pArcRight] + g4 (df.rightSB - OX) [mix barbottom top pArcRight] arcvh - g4 (df.middle - CorrectionOMidS) (top - O) + g4 (df.middle - CorrectionOMidS) (top - O) archv flat (df.leftSB + OX) (top - [df.archDepthA SmallArchDepth]) - curl (df.leftSB + OX) (0 + [df.archDepthB SmallArchDepth]) + curl (df.leftSB + OX) (0 + [df.archDepthB SmallArchDepth]) SmallESerifedTerminalShape df top stroke tailSlab schwaTail include : SmallETerminalSerif df top stroke tailSlab schwaTail @@ -120,16 +116,16 @@ glyph-block Letter-Latin-Lower-E : begin widths.rhs stroke [if para.isItalic g2 flat] xStart (barbottom - pfIt * [StrokeWidthBlend 2 3] * O) if para.isItalic [alsoThru.g2 0.5 0.8] [list] - [if para.isItalic g2 curl] [mix (xStart - [if para.isItalic 0.25 0.0] * [HSwToV stroke]) df.leftSB pBarRight] (barbottom + pfIt * [StrokeWidthBlend 0.25 1] * O) + [if para.isItalic g2 curl] [mix (xStart - pfIt * [HSwToV : 0.25 * stroke]) df.leftSB pBarRight] (barbottom + pfIt * [StrokeWidthBlend 0.25 1] * O) if para.isItalic {} [archv] - g4 (df.leftSB + OX) [mix barbottom top pArcRight] + g4 (df.leftSB + OX) [mix barbottom top pArcRight] arcvh - g4 (df.middle - CorrectionOMidS) (top - O) + g4 (df.middle - CorrectionOMidS) (top - O) archv flat (df.rightSB - OX) (top - [df.archDepthB SmallArchDepth]) - curl (df.rightSB - OX) (0 + [df.archDepthA SmallArchDepth]) + curl (df.rightSB - OX) (0 + [df.archDepthA SmallArchDepth]) hookend O (sw -- stroke) - g4 (df.width - [xTerminalR df]) [HookHeight top stroke] + g4 (df.leftSB + 0.5 * OX) [HookHeight top stroke true] define [AbkCheShape] : with-params [fDesc Body df top tailSlab] : glyph-proc local gap : (df.width - 2 * df.leftSB - 2.5 * df.mvs) * 0.375 - [HSwToV : 0.25 * df.mvs] @@ -265,8 +261,8 @@ glyph-block Letter-Latin-Lower-E : begin set-mark-anchor 'cvDecompose' 0 0 include : AbkCheShape 1 Body abkCheDf XH (tailSlab -- styBot) - select-variant "Schwa.\(suffix)" (follow -- "CTopSerifOnly") - select-variant "schwa.\(suffix)" (follow -- "cTopSerifOnly") + select-variant "Schwa.\(suffix)" (follow -- 'CTopSerifOnly') + select-variant "schwa.\(suffix)" (follow -- 'cTopSerifOnly') select-variant "cyrl/abk/Che.\(suffix)" (follow -- 'CBottomSerifOnly') select-variant "cyrl/abk/che.\(suffix)" (follow -- 'cBottomSerifOnly') select-variant "cyrl/abk/CheDescender.\(suffix)" (follow -- 'CBottomSerifOnly') @@ -284,10 +280,10 @@ glyph-block Letter-Latin-Lower-E : begin select-variant 'eBar' 0xAB33 (follow -- 'e') - CreateSelectorVariants "Schwa" 0x18F [Object.keys SmallEConfig] + CreateSelectorVariants 'Schwa' 0x18F [Object.keys SmallEConfig] (follow -- 'e') alias 'cyrl/Schwa' 0x4D8 'Schwa' - CreateSelectorVariants "schwa" 0x259 [Object.keys SmallEConfig] + CreateSelectorVariants 'schwa' 0x259 [Object.keys SmallEConfig] (follow -- 'e') alias 'cyrl/schwa' 0x4D9 'schwa' CreateSelectorVariants 'cyrl/abk/Che' 0x4BC [Object.keys SmallEConfig] (follow -- 'e') diff --git a/packages/font-glyphs/src/letter/latin/x.ptl b/packages/font-glyphs/src/letter/latin/x.ptl index a956e86e21..3c017a418d 100644 --- a/packages/font-glyphs/src/letter/latin/x.ptl +++ b/packages/font-glyphs/src/letter/latin/x.ptl @@ -231,11 +231,11 @@ glyph-block Letter-Latin-X : begin link-reduced-variant 'X/sansSerif' 'X' MathSansSerif alias 'grek/Chi' 0x3A7 'X' alias-reduced-variant 'grek/Chi/sansSerif' 'grek/Chi' 'X/sansSerif' MathSansSerif - alias 'cyrl/Ha' 0x425 'X' + alias 'cyrl/Kha' 0x425 'X' select-variant 'x' 'x' link-reduced-variant 'x/sansSerif' 'x' MathSansSerif - select-variant 'cyrl/ha' 0x445 (shapeFrom -- 'x') + alias 'cyrl/kha' 0x445 'x' select-variant 'grek/chi' 0x3C7 (shapeFrom -- 'latn/chi') link-reduced-variant 'grek/chi/sansSerif' 'grek/chi' MathSansSerif (shapeFrom -- 'latn/chi') @@ -258,15 +258,15 @@ glyph-block Letter-Latin-X : begin y -- 0 xLink -- RightSB - [HSwToV HalfStroke] - derive-glyphs 'cyrl/HaDescender' 0x4B2 'cyrl/Ha' [AddDescender CyrDescender] - derive-glyphs 'cyrl/haDescender' 0x4B3 'cyrl/ha' [AddDescender CyrDescender] - derive-glyphs 'cyrl/HaHook' 0x4FC 'cyrl/Ha' [AddDescender PalatalHook] - derive-glyphs 'cyrl/haHook' 0x4FD 'cyrl/ha' [AddDescender PalatalHook] - alias 'xPalatalHook' 0x1D8D 'cyrl/haHook' + derive-glyphs 'cyrl/KhaDescender' 0x4B2 'cyrl/Kha' [AddDescender CyrDescender] + derive-glyphs 'cyrl/khaDescender' 0x4B3 'cyrl/kha' [AddDescender CyrDescender] + derive-glyphs 'cyrl/KhaHook' 0x4FC 'cyrl/Kha' [AddDescender PalatalHook] + derive-glyphs 'cyrl/khaHook' 0x4FD 'cyrl/kha' [AddDescender PalatalHook] + alias 'xPalatalHook' 0x1D8D 'cyrl/khaHook' - define [CyrlHaBarShape top] : HOverlayBar [mix SB RightSB 0.08] [mix SB RightSB 0.92] (top / 2) - derive-composites 'cyrl/HaBar' 0x4FE 'cyrl/Ha' [CyrlHaBarShape CAP] - derive-composites 'cyrl/haBar' 0x4FF 'cyrl/ha' [CyrlHaBarShape XH] + define [CyrlKhaBarShape top] : HOverlayBar [mix SB RightSB 0.08] [mix SB RightSB 0.92] (top / 2) + derive-composites 'cyrl/KhaBar' 0x4FE 'cyrl/Kha' [CyrlKhaBarShape CAP] + derive-composites 'cyrl/khaBar' 0x4FF 'cyrl/kha' [CyrlKhaBarShape XH] glyph-block-import Letter-Blackboard : BBS BBD define [BBXShape l r top] : let [kDiag : DiagCorDs top (r - l) BBD] : union diff --git a/packages/font-glyphs/src/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl index c98ac464a0..289fa61586 100644 --- a/packages/font-glyphs/src/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -593,6 +593,8 @@ glyph-block Letter-Shared-Shapes : begin glyph-block-export ArcStartSerifDepth define [ArcStartSerifDepth hook] : hook - O * 2 + define [ArcStartInwardSerifDepth hook stroke] : Math.max (hook + DToothlessRise / 3) (DToothlessRise + stroke) + glyph-block-export : ArcStartSerif define ArcStartSerif : namespace export : define [L cx cy stroke hook overflow] : begin @@ -601,9 +603,9 @@ glyph-block Letter-Shared-Shapes : begin return : tagged 'arcStartSerifR' : VBar.r cx (cy - hook + O * 2) (cy + [fallback overflow 0]) [ArcStartSerifWidth stroke] export : define [InwardL cx cy stroke hook] : begin - return : tagged 'arcStartSerifL' : VBar.l cx (cy - hook - DToothlessRise / 3) (cy - DToothlessRise) [ArcStartSerifWidth stroke] + return : tagged 'arcStartSerifL' : VBar.l cx (cy - [ArcStartInwardSerifDepth hook stroke]) (cy - DToothlessRise) [ArcStartSerifWidth stroke] export : define [InwardR cx cy stroke hook] : begin - return : tagged 'arcStartSerifR' : VBar.r cx (cy - hook - DToothlessRise / 3) (cy - DToothlessRise) [ArcStartSerifWidth stroke] + return : tagged 'arcStartSerifR' : VBar.r cx (cy - [ArcStartInwardSerifDepth hook stroke]) (cy - DToothlessRise) [ArcStartSerifWidth stroke] glyph-block-export : ArcEndSerif define ArcEndSerif : namespace @@ -613,9 +615,9 @@ glyph-block Letter-Shared-Shapes : begin return : tagged 'arcEndSerifR' : VBar.r cx (cy + hook - O * 2) (cy - [fallback overflow 0]) [ArcStartSerifWidth stroke] export : define [InwardL cx cy stroke hook] : begin - return : tagged 'arcEndSerifL' : VBar.l cx (cy + hook + DToothlessRise / 2) (cy + DToothlessRise) [ArcStartSerifWidth stroke] + return : tagged 'arcEndSerifL' : VBar.l cx (cy + [ArcStartInwardSerifDepth hook stroke]) (cy + DToothlessRise) [ArcStartSerifWidth stroke] export : define [InwardR cx cy stroke hook] : begin - return : tagged 'arcEndSerifR' : VBar.r cx (cy + hook + DToothlessRise / 2) (cy + DToothlessRise) [ArcStartSerifWidth stroke] + return : tagged 'arcEndSerifR' : VBar.r cx (cy + [ArcStartInwardSerifDepth hook stroke]) (cy + DToothlessRise) [ArcStartSerifWidth stroke] glyph-block-export DiagTail define DiagTail : namespace diff --git a/packages/font-glyphs/src/symbol/geometric/ballot-box.ptl b/packages/font-glyphs/src/symbol/geometric/ballot-box.ptl index b4f4e675ef..376762ac00 100644 --- a/packages/font-glyphs/src/symbol/geometric/ballot-box.ptl +++ b/packages/font-glyphs/src/symbol/geometric/ballot-box.ptl @@ -14,9 +14,33 @@ glyph-block Symbol-Geometric-Ballot-Box : for-width-kinds WideWidth1 alias [MangleName 'ballotBox'] [MangleUnicode 0x2610] [MangleName 'whiteSquare'] + define [CrossMark cx cy size sw] : glyph-proc + include : dispiro + widths.center sw + corner (cx - size) (cy - size) + corner (cx + size) (cy + size) + include : dispiro + widths.center sw + corner (cx + size) (cy - size) + corner (cx - size) (cy + size) + + define [UpArrowMark cx cy size sw] : glyph-proc + local size2 : size / 1.5 + include : intersection [MaskLeft cx] : dispiro + widths.center sw + corner (cx - size2 * 2) (cy - size2) + corner (cx + size2) (cy + size2 * 2) + include : intersection [MaskRight cx] : dispiro + widths.center sw + corner (cx - size2) (cy + size2 * 2) + corner (cx + size2 * 2) (cy - size2) + define bbGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar] define swMark : Math.min GeometryStroke : AdviceStroke 5 Geom.Scalar + define lightSwMark : UnicodeWeightGrade 3 Geom.Scalar + define boldSwMark : UnicodeWeightGrade 7 Geom.Scalar define bbSize : Geom.Size - bbGap - swMark * 0.75 + define circXSize : (Geom.Size - bbGap) * [Math.sqrt 0.5] - swMark * 0.75 create-glyph [MangleName 'checkedBallotBox'] [MangleUnicode 0x2611] : glyph-proc local k1 0.4 @@ -36,11 +60,58 @@ glyph-block Symbol-Geometric-Ballot-Box : for-width-kinds WideWidth1 create-glyph [MangleName 'crossBallotBox'] [MangleUnicode 0x2612] : glyph-proc include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS - include : dispiro - widths.center swMark - corner (Geom.MidX - bbSize) (Geom.MidY - bbSize) - corner (Geom.MidX + bbSize) (Geom.MidY + bbSize) - include : dispiro - widths.center swMark - corner (Geom.MidX + bbSize) (Geom.MidY - bbSize) - corner (Geom.MidX - bbSize) (Geom.MidY + bbSize) + include : CrossMark Geom.MidX Geom.MidY bbSize swMark + + create-glyph [MangleName 'lightCrossBallotBox'] [MangleUnicode 0x2BBD] : glyph-proc + include [refer-glyph : MangleName 'whiteSquare'] AS_BASE ALSO_METRICS + include : CrossMark Geom.MidX Geom.MidY bbSize lightSwMark + + create-glyph [MangleName 'crossCircle'] [MangleUnicode 0x2BBE] : glyph-proc + include [refer-glyph : MangleName 'whiteCircle'] AS_BASE ALSO_METRICS + include : CrossMark Geom.MidX Geom.MidY circXSize swMark + + create-glyph [MangleName 'boldCrossCircle'] [MangleUnicode 0x2BBF] : glyph-proc + include [refer-glyph : MangleName 'whiteCircle'] AS_BASE ALSO_METRICS + include : CrossMark Geom.MidX Geom.MidY circXSize boldSwMark + + do "Delete Symbols" + glyph-block-import Symbol-Geometric-Shared : ConvexPolygonOutline + + define delGap : Math.max (Geom.Size / 6) [AdviceStroke 5 Geom.Scalar] + define delSize : (Geom.Size - delGap) / 1.5 - swMark * 0.75 + + define [RightFingerpostFill cx cy r] : begin + define skew : r * 1 / 4 + return : spiro-outline + corner (cx - r) (cy + r / 1.5) + corner (cx + r - skew) (cy + r / 1.5) + corner (cx + r + skew) cy + corner (cx + r - skew) (cy - r / 1.5) + corner (cx - r) (cy - r / 1.5) + + define [LeftFingerpostFill cx cy r] : begin + define skew : r * 1 / 4 + return : spiro-outline + corner (cx + r) (cy - r / 1.5) + corner (cx + r) (cy + r / 1.5) + corner (cx - r + skew) (cy + r / 1.5) + corner (cx - r - skew) cy + corner (cx - r + skew) (cy - r / 1.5) + + create-glyph [MangleName 'UpArrowInRectangle'] [MangleUnicode 0x2BB9] : glyph-proc + include [refer-glyph : MangleName 'whiteHoriRectangle'] AS_BASE ALSO_METRICS + include : UpArrowMark Geom.MidX Geom.MidY delSize swMark + + create-glyph [MangleName 'xInRectangle'] [MangleUnicode 0x2327] : glyph-proc + include [refer-glyph : MangleName 'whiteHoriRectangle'] AS_BASE ALSO_METRICS + include : CrossMark Geom.MidX Geom.MidY delSize swMark + + create-glyph [MangleName 'deleteRight'] [MangleUnicode 0x2326] : glyph-proc + set-width Geom.Width + include : ConvexPolygonOutline [new-glyph : RightFingerpostFill Geom.MidX Geom.MidY Geom.Size] GeometryStroke + include : CrossMark Geom.MidX Geom.MidY delSize swMark + + create-glyph [MangleName 'deleteLeft'] [MangleUnicode 0x232B] : glyph-proc + set-width Geom.Width + include : ConvexPolygonOutline [new-glyph : LeftFingerpostFill Geom.MidX Geom.MidY Geom.Size] GeometryStroke + include : CrossMark Geom.MidX Geom.MidY delSize swMark diff --git a/packages/font-glyphs/src/symbol/geometric/corner-shape.ptl b/packages/font-glyphs/src/symbol/geometric/corner-shape.ptl index 37561b825e..4889d99427 100644 --- a/packages/font-glyphs/src/symbol/geometric/corner-shape.ptl +++ b/packages/font-glyphs/src/symbol/geometric/corner-shape.ptl @@ -2,7 +2,7 @@ $$include '../../meta/macros.ptl' glyph-module -glyph-block Symbol-Geometric-Checking-Marks : begin +glyph-block Symbol-Geometric-Corner-Shape: begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives diff --git a/packages/font-glyphs/src/symbol/geometric/masked.ptl b/packages/font-glyphs/src/symbol/geometric/masked.ptl index 827c070e48..a07391ff24 100644 --- a/packages/font-glyphs/src/symbol/geometric/masked.ptl +++ b/packages/font-glyphs/src/symbol/geometric/masked.ptl @@ -293,7 +293,43 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 WaxingMoonMask FlipAround Geom.MidX Geom.MidY + do "Partial White Circle" + local yOffset : -Geom.Size / 2 + + create-glyph [MangleName 'arc'] [MangleUnicode 0x2312] : glyph-proc + set-width Geom.Width + include : with-transform [ApparentTranslate 0 yOffset] : intersection + MaskAbove Geom.MidY + refer-glyph [MangleName 'whiteCircle'] + + create-glyph [MangleName 'segment'] [MangleUnicode 0x2313] : glyph-proc + set-width Geom.Width + include : with-transform [ApparentTranslate 0 yOffset] : intersection + MaskAbove Geom.MidY + union + refer-glyph [MangleName 'whiteCircle'] + intersection + refer-glyph [MangleName 'blackCircle'] + HBar.b Geom.Left Geom.Right Geom.MidY GeometryStroke + + create-glyph [MangleName 'sector'] [MangleUnicode 0x2314] : glyph-proc + set-width Geom.Width + include : with-transform [ApparentTranslate 0 yOffset] : intersection + spiro-outline + corner Geom.MidX Geom.MidY + corner Geom.Right Geom.Top + corner Geom.Left Geom.Top + union + refer-glyph [MangleName 'whiteCircle'] + intersection + refer-glyph [MangleName 'blackCircle'] + union + dispiro [widths.lhs GeometryStroke] [corner Geom.MidX Geom.MidY] [corner Geom.Right Geom.Top] + dispiro [widths.rhs GeometryStroke] [corner Geom.MidX Geom.MidY] [corner Geom.Left Geom.Top] + do "Miscellaneous" + glyph-block-import Symbol-Punctuation-Bar : BarShape + create-glyph [MangleName 'uni2389'] [MangleUnicode 0x2389] : glyph-proc define shiftUp : ApparentTranslate 0 Math.max @@ -342,3 +378,8 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 union ExtLineLhs 4 OperatorStroke (Geom.MidX - Geom.Size) Geom.MidY Geom.MidX (Geom.MidY - Geom.Size) ExtLineLhs 4 OperatorStroke Geom.MidX (Geom.MidY - Geom.Size) (Geom.MidX + Geom.Size) Geom.MidY + + create-glyph [MangleName 'whiteSquareVertLine'] [MangleUnicode 0x2385] : glyph-proc + set-width Geom.Width + include : refer-glyph : MangleName 'whiteSquare' + include : BarShape Geom.MidX ParenTop ParenBot diff --git a/packages/font-glyphs/src/symbol/geometric/plain.ptl b/packages/font-glyphs/src/symbol/geometric/plain.ptl index deeaaf966e..1cf84a491d 100644 --- a/packages/font-glyphs/src/symbol/geometric/plain.ptl +++ b/packages/font-glyphs/src/symbol/geometric/plain.ptl @@ -1,6 +1,5 @@ $$include '../../meta/macros.ptl' -import [OCCURRENT_PRECISION] from "@iosevka/geometry/curve-util" import [mix linreg clamp fallback] from "@iosevka/util" import [DesignParameters] from "../../meta/aesthetics.mjs" @@ -9,7 +8,7 @@ glyph-module glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes + glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes ConvexPolygonOutline define Geom : GeometricDim MosaicUnitWidth MosaicWidth define Size : GeometricSizes Geom @@ -39,8 +38,6 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 s * Geom.Size * [fallback pp.size 1] - in * sw in * sw - define [pointsAreNotClose a b] : begin - return : [Math.abs (a.x - b.x)] > OCCURRENT_PRECISION || [Math.abs (a.y - b.y)] > OCCURRENT_PRECISION define [ConvexWhitePolygonImpl fn props] : begin local pp : fallback props {.} local sh : new-glyph : fn @@ -48,33 +45,25 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 fallback pp.cy Geom.MidY Geom.Size * [fallback pp.size 1] begin 0 - local outlines : glyph-proc : begin - set this.gizmo : Translate 0 0 - foreach c [items-of : sh.geometry.toContours] : foreach j [range 0 c.length] : begin - local a c.[if j (j - 1) (c.length - 1)] - local b c.(j) - if [pointsAreNotClose a b] : include : dispiro - disable-contrast - widths.center ([fallback pp.sw GeometryStroke] * 2) - corner [mix a.x b.x (-2)] [mix a.y b.y (-2)] - corner [mix a.x b.x (+3)] [mix a.y b.y (+3)] - - return : intersection sh outlines + return : ConvexPolygonOutline sh [fallback pp.sw GeometryStroke] define [StdWhiteShape fn name unicode props] : begin create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc set-width Geom.Width include : StdWhiteShapeImpl fn 1 0 1 props + define [InnerShapeSize props] : begin + local pp : fallback props {.} + return : [fallback pp.innerSize 0.5] * (Geom.Size * [fallback pp.size 1] - [fallback pp.sw GeometryStroke]) + define [StdWhiteContainingBlackShape fn name unicode props] : begin local pp : fallback props {.} create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc set-width Geom.Width - local sw : fallback pp.sw GeometryStroke include : fn fallback pp.cx Geom.MidX fallback pp.cy Geom.MidY - [fallback pp.innerSize 0.5] * (Geom.Size * [fallback pp.size 1] - sw) + InnerShapeSize pp begin 0 include : StdWhiteShapeImpl fn 1 0 1 props @@ -86,7 +75,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 include : fn fallback pp.cx Geom.MidX fallback pp.cy Geom.MidY - [fallback pp.innerSize 0.5] * (Geom.Size * [fallback pp.size 1] - sw) + InnerShapeSize pp begin 0 include : ConvexWhitePolygonImpl fn props @@ -255,6 +244,18 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 StdBlackShape ParallelogramFill 'blackParallelogram' 0x25B0 ConvexWhitePolygon ParallelogramFill 'whiteParallelogram' 0x25B1 + alias [MangleName 'flatness'] [MangleUnicode 0x23E5] [MangleName 'whiteParallelogram'] + + define [TrapeziumFill cx cy r] : begin + define skew : r * 1 / 4 + return : spiro-outline + corner (cx - r) (cy + r / 1.5) + corner (cx + r - skew) (cy + r / 1.5) + corner (cx + r) (cy - r / 1.5) + corner (cx - r) (cy - r / 1.5) + + ConvexWhitePolygon TrapeziumFill 'whiteTrapezium' 0x23E2 + do "Triangles" define triangleOvershoot : 2.1 / [Math.sqrt 3] define [TriangleUpFill cx cy size] : spiro-outline @@ -601,3 +602,8 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 StdBlackShape RightArrowHeadShape 'blackArrowHeadRight' 0x27A4 Size.Oblique StdWhiteShape RightArrowHeadShape 'whiteArrowHeadRight' null Size.Oblique + + do "Other Polygon" + create-glyph [MangleName 'straightness'] [MangleUnicode 0x23E4] : glyph-proc + set-width Geom.Width + include : HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke diff --git a/packages/font-glyphs/src/symbol/geometric/shared.ptl b/packages/font-glyphs/src/symbol/geometric/shared.ptl index d61cb0cb89..76a857addb 100644 --- a/packages/font-glyphs/src/symbol/geometric/shared.ptl +++ b/packages/font-glyphs/src/symbol/geometric/shared.ptl @@ -1,5 +1,6 @@ $$include '../../meta/macros.ptl' +import [OCCURRENT_PRECISION] from "@iosevka/geometry/curve-util" import [mix linreg clamp fallback] from "@iosevka/util" import [DesignParameters] from "../../meta/aesthetics.mjs" @@ -57,3 +58,20 @@ glyph-block Symbol-Geometric-Shared : begin TinyInner { .innerSize (1 / 4) } SmallInner { .innerSize (1 / 3) } MediumInner { .innerSize (2 / 3) } + + glyph-block-export ConvexPolygonOutline + define [pointsAreNotClose a b] : begin + return : [Math.abs (a.x - b.x)] > OCCURRENT_PRECISION || [Math.abs (a.y - b.y)] > OCCURRENT_PRECISION + define [ConvexPolygonOutline shape sw] : begin + local outlines : glyph-proc : begin + set this.gizmo : Translate 0 0 + foreach c [items-of : shape.geometry.toContours] : foreach j [range 0 c.length] : begin + local a c.[if j (j - 1) (c.length - 1)] + local b c.(j) + if [pointsAreNotClose a b] : include : dispiro + disable-contrast + widths.center (sw * 2) + corner [mix a.x b.x (-2)] [mix a.y b.y (-2)] + corner [mix a.x b.x (+3)] [mix a.y b.y (+3)] + + return : intersection shape outlines diff --git a/packages/font-glyphs/src/symbol/mosaic.ptl b/packages/font-glyphs/src/symbol/mosaic.ptl index d7d6c50233..956026b630 100644 --- a/packages/font-glyphs/src/symbol/mosaic.ptl +++ b/packages/font-glyphs/src/symbol/mosaic.ptl @@ -6,6 +6,7 @@ export : define [apply] : begin run-glyph-module "./mosaic/teletext.mjs" run-glyph-module "./mosaic/smooth.mjs" run-glyph-module "./mosaic/box-drawing.mjs" + run-glyph-module "./mosaic/dentistry.mjs" run-glyph-module "./mosaic/split-graphic.mjs" run-glyph-module "./mosaic/large-type.mjs" run-glyph-module "./mosaic/powerline.mjs" diff --git a/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl b/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl index 847e1f3ca4..e22d2cd479 100644 --- a/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl @@ -534,5 +534,5 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin set-width MosaicWidth include : ForceUpright include : intersection - glyph-proc : include : refer-glyph : MangleName : NameUni 0x253C + refer-glyph : MangleName : NameUni 0x253C Rect [mix bottom top 0.35] [mix bottom top 0.65] 0 MosaicWidth diff --git a/packages/font-glyphs/src/symbol/mosaic/dentistry.ptl b/packages/font-glyphs/src/symbol/mosaic/dentistry.ptl new file mode 100644 index 0000000000..d3d4fc4bb2 --- /dev/null +++ b/packages/font-glyphs/src/symbol/mosaic/dentistry.ptl @@ -0,0 +1,105 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" + +glyph-module + +glyph-block Symbol-Mosaic-Dentistry : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade + glyph-block-import Mark-Above : TildeShape + + define boxDrawingStroke : AdviceStroke 3.5 + + for-width-kinds WideWidth4 + create-glyph [MangleName 'vertAndTopRightLine'] [MangleUnicode 0x23BE] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x23BA + include : refer-glyph : MangleName : NameUni 0x23B8 + create-glyph [MangleName 'vertAndBottomRightLine'] [MangleUnicode 0x23BF] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x23BD + include : refer-glyph : MangleName : NameUni 0x23B8 + create-glyph [MangleName 'vertAndTopLeftLine'] [MangleUnicode 0x23CB] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x23BA + include : refer-glyph : MangleName : NameUni 0x23B9 + create-glyph [MangleName 'vertAndBottomLeftLine'] [MangleUnicode 0x23CC] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x23BD + include : refer-glyph : MangleName : NameUni 0x23B9 + + for-width-kinds WideWidth1 + define Geom : GeometricDim MosaicUnitWidth MosaicWidth + + define [WaveShape] : TildeShape + Geom.MidY + Geom.Size / 2 + Geom.MidY - Geom.Size / 2 + * Geom.Left + * Geom.Right + boxDrawingStroke / 2 + + create-glyph [MangleName 'vertAndTopLine'] [MangleUnicode 0x23C9] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x2502 + include : refer-glyph : MangleName : NameUni 0x23BA + create-glyph [MangleName 'vertAndBottomLine'] [MangleUnicode 0x23CA] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x2502 + include : refer-glyph : MangleName : NameUni 0x23BD + + create-glyph [MangleName 'vertLineWithCircle'] [MangleUnicode 0x23C0] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x2502 + include : refer-glyph : MangleName 'whiteCircle' + create-glyph [MangleName 'vertAndTopLineWithCircle'] [MangleUnicode 0x23C1] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName 'vertAndTopLine' + include : refer-glyph : MangleName 'whiteCircle' + create-glyph [MangleName 'vertAndBottomLineWithCircle'] [MangleUnicode 0x23C2] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName 'vertAndBottomLine' + include : refer-glyph : MangleName 'whiteCircle' + + create-glyph [MangleName 'vertLineWithTriangle'] [MangleUnicode 0x23C3] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x2502 + include : refer-glyph : MangleName 'whiteTriangleUp' + create-glyph [MangleName 'vertAndTopLineWithTriangle'] [MangleUnicode 0x23C4] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName 'vertAndTopLine' + include : refer-glyph : MangleName 'whiteTriangleUp' + create-glyph [MangleName 'vertAndBottomLineWithTriangle'] [MangleUnicode 0x23C5] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName 'vertAndBottomLine' + include : refer-glyph : MangleName 'whiteTriangleUp' + + create-glyph [MangleName 'vertLineWithWave'] [MangleUnicode 0x23C6] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x2502 + include : WaveShape + create-glyph [MangleName 'vertAndTopLineWithWave'] [MangleUnicode 0x23C7] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName 'vertAndTopLine' + include : WaveShape + create-glyph [MangleName 'vertAndBottomLineWithWave'] [MangleUnicode 0x23C8] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName 'vertAndBottomLine' + include : WaveShape diff --git a/packages/font-glyphs/src/symbol/mosaic/large-type.ptl b/packages/font-glyphs/src/symbol/mosaic/large-type.ptl index db86adab7f..bd68fd86bc 100644 --- a/packages/font-glyphs/src/symbol/mosaic/large-type.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/large-type.ptl @@ -18,13 +18,14 @@ glyph-block Symbol-Mosaic-Large-Type : begin local stemleft : mix left right (1 / 3) local stemright : mix left right (2 / 3) local stemmid : mix left right 0.5 - define [yPart n] : return : mix top bottom (n / 5) + define [yPartTop n] : return : mix top bottom (n / 5) + define [yPartBot n] : return : mix top bottom ((n + 1) / 5) define [Stem start end] : spiro-outline - corner stemleft [yPart start] - corner stemright [yPart start] - corner stemright [yPart (end + 1)] - corner stemleft [yPart (end + 1)] + corner stemleft [yPartTop start] + corner stemright [yPartTop start] + corner stemright [yPartBot end] + corner stemleft [yPartBot end] define [TopBit] : spiro-outline corner stemleft top @@ -37,16 +38,16 @@ glyph-block Symbol-Mosaic-Large-Type : begin corner stemright bottom define [Arm yStart yEnd left right] : spiro-outline - corner left [yPart yStart] - corner right [yPart yEnd] - corner right [yPart (yEnd + 1)] - corner left [yPart (yStart + 1)] + corner left [yPartTop yStart] + corner right [yPartTop yEnd] + corner right [yPartBot yEnd] + corner left [yPartBot yStart] define [Arc yHori yVert fRight] : spiro-outline - corner [if fRight right left] [yPart [if fRight yHori (yHori + 1)]] - corner [if fRight right left] [yPart [if fRight (yHori + 1) yHori]] - corner [if (yHori < yVert) stemright stemleft] [yPart [if (yHori < yVert) (yVert + 1) yVert]] - corner [if (yHori < yVert) stemleft stemright] [yPart [if (yHori < yVert) (yVert + 1) yVert]] + corner [if fRight right left] [[if fRight yPartTop yPartBot] yHori] + corner [if fRight right left] [[if fRight yPartBot yPartTop] yHori] + corner [if (yHori < yVert) stemright stemleft] [[if (yHori < yVert) yPartBot yPartTop] yVert] + corner [if (yHori < yVert) stemleft stemright] [[if (yHori < yVert) yPartBot yPartTop] yVert] define [MakePiece unicode shape] : begin create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc diff --git a/packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl b/packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl index 53ce6dbd6e..93b66beaa8 100644 --- a/packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl @@ -5,40 +5,53 @@ import [Box] from "@iosevka/geometry/box" glyph-module -glyph-block Symbol-Mosaic-Split-Graphic : for-width-kinds WideWidth4 +glyph-block Symbol-Mosaic-Split-Graphic : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit PointingHandShape - define uiFigTop : mix ParenBot ParenTop 0.95 - define uiFigBot : mix ParenBot ParenTop 0.05 + define boxDrawingStroke : AdviceStroke 3.5 + define graphicSw : AdviceStroke 3.5 define top fontMetrics.os2.sTypoAscender define bottom fontMetrics.os2.sTypoDescender define left 0 - define right MosaicWidth define MosaicHeight : top - bottom - define [CellMask] : spiro-outline - corner left top - corner right top - corner right bottom - corner left bottom + glyph-block-export Multicell + define [Multicell MosaicWidth] : namespace + define [Mask] : spiro-outline + corner left top + corner (left + MosaicWidth) top + corner (left + MosaicWidth) bottom + corner left bottom - define [SplitGraphic t b l r vspan hspan vidx hidx shapeFunc] : begin - local r2 : r + MosaicWidth * (hspan - 1) - local t2 : t + MosaicHeight * (vspan - 1) + export : define [NBox t b l r vspan hspan] : begin + local r2 : r + MosaicWidth * (hspan - 1) + local t2 : t + MosaicHeight * (vspan - 1) - return : intersection - CellMask - with-transform [Translate (-hidx * MosaicWidth) (-vidx * MosaicHeight)] : shapeFunc t2 b l r2 + return : new Box t2 b l r2 - define boxDrawingStroke : AdviceStroke 3.5 + export : define [Split t b l r vspan hspan vidx hidx fUpright shapeFunc] : begin + local box : NBox t b l r vspan hspan + + return : intersection + Mask + with-transform + Translate (-hidx * MosaicWidth) (-vidx * MosaicHeight) + if fUpright + composite-proc + ForceUpright + shapeFunc box.top box.bottom box.left box.right + shapeFunc box.top box.bottom box.left box.right + + for-width-kinds WideWidth4 + define right MosaicWidth + + local multicell : Multicell MosaicWidth - do "Split Circles" - define [CircleTouchingBox top bot left right] : glyph-proc - include : ForceUpright - include : dispiro + do "Split Circles" + define [CircleTouchingBox top bot left right] : dispiro widths.lhs boxDrawingStroke g4 left [mix top bot 0.5] arcvh.superness 2 @@ -50,25 +63,176 @@ glyph-block Symbol-Mosaic-Split-Graphic : for-width-kinds WideWidth4 archv.superness 2 close - define [BuildSplitCircle name unicode vspan hspan vidx hidx] : begin - create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc + define [BuildSplitCircle name unicode vspan hspan vidx hidx] : begin + create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right vspan hspan vidx hidx 1 CircleTouchingBox + + BuildSplitCircle "twelfthCircleLT" 0x1CC30 4 4 3 0 + BuildSplitCircle "twelfthCircleCLT" 0x1CC31 4 4 3 1 + BuildSplitCircle "twelfthCircleCRT" 0x1CC32 4 4 3 2 + BuildSplitCircle "twelfthCircleRT" 0x1CC33 4 4 3 3 + BuildSplitCircle "twelfthCircleLMT" 0x1CC34 4 4 2 0 + BuildSplitCircle "quarterCircleLT" 0x1CC35 2 2 1 0 + BuildSplitCircle "quarterCircleRT" 0x1CC36 2 2 1 1 + BuildSplitCircle "twelfthCircleRMT" 0x1CC37 4 4 2 3 + BuildSplitCircle "twelfthCircleLMB" 0x1CC38 4 4 1 0 + BuildSplitCircle "quarterCircleLB" 0x1CC39 2 2 0 0 + BuildSplitCircle "quarterCircleRB" 0x1CC3A 2 2 0 1 + BuildSplitCircle "twelfthCircleRMB" 0x1CC3B 4 4 1 3 + BuildSplitCircle "twelfthCircleLB" 0x1CC3C 4 4 0 0 + BuildSplitCircle "twelfthCircleCLB" 0x1CC3D 4 4 0 1 + BuildSplitCircle "twelfthCircleCRB" 0x1CC3E 4 4 0 2 + BuildSplitCircle "twelfthCircleRB" 0x1CC3F 4 4 0 3 + + do "Television" + define scaffold : object + set scaffold.legSize (1 / 6) + set scaffold.dotSize DotRadius + set scaffold.dotXOffset : (top - bottom) / 9 + set scaffold.dotYOffset : (top - bottom) / 6 + set scaffold.screenInset : (top - bottom) / 8 + set scaffold.cornerRad : (top - bottom) / 8 + + define [Screen top bot left right] : glyph-proc + include : dispiro + widths.lhs graphicSw + flat left ([mix top bot 0.5] + 1) + curl left (bot + scaffold.cornerRad) + arcvh 2 + flat (left + scaffold.cornerRad) bot + curl (right - scaffold.cornerRad) bot + archv 2 + flat right (bot + scaffold.cornerRad) + curl right (top - scaffold.cornerRad) + arcvh 2 + flat (right - scaffold.cornerRad) top + curl (left + scaffold.cornerRad) top + archv 2 + flat left (top - scaffold.cornerRad) + flat left ([mix top bot 0.5] - 1) + + define [Television top bot left right] : glyph-proc + local tvBot : mix bot top scaffold.legSize + local legWidth : (right - left) * scaffold.legSize * (2 / MosaicWidthScalar) + local legLeft : left + [HSwToV graphicSw] + local legRight : right - [HSwToV graphicSw] + local dotX : right - [HSwToV graphicSw] - scaffold.dotXOffset + + include : HBar.t left right top graphicSw + include : HBar.b left right tvBot graphicSw + include : VBar.l left tvBot top graphicSw + include : VBar.r right tvBot top graphicSw + include : spiro-outline + corner legLeft tvBot + corner (legLeft + legWidth / 3) bot + corner (legLeft + legWidth * 2 / 3) bot + corner (legLeft + legWidth) tvBot + include : spiro-outline + corner legRight tvBot + corner (legRight - legWidth / 3) bot + corner (legRight - legWidth * 2 / 3) bot + corner (legRight - legWidth) tvBot + + include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 1) scaffold.dotSize + include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 2) scaffold.dotSize + include : DotAt dotX (top - graphicSw - scaffold.dotYOffset * 3) scaffold.dotSize + include : Screen (top - scaffold.screenInset) (tvBot + scaffold.screenInset) (left + scaffold.screenInset) (dotX - scaffold.dotXOffset) + + create-glyph [MangleName 'televisionLT'] [MangleUnicode 0x1CCB2] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 1 0 1 Television + create-glyph [MangleName 'televisionRT'] [MangleUnicode 0x1CCB3] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 1 1 1 Television + create-glyph [MangleName 'televisionLB'] [MangleUnicode 0x1CCB4] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 0 1 Television + create-glyph [MangleName 'televisionRB'] [MangleUnicode 0x1CCB5] : glyph-proc set-width MosaicWidth include : ForceUpright - include : SplitGraphic top bottom left right vspan hspan vidx hidx CircleTouchingBox - - BuildSplitCircle "twelfthCircleLT" 0x1CC30 4 4 3 0 - BuildSplitCircle "twelfthCircleCLT" 0x1CC31 4 4 3 1 - BuildSplitCircle "twelfthCircleCRT" 0x1CC32 4 4 3 2 - BuildSplitCircle "twelfthCircleRT" 0x1CC33 4 4 3 3 - BuildSplitCircle "twelfthCircleLMT" 0x1CC34 4 4 2 0 - BuildSplitCircle "quarterCircleLT" 0x1CC35 2 2 1 0 - BuildSplitCircle "quarterCircleRT" 0x1CC36 2 2 1 1 - BuildSplitCircle "twelfthCircleRMT" 0x1CC37 4 4 2 3 - BuildSplitCircle "twelfthCircleLMB" 0x1CC38 4 4 1 0 - BuildSplitCircle "quarterCircleLB" 0x1CC39 2 2 0 0 - BuildSplitCircle "quarterCircleRB" 0x1CC3A 2 2 0 1 - BuildSplitCircle "twelfthCircleRMB" 0x1CC3B 4 4 1 3 - BuildSplitCircle "twelfthCircleLB" 0x1CC3C 4 4 0 0 - BuildSplitCircle "twelfthCircleCLB" 0x1CC3D 4 4 0 1 - BuildSplitCircle "twelfthCircleCRB" 0x1CC3E 4 4 0 2 - BuildSplitCircle "twelfthCircleRB" 0x1CC3F 4 4 0 3 + include : multicell.Split top bottom left right 2 2 0 1 1 Television + + do "Microcomputer" + define scaffold : object + set scaffold.blank (1 / 6) + set scaffold.dotSize DotRadius + set scaffold.dotXOffset : (top - bottom) / 9 + set scaffold.dotYOffset : (top - bottom) / 6 + set scaffold.keyInset : (top - bottom) / 8 * (MosaicWidthScalar / 2) + + define [KeyGen top bot left right keys] : glyph-proc + foreach {yp xp1 xp2} [items-of keys] : begin + include : HBar.m + mix left right (xp1 / 28) + mix left right (xp2 / 28) + mix (bot + graphicSw) (top - graphicSw) ((yp + 0.5) / 4) + * graphicSw + + define [Microcomputer top bot left right] : glyph-proc + local cpuTop : mix top bot scaffold.blank + local dotX : right - [HSwToV graphicSw] - scaffold.dotXOffset + local dotY : cpuTop - graphicSw - scaffold.dotYOffset + local kbdTop : dotY - scaffold.dotYOffset + local keyLeft : left + [HSwToV graphicSw] + scaffold.keyInset + local keyRight : right - [HSwToV graphicSw] - scaffold.keyInset + + include : HBar.t left right cpuTop graphicSw + include : HBar.t left right kbdTop graphicSw + include : HBar.b left right bot graphicSw + include : VBar.l left bot cpuTop graphicSw + include : VBar.r right bot cpuTop graphicSw + + include : HBar.m keyLeft (dotX - scaffold.dotSize / 2 - scaffold.keyInset) dotY graphicSw + include : DotAt dotX dotY scaffold.dotSize + + # Key configuration + # ** ** ** ** ** ** **** + # *** ** ** ** ** ** *** + # **** ** ** ** ** ****** + # **************** + include : KeyGen (kbdTop - graphicSw - scaffold.keyInset) (bot + graphicSw + scaffold.keyInset) keyLeft keyRight : list + list 3 0 2 + list 3 4 6 + list 3 8 10 + list 3 12 14 + list 3 16 18 + list 3 20 22 + list 3 24 28 + list 2 0 3 + list 2 5 7 + list 2 9 11 + list 2 13 15 + list 2 17 19 + list 2 21 23 + list 2 25 28 + list 1 0 4 + list 1 6 8 + list 1 10 12 + list 1 14 16 + list 1 18 20 + list 1 22 28 + list 0 6 22 + + create-glyph [MangleName 'microcomputerLT'] [MangleUnicode 0x1CCB6] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 1 0 1 Microcomputer + create-glyph [MangleName 'microcomputerRT'] [MangleUnicode 0x1CCB7] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 1 1 1 Microcomputer + create-glyph [MangleName 'microcomputerLB'] [MangleUnicode 0x1CCB8] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 0 1 Microcomputer + create-glyph [MangleName 'microcomputerRB'] [MangleUnicode 0x1CCB9] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 1 1 Microcomputer + + diff --git a/packages/font-glyphs/src/symbol/pictograph.ptl b/packages/font-glyphs/src/symbol/pictograph.ptl index d11e45081d..d7b5167a9d 100644 --- a/packages/font-glyphs/src/symbol/pictograph.ptl +++ b/packages/font-glyphs/src/symbol/pictograph.ptl @@ -19,6 +19,7 @@ export : define [apply] : begin run-glyph-module "./pictograph/metric-marks.mjs" run-glyph-module "./pictograph/musical.mjs" run-glyph-module "./pictograph/powerline-and-gui.mjs" + run-glyph-module "./pictograph/robot-and-human.mjs" run-glyph-module "./pictograph/schematic.mjs" run-glyph-module "./pictograph/stick-figure.mjs" run-glyph-module "./pictograph/suit.mjs" diff --git a/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl b/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl index 643be50c29..7fc1316a2e 100644 --- a/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl @@ -59,6 +59,15 @@ glyph-block Symbol-Pictograph-Checking-Marks : begin alsoThru 0.47 0.5 g4 ptRSB [mix ptBot ptTop 0.05] + create-glyph [MangleName 'halfCheck'] [MangleUnicode 0x237B] : glyph-proc + set-width MosaicWidth + include : refer-glyph : MangleName : NameUni 0x2713 + include : dispiro + widths.center lightSw + g4 [mix ptSB ptRSB 0.5] [mix ptBot ptTop 0.82] + alsoThru 0.47 0.5 + g4 ptRSB [mix ptBot ptTop 0.42] + do "Ext angle brackets" define Geom : GeometricDim Width Width define mediumSw : UnicodeWeightGrade 5 Geom.Scalar diff --git a/packages/font-glyphs/src/symbol/pictograph/faces.ptl b/packages/font-glyphs/src/symbol/pictograph/faces.ptl index b60425d4a0..7d1dc03675 100644 --- a/packages/font-glyphs/src/symbol/pictograph/faces.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/faces.ptl @@ -8,87 +8,223 @@ glyph-block Symbol-Pictograph-Faces : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + define [Face top bottom left right mosaicWidth mosaicWidthScalar _scale] : namespace + export : define [Dim] : begin + local scale : fallback _scale 1 + local scaffold : object + top top + bot bottom + width : Math.min (right - left) (top - bottom) + midX : mix left right 0.5 + + local div : (scaffold.width + SB * 2) / Width + + set scaffold.left : scaffold.midX - scaffold.width / 2 + set scaffold.right : scaffold.midX + scaffold.width / 2 + set scaffold.sma : ArchDepthAOf (SmallArchDepth * mosaicWidthScalar * scale) (mosaicWidth * scale) + set scaffold.smb : ArchDepthBOf (SmallArchDepth * mosaicWidthScalar * scale) (mosaicWidth * scale) + set scaffold.rda : ArchDepthAOf ((top - bottom) / 2) (mosaicWidth * scale) + set scaffold.rdb : ArchDepthBOf ((top - bottom) / 2) (mosaicWidth * scale) + set scaffold.stroke : AdviceStroke 5 div + set scaffold.fine : AdviceStroke (6 * [Math.sqrt (mosaicWidthScalar * scale)]) div + + define eyeYPos 0.625 + define noseYPos 0.5 + define horiSep : 0.6 * (scaffold.width - scaffold.stroke * 2) + define mouthDepth : 0.025 * [Math.sqrt (mosaicWidthScalar * scale)] + + set scaffold.eyeRad : DotRadius / Stroke * scaffold.fine * scale + set scaffold.bigEyeRad : scaffold.eyeRad * 1.1 + set scaffold.eyeLeftX : scaffold.midX - horiSep / 2 + scaffold.eyeRad / 2 + set scaffold.eyeRightX : scaffold.midX + horiSep / 2 - scaffold.eyeRad / 2 + set scaffold.eyeYPos : mix scaffold.bot scaffold.top eyeYPos + set scaffold.noseRad scaffold.fine + set scaffold.noseYPos : mix scaffold.bot scaffold.top noseYPos + set scaffold.mouthLeftX : scaffold.midX - horiSep / 2 + set scaffold.mouthRightX : scaffold.midX + horiSep / 2 + set scaffold.mouthYPos : lambda [k] : mix scaffold.bot scaffold.top (1 - eyeYPos + k * mouthDepth) + set scaffold.minGap : scaffold.fine / 2 + + return scaffold + local dim : Dim + + export : define [Ring F] : F dim.top dim.bot dim.left dim.right dim.stroke dim.sma dim.smb + export : define [RoundRing F] : F dim.top dim.bot dim.left dim.right dim.stroke dim.rda dim.rdb + + export : define [Eyes] : union + DotAt dim.eyeLeftX dim.eyeYPos dim.eyeRad + DotAt dim.eyeRightX dim.eyeYPos dim.eyeRad + + export : define [OpenEyes] : union + DotStrokeAt dim.eyeLeftX dim.eyeYPos dim.bigEyeRad dim.fine + DotStrokeAt dim.eyeRightX dim.eyeYPos dim.bigEyeRad dim.fine + + export : define [ClosedEyes] : union + HBar.m (dim.eyeLeftX - dim.bigEyeRad) [Math.min (dim.eyeLeftX + dim.bigEyeRad) (dim.midX - dim.minGap)] dim.eyeYPos dim.fine + HBar.m [Math.max (dim.eyeRightX - dim.bigEyeRad) (dim.midX + dim.minGap)] (dim.eyeRightX + dim.bigEyeRad) dim.eyeYPos dim.fine + + export : define [Nose] : DotAt dim.midX dim.noseYPos dim.noseRad + + export : define [Mouth k] : dispiro + widths.center dim.fine + g4 dim.mouthLeftX [dim.mouthYPos k ] + g4 dim.midX [dim.mouthYPos (-k)] + g4 dim.mouthRightX [dim.mouthYPos k ] + + export : define [OpenMouth k] : dispiro + widths.center dim.fine + g4 dim.mouthLeftX [dim.mouthYPos 0 ] + arcvh + g4 dim.midX [dim.mouthYPos (-k)] + archv + g4 dim.mouthRightX [dim.mouthYPos 0 ] + arcvh + g4 dim.midX [dim.mouthYPos k ] + archv + close + for-width-kinds WideWidth1 define faceTop : mix SymbolMid PictTop 0.75 define faceBot : mix SymbolMid PictBot 0.75 - define faceWidth : Math.min (MosaicWidth - SB * 2) (faceTop - faceBot) - define faceMiddle : MosaicWidth / 2 - define faceLeft : faceMiddle - faceWidth / 2 - define faceRight : faceMiddle + faceWidth / 2 - define faceSma : ArchDepthAOf (SmallArchDepth * MosaicWidthScalar) MosaicWidth - define faceSmb : ArchDepthBOf (SmallArchDepth * MosaicWidthScalar) MosaicWidth - - define faceStroke : AdviceStroke 5 ((faceWidth + SB * 2) / Width) - define faceInnerStroke : AdviceStroke (6 * [Math.sqrt MosaicWidthScalar]) ((faceWidth + SB * 2) / Width) - define eyeRadius : DotRadius / Stroke * faceInnerStroke - define eyeHeight 0.625 - define mouthDepth : 0.025 * [Math.sqrt MosaicWidthScalar] - - define [FaceRing F] : F faceTop faceBot faceLeft faceRight faceStroke faceSma faceSmb - - define [FaceEyes width] : union - DotAt (faceMiddle - width / 2 + eyeRadius / 2) [mix faceBot faceTop eyeHeight] eyeRadius - DotAt (faceMiddle + width / 2 - eyeRadius / 2) [mix faceBot faceTop eyeHeight] eyeRadius - - define [SmileFace k width] : union - FaceEyes width - dispiro - widths.center faceInnerStroke - g4 (faceMiddle - width / 2) [mix faceBot faceTop (1 - eyeHeight + k * mouthDepth)] - g4 (faceMiddle) [mix faceBot faceTop (1 - eyeHeight - k * mouthDepth)] - g4 (faceMiddle + width / 2) [mix faceBot faceTop (1 - eyeHeight + k * mouthDepth)] + + define face : Face faceTop faceBot SB (MosaicWidth - SB) MosaicWidth MosaicWidthScalar create-glyph [MangleName 'whiteSadFace'] [MangleUnicode 0x2639] : glyph-proc set-width MosaicWidth include : union - FaceRing OShape - SmileFace (-1) : 0.6 * (faceWidth - faceStroke * 2) + face.Ring OShape + face.Eyes + face.Mouth (-1) create-glyph [MangleName 'whiteSmileFace'] [MangleUnicode 0x263A] : glyph-proc set-width MosaicWidth include : union - FaceRing OShape - SmileFace 1 : 0.6 * (faceWidth - faceStroke * 2) + face.Ring OShape + face.Eyes + face.Mouth 1 create-glyph [MangleName 'blackSmileFace'] [MangleUnicode 0x263B] : glyph-proc set-width MosaicWidth include : difference - FaceRing OShapeOutline - SmileFace 1 : 0.6 * (faceWidth - faceStroke * 2) + face.Ring OShapeOutline + face.Eyes + face.Mouth 1 create-glyph [MangleName 'neutralFace'] [MangleUnicode 0x1F610] : glyph-proc set-width MosaicWidth include : union - FaceRing OShape - SmileFace 0 : 0.6 * (faceWidth - faceStroke * 2) + face.Ring OShape + face.Eyes + face.Mouth 0 create-glyph [MangleName 'blackNeutralFace'] [MangleUnicode 0x1CC6F] : glyph-proc set-width MosaicWidth include : difference - FaceRing OShapeOutline - SmileFace 0 : 0.6 * (faceWidth - faceStroke * 2) + face.Ring OShapeOutline + face.Eyes + face.Mouth 0 create-glyph [MangleName 'mouthlessFace'] [MangleUnicode 0x1F636] : glyph-proc set-width MosaicWidth include : union - FaceRing OShape - FaceEyes : 0.6 * (faceWidth - faceStroke * 2) + face.Ring OShape + face.Eyes create-glyph [MangleName 'slightFrownFace'] [MangleUnicode 0x1F641] : glyph-proc set-width MosaicWidth include : union - FaceRing OShape - SmileFace (-0.5) : 0.6 * (faceWidth - faceStroke * 2) + face.Ring OShape + face.Eyes + face.Mouth (-0.5) create-glyph [MangleName 'slightSmileFace'] [MangleUnicode 0x1F642] : glyph-proc set-width MosaicWidth include : union - FaceRing OShape - SmileFace 0.5 : 0.6 * (faceWidth - faceStroke * 2) + face.Ring OShape + face.Eyes + face.Mouth 0.5 create-glyph [MangleName 'upsideDownFace'] [MangleUnicode 0x1F643] : glyph-proc set-width MosaicWidth include : union - FaceRing OShape - SmileFace 1 : 0.6 * (faceWidth - faceStroke * 2) + face.Ring OShape + face.Eyes + face.Mouth 1 include : FlipAround (MosaicWidth / 2) [mix faceTop faceBot 0.5] + + for-width-kinds WideWidth4 + glyph-block-import Symbol-Mosaic-Split-Graphic : Multicell + local multicell : Multicell MosaicWidth + + define top fontMetrics.os2.sTypoAscender + define bottom fontMetrics.os2.sTypoDescender + define left 0 + define right MosaicWidth + define box : multicell.NBox top bottom left right 2 2 + + define bigFace : Face box.top box.bottom box.left box.right MosaicWidth MosaicWidthScalar 2 + define [FaceOpenEyes t b l r] : union + bigFace.RoundRing OShape.NoOvershoot + bigFace.OpenEyes + bigFace.Nose + define [FaceClosedEyes t b l r] : union + bigFace.RoundRing OShape.NoOvershoot + bigFace.ClosedEyes + bigFace.Nose + define [FaceOpenMouth t b l r] : union + bigFace.RoundRing OShape.NoOvershoot + bigFace.Nose + bigFace.OpenMouth 1 + define [FaceClosedMouth k] : lambda [t b l r] : union + bigFace.RoundRing OShape.NoOvershoot + bigFace.Nose + bigFace.Mouth k + + create-glyph [MangleName 'openEyeBigFaceLeft'] [MangleUnicode 0x1CCA6] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 1 0 1 FaceOpenEyes + create-glyph [MangleName 'openEyeBigFaceRight'] [MangleUnicode 0x1CCA7] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 1 1 1 FaceOpenEyes + create-glyph [MangleName 'closedEyeBigFaceLeft'] [MangleUnicode 0x1CCA8] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 1 0 1 FaceClosedEyes + create-glyph [MangleName 'closedEyeBigFaceRight'] [MangleUnicode 0x1CCA9] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 1 1 1 FaceClosedEyes + create-glyph [MangleName 'smileBigFaceLeft'] [MangleUnicode 0x1CCAA] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 0 1 : FaceClosedMouth 1 + create-glyph [MangleName 'smileBigFaceRight'] [MangleUnicode 0x1CCAB] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 1 1 : FaceClosedMouth 1 + create-glyph [MangleName 'neutralBigFaceLeft'] [MangleUnicode 0x1CCAC] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 0 1 : FaceClosedMouth 0 + create-glyph [MangleName 'neutralBigFaceRight'] [MangleUnicode 0x1CCAD] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 1 1 : FaceClosedMouth 0 + create-glyph [MangleName 'openMouthBigFaceLeft'] [MangleUnicode 0x1CCAE] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 0 1 FaceOpenMouth + create-glyph [MangleName 'openMouthBigFaceRight'] [MangleUnicode 0x1CCAF] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 1 1 FaceOpenMouth + create-glyph [MangleName 'frownBigFaceLeft'] [MangleUnicode 0x1CCB0] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 0 1 : FaceClosedMouth (-1) + create-glyph [MangleName 'frownBigFaceRight'] [MangleUnicode 0x1CCB1] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 2 0 1 1 : FaceClosedMouth (-1) diff --git a/packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl b/packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl index a2991da41f..6dd8df58af 100644 --- a/packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl @@ -30,6 +30,7 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4 define Geom : GeometricDim MosaicUnitWidth MosaicWidth define graphicSw : AdviceStroke 3.5 define smallGraphicSw : AdviceStroke 3.5 : Math.sqrt (MosaicWidthScalar / 2) + define heavyGraphicSw : Math.max (graphicSw * 2) (Width * 0.15) define squareBox : new Box Geom.Top Geom.Bot Geom.Left Geom.Right define [SidewaysBox top bottom left right _left2 _right2] : begin @@ -203,6 +204,67 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4 set-width MosaicWidth include : StickManDressBody scaffold 0 0 + do "Snake Head" + define eyeSize : Geom.Size / 8 + define mouthWidth : Geom.Size / 3 + define eyeOffset mouthWidth + + define [SnakeHead facing fMouth] : glyph-proc + set-width MosaicWidth + include : ForceUpright + + local eyeX : match facing + 0 : midX + eyeSize + 1 : midX - eyeSize - eyeOffset + 2 : midX - eyeSize + 3 : midX + eyeSize + eyeOffset + local eyeY : match facing + 0 : midY + eyeSize + eyeOffset + 1 : midY + eyeSize + 2 : midY + eyeSize + eyeOffset + 3 : midY - eyeSize + + include : difference + union + refer-glyph : MangleName : match facing + 0 'uni2578' + 1 'uni257B' + 2 'uni257A' + 3 'uni2579' + refer-glyph : MangleName 'blackCircle' + DotAt eyeX eyeY eyeSize + if fMouth + spiro-outline + corner midX midY + match facing + 0 : corner Geom.Right (midY - mouthWidth) + 1 : corner (midX + mouthWidth) Geom.Top + 2 : corner Geom.Left (midY + mouthWidth) + 3 : corner (midX - mouthWidth) Geom.Bot + match facing + 0 : corner Geom.Right (midY + mouthWidth) + 1 : corner (midX - mouthWidth) Geom.Top + 2 : corner Geom.Left (midY - mouthWidth) + 3 : corner (midX + mouthWidth) Geom.Bot + glyph-proc + + create-glyph [MangleName "snakeHeadLeftOpen"] [MangleUnicode 0x1CC70] : glyph-proc + include : SnakeHead 2 0 + create-glyph [MangleName "snakeHeadUpOpen"] [MangleUnicode 0x1CC71] : glyph-proc + include : SnakeHead 1 0 + create-glyph [MangleName "snakeHeadRightOpen"] [MangleUnicode 0x1CC72] : glyph-proc + include : SnakeHead 0 0 + create-glyph [MangleName "snakeHeadDownOpen"] [MangleUnicode 0x1CC73] : glyph-proc + include : SnakeHead 3 0 + create-glyph [MangleName "snakeHeadLeftClosed"] [MangleUnicode 0x1CC74] : glyph-proc + include : SnakeHead 2 1 + create-glyph [MangleName "snakeHeadUpClosed"] [MangleUnicode 0x1CC75] : glyph-proc + include : SnakeHead 1 1 + create-glyph [MangleName "snakeHeadRightClosed"] [MangleUnicode 0x1CC76] : glyph-proc + include : SnakeHead 0 1 + create-glyph [MangleName "snakeHeadDownClosed"] [MangleUnicode 0x1CC77] : glyph-proc + include : SnakeHead 3 1 + do "Energy Waves" define [LeftEnergyWave top bottom left right] : glyph-proc local midX : mix left right 0.5 diff --git a/packages/font-glyphs/src/symbol/pictograph/robot-and-human.ptl b/packages/font-glyphs/src/symbol/pictograph/robot-and-human.ptl new file mode 100644 index 0000000000..1c9b28340a --- /dev/null +++ b/packages/font-glyphs/src/symbol/pictograph/robot-and-human.ptl @@ -0,0 +1,308 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Symbol-Pictograph-Robot-And-Human : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Symbol-Mosaic-Split-Graphic : Multicell + + define top fontMetrics.os2.sTypoAscender + define bottom fontMetrics.os2.sTypoDescender + define left 0 + define right Width + + define graphicSw : AdviceStroke 3.5 + define PictographSw : AdviceStroke 4 + + define SIDE : object + LEFT 0 + FRONT 1 + RIGHT 2 + + define rbtScaffold : object + set rbtScaffold.headWidth (1 / 2) + set rbtScaffold.headWidth2 (3 / 4) + set rbtScaffold.headHeight (1 / 3) + set rbtScaffold.eyeSpan (1 / 2) + + set rbtScaffold.bodyTop (2 / 3) + set rbtScaffold.bodyOvershoot (13 / 12) + set rbtScaffold.shoulder (1 / 2) + set rbtScaffold.bodyWidth (3 / 4) + set rbtScaffold.markSpan (2 / 3) + set rbtScaffold.markTop (2 / 3) + + set rbtScaffold.pelvis (1 / 4) + set rbtScaffold.legGap (1 / 3) + set rbtScaffold.footLen (1 / 4) + + define hmnScaffold : object + set hmnScaffold.headSizeX 0.8 + set hmnScaffold.headSizeY (1 / 4) + + set hmnScaffold.neckGap 0.05 + set hmnScaffold.bodyWidth 1 + set hmnScaffold.shoulderRad (1 / 16) + + set hmnScaffold.armBot 0.5 + set hmnScaffold.armBotHigh 0.6 + set hmnScaffold.armBotHigher 0.75 + + set hmnScaffold.legWidth (1 / 2) + set hmnScaffold.legBot 0 + set hmnScaffold.legBotHigh 0.2 + set hmnScaffold.legBotHigher 0.3 + + # Components + define [FlailRobotHead rev top bot left right] : glyph-proc + local midX : mix left right 0.5 + local midY : mix top bot 0.5 + local archDepth : Math.min + (right - left) / 2.25 + (top - bot) / 2 + + local eyeHeight : (top - bot) * (1 / 4) + PictographSw + local eyeOffset : Math.min + (right - left) / 12 + (right - left - 2 * [HSwToV graphicSw] - eyeHeight) / 2 + + include : dispiro + widths.lhs graphicSw + g4 left midY + arcvh + flat (left + archDepth) bot + curl (right - archDepth) bot + archv + g4 right midY + arcvh + flat (right - archDepth) top + curl (left + archDepth) top + archv + close + include : DotAt (midX + [if rev 1 (-1)] * eyeOffset) midY (eyeHeight / 2) + + define [RobotHead side top bot left right] : glyph-proc + local midX : mix left right 0.5 + local midY : mix top bot 0.5 + + local eyeHeight : (top - bot) * (1 / 4) + PictographSw + local eyeTop : midY + (0.5 * eyeHeight) + local eyeBot : midY - (0.5 * eyeHeight) + local eyeWidth : (right - left) * rbtScaffold.eyeSpan + include : difference + Rect top bot left right + match side + [Just SIDE.LEFT ] : Rect eyeTop eyeBot left (left + eyeWidth) + [Just SIDE.FRONT] : Rect eyeTop eyeBot (midX - 0.5 * eyeWidth) (midX + 0.5 * eyeWidth) + [Just SIDE.RIGHT] : Rect eyeTop eyeBot (right - eyeWidth) right + + define [FlailRobotBody rev top bot left right] : glyph-proc + local midX : mix left right 0.5 + + local legWidth : (right - left) * hmnScaffold.legWidth / 2 + local legLeft : midX - legWidth + local legRight : midX + legWidth + + local armY : mix bot top (5 / 8) + local forearmLength : (top - bot) * (5 / 8) + + include : Rect top bot legLeft legRight + include : HBar.m left right armY PictographSw + include : VBar.l left armY (armY + [if rev (-1) 1] * forearmLength) PictographSw + include : VBar.r right armY (armY + [if rev 1 (-1)] * forearmLength) PictographSw + + define [RobotBody side top bot left right] : glyph-proc + local midX : mix left right 0.5 + + local shoulderY : mix bot top rbtScaffold.shoulder + local bodyTop : mix bot top rbtScaffold.bodyOvershoot + + local markLeft : mix left right (0.5 - rbtScaffold.markSpan / 2) + local markRight : mix left right (0.5 + rbtScaffold.markSpan / 2) + local markTop : mix bot top rbtScaffold.markTop + local markSw : (markRight - markLeft) * (2 / 5) - PictographSw / 2 + + include : difference + spiro-outline + corner left shoulderY + corner left bot + corner right bot + corner right shoulderY + corner midX bodyTop + match side + [Just SIDE.LEFT ] : union + Rect (bot + markSw) bot markLeft (markRight - markSw) + Rect markTop (bot + markSw) (markRight - markSw * 2) (markRight - markSw) + [Just SIDE.FRONT] : union + Rect markTop (bot + markSw) markLeft (markLeft + markSw) + Rect markTop (bot + markSw) (markRight - markSw) markRight + [Just SIDE.RIGHT] : union + Rect (bot + markSw) bot (markLeft + markSw) markRight + Rect markTop (bot + markSw) (markLeft + markSw) (markLeft + markSw * 2) + + # Full Glyph + define [HumanFront step] : lambda [top bot left right] : glyph-proc + local midX : mix left right 0.5 + + local headSize : Math.min + (right - left) * hmnScaffold.headSizeX + (top - bot) * hmnScaffold.headSizeY + include : DotAt midX (top - headSize / 2) (headSize / 2) + + local bodyTop : top - headSize - (top - bot) * hmnScaffold.neckGap + local cr : (top - bot) * hmnScaffold.shoulderRad + local legWidth : (right - left) * hmnScaffold.legWidth / 2 + local legLeft : midX - legWidth + local legRight : midX + legWidth + local bodyWidth : (right - left) * hmnScaffold.bodyWidth / 2 + local bodyLeft : midX - bodyWidth + local bodyRight : midX + bodyWidth + + local armLeftBot : mix bot bodyTop : match step + 2 hmnScaffold.armBotHigh + 3 hmnScaffold.armBotHigher + 4 hmnScaffold.armBotHigher + __ hmnScaffold.armBot + local armRightBot : mix bot bodyTop : match step + 1 hmnScaffold.armBotHigher + 2 hmnScaffold.armBotHigh + 4 hmnScaffold.armBotHigher + __ hmnScaffold.armBot + local legLeftBot : mix bot bodyTop : match step + 2 hmnScaffold.legBotHigh + 3 hmnScaffold.legBotHigher + __ hmnScaffold.legBot + local legRightBot : mix bot bodyTop : match step + 1 hmnScaffold.legBotHigher + 2 hmnScaffold.legBotHigh + __ hmnScaffold.legBot + + include : spiro-outline + widths.center PictographSw + corner legLeft legLeftBot + corner legLeft armLeftBot + corner bodyLeft armLeftBot + curl bodyLeft (bodyTop - cr) + arcvh + flat (bodyLeft + cr) bodyTop + curl (bodyRight - cr) bodyTop + archv + flat bodyRight (bodyTop - cr) + corner bodyRight armRightBot + corner legRight armRightBot + corner legRight legRightBot + if (legRightBot === legLeftBot) [list] : list + corner midX legRightBot + corner midX legLeftBot + close + + define [FlailRobotUpper rev top bot left right] : glyph-proc + include : FlailRobotHead rev + * top + mix top bot rbtScaffold.headHeight + mix left right (0.5 - rbtScaffold.headWidth2 / 2) + mix left right (0.5 + rbtScaffold.headWidth2 / 2) + + local bodyTop : top - (top - bot) * (rbtScaffold.headHeight + hmnScaffold.neckGap * 2) + + include : FlailRobotBody rev bodyTop bot left right + + define [RobotUpper side top bot left right] : glyph-proc + include : RobotHead side + * top + mix top bot rbtScaffold.headHeight + mix left right (0.5 - rbtScaffold.headWidth / 2) + mix left right (0.5 + rbtScaffold.headWidth / 2) + + include : RobotBody side + mix bot top rbtScaffold.bodyTop + * bot + mix left right (0.5 - rbtScaffold.bodyWidth / 2) + mix left right (0.5 + rbtScaffold.bodyWidth / 2) + + define [RobotLegs side top bot left right] : glyph-proc + local bodyLeft : mix left right (0.5 - rbtScaffold.bodyWidth / 2) + local bodyRight : mix left right (0.5 + rbtScaffold.bodyWidth / 2) + local pelvis : mix top bot rbtScaffold.pelvis + + include : Rect top pelvis bodyLeft bodyRight + + local legLeft : mix left right (0.5 - rbtScaffold.legGap / 2) + local legRight : mix left right (0.5 + rbtScaffold.legGap / 2) + local footLen : (right - left) * rbtScaffold.footLen + + include : VBar.r legLeft bot pelvis PictographSw + include : if (side === SIDE.RIGHT) + HBar.b legLeft (legLeft + footLen - [HSwToV PictographSw]) bot PictographSw + HBar.b (legLeft - footLen) legLeft bot PictographSw + include : VBar.l legRight bot pelvis PictographSw + include : if (side === SIDE.LEFT) + HBar.b (legRight - footLen + [HSwToV PictographSw]) legRight bot PictographSw + HBar.b legRight (legRight + footLen) bot PictographSw + + for-width-kinds WideWidth4 + local multicell : Multicell MosaicWidth + define right MosaicWidth + + create-glyph [MangleName 'robotBodyLeft'] [MangleUnicode 0x1CC5A] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : RobotUpper SIDE.LEFT top bottom left right + create-glyph [MangleName 'robotBodyFront'] [MangleUnicode 0x1CC5B] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : RobotUpper SIDE.FRONT top bottom left right + create-glyph [MangleName 'robotBodyRight'] [MangleUnicode 0x1CC5C] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : RobotUpper SIDE.RIGHT top bottom left right + create-glyph [MangleName 'robotLegsLeft'] [MangleUnicode 0x1CC5D] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : RobotLegs SIDE.LEFT top bottom left right + create-glyph [MangleName 'robotLegsFront'] [MangleUnicode 0x1CC5E] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : RobotLegs SIDE.FRONT top bottom left right + create-glyph [MangleName 'robotLegsRight'] [MangleUnicode 0x1CC5F] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : RobotLegs SIDE.RIGHT top bottom left right + create-glyph [MangleName 'humanFrontTop'] [MangleUnicode 0x1CDF0] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 1 1 0 1 : HumanFront 0 + create-glyph [MangleName 'humanFrontBottom1'] [MangleUnicode 0x1CDF1] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 1 0 0 1 : HumanFront 1 + create-glyph [MangleName 'humanFrontBottom2'] [MangleUnicode 0x1CDF2] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 1 0 0 1 : HumanFront 2 + create-glyph [MangleName 'humanFrontBottom3'] [MangleUnicode 0x1CDF3] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 1 0 0 1 : HumanFront 3 + create-glyph [MangleName 'humanFrontBottom4'] [MangleUnicode 0x1CDF4] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : multicell.Split top bottom left right 2 1 0 0 1 : HumanFront 4 + create-glyph [MangleName 'flailRobotBody1'] [MangleUnicode 0x1CDF6] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : FlailRobotUpper 0 top bottom left right + create-glyph [MangleName 'flailRobotBody2'] [MangleUnicode 0x1CDF7] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : FlailRobotUpper 1 top bottom left right + + create-glyph 'ccHumanFigure' : glyph-proc + include : [HumanFront 0] + mix ParenBot ParenTop 0.95 + mix ParenBot ParenTop 0.05 + mix SB RightSB 0.1 + mix SB RightSB 0.9 diff --git a/packages/font-glyphs/src/symbol/pictograph/schematic.ptl b/packages/font-glyphs/src/symbol/pictograph/schematic.ptl index 02a772d02d..522b970ade 100644 --- a/packages/font-glyphs/src/symbol/pictograph/schematic.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/schematic.ptl @@ -23,6 +23,11 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin define boxDrawingStroke : AdviceStroke 3.5 define fineStroke : AdviceStroke 3.5 : Math.sqrt (MosaicWidthScalar / 2) + define [LineExt x1 y1 x2 y2 sw] : dispiro + widths.center sw + corner [mix x1 x2 (-1)] [mix y1 y2 (-1)] + corner [mix x1 x2 2 ] [mix y1 y2 2 ] + define gateSize : MosaicHeight / 2 define gateBot : midy - gateSize define gateTop : midy + gateSize @@ -40,6 +45,38 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin arcvh 32 2.0 close + do "Monostable and Bell" + create-glyph [MangleName 'monostable'] [MangleUnicode 0x238D] : glyph-proc + set-width MosaicWidth + include : HBar.b Geom.Left (Geom.MidX - Geom.Size * 0.5) Geom.Bot boxDrawingStroke + include : VBar.m (Geom.MidX - Geom.Size * 0.5) Geom.Bot Geom.Top boxDrawingStroke + include : HBar.t (Geom.MidX - Geom.Size * 0.5) (Geom.MidX + Geom.Size * 0.5) Geom.Top boxDrawingStroke + include : VBar.m (Geom.MidX + Geom.Size * 0.5) Geom.Bot Geom.Top boxDrawingStroke + include : HBar.b (Geom.MidX + Geom.Size * 0.5) Geom.Right Geom.Bot boxDrawingStroke + + create-glyph [MangleName 'bellSymbol'] [MangleUnicode 0x237E] : glyph-proc + set-width MosaicWidth + include : intersection + MaskBelow Geom.MidY + refer-glyph : MangleName 'monostable' + include : with-transform + ApparentTranslate 0 (Geom.Size / 2) + refer-glyph : MangleName 'segment' + + do "Fuse" + create-glyph [MangleName 'fuse'] [MangleUnicode 0x23DB] : glyph-proc + include [refer-glyph : MangleName : NameUni 0x2500] AS_BASE ALSO_METRICS + include : refer-glyph : MangleName 'whiteHoriRectangle' + + do "Earth Ground" + create-glyph [MangleName 'earthGround'] [MangleUnicode 0x23DA] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : VBar.m midx midy top boxDrawingStroke + include : HBar.m Geom.Left Geom.Right midy boxDrawingStroke + include : HBar.m (Geom.MidX - Geom.Size * 0.6) (Geom.MidX + Geom.Size * 0.6) [mix bottom top 0.4] boxDrawingStroke + include : HBar.m (Geom.MidX - Geom.Size * 0.3) (Geom.MidX + Geom.Size * 0.3) [mix bottom top 0.3] boxDrawingStroke + do "Explosion at Horizon" define horizon : Geom.MidY - Geom.Size * 0.8 create-glyph [MangleName 'explosionHorizon'] [MangleUnicode 0x1CE02] : glyph-proc @@ -90,24 +127,18 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin corner midx midy do "Resistor" - define amplitude Geom.Size + define amplitude : Geom.Size * 0.8 define vWaves 2 define hWaves MosaicWidthScalar define [HoriWaveSegment left right lefty righty sw] : intersection MaskRight left MaskLeft right - dispiro - widths.center sw - corner [mix left right (-1)] [mix lefty righty (-1)] - corner [mix left right 2 ] [mix lefty righty 2 ] + LineExt left lefty right righty sw define [VertWaveSegment bot top botx topx sw] : intersection MaskAbove bot MaskBelow top - dispiro - widths.center sw - corner [mix botx topx (-1)] [mix bot top (-1)] - corner [mix botx topx 2 ] [mix bot top 2 ] + LineExt botx bot topx top sw create-glyph [MangleName 'resistorHori'] [MangleUnicode 0x1CC09] : glyph-proc set-width MosaicWidth @@ -116,7 +147,10 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin local halfPeriod : MosaicWidth / (2 * hWaves) local up : midy + amplitude local down : midy - amplitude - include : HoriWaveSegment left (left + 0.5 * halfPeriod) midy up boxDrawingStroke + include : intersection + MaskLeft : left + 0.5 * halfPeriod + MaskAbove : midy - 0.5 * boxDrawingStroke + LineExt left midy (left + 0.5 * halfPeriod) up boxDrawingStroke foreach [j : range 0 segs] : begin include : HoriWaveSegment left + (j + 0.5) * halfPeriod @@ -124,7 +158,10 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin if (j % 2) down up if (j % 2) up down * boxDrawingStroke - include : HoriWaveSegment (right - halfPeriod * 0.5) right down midy boxDrawingStroke + include : intersection + MaskRight : right - 0.5 * halfPeriod + MaskBelow : midy + 0.5 * boxDrawingStroke + LineExt (right - 0.5 * halfPeriod) down right midy boxDrawingStroke create-glyph [MangleName 'resistorVert'] [MangleUnicode 0x1CC0A] : glyph-proc set-width MosaicWidth @@ -133,7 +170,10 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin local halfPeriod : MosaicHeight / (2 * vWaves) local up : midx + amplitude local down : midx - amplitude - include : VertWaveSegment bottom (bottom + halfPeriod * 0.5) midx up boxDrawingStroke + include : intersection + MaskBelow : bottom + 0.5 * halfPeriod + MaskRight : midx - [HSwToV : 0.5 * boxDrawingStroke] + LineExt midx bottom up (bottom + 0.5 * halfPeriod) boxDrawingStroke foreach [j : range 0 segs] : begin include : VertWaveSegment bottom + (j + 0.5) * halfPeriod @@ -141,7 +181,10 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin if (j % 2) down up if (j % 2) up down * boxDrawingStroke - include : VertWaveSegment (top - halfPeriod * 0.5) top down midx boxDrawingStroke + include : intersection + MaskAbove : top - 0.5 * halfPeriod + MaskLeft : midx + [HSwToV : 0.5 * boxDrawingStroke] + LineExt down (top - 0.5 * halfPeriod) midx top boxDrawingStroke do "Diode" define diodeGap : MosaicWidth / 9 @@ -172,11 +215,17 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin local baseDy : baseDx / (-slope) define arrowPos : (1 - [HSwToV boxDrawingStroke] / (MosaicWidth / 2)) * 0.4 + define [VerticalPart] : intersection + Rect top bottom left (midx + [HSwToV : 0.5 * boxDrawingStroke]) + union + LineExt midx bottom left midy boxDrawingStroke + LineExt left midy midx top boxDrawingStroke + create-glyph [MangleName 'transistorPNP'] [MangleUnicode 0x1CC10] : glyph-proc set-width MosaicWidth include : ForceUpright include : VBar.l left gateBot gateTop boxDrawingStroke - include : refer-glyph : MangleName : NameUni 0x1FBA4 + include : VerticalPart local arrowCx : mix midx left arrowPos local arrowCy : mix bottom midy arrowPos @@ -189,7 +238,7 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin set-width MosaicWidth include : ForceUpright include : VBar.l left gateBot gateTop boxDrawingStroke - include : refer-glyph : MangleName : NameUni 0x1FBA4 + include : VerticalPart local arrowCx : mix midx left arrowPos local arrowCy : mix top midy arrowPos diff --git a/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl b/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl index bfad6ec451..77b904451f 100644 --- a/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl @@ -151,32 +151,3 @@ glyph-block Symbol-Pictograph-Stick-Figure : begin set-width MosaicWidth local tfm : Transform.Combine include : PointingHandShape vBox [D4Transform (MosaicWidth / 2) 3 1] sw - - create-glyph 'ccHumanFigure' : glyph-proc - define yTop : mix ParenBot ParenTop 0.95 - define yBot : mix ParenBot ParenTop 0.05 - define cr : (yTop - yBot) * (1 / 16) - define rHead : (yTop - yBot) * (1 / 8) - define yBody : mix yBot yTop 0.7 - define yArm : mix yBot yBody 0.5 - define lArm : mix SB RightSB 0.1 - define rArm : mix SB RightSB 0.9 - define lLeg : mix lArm rArm (1 / 4) - define rLeg : mix lArm rArm (3 / 4) - - include : DotAt Middle (yTop - rHead) rHead - include : spiro-outline - widths.center [AdviceStroke 4] - corner lLeg yBot - corner lLeg yArm - corner lArm yArm - curl lArm (yBody - cr) - arcvh - flat (lArm + cr) yBody - curl (rArm - cr) yBody - archv - flat rArm (yBody - cr) - corner rArm yArm - corner rLeg yArm - corner rLeg yBot - close diff --git a/packages/font-glyphs/src/symbol/punctuation/bar.ptl b/packages/font-glyphs/src/symbol/punctuation/bar.ptl index 789272d56b..4cd98c3f3f 100644 --- a/packages/font-glyphs/src/symbol/punctuation/bar.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/bar.ptl @@ -82,6 +82,18 @@ glyph-block Symbol-Punctuation-Bar : begin include : ForceUpright include : TripleBarShape Middle ParenTop ParenBot + WithDotVariants 'barWithDot.upright' null : function [DrawAt kr ov] : glyph-proc + include : refer-glyph 'bar.upright' + include : DrawAt Middle SymbolMid (PeriodRadius * kr - ov) + + WithDotVariants 'barWithDot.slanted.naturalSlope' null : function [DrawAt kr ov] : glyph-proc + include : refer-glyph 'bar.slanted.naturalSlope' + include : DrawAt Middle SymbolMid (PeriodRadius * kr - ov) + + WithDotVariants 'barWithDot.slanted.forceUpright' null : function [DrawAt kr ov] : glyph-proc + include : refer-glyph 'bar.slanted.forceUpright' + include : DrawAt Middle SymbolMid (PeriodRadius * kr - ov) + select-variant 'bar.slanted' orthographic-slanted 'bar' '|' @@ -94,6 +106,9 @@ glyph-block Symbol-Punctuation-Bar : begin select-variant 'tripleBar.slanted' (follow -- 'bar.slanted') orthographic-slanted 'tripleBar' 0x2980 + select-variant 'barWithDot.slanted' (follow -- 'bar.slanted') + orthographic-slanted 'barWithDot' 0x237F + create-glyph 'dentalclick' 0x1C0 : BarShape Middle ParenTop ParenBot create-glyph 'alveolarlateralclick' 0x1C1 : DoubleBarShape Middle ParenTop ParenBot create-glyph 'palatoalveolarclick' 0x1C2 : glyph-proc diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 799fb2470d..4b2124e273 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,14 +1,14 @@ { "name": "@iosevka/font-kits", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { "./boole-kit": "./src/boole-kit.mjs", "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "29.2.0", - "@iosevka/glyph": "29.2.0", - "@iosevka/util": "29.2.0" + "@iosevka/geometry": "29.2.1", + "@iosevka/glyph": "29.2.1", + "@iosevka/util": "29.2.1" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index 1513dfe7d3..d2e228361d 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "29.2.0", - "@iosevka/glyph": "29.2.0", + "@iosevka/font-glyphs": "29.2.1", + "@iosevka/glyph": "29.2.1", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index 8ac97f6351..f28eefee84 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "29.2.0", - "@iosevka/font-otl": "29.2.0", - "@iosevka/geometry": "29.2.0", - "@iosevka/geometry-cache": "29.2.0", - "@iosevka/glyph": "29.2.0", - "@iosevka/param": "29.2.0", - "@iosevka/util": "29.2.0", + "@iosevka/font-glyphs": "29.2.1", + "@iosevka/font-otl": "29.2.1", + "@iosevka/geometry": "29.2.1", + "@iosevka/geometry-cache": "29.2.1", + "@iosevka/glyph": "29.2.1", + "@iosevka/param": "29.2.1", + "@iosevka/util": "29.2.1", "harfbuzzjs": "^0.3.4", "ot-builder": "^1.7.3", "semver": "^7.6.0" diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index be03535eff..0376f79955 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "29.2.0", + "@iosevka/geometry": "29.2.1", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index 9f6716288b..6641336875 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -13,7 +13,7 @@ "./spiro-control": "./src/spiro-control.mjs" }, "dependencies": { - "@iosevka/util": "29.2.0", + "@iosevka/util": "29.2.1", "spiro": "^3.0.1", "typo-geom": "^0.15.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index ecad2c3991..8b426a7f13 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "29.2.0" + "@iosevka/geometry": "29.2.1" } } diff --git a/packages/param/package.json b/packages/param/package.json index 72568b7708..42508ecdec 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "29.2.0" + "@iosevka/util": "29.2.1" } } diff --git a/packages/util/package.json b/packages/util/package.json index 9e55781e4a..e7b55037a9 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/params/variants.toml b/params/variants.toml index 591e8492a3..e3481b9ed9 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1983,15 +1983,11 @@ tagKind = "letter" rank = 1 description = "`e` with flat crossbar" selector.e = "flatCrossbar" -selector.Schwa = "flatCrossbar" -selector.schwa = "flatCrossbar" [prime.e.variants.rounded] rank = 2 description = "`e` with more rounded shape" selector.e = "rounded" -selector.Schwa = "rounded" -selector.schwa = "rounded" @@ -4077,7 +4073,6 @@ rank = 1 descriptionAffix = "straight shape" selectorAffix.x = "straight" selectorAffix."x/sansSerif" = "straight" -selectorAffix."cyrl/ha" = "straight" selectorAffix."cyrl/rha/right" = "straight" [prime.x.variants-buildup.stages.body.curly] @@ -4085,7 +4080,6 @@ rank = 2 descriptionAffix = "curly shape" selectorAffix.x = "curly" selectorAffix."x/sansSerif" = "curly" -selectorAffix."cyrl/ha" = "curly" selectorAffix."cyrl/rha/right" = "curly" [prime.x.variants-buildup.stages.body.cursive] @@ -4094,7 +4088,6 @@ next = "END" descriptionAffix = "cursive shape" selectorAffix.x = "cursive" selectorAffix."x/sansSerif" = "cursive" -selectorAffix."cyrl/ha" = "cursive" selectorAffix."cyrl/rha/right" = "cursive" [prime.x.variants-buildup.stages.body.semi-chancery-straight] @@ -4103,7 +4096,6 @@ next = "END" descriptionAffix = "Semi-chancery shape with straight counter-leg" selectorAffix.x = "semiChanceryStraight" selectorAffix."x/sansSerif" = "semiChanceryStraight" -selectorAffix."cyrl/ha" = "semiChanceryStraight" selectorAffix."cyrl/rha/right" = "semiChanceryStraight" [prime.x.variants-buildup.stages.body.semi-chancery-curly] @@ -4112,7 +4104,6 @@ next = "END" descriptionAffix = "Semi-chancery shape with curly counter-leg" selectorAffix.x = "semiChanceryCurly" selectorAffix."x/sansSerif" = "semiChanceryCurly" -selectorAffix."cyrl/ha" = "semiChanceryCurly" selectorAffix."cyrl/rha/right" = "semiChanceryCurly" [prime.x.variants-buildup.stages.body.chancery] @@ -4121,7 +4112,6 @@ next = "END" descriptionAffix = "Chancery shape" selectorAffix.x = "chancery" selectorAffix."x/sansSerif" = "chancery" -selectorAffix."cyrl/ha" = "chancery" selectorAffix."cyrl/rha/right" = "chancery" [prime.x.variants-buildup.stages.serifs.serifless] @@ -4130,7 +4120,6 @@ descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix.x = "serifless" selectorAffix."x/sansSerif" = "serifless" -selectorAffix."cyrl/ha" = "serifless" selectorAffix."cyrl/rha/right" = "serifless" [prime.x.variants-buildup.stages.serifs.motion-serifed] @@ -4138,7 +4127,6 @@ rank = 2 descriptionAffix = "motion serifs" selectorAffix.x = "motionSerifed" selectorAffix."x/sansSerif" = "serifless" -selectorAffix."cyrl/ha" = "motionSerifed" selectorAffix."cyrl/rha/right" = "serifless" [prime.x.variants-buildup.stages.serifs.serifed] @@ -4146,7 +4134,6 @@ rank = 3 descriptionAffix = "serifs" selectorAffix.x = "serifed" selectorAffix."x/sansSerif" = "serifless" -selectorAffix."cyrl/ha" = "serifed" selectorAffix."cyrl/rha/right" = "serifed" diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index a32421bb51..8f559d34d9 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "29.2.0", + "@iosevka/param": "29.2.1", "@unicode/unicode-15.1.0": "^1.5.2" } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index e254a298f1..bf788233e5 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "29.2.0", + "@iosevka/param": "29.2.1", "@unicode/unicode-15.1.0": "^1.5.2", "cldr": "^7.5.0" } diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index a191010cb2..d1ae638b58 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "29.2.0", + "version": "29.2.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "29.2.0" + "@iosevka/data-export": "29.2.1" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index 9e6f143669..5d9126489b 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,10 +1,10 @@ { "name": "@iosevka/misc", - "version": "29.2.0", + "version": "29.2.1", "private": true, "dependencies": { "semver": "^7.6.0", "wawoff2": "^2.0.1", - "@iosevka/util": "29.2.0" + "@iosevka/util": "29.2.1" } }