diff --git a/CHANGELOG.md b/CHANGELOG.md index ebe4c8b23c..f431154ae7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ ## Modifications since last major version +### 32.3.1 + +* Make certain characters slightly narrower under Quasi-Proportional. Affected characters: + - GREEK CAPITAL LETTER HETA (`U+0370`). + - GREEK SMALL LETTER HETA (`U+0371`). + - LATIN CAPITAL LETTER HALF H (`U+2C75`). + - LATIN SMALL LETTER HALF H (`U+2C76`). + - LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`). + - LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`). +* Fix shape of `U+276E` and `U+276E` (#2603). +* Improve serifs of Bulgarian Cyrillic Lower Zhe (`ж`). +* Add characters: + - OPEN CENTRE CROSS (`U+271B`). + - HEAVY OPEN CENTRE CROSS (`U+271C`). + - MALTESE CROSS (`U+2720`). + - FOUR TEARDROP-SPOKED ASTERISK (`U+2722`) ... FOUR CLUB-SPOKED ASTERISK (`U+2725`). + - OPEN CENTRE ASTERISK (`U+2732`). + - TEARDROP-SPOKED ASTERISK (`U+273B`) ... HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK (`U+274B`). + + ### 32.3.0 * Make Cyrillic Capital/Small Letter Yn (U+A65E‥U+A65F) to follow Greek Capital Lambda (cv72) instead of V/v. (#2539) diff --git a/LICENSE.md b/LICENSE.md index adbbbc63ea..3efe1ab581 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -Copyright (c) 2015-2024, Renzhi Li (aka. Belleve Invis, belleve@typeof.net) +Copyright (c) 2015-2025, Renzhi Li (aka. Belleve Invis, belleve@typeof.net) This Font Software is licensed under the SIL Open Font License, Version 1.1. diff --git a/changes/32.3.1.md b/changes/32.3.1.md new file mode 100644 index 0000000000..bc26ed3eb0 --- /dev/null +++ b/changes/32.3.1.md @@ -0,0 +1,16 @@ +* Make certain characters slightly narrower under Quasi-Proportional. Affected characters: + - GREEK CAPITAL LETTER HETA (`U+0370`). + - GREEK SMALL LETTER HETA (`U+0371`). + - LATIN CAPITAL LETTER HALF H (`U+2C75`). + - LATIN SMALL LETTER HALF H (`U+2C76`). + - LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`). + - LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`). +* Fix shape of `U+276E` and `U+276E` (#2603). +* Improve serifs of Bulgarian Cyrillic Lower Zhe (`ж`). +* Add characters: + - OPEN CENTRE CROSS (`U+271B`). + - HEAVY OPEN CENTRE CROSS (`U+271C`). + - MALTESE CROSS (`U+2720`). + - FOUR TEARDROP-SPOKED ASTERISK (`U+2722`) ... FOUR CLUB-SPOKED ASTERISK (`U+2725`). + - OPEN CENTRE ASTERISK (`U+2732`). + - TEARDROP-SPOKED ASTERISK (`U+273B`) ... HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK (`U+274B`). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 88a94bc013..3254b4bf9c 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 32.3.0 +# Package list of Release 32.3.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/images/button-release.dark.svg b/images/button-release.dark.svg index 6f49fdad96..23167b040b 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 cc6fe4b8d8..1d8a914bd8 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-dingbats.dark.svg b/images/cs-block-dingbats.dark.svg index 9446e4ad91..28707c2204 100644 --- a/images/cs-block-dingbats.dark.svg +++ b/images/cs-block-dingbats.dark.svg @@ -27,63 +27,88 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -321,18 +346,18 @@ - - + + - - + + - + @@ -356,43 +381,43 @@ - - + + - + - - + + - - + + - - + + - - + + - + - + @@ -452,22 +477,22 @@ - + - - + + - + - + @@ -477,52 +502,52 @@ - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + @@ -536,68 +561,68 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -657,7 +682,7 @@ - + @@ -667,17 +692,17 @@ - + - + - + @@ -737,7 +762,7 @@ - + @@ -777,22 +802,22 @@ - + - + - + - + @@ -807,12 +832,12 @@ - + - + @@ -837,52 +862,52 @@ - + - + - + - + - + - + - + - + - + - + @@ -897,82 +922,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -987,27 +1012,27 @@ - + - + - + - + - + @@ -1047,17 +1072,17 @@ - + - + - + @@ -1082,37 +1107,37 @@ - + - + - + - + - + - + - + @@ -1167,7 +1192,7 @@ - + @@ -1242,7 +1267,7 @@ - + \ No newline at end of file diff --git a/images/cs-block-dingbats.light.svg b/images/cs-block-dingbats.light.svg index 5cf9681cd0..b04cc31a0f 100644 --- a/images/cs-block-dingbats.light.svg +++ b/images/cs-block-dingbats.light.svg @@ -27,63 +27,88 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -321,18 +346,18 @@ - - + + - - + + - + @@ -356,43 +381,43 @@ - - + + - + - - + + - - + + - - + + - - + + - + - + @@ -452,22 +477,22 @@ - + - - + + - + - + @@ -477,52 +502,52 @@ - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + @@ -536,68 +561,68 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -657,7 +682,7 @@ - + @@ -667,17 +692,17 @@ - + - + - + @@ -737,7 +762,7 @@ - + @@ -777,22 +802,22 @@ - + - + - + - + @@ -807,12 +832,12 @@ - + - + @@ -837,52 +862,52 @@ - + - + - + - + - + - + - + - + - + - + @@ -897,82 +922,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -987,27 +1012,27 @@ - + - + - + - + - + @@ -1047,17 +1072,17 @@ - + - + - + @@ -1082,37 +1107,37 @@ - + - + - + - + - + - + - + @@ -1167,7 +1192,7 @@ - + @@ -1242,7 +1267,7 @@ - + \ No newline at end of file diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index 98a79887ab..2f21ecc63a 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index d6be4c7aee..58c04f3283 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss03-1.dark.svg b/images/ss-i-ss03-1.dark.svg index 2f1ac276a0..af6e1c5517 100644 --- a/images/ss-i-ss03-1.dark.svg +++ b/images/ss-i-ss03-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss03-1.light.svg b/images/ss-i-ss03-1.light.svg index 04debd96f5..1928cbbeb6 100644 --- a/images/ss-i-ss03-1.light.svg +++ b/images/ss-i-ss03-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss04-1.dark.svg b/images/ss-i-ss04-1.dark.svg index d5747ecbb1..103597a118 100644 --- a/images/ss-i-ss04-1.dark.svg +++ b/images/ss-i-ss04-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss04-1.light.svg b/images/ss-i-ss04-1.light.svg index 452186a22c..d9b6c45586 100644 --- a/images/ss-i-ss04-1.light.svg +++ b/images/ss-i-ss04-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss05-1.dark.svg b/images/ss-i-ss05-1.dark.svg index 036eb2ccb4..4d2232ccdb 100644 --- a/images/ss-i-ss05-1.dark.svg +++ b/images/ss-i-ss05-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss05-1.light.svg b/images/ss-i-ss05-1.light.svg index 588900c581..3c00ebeb6f 100644 --- a/images/ss-i-ss05-1.light.svg +++ b/images/ss-i-ss05-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss06-1.dark.svg b/images/ss-i-ss06-1.dark.svg index 379b2317cf..e4abc4ef3b 100644 --- a/images/ss-i-ss06-1.dark.svg +++ b/images/ss-i-ss06-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss06-1.light.svg b/images/ss-i-ss06-1.light.svg index 116e587992..615f78bffe 100644 --- a/images/ss-i-ss06-1.light.svg +++ b/images/ss-i-ss06-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index a7f481c9b8..09c5d5a8ec 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index 321268a553..727103931c 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss08-1.dark.svg b/images/ss-i-ss08-1.dark.svg index c6cbb228c0..df14737c2c 100644 --- a/images/ss-i-ss08-1.dark.svg +++ b/images/ss-i-ss08-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss08-1.light.svg b/images/ss-i-ss08-1.light.svg index cb2205f0c4..7bcdd14f88 100644 --- a/images/ss-i-ss08-1.light.svg +++ b/images/ss-i-ss08-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index 748dea2e3b..930e78d004 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index 53e85f6be1..d9ee4a1cca 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index b523358d16..9e9e8f7e93 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index e1cfe09765..54f68636a7 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss13-1.dark.svg b/images/ss-i-ss13-1.dark.svg index f989598f95..1131c13f95 100644 --- a/images/ss-i-ss13-1.dark.svg +++ b/images/ss-i-ss13-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss13-1.light.svg b/images/ss-i-ss13-1.light.svg index 787b767361..e6920e630c 100644 --- a/images/ss-i-ss13-1.light.svg +++ b/images/ss-i-ss13-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index 3fcc15cd11..aa84081a87 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index 9fee0e9d13..2c6749eccc 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index 3725695b6d..7e1380f8d4 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index bd501c18b6..b7dfe2677b 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index 37314d1b43..a39aab886a 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index 695da5ba49..11a1f976b9 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss18-1.dark.svg b/images/ss-i-ss18-1.dark.svg index 740821781c..fe6b3b4e74 100644 --- a/images/ss-i-ss18-1.dark.svg +++ b/images/ss-i-ss18-1.dark.svg @@ -99,7 +99,7 @@ - + diff --git a/images/ss-i-ss18-1.light.svg b/images/ss-i-ss18-1.light.svg index 0213df1b5c..ce25461332 100644 --- a/images/ss-i-ss18-1.light.svg +++ b/images/ss-i-ss18-1.light.svg @@ -99,7 +99,7 @@ - + diff --git a/package-lock.json b/package-lock.json index 22e3780e6d..fedce698db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "32.3.0", + "version": "32.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "32.3.0", + "version": "32.3.1", "workspaces": [ "packages/*", "tools/*" @@ -5153,16 +5153,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "32.3.0", - "@iosevka/font-otl": "32.3.0", - "@iosevka/geometry": "32.3.0", - "@iosevka/geometry-cache": "32.3.0", - "@iosevka/glyph": "32.3.0", - "@iosevka/param": "32.3.0", - "@iosevka/util": "32.3.0", + "@iosevka/font-glyphs": "32.3.1", + "@iosevka/font-otl": "32.3.1", + "@iosevka/geometry": "32.3.1", + "@iosevka/geometry-cache": "32.3.1", + "@iosevka/glyph": "32.3.1", + "@iosevka/param": "32.3.1", + "@iosevka/util": "32.3.1", "@msgpack/msgpack": "^2.8.0", "harfbuzzjs": "^0.4.3", "ot-builder": "^1.7.4", @@ -5171,86 +5171,86 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { - "@iosevka/font-kits": "32.3.0", - "@iosevka/geometry": "32.3.0", - "@iosevka/geometry-cache": "32.3.0", - "@iosevka/glyph": "32.3.0", - "@iosevka/util": "32.3.0", + "@iosevka/font-kits": "32.3.1", + "@iosevka/geometry": "32.3.1", + "@iosevka/geometry-cache": "32.3.1", + "@iosevka/glyph": "32.3.1", + "@iosevka/util": "32.3.1", "typo-geom": "^0.16.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { - "@iosevka/geometry": "32.3.0", - "@iosevka/glyph": "32.3.0", - "@iosevka/util": "32.3.0", + "@iosevka/geometry": "32.3.1", + "@iosevka/glyph": "32.3.1", + "@iosevka/util": "32.3.1", "typo-geom": "^0.16.1" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { - "@iosevka/font-glyphs": "32.3.0", - "@iosevka/glyph": "32.3.0", + "@iosevka/font-glyphs": "32.3.1", + "@iosevka/glyph": "32.3.1", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { - "@iosevka/util": "32.3.0", + "@iosevka/util": "32.3.1", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { - "@iosevka/geometry": "32.3.0", + "@iosevka/geometry": "32.3.1", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { - "@iosevka/geometry": "32.3.0" + "@iosevka/geometry": "32.3.1" } }, "packages/param": { "name": "@iosevka/param", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { - "@iosevka/util": "32.3.0" + "@iosevka/util": "32.3.1" } }, "packages/util": { "name": "@iosevka/util", - "version": "32.3.0" + "version": "32.3.1" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.3.0", + "@iosevka/param": "32.3.1", "@unicode/unicode-16.0.0": "^1.6.4", "semver": "^7.6.3" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.3.0", + "@iosevka/param": "32.3.1", "@msgpack/msgpack": "^2.8.0", "@unicode/unicode-16.0.0": "^1.6.4", "cldr": "^7.6.0" @@ -5258,16 +5258,16 @@ }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { - "@iosevka/data-export": "32.3.0" + "@iosevka/data-export": "32.3.1" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "32.3.0", + "version": "32.3.1", "dependencies": { - "@iosevka/util": "32.3.0", + "@iosevka/util": "32.3.1", "@unicode/unicode-16.0.0": "^1.6.4", "semver": "^7.6.3", "wawoff2": "^2.0.1" diff --git a/package.json b/package.json index ad9e0506d7..673838ec6b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "32.3.0", + "version": "32.3.1", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 50c5831163..0cbe5fd618 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./lib/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./lib/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "32.3.0", - "@iosevka/geometry": "32.3.0", - "@iosevka/geometry-cache": "32.3.0", - "@iosevka/glyph": "32.3.0", - "@iosevka/util": "32.3.0", + "@iosevka/font-kits": "32.3.1", + "@iosevka/geometry": "32.3.1", + "@iosevka/geometry-cache": "32.3.1", + "@iosevka/glyph": "32.3.1", + "@iosevka/util": "32.3.1", "typo-geom": "^0.16.1" } } diff --git a/packages/font-glyphs/src/letter/cyrillic/che.ptl b/packages/font-glyphs/src/letter/cyrillic/che.ptl index 7f7cc74d28..48645d2be2 100644 --- a/packages/font-glyphs/src/letter/cyrillic/che.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/che.ptl @@ -231,7 +231,7 @@ glyph-block Letter-Cyrillic-Che : begin CreateSelectorVariants 'cyrl/tche' 0xA693 [Object.keys ItalicConfig] (follow -- 'cyrl/che') define [CheVBarBarShape top pyBar] : begin - local SwCheVBar : Math.min OverlayStroke (0.625 * (RightSB - SB - [HSwToV : 2 * Stroke]) / HVContrast) + local SwCheVBar : Math.min OverlayStroke : VSwToH : 0.625 * (RightSB - SB - [HSwToV : 2 * Stroke]) local yc : top * [fallback pyBar 0.5] + Stroke * 0.1 return : VBar.m Middle (yc + LongVJut * 0.8) (yc - LongVJut * 0.8) SwCheVBar diff --git a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl index 1351c36440..f42bf54208 100644 --- a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl @@ -32,7 +32,6 @@ glyph-block Letter-Cyrillic-Orthography : begin orthographic-italic 'cyrl/peDescender' 0x525 orthographic-italic 'cyrl/dzzhe' 0x52B orthographic-italic 'cyrl/dche' 0x52D - orthographic-italic 'cyrl/teTall' 0x1C84 orthographic-italic 'cyrl/teThreeLeg' 0x1C85 orthographic-italic 'cyrl/tje' 0x1C8A orthographic-italic 'cyrl/este' null diff --git a/packages/font-glyphs/src/letter/cyrillic/yat.ptl b/packages/font-glyphs/src/letter/cyrillic/yat.ptl index f134082635..547089a85b 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yat.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yat.ptl @@ -12,28 +12,28 @@ glyph-block Letter-Cyrillic-Yat : begin glyph-block-import Letter-Shared : CreateDependentComposite glyph-block-import Letter-Shared-Metrics : BowlXDepth glyph-block-import Letter-Shared-Shapes : LetterBarOverlay - glyph-block-import Letter-Cyrillic-Yeri : YeriConfig + glyph-block-import Letter-Cyrillic-Yeri : YeriConfig YeriBarPos glyph-block-import Letter-Cyrillic-Iotified-A : Iotified define [xBarLeft df] : Math.max (df.rightSB - (RightSB - SB)) : if SLAB Just ([mix df.leftSB df.rightSB 0.35] - [HSwToV : 0.5 * df.mvs]) Just [mix df.leftSB df.rightSB 0.2] - define [YatShape] : with-params [df Yeri top [pBar 0.5] [fLowerCase false] [sw df.mvs] [xCrossbarLeftOverride nothing] [yCrossbarOverride nothing]] : glyph-proc + define [YatShape] : with-params [df Yeri top [pBar YeriBarPos] [fLowerCase false] [fIotifiedBase false] [sw df.mvs] [xCrossbarLeftOverride nothing] [yCrossbarOverride nothing]] : glyph-proc local xYeriLeft : xBarLeft df include : Yeri top - left -- xYeriLeft - right -- (df.rightSB - O * 2) - pBar -- pBar + left -- xYeriLeft + right -- (df.rightSB - O * 2) + pBar -- pBar stroke -- sw local cTop : if SLAB (top - Stroke / 2) top - local _xCrossbarLeft : mix 0 df.leftSB [if SLAB 0.25 0.375] + local _xCrossbarLeft : mix 0 df.leftSB : if SLAB 0.25 0.375 local xCrossbarLeft : fallback xCrossbarLeftOverride _xCrossbarLeft local xCrossbarRight : mix _xCrossbarLeft (xYeriLeft + [HSwToV : 0.5 * sw]) 2 - local yCrossbar : fallback yCrossbarOverride : [mix (top * pBar + sw / 2) cTop [if SLAB 0.625 0.5]] + 0.25 * OverlayStroke + local yCrossbar : fallback yCrossbarOverride : [mix (top * pBar + sw / 2) cTop : if SLAB 0.625 0.5] + 0.25 * OverlayStroke include : HBar.t xCrossbarLeft xCrossbarRight yCrossbar OverlayStroke if SLAB : begin @@ -44,25 +44,24 @@ glyph-block Letter-Cyrillic-Yat : begin if fLowerCase : begin eject-contour 'serifYeriLT' - include : tagged 'serifLT' : HSerif.lt xYeriLeft top SideJut sw + include : tagged 'serifLT' : if (fIotifiedBase && para.isItalic) [glyph-proc] [HSerif.lt xYeriLeft top SideJut sw] - define [IotifiedYatShape] : with-params [df Yeri top [pBar 0.5] [fLowerCase false]] : glyph-proc - local gap : 0.25 * (df.width - 2 * df.leftSB - [if SLAB 2.5 4.5] * df.mvs) - define divSub : (df.width - gap - df.mvs) / Width + define [IotifiedYatShape] : with-params [df Yeri top [pBar YeriBarPos] [fLowerCase false] [sw df.mvs]] : glyph-proc + local gap : 0.25 * (df.width - 2 * df.leftSB - [if SLAB 2.5 4.5] * sw) + define divSub : (df.width - gap - sw) / Width define dfSub : DivFrame divSub 2 local shift : Width * (df.div - divSub) include : with-transform [ApparentTranslate shift 0] YatShape dfSub Yeri top - pBar -- pBar - fLowerCase -- fLowerCase - sw -- df.mvs + pBar -- pBar + fLowerCase -- fLowerCase + fIotifiedBase -- true + sw -- sw xCrossbarLeftOverride -- (df.leftSB - shift) eject-contour 'serifDL' - if fLowerCase - include : Iotified.ascender df top 0 (fCapital -- false) - include : Iotified.full df top 0 (fCapital -- true) + include : Iotified.[if fLowerCase 'ascender' 'full'] df top 0 (fCapital -- (!fLowerCase)) foreach { suffix { Uc Lc } } [pairs-of YeriConfig] : do create-glyph "cyrl/Yat.\(suffix)" : glyph-proc @@ -75,27 +74,31 @@ glyph-block Letter-Cyrillic-Yat : begin local df : include : DivFrame para.diversityT include : df.markSet.b include : YatShape df Lc Ascender - pBar -- (0.55 * XH / Ascender) + pBar -- (YeriBarPos * XH / Ascender) fLowerCase -- true create-glyph "cyrl/yatTall.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.b - include : ExtendAboveBaseAnchors (Ascender + 0.5 * AccentStackOffset) - include : YatShape df Lc (Ascender + 0.5 * AccentStackOffset) - pBar -- (0.55 * XH / (Ascender + 0.5 * AccentStackOffset)) + local asc : Ascender + 0.5 * AccentStackOffset + include : ExtendAboveBaseAnchors asc + include : YatShape df Lc asc + pBar -- (YeriBarPos * XH / asc) fLowerCase -- true yCrossbarOverride -- (Ascender - [if SLAB (0.25 * df.mvs) 0]) create-glyph "cyrl/YatIotified.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.capital - include : IotifiedYatShape df Uc CAP (pBar -- 0.5) + include : IotifiedYatShape df Uc CAP + pBar -- 0.5 create-glyph "cyrl/yatIotified.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.b - include : IotifiedYatShape df Lc Ascender (pBar -- 0.375) (fLowerCase -- true) + include : IotifiedYatShape df Lc Ascender + pBar -- 0.375 + fLowerCase -- true # Italic Yat create-glyph "cyrl/yat.italic/yeri.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/letter/cyrillic/zhe.ptl b/packages/font-glyphs/src/letter/cyrillic/zhe.ptl index 99860dd98e..0f13a2032e 100644 --- a/packages/font-glyphs/src/letter/cyrillic/zhe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/zhe.ptl @@ -14,21 +14,25 @@ glyph-block Letter-Cyrillic-Zhe : begin define [ZheSw df] : AdviceStroke 3.3 df.div define [ZheSw2 df] : AdviceStroke 4.0 df.div define [ZheSw3 df] : AdviceStroke 3.7 df.div - define [Overshoot fSlab df] : if fSlab 0 (O * 3 * df.div) + define [Overshoot fSlab df] : if fSlab 0 : O * 3 * df.div - define [CenterBar fSlab df bot midTop] : glyph-proc - include : VBar.m df.middle bot midTop [ZheSw df] - if (fSlab && !para.isItalic && (df.width > 7 * para.refJut)) : begin - include : HSerif.mb df.middle bot Jut - include : HSerif.mt df.middle midTop Jut + define [CenterBar fSlab df bot top midTop] : glyph-proc + define fine : ZheSw df + include : VBar.m df.middle bot midTop fine + if fSlab : begin + local fBGR : midTop > top + if (!para.isItalic && (df.width > 7 * para.refJut)) : begin + include : HSerif.mb df.middle bot Jut + if (!fBGR) : include : HSerif.mt df.middle midTop Jut + if fBGR : include : HSerif.lt (df.middle - [HSwToV : 0.5 * fine]) midTop SideJut define [LegSerifs fSlab fHalf df bot top] : glyph-proc define fine : ZheSw df define fineK 0.1 if fSlab : begin if (!fHalf) : begin - include : HSerif.lt (df.leftSB + fine * fineK) top SideJut fine - include : HSerif.lb (df.leftSB + fine * fineK) bot SideJut fine + include : HSerif.lt (df.leftSB + fine * fineK) top SideJut fine + include : HSerif.lb (df.leftSB + fine * fineK) bot SideJut fine include : HSerif.rt (df.rightSB - fine * fineK) top SideJut fine include : HSerif.rb (df.rightSB - fine * fineK) bot SideJut fine @@ -36,7 +40,7 @@ glyph-block Letter-Cyrillic-Zhe : begin define sw : ZheSw df define fineK 0.1 return : CyrDescender.rSideJut - x -- df.rightSB - fineK * sw - [Overshoot fSlab df] + x -- (df.rightSB - fineK * sw - [Overshoot fSlab df]) y -- 0 refSw -- sw sideJut -- SideJut @@ -76,7 +80,7 @@ glyph-block Letter-Cyrillic-Zhe : begin export : define [CurlyLegs fSlab fHalf df bot top] : begin define fine : ZheSw df define fine2 : ZheSw3 df - define overshoot : if fSlab 0 (2 * O * df.div) + define overshoot : if fSlab 0 : 2 * O * df.div define attach1X : df.middle - [HSwToV : 0.5 * fine] define attach1Y : mix bot top : if fSlab 0.325 0.375 @@ -167,12 +171,12 @@ glyph-block Letter-Cyrillic-Zhe : begin return : union fullShape : HBar.m [if fHalf df.middle (midX + 0.5 * fine)] (df.width - (midX + 0.5 * fine)) midY fine export : define [Shape Legs fSlab fMidSlab df bot top midTop] : glyph-proc - include : CenterBar fMidSlab df bot midTop + include : CenterBar fMidSlab df bot top midTop include : Legs fSlab false df bot top include : LegSerifs fSlab false df bot top export : define [HalfShape Legs fSlab fMidSlab df bot top midTop] : glyph-proc - include : CenterBar fMidSlab df bot midTop + include : CenterBar fMidSlab df bot top midTop include : Legs fSlab true df bot top include : LegSerifs fSlab true df bot top diff --git a/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl b/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl index 97d75e136b..b72275f8fa 100644 --- a/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl @@ -13,13 +13,13 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin glyph-block-import Letter-Latin-Upper-A : AShape ASerifs glyph-block-import Letter-Latin-V : VShapeOutline VShape VHookRightShape - define SLAB-NONE 0 - define SLAB-TOP 1 - define SLAB-LEFT 2 - define SLAB-RIGHT 4 - define SLAB-CYRL-BGR 8 + define SLAB-NONE 0 + define SLAB-TOP 1 + define SLAB-LEFT 2 + define SLAB-RIGHT 4 + define SLAB-SMALL-CYRL 8 - define LambeaConfig : SuffixCfg.weave + define LambdaConfig : SuffixCfg.weave object straight true curly false @@ -49,16 +49,16 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin local-parameter : hookWidthOuter -- (TailX / 3) local-parameter : hookWidthInner -- (TailX / 3) include : VHookRightShape - df -- df - fBarStraight -- fBarStraight - top -- top - sw -- sw + df -- df + fBarStraight -- fBarStraight + top -- top + sw -- sw hookWidthOuter -- hookWidthOuter hookWidthInner -- hookWidthInner include : FlipAround df.middle (top / 2) include : ASerifs df top sw [maskOffBits slabKind SLAB-LEFT] - foreach { suffix { fStraightBar slabKind } } [Object.entries LambeaConfig] : do + foreach { suffix { fStraightBar slabKind } } [Object.entries LambdaConfig] : do create-glyph "grek/Lambda.\(suffix)" : glyph-proc include : MarkSet.capital include : LambdaShape @@ -82,7 +82,7 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin include : LambdaShape df -- [DivFrame 1] fBarStraight -- fStraightBar - slabKind -- [bitOr slabKind SLAB-CYRL-BGR] + slabKind -- [bitOr slabKind SLAB-SMALL-CYRL] top -- XH sw -- Stroke @@ -115,7 +115,7 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin include : LambdaHookLeftShape df -- df fBarStraight -- fStraightBar - slabKind -- slabKind + slabKind -- [bitOr slabKind SLAB-SMALL-CYRL] top -- XH sw -- df.mvs hookWidthInner -- (TailX / 3 - [HSwToV : 0.25 * df.mvs]) @@ -205,10 +205,10 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin derive-glyphs 'cyrl/De.BGR' null 'grek/Delta' : function [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS - local descenderOverflow : if SLAB SideJut ((RightSB - SB) * 0.075) + local descenderOverflow : if SLAB SideJut : (RightSB - SB) * 0.075 local xCutLeft SB local xCutRight RightSB - include : HBar.b (xCutLeft - descenderOverflow) (xCutRight + descenderOverflow) 0 - include : VBar.l (xCutLeft - descenderOverflow) (-LongVJut + HalfStroke) Stroke + include : HBar.b (xCutLeft - descenderOverflow) (xCutRight + descenderOverflow) 0 + include : VBar.l (xCutLeft - descenderOverflow) (-LongVJut + HalfStroke) Stroke include : VBar.r (xCutRight + descenderOverflow) (-LongVJut + HalfStroke) Stroke diff --git a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl index e3a5923947..0dce366198 100644 --- a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl @@ -35,8 +35,8 @@ glyph-block Letter-Latin-Ezh : begin define [ConventionalStart df top bot ezhLeft ezhRight yMidBar sw hook] : glyph-proc include : HBar.t df.leftSB ezhRight top sw include : dispiro - corner ezhRight (top - sw) [widths.rhs : sw / HVContrast] - corner ezhLeft yMidBar [widths.lhs : sw / HVContrast] + corner ezhRight (top - sw) [widths.rhs : VSwToH sw] + corner ezhLeft yMidBar [widths.lhs : VSwToH sw] define [CurisveStart df top bot ezhLeft ezhRight yMidBar sw hook] : glyph-proc define hookTerminalWidth : [AdviceStroke 3.5] / Stroke * sw @@ -66,10 +66,10 @@ glyph-block Letter-Latin-Ezh : begin flat [mix (df.leftSB + xMockTailDepth) ezhRight kTop] (top - kTop * yTailDepth) curl [mix (df.leftSB + xMockTailDepth) ezhRight 4] (top - 4 * yTailDepth) - include : VBar.r ezhRight top (top - yFootHeight) (xDiagWidth / HVContrast) + include : VBar.r ezhRight top (top - yFootHeight) [VSwToH xDiagWidth] include : dispiro - corner ezhRight (top - yFootHeight) [widths.rhs : sw / HVContrast] - corner ezhLeft yMidBar [widths.lhs : sw / HVContrast] + corner ezhRight (top - yFootHeight) [widths.rhs : VSwToH sw] + corner ezhLeft yMidBar [widths.lhs : VSwToH sw] glyph-block-export EzhShape define flex-params [EzhShape] : glyph-proc @@ -320,8 +320,8 @@ glyph-block Letter-Latin-Ezh : begin include : HBar.t ezhLeft RightSB top include : dispiro - corner ezhLeft (top - Stroke) [widths.lhs : Stroke / HVContrast] - corner ezhRight yMidBar [widths.rhs : Stroke / HVContrast] + corner ezhLeft (top - Stroke) [widths.lhs : VSwToH Stroke] + corner ezhRight yMidBar [widths.rhs : VSwToH Stroke] include : dispiro widths.lhs diff --git a/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl index 472e520af8..a015882cf3 100644 --- a/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl @@ -7,19 +7,20 @@ glyph-module glyph-block Letter-Latin-Sakha-Yat : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Latin-Lower-M : MEnoughSpaceForFullSerifs glyph-block-import Letter-Cyrillic-Yeri : YeriConfig glyph-block-import Letter-Cyrillic-Iotified-A : Iotified define [SakhaYatShape Yeri df top] : glyph-proc - local jut : Math.min Jut : Jut * 0.75 * df.div include : Yeri top left -- (df.middle - [HSwToV : 0.5 * df.mvs]) right -- df.rightSB stroke -- df.mvs - jut -- jut + jut -- [Math.min Jut : Jut * 0.75 * df.div] - include : Iotified.outer df top (df.middle + [HSwToV : 0.5 * df.mvs]) (top - df.mvs * 0.5) + local fEnoughSpaceForFullSerifs : MEnoughSpaceForFullSerifs df + if [not fEnoughSpaceForFullSerifs] : eject-contour 'serifYeriLB' + include : Iotified.[if fEnoughSpaceForFullSerifs 'full' 'outer'] df top (df.middle + [HSwToV : 0.5 * df.mvs]) (top - df.mvs * 0.5) foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do create-glyph "latn/yatSakha.upright.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/lower-f.ptl b/packages/font-glyphs/src/letter/latin/lower-f.ptl index 96c3f3a2b5..171242b945 100644 --- a/packages/font-glyphs/src/letter/latin/lower-f.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-f.ptl @@ -55,7 +55,7 @@ glyph-block Letter-Latin-Lower-F : begin DiagTail.L xBarMiddle Descender [DiagTail.StdDepth df Stroke] Stroke glyph-block-export StdSmallFBarLeftPos - define [StdSmallFBarLeftPos barAtCenter] : [mix SB RightSB : if barAtCenter 0.45 0.35] - Stroke * [if barAtCenter 0.45 0.25] * HVContrast + define [StdSmallFBarLeftPos barAtCenter] : [mix SB RightSB : if barAtCenter 0.45 0.35] - [HSwToV : Stroke * [if barAtCenter 0.45 0.25]] glyph-block-export StdSmallFBarLeftPos0 define [StdSmallFBarLeftPos0] : [mix SB RightSB 0.35] - [HSwToV : 0.25 * Stroke] diff --git a/packages/font-glyphs/src/letter/latin/upper-a.ptl b/packages/font-glyphs/src/letter/latin/upper-a.ptl index 73982a6bd1..56be539523 100644 --- a/packages/font-glyphs/src/letter/latin/upper-a.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-a.ptl @@ -16,15 +16,15 @@ glyph-block Letter-Latin-Upper-A : begin glyph-block-import Letter-Shared-Shapes : SerifFrame glyph-block-import Letter-Latin-V : VShapeOutline VShape VCornerHalfWidth - define BODY-CURLY 0 - define BODY-STRAIGHT 1 - define BODY-ROUND-TOP 2 + define BODY-CURLY 0 + define BODY-STRAIGHT 1 + define BODY-ROUND-TOP 2 - define SLAB-NONE 0 - define SLAB-TOP 1 - define SLAB-LEFT 2 - define SLAB-RIGHT 4 - define SLAB-CYRL-BGR 8 + define SLAB-NONE 0 + define SLAB-TOP 1 + define SLAB-LEFT 2 + define SLAB-RIGHT 4 + define SLAB-SMALL-CYRL 8 glyph-block-export AShape define AShape : namespace @@ -122,9 +122,9 @@ glyph-block Letter-Latin-Upper-A : begin define [ASerifs df top sw slabKind] : glyph-proc : begin local sf : SerifFrame.fromDf df top 0 if [maskBits slabKind SLAB-LEFT] : include - if ([maskBits slabKind SLAB-CYRL-BGR] && para.isItalic) sf.lb.outer sf.lb.full + if ([maskBits slabKind SLAB-SMALL-CYRL] && para.isItalic) sf.lb.outer sf.lb.full if [maskBits slabKind SLAB-RIGHT] : include - if ([maskBits slabKind SLAB-CYRL-BGR] && para.isItalic) sf.rb.outer sf.rb.full + if ([maskBits slabKind SLAB-SMALL-CYRL] && para.isItalic) sf.rb.outer sf.rb.full if [maskBits slabKind SLAB-TOP] : include : intersection [MaskLeft df.middle] if [maskBits slabKind : bitOr SLAB-LEFT SLAB-RIGHT] : then : HSerif.lt df.middle top (MidJutSide + [HSwToV : 0.25 * sw]) sf.swSerif diff --git a/packages/font-glyphs/src/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index f14fb348f7..d518604aa0 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -84,7 +84,7 @@ glyph-block Letter-Latin-Upper-H : begin include : HSerifs slabType top 0 df.leftSB xm sw if vSlab - then : include : VSerif.dr xTopBarRightEnd top VJut (df.mvs / HVContrast) + then : include : VSerif.dr xTopBarRightEnd top VJut [VSwToH df.mvs] else : eject-contour 'serifRT' define [HwairShape df top yend slabType] : glyph-proc @@ -108,7 +108,7 @@ glyph-block Letter-Latin-Upper-H : begin local yt : top - [if slabType Stroke 0] return : HOverlayBar [mix SB 0 0.7] [mix RightSB Width 0.7] mix yb yt 0.5 - Math.min OverlayStroke (0.625 * (yt - yb)) + Math.min OverlayStroke : 0.625 * (yt - yb) define HConfig : object serifless { HShape HTurned HLeftHalf HRightHalf SLAB-NONE } @@ -148,30 +148,34 @@ glyph-block Letter-Latin-Upper-H : begin include : HSerifs slabType XH 0 SB RightSB create-glyph "leftHalfH.\(suffix)" : glyph-proc - include : MarkSet.capital - include : LeftHalfBody SB RightSB CAP - include : HSerifs slabType CAP 0 SB RightSB + local df : include : DivFrame para.diversityF + include : df.markSet.capital + include : LeftHalfBody df.leftSB df.rightSB CAP + include : HSerifs slabType CAP 0 df.leftSB df.rightSB eject-contour 'serifRT' eject-contour 'serifRB' create-glyph "rightHalfH.\(suffix)" : glyph-proc - include : MarkSet.capital - include : RightHalfBody SB RightSB CAP - include : HSerifs slabType CAP 0 SB RightSB + local df : include : DivFrame para.diversityF + include : df.markSet.capital + include : RightHalfBody df.leftSB df.rightSB CAP + include : HSerifs slabType CAP 0 df.leftSB df.rightSB eject-contour 'serifLT' eject-contour 'serifLB' create-glyph "leftHalfSmcpH.\(suffix)" : glyph-proc - include : MarkSet.e - include : LeftHalfBody SB RightSB XH - include : HSerifs slabType XH 0 SB RightSB + local df : include : DivFrame para.diversityF + include : df.markSet.e + include : LeftHalfBody df.leftSB df.rightSB XH + include : HSerifs slabType XH 0 df.leftSB df.rightSB eject-contour 'serifRT' eject-contour 'serifRB' create-glyph "rightHalfSmcpH.\(suffix)" : glyph-proc - include : MarkSet.e - include : RightHalfBody SB RightSB XH - include : HSerifs slabType XH 0 SB RightSB + local df : include : DivFrame para.diversityF + include : df.markSet.e + include : RightHalfBody df.leftSB df.rightSB XH + include : HSerifs slabType XH 0 df.leftSB df.rightSB eject-contour 'serifLT' eject-contour 'serifLB' @@ -269,9 +273,10 @@ glyph-block Letter-Latin-Upper-H : begin alias 'grek/Heta' 0x370 'leftHalfH' create-glyph 'grek/heta' 0x371 : glyph-proc - include : MarkSet.e - include : LeftHalfBody SB RightSB XH - include : HSerifs SLAB-SMALL-HETA XH 0 SB RightSB + local df : include : DivFrame para.diversityF + include : df.markSet.e + include : LeftHalfBody df.leftSB df.rightSB XH + include : HSerifs SLAB-SMALL-HETA XH 0 df.leftSB df.rightSB derive-composites 'HDescender' 0x2C67 'H/descBase' [CyrDescender.rSideJut RightSB 0] @@ -337,7 +342,7 @@ glyph-block Letter-Latin-Upper-H : begin include : VBar.r RightSB 0 CAP BBS include : VBar.l (SB + BBD) 0 CAP BBS include : VBar.r (RightSB - BBD) 0 CAP BBS - include : HBar.m (SB + BBD) (RightSB - BBD) (CAP * HBarPos) BBS + include : HBar.m (SB + BBD) (RightSB - BBD) (CAP * HBarPos) BBS include : HBar.t SB (SB + BBD) CAP BBS include : HBar.t (RightSB - BBD) RightSB CAP BBS include : HBar.b SB (SB + BBD) 0 BBS diff --git a/packages/font-glyphs/src/letter/latin/upper-q.ptl b/packages/font-glyphs/src/letter/latin/upper-q.ptl index 10153ca3f5..ef4136b1de 100644 --- a/packages/font-glyphs/src/letter/latin/upper-q.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-q.ptl @@ -34,13 +34,13 @@ glyph-block Letter-Latin-Upper-Q : begin define fine : AdviceStroke 3.5 define xLB0 : mix df.leftSB df.rightSB (1 / 16) define xLB : xLB0 + [HSwToV : 0.6 * fine] - define yLB : [mix 0 Descender (1 - 1 / 32)] + O + define yLB : [mix 0 Descender (31 / 32)] + O define xMBArc : mix df.rightSB xLB 0.5 define yMBArc : [mix ArchDepthA yLB 0.625] + Stroke * (1 / 16) define xRB0 : mix df.rightSB df.width 0.7 define xRB : xRB0 - [HSwToV : 0.75 * Stroke] define yRingStart : XH / 12 - define notchOffset : (-Descender * 0.625) + Stroke * 0.625 + yRingStart / 2 + define notchOffset : ((-Descender) * 0.625) + Stroke * 0.625 + yRingStart / 2 define tailSlope : 0.2 + 0.5 * (1 - fine / Stroke) # Lower part include : difference @@ -126,9 +126,9 @@ glyph-block Letter-Latin-Upper-Q : begin VBar.m df.middle [mix Descender HalfStroke 1.75] 0 sw VBar.m df.middle 0 TailDepth - define detachedTailGap : Math.max (-0.25 * Descender) [AdviceStroke 12] + define detachedTailGap : Math.max ((-0.25) * Descender) : AdviceStroke 12 define yObliqueTailStart : 0 - detachedTailGap - Stroke * 0.875 - define yObliqueTailEnd : [mix 0 Descender 0.75] - Stroke * 0.5 + define yObliqueTailEnd : [mix 0 Descender 0.75] - HalfStroke define [xDetachedTailEnd df] : mix df.rightSB df.width 0.75 define kBendStartPartLeftLength 0.5 define [xBendTailStart df] : mix df.middle df.leftSB kBendStartPartLeftLength @@ -151,7 +151,7 @@ glyph-block Letter-Latin-Upper-Q : begin glyph-block-export QInnerDiagSw define QInnerDiagSw : AdviceStroke 4 - define QInnerVertSw : Math.min [AdviceStroke 3.5] ((RightSB - SB - [HSwToV : 2 * Stroke]) / (2 * HVContrast)) + define QInnerVertSw : Math.min VJutStroke : VSwToH : (RightSB - SB) / 2 - [HSwToV Stroke] define QConfig : object straight { QStdBody Stroke QStraightTail 'capDesc' 'p' } @@ -200,7 +200,7 @@ glyph-block Letter-Latin-Upper-Q : begin include : intersection QInner union - VBar.l (SB + BBD) 0 CAP BBS + VBar.l (SB + BBD) 0 CAP BBS VBar.r (RightSB - BBD) 0 CAP BBS define terminalX : Middle + HookX diff --git a/packages/font-glyphs/src/letter/latin/upper-t.ptl b/packages/font-glyphs/src/letter/latin/upper-t.ptl index 28666209cc..e56443e138 100644 --- a/packages/font-glyphs/src/letter/latin/upper-t.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-t.ptl @@ -15,8 +15,9 @@ glyph-block Letter-Latin-Upper-T : begin glyph-block-import Letter-Shared-Shapes : LetterBarOverlay UpwardHookShape glyph-block-import Letter-Shared-Shapes : CyrDescender SerifFrame FlatHookDepth LeftHook RetroflexHook - define [TLeftX df] : df.leftSB + 0.75 * OX - define [TRightX df] : df.rightSB - 0.75 * OX + define ox : 0.75 * OX + define [TLeftX df] : df.leftSB + ox + define [TRightX df] : df.rightSB - ox define [TShape df top doTopSerifs doBottomSerifs] : glyph-proc include : tagged 'strokeV' : VBar.m df.middle 0 top local l : TLeftX df @@ -60,19 +61,25 @@ glyph-block Letter-Latin-Upper-T : begin eject-contour 'strokeV' define [CyrlTallTeShape df top doTopSerifs doBottomSerifs] : glyph-proc + define doFullSerifs : doTopSerifs && doBottomSerifs && !para.isItalic + local xRight : df.width - 1.5 * df.leftSB - local xLeft : df.leftSB - 0.75 * OX + local xLeft : df.leftSB - ox - include : HBar.t xLeft xRight top - include : VBar.r xRight 0 top + include : tagged 'strokeLT' : HBar.t xLeft xRight top + include : tagged 'strokeV' : VBar.r xRight 0 top if doTopSerifs : begin include : tagged 'serifLT' : VSerif.dl xLeft top VJut if doBottomSerifs : begin - include : tagged 'serifMB' : HSerif.rb (xRight - [HSwToV HalfStroke]) 0 Jut - include : tagged 'serifMB' : HSerif.lb (xRight - [HSwToV HalfStroke]) 0 MidJutSide + include : tagged 'serifMB' : if para.isItalic [HSerif.rb xRight 0 SideJut] : composite-proc + HSerif.rb (xRight - [HSwToV HalfStroke]) 0 Jut + HSerif.lb (xRight - [HSwToV HalfStroke]) 0 MidJutSide + if doFullSerifs : begin include : tagged 'serifRT' : HSerif.rt xRight top SideJut + include : LeaningAnchor.Below.VBar.r xRight + glyph-block-export TConfig define TConfig : object serifless { 1 false false } @@ -158,11 +165,10 @@ glyph-block Letter-Latin-Upper-T : begin include : df.markSet.e include : TjeShape df XH doST - create-glyph "cyrl/teTall.upright.\(suffix)" : glyph-proc + create-glyph "cyrl/teTall.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.b include : CyrlTallTeShape df Ascender doST doSB - include : LeaningAnchor.Below.VBar.r (df.width - 1.5 * df.leftSB) select-variant 'T' 'T' link-reduced-variant 'T/sansSerif' 'T' MathSansSerif @@ -191,8 +197,7 @@ glyph-block Letter-Latin-Upper-T : begin select-variant 'currency/tengeSign' 0x20B8 (follow -- 'T') - select-variant 'cyrl/teTall.upright' (follow -- 'T') - select-variant 'cyrl/teTall.italic' (shapeFrom -- 'cyrl/teTall.upright') (follow -- 'T/rtailBase') + select-variant 'cyrl/teTall' 0x1C84 (follow -- 'T') CreateAccentedComposition 'TCedilla' 0x0162 'T' 'cedillaBelow' CreateAccentedComposition 'TComma' 0x021A 'T' 'commaBelow' diff --git a/packages/font-glyphs/src/letter/latin/w.ptl b/packages/font-glyphs/src/letter/latin/w.ptl index d5137c0a0e..cbbed2f0fc 100644 --- a/packages/font-glyphs/src/letter/latin/w.ptl +++ b/packages/font-glyphs/src/letter/latin/w.ptl @@ -387,7 +387,7 @@ glyph-block Letter-Latin-W : begin include : implT df XH bodyType slabType create-glyph "ww.\(suffix)": glyph-proc - local df : include : DivFrame 1 3 + local df : include : DivFrame [if (Ldiv < para.diversityM) para.diversityF 1] 3 include : df.markSet.capital local gap : CAP * 0.05 diff --git a/packages/font-glyphs/src/letter/latin/z.ptl b/packages/font-glyphs/src/letter/latin/z.ptl index dcbe1c2497..c3c6652ff6 100644 --- a/packages/font-glyphs/src/letter/latin/z.ptl +++ b/packages/font-glyphs/src/letter/latin/z.ptl @@ -55,8 +55,8 @@ glyph-block Letter-Latin-Z : begin local cor : 1.2 * HVContrast include : tagged 'strokeTop' : HBar.t SB RightSB XH include : dispiro - corner SB [if (mode === MODE-ZSWASH) 0 Stroke] [widths.rhs (Stroke / HVContrast)] - corner RightSB (XH - Stroke) [widths.lhs (Stroke / HVContrast)] + corner SB [if (mode === MODE-ZSWASH) 0 Stroke] [widths.rhs : VSwToH Stroke] + corner RightSB (XH - Stroke) [widths.lhs : VSwToH Stroke] if [DisplayBottomStroke mode] : include : tagged 'strokeBottom' : HBar.b SB RightSB 0 set-base-anchor "trailing" RightSB 0 @@ -95,11 +95,11 @@ glyph-block Letter-Latin-Z : begin curl RightSB (top - yTailDepth) include : dispiro - corner RightSB (top - yFootHeight) [widths.rhs (Stroke / HVContrast)] - corner SB [if (mode == MODE-ZSWASH) 0 yFootHeight] [widths.lhs (Stroke / HVContrast)] + corner RightSB (top - yFootHeight) [widths.rhs : VSwToH Stroke] + corner SB [if (mode == MODE-ZSWASH) 0 yFootHeight] [widths.lhs : VSwToH Stroke] - include : VBar.r RightSB top (top - yFootHeight) (xDiagWidth / HVContrast) - if (mode != MODE-ZSWASH) : include : VBar.l SB 0 yFootHeight (xDiagWidth / HVContrast) + include : VBar.r RightSB top (top - yFootHeight) [VSwToH xDiagWidth] + if (mode != MODE-ZSWASH) : include : VBar.l SB 0 yFootHeight [VSwToH xDiagWidth] include : tagged 'strokeBottom' : match mode [Just MODE-RTAIL] : intersection diff --git a/packages/font-glyphs/src/marks/below.ptl b/packages/font-glyphs/src/marks/below.ptl index 070a113b26..4a3fcbe8f4 100644 --- a/packages/font-glyphs/src/marks/below.ptl +++ b/packages/font-glyphs/src/marks/below.ptl @@ -43,16 +43,16 @@ glyph-block Mark-Below : begin set-base-anchor 'belowBraceR' (markMiddle + 0.5 * markExtend) belowMarkMid define [CedillaShape ext] : begin - local fine : Math.min [AdviceStroke 6] (0.75 * (belowMarkTop - belowMarkBot - markStroke)) - local cedillaTop (belowMarkTop + 0.875 * fine) - local cedillaBot belowMarkBot + local fine : Math.min (0.75 * (belowMarkTop - belowMarkBot - markStroke)) : AdviceStroke 6 + local cedillaTop : belowMarkTop + 0.875 * fine + local cedillaBot belowMarkBot return : union VBar.m markMiddle ext (cedillaTop - fine) markStroke dispiro flat (markMiddle - [HSwToV : 0.5 * markStroke]) cedillaTop [widths.rhs.heading fine Rightward] curl markMiddle cedillaTop [heading Rightward] archv - g4 (markMiddle + markExtend - O) [mix cedillaTop cedillaBot 0.5] [widths.rhs.heading [mix fine markStroke 0.5] {.x HVContrast .y (-0.5 * (markStroke - fine) / markStroke)}] + g4 (markMiddle + markExtend - O) [mix cedillaTop cedillaBot 0.5] [widths.rhs.heading [mix fine markStroke 0.5] {.x HVContrast .y ((-0.5) * (markStroke - fine) / markStroke)}] arcvh flat markMiddle cedillaBot [widths.rhs.heading markStroke Leftward] curl (markMiddle - markExtend) cedillaBot [heading Leftward] @@ -121,7 +121,7 @@ glyph-block Mark-Below : begin include : StdAnchors.mediumWide local boxhs : Math.min (markFine * 2) ((belowMarkTop - belowMarkBot) / 3) - local boxvs : Math.min (markFine * 2) ((markExtend * 2) / (HVContrast * 3)) + local boxvs : Math.min (markFine * 2) [VSwToH : markExtend * (2/3)] include : VBar.l (markMiddle - markExtend) belowMarkBot belowMarkTop boxvs include : VBar.r (markMiddle + markExtend) belowMarkBot belowMarkTop boxvs diff --git a/packages/font-glyphs/src/meta/aesthetics.ptl b/packages/font-glyphs/src/meta/aesthetics.ptl index b0a80b3344..74130cc36f 100644 --- a/packages/font-glyphs/src/meta/aesthetics.ptl +++ b/packages/font-glyphs/src/meta/aesthetics.ptl @@ -39,13 +39,13 @@ export : define [calculateMetrics para] : begin # Transform constructors define [Italify angle shift] : begin - local slope [Math.tan ([fallback angle para.slopeAngle] / 180 * Math.PI)] - return : new Transform 1 slope 0 1 [fallback shift : -slope * SymbolMid] 0 + local slope : Math.tan ([fallback angle para.slopeAngle] / 180 * Math.PI) + return : new Transform 1 slope 0 1 [fallback shift : (-slope) * SymbolMid] 0 define [Upright angle shift] [Italify angle shift :.inverse] define [Scale sx sy] : new Transform sx 0 0 [fallback sy sx] 0 0 define [Translate x y] : new Transform 1 0 0 1 x y define [ApparentTranslate x y] : Translate (x + TanSlope * y) y - define [Rotate angle] : new Transform [Math.cos angle] (-[Math.sin angle]) [Math.sin angle] [Math.cos angle] 0 0 + define [Rotate angle] : new Transform [Math.cos angle] [Math.sin (-angle)] [Math.sin angle] [Math.cos angle] 0 0 define GlobalTransform : Italify para.slopeAngle define TanSlope GlobalTransform.xy @@ -53,6 +53,7 @@ export : define [calculateMetrics para] : begin define CosSlope : Math.cos (para.slopeAngle / 180 * Math.PI) define HVContrast : Contrast * CosSlope + SinSlope * TanSlope define [HSwToV sw] : sw * HVContrast + define [VSwToH sw] : sw / HVContrast # Orient parameters define Upward : new Point Point.Type.Corner (-HVContrast) 0 @@ -83,7 +84,7 @@ export : define [calculateMetrics para] : begin define [AdviceStrokeInSpace availSpace contrast crowdedness mul] : begin local nonAdjustedFillRate : crowdedness * contrast * para.stroke / availSpace local adjustedFillRate : StrokeWeightControlSigmoid nonAdjustedFillRate - local strokeWidthScalar : Math.min 1 (mul * adjustedFillRate / nonAdjustedFillRate) + local strokeWidthScalar : Math.min 1 : mul * adjustedFillRate / nonAdjustedFillRate return : para.stroke * strokeWidthScalar define [AdviceStroke crowdedness div mul] : begin local spaceH : Width * [fallback div 1] - SB * 2 @@ -159,8 +160,8 @@ export : define [calculateMetrics para] : begin local delta : (adb - ada) / 2 local smOfSma : ada + delta local smOfSmb : adb - delta - local yNotAdjusted : mix top bot (smOfSmb / (smOfSma + smOfSmb)) - return : yNotAdjusted - delta * [Math.min 1 ((top - bot) / (ada + adb))] + local yNotAdjusted : mix top bot : smOfSmb / (smOfSma + smOfSmb) + return : yNotAdjusted - delta * [Math.min 1 : (top - bot) / (ada + adb)] set YSmoothMidR.cr : function [c r _ada _adb] : YSmoothMidR (c + r) (c - r) _ada _adb define [YSmoothMidL top bot _ada _adb] : begin local ada : fallback _ada ArchDepthA @@ -168,8 +169,8 @@ export : define [calculateMetrics para] : begin local delta : (adb - ada) / 2 local smOfSma : ada + delta local smOfSmb : adb - delta - local yNotAdjusted : mix top bot (smOfSma / (smOfSma + smOfSmb)) - return : yNotAdjusted + delta * [Math.min 1 ((top - bot) / (ada + adb))] + local yNotAdjusted : mix top bot : smOfSma / (smOfSma + smOfSmb) + return : yNotAdjusted + delta * [Math.min 1 : (top - bot) / (ada + adb)] set YSmoothMidL.cr : function [c r _ada _adb] : YSmoothMidL (c + r) (c - r) _ada _adb define ArchDepthA : ArchDepth - TanSlope * SmoothAdjust @@ -184,7 +185,7 @@ export : define [calculateMetrics para] : begin define OverlayStroke : AdviceStroke 3.75 define OperatorStroke : AdviceStroke 2.75 define GeometryStroke : AdviceStroke 4 - define ShoulderFine : Math.min (Stroke * para.shoulderFineMin) [AdviceStroke 24] + define ShoulderFine : Math.min (Stroke * para.shoulderFineMin) : AdviceStroke 24 define [AdviceGlottalStopArchDepth y sign] : begin return : ((y - Stroke) * 0.24 + Stroke * 0.625) + sign * TanSlope * SmoothAdjust @@ -205,7 +206,7 @@ export : define [calculateMetrics para] : begin SideJut ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX CorrectionOMidS compositeBaseAnchors AdviceStroke AdviceStroke2 AdviceStrokeInSpace OverlayStroke OperatorStroke GeometryStroke ShoulderFine AdviceGlottalStopArchDepth StrokeWidthBlend ArchDepthAOf ArchDepthBOf - SmoothAdjust MidJutSide MidJutCenter YSmoothMidR YSmoothMidL HSwToV NarrowUnicodeT + SmoothAdjust MidJutSide MidJutCenter YSmoothMidR YSmoothMidL HSwToV VSwToH NarrowUnicodeT WideUnicodeT VERY-FAR TINY] export : define [setFontMetrics para metrics fm] : begin @@ -237,9 +238,9 @@ export : define [setFontMetrics para metrics fm] : begin local slope : Math.tan para.slopeAngle set fm.post.italicAngle : Math.round (0 - para.slopeAngle) - set fm.hhea.caretSlopeRise : if para.slopeAngle (1000) 1 - set fm.hhea.caretSlopeRun : if para.slopeAngle (-slope * 1000) 0 - set fm.hhea.caretOffset : if para.slopeAngle (-slope * para.symbolMid) 0 + set fm.hhea.caretSlopeRise : if para.slopeAngle (1000) 1 + set fm.hhea.caretSlopeRun : if para.slopeAngle ((-slope) * 1000) 0 + set fm.hhea.caretOffset : if para.slopeAngle ((-slope) * para.symbolMid) 0 # Fixed metrics set fm.os2.yStrikeoutPosition para."os2.yStrikeoutPosition" diff --git a/packages/font-glyphs/src/meta/macros.ptl b/packages/font-glyphs/src/meta/macros.ptl index d0c5073c54..dcb9ba71e1 100644 --- a/packages/font-glyphs/src/meta/macros.ptl +++ b/packages/font-glyphs/src/meta/macros.ptl @@ -389,7 +389,7 @@ define-macro glyph-block : syntax-rules AdviceStroke AdviceStroke2 AdviceStrokeInSpace OverlayStroke OperatorStroke GeometryStroke ShoulderFine AdviceGlottalStopArchDepth StrokeWidthBlend ArchDepthAOf ArchDepthBOf SmoothAdjust MidJutSide MidJutCenter compositeBaseAnchors YSmoothMidR YSmoothMidL HSwToV - NarrowUnicodeT WideUnicodeT VERY-FAR TINY] + VSwToH NarrowUnicodeT WideUnicodeT VERY-FAR TINY] define spiroFnImports `[g4 g2 corner flat curl virt close end straight g2c cg2 flatc ccurl widths disable-contrast heading unimportant important alsoThru alsoThruThem bezControls diff --git a/packages/font-glyphs/src/symbol/geometric.ptl b/packages/font-glyphs/src/symbol/geometric.ptl index e4a516d3b4..ea26c42aaf 100644 --- a/packages/font-glyphs/src/symbol/geometric.ptl +++ b/packages/font-glyphs/src/symbol/geometric.ptl @@ -6,6 +6,7 @@ export : define [apply] : begin run-glyph-module "./geometric/plain.mjs" run-glyph-module "./geometric/rounded.mjs" run-glyph-module "./geometric/shaded.mjs" + run-glyph-module "./geometric/rotational.mjs" run-glyph-module "./geometric/stars.mjs" run-glyph-module "./geometric/sun-and-gear.mjs" run-glyph-module "./geometric/dotted.mjs" diff --git a/packages/font-glyphs/src/symbol/geometric/masked.ptl b/packages/font-glyphs/src/symbol/geometric/masked.ptl index 3ea7fce559..6b805bf29e 100644 --- a/packages/font-glyphs/src/symbol/geometric/masked.ptl +++ b/packages/font-glyphs/src/symbol/geometric/masked.ptl @@ -384,6 +384,14 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 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 'eightPointedCircledOpenCenterStar'] [MangleUnicode 0x2742] : glyph-proc + set-width Geom.Width + include : union + difference + refer-glyph : MangleName 'blackCircle' + refer-glyph : MangleName 'eightPointedStarMask' + refer-glyph : MangleName 'whiteSlightlySmallCircle' + do "Compositions" glyph-block-import Symbol-Punctuation-Bar : BarShape diff --git a/packages/font-glyphs/src/symbol/geometric/rotational.ptl b/packages/font-glyphs/src/symbol/geometric/rotational.ptl new file mode 100644 index 0000000000..57d0dd0871 --- /dev/null +++ b/packages/font-glyphs/src/symbol/geometric/rotational.ptl @@ -0,0 +1,277 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" + +glyph-module + +glyph-block Symbol-Geometric-Rotational : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes + + define [OpenRadius sw sides] : sw / 2 / [Math.tan : Math.PI / sides] + + define [Line sw] : lambda [r] : dispiro + widths.center sw + corner 0 0 + corner r 0 + + define [Maltese sw sw2] : lambda [r] : lift-@ : spiro-outline + corner (@x1 = 0) (sw / 2) + flat (@x2 = TINY) (sw / 2) + curl (@x3 = [clamp (0.5 * r) (0.75 * r) : @x4 - (sw2 - sw)]) (sw / 2) + archv + corner (@x4 = r) sw2 + corner @x4 (-sw2) + arcvh + flat @x3 (-sw / 2) + curl @x2 (-sw / 2) + corner @x1 (-sw / 2) + + define [TeardropImpl r sw sw2 fPetal] : lift-@ : list + corner (@x1 = 0) (sw / 2) + if fPetal [list] : list + flat (@x2 = TINY) (sw / 2) + curl (@x3 = [clamp (2 * TINY) (0.4 * r) : r - (r - @x4) * 3]) (sw / 2) + alsoThru.g2 0.5 0.5 + g4 (@x4 = [clamp (0.5 * r) (0.9 * r) : r - sw2 / 2]) (sw2 / 2) + archv + g4 r 0 + arcvh + g4 @x4 (-sw2 / 2) + alsoThru.g2 0.5 0.5 + if fPetal [list] : list + flat @x3 (-sw / 2) + curl @x2 (-sw / 2) + corner @x1 (-sw / 2) + + define [Teardrop sw sw2] : lambda [r] : spiro-outline + TeardropImpl r sw sw2 0 + + define [PinwheelTeardrop sw sw2] : lambda [r] : union + intersection [MaskAbove 0] : dispiro [widths.rhs : sw / 2] : TeardropImpl r sw sw2 0 + intersection [MaskBelow 0] : spiro-outline : TeardropImpl r sw sw2 0 + + define [Petal sw sw2] : lambda [r] : spiro-outline + TeardropImpl r sw sw2 1 + + define [WhitePetal sw sw2] : lambda [r] : dispiro + widths.rhs (sw / 2) + TeardropImpl r sw sw2 1 + + define [Balloon sw ballR] : lambda [r] : union + dispiro [widths.center sw] [corner 0 0] [corner (r - ballR) 0] + RingAt (r - ballR) 0 ballR + + define [Club sw refBallR] : lambda [r] : glyph-proc + local ballR : (9 / 19) * refBallR + local clubCenter : r - refBallR + local clubRadius : refBallR - ballR + local cosAngle 0.5 + local sinAngle : [Math.sqrt 3] / 2 + include : union + dispiro [widths.center sw] [corner 0 0] [corner clubCenter 0] + RingAt (clubCenter + clubRadius) 0 ballR + RingAt (clubCenter - cosAngle * clubRadius) ( sinAngle * clubRadius) ballR + RingAt (clubCenter - cosAngle * clubRadius) (-sinAngle * clubRadius) ballR + spiro-outline + corner (clubCenter + clubRadius) 0 + corner (clubCenter - cosAngle * clubRadius) ( sinAngle * clubRadius) + corner (clubCenter - cosAngle * clubRadius) (-sinAngle * clubRadius) + + define [Snowflake sw sw2 sides fTight] : lambda [r] : glyph-proc + local sinAngle : Math.sin : 2 * Math.PI / sides + local cosAngle : Math.cos : 2 * Math.PI / sides + local branchPos : [if fTight 0.4 0.55] * r - sw2 / 2 + local branchLen : [if fTight 1 0.45] * r + local shape : union + dispiro [widths.center sw] [corner 0 0] [corner r 0] + intersection [MaskAbove 0] : dispiro [disable-contrast] [widths.rhs sw2] + corner branchPos 0 + corner (branchPos + branchLen * cosAngle) (branchLen * sinAngle) + intersection [MaskBelow 0] : dispiro [disable-contrast] [widths.lhs sw2] + corner branchPos 0 + corner (branchPos + branchLen * cosAngle) (-branchLen * sinAngle) + + if fTight + : then : begin + local sinHalfAngle : Math.sin : Math.PI / sides + local cosHalfAngle : Math.cos : Math.PI / sides + + include : intersection shape : spiro-outline + corner 0 0 + corner (2 * r * cosHalfAngle) ( 2 * r * sinHalfAngle) + corner (2 * r * cosHalfAngle) (-2 * r * sinHalfAngle) + : else : begin + include shape + + for-width-kinds WideWidth1 : begin + define Geom : GeometricDim MosaicUnitWidth MosaicWidth + + define lightSw : UnicodeWeightGrade 3 Geom.Scalar + define normalSw : UnicodeWeightGrade 4 Geom.Scalar + define semiBoldSw : UnicodeWeightGrade 6 Geom.Scalar + define boldSw : UnicodeWeightGrade 7 Geom.Scalar + define heavySw : UnicodeWeightGrade 9 Geom.Scalar + + define [for-rotational-pointing sides phase mag gap fn] : begin + local shapes {} + foreach [j : range 0 sides] : begin + local angle : (j + phase) * 2 * Math.PI / sides + shapes.push : PointingTo + Geom.MidX + [Math.sin angle] * mag + Geom.MidY + [Math.cos angle] * mag + Geom.MidX + [Math.sin angle] * gap + Geom.MidY + [Math.cos angle] * gap + * fn + + return shapes + + define centerSw : heavySw * 1.2 + define ballRad : Geom.Size * (1 / 7) + normalSw / 2 + define bigBallRad : ballRad + centerSw / 2 + define bigBallRad2 : ballRad + centerSw / 4 + define teardropSw : Geom.Size * (2 / 7) + normalSw / 2 + define teardropHeavySw : Geom.Size * (2 / 7) + boldSw / 2 + define [BallCenter] : RingAt Geom.MidX Geom.MidY (centerSw / 2) + define [BallOpenCenter] : RingStrokeAt Geom.MidX Geom.MidY (centerSw / 2) (centerSw / 4) + define [BigBallCenter] : RingAt Geom.MidX Geom.MidY ballRad + + # Open Center + create-glyph [MangleName 'openCenterCross'] [MangleUnicode 0x271B] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 4 0 Geom.Size [OpenRadius normalSw 4] : Line normalSw + create-glyph [MangleName 'openCenterCrossHeavy'] [MangleUnicode 0x271C] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 4 0 Geom.Size [OpenRadius heavySw 4] : Line heavySw + create-glyph [MangleName 'openCenterAsterisk6'] [MangleUnicode 0x2732] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 6 0 Geom.Size [OpenRadius normalSw 6] : Line normalSw + + # Teardrop + create-glyph [MangleName 'teardropAsterisk4'] [MangleUnicode 0x2722] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 4 0 Geom.Size 0 : Teardrop normalSw teardropSw + BallCenter + create-glyph [MangleName 'teardropAsterisk6'] [MangleUnicode 0x273B] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 6 0 Geom.Size 0 : Teardrop normalSw teardropSw + BallCenter + create-glyph [MangleName 'teardropOpenAsterisk6'] [MangleUnicode 0x273C] : glyph-proc + set-width Geom.Width + include : union + difference + union.apply null : for-rotational-pointing 6 0 Geom.Size 0 : Teardrop normalSw teardropSw + BallCenter + BallOpenCenter + create-glyph [MangleName 'teardropHeavyAsterisk6'] [MangleUnicode 0x273D] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 6 0 Geom.Size 0 : Teardrop normalSw teardropHeavySw + BallCenter + create-glyph [MangleName 'teardropHeavyPinwheelAsterisk6'] [MangleUnicode 0x2743] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 6 0 Geom.Size 0 : PinwheelTeardrop normalSw teardropHeavySw + BallCenter + create-glyph [MangleName 'teardropAsterisk8'] [MangleUnicode 0x274A] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 8 0 Geom.Size 0 : Teardrop normalSw teardropSw + BallCenter + create-glyph [MangleName 'teardropHeavyAsterisk8'] [MangleUnicode 0x274B] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 8 0 Geom.Size 0 : Teardrop normalSw teardropHeavySw + BallCenter + + # Florette + create-glyph [MangleName 'blackAndWhiteFlorette6'] [MangleUnicode 0x273E] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 3 0.5 Geom.Size 0 : Petal normalSw (Geom.Size * 4.5 / 7) + union.apply null : for-rotational-pointing 3 0 Geom.Size 0 : WhitePetal normalSw (Geom.Size * 4.5 / 7) + BallCenter + create-glyph [MangleName 'blackFlorette5'] [MangleUnicode 0x273F] : glyph-proc + set-width Geom.Width + include : difference + union.apply null : for-rotational-pointing 5 0 Geom.Size 0 : Petal normalSw (Geom.Size * 5 / 7) + refer-glyph : MangleName 'blackSlightlySmallCircle' + create-glyph [MangleName 'whiteFlorette5'] [MangleUnicode 0x2740] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 5 0 Geom.Size 0 : WhitePetal normalSw (Geom.Size * 5 / 7) + refer-glyph : MangleName 'blackSlightlySmallCircle' + create-glyph [MangleName 'outlinedFlorette8'] [MangleUnicode 0x2741] : glyph-proc + set-width Geom.Width + local innerSw : clamp (normalSw / 2) normalSw (Geom.Size * 4 / 7 - normalSw * 2) + local offset : (Geom.Size * 4 / 7 - innerSw) / 2 + include : union + difference + union + union.apply null : for-rotational-pointing 8 0 Geom.Size 0 : WhitePetal normalSw (Geom.Size * 4 / 7) + union.apply null : for-rotational-pointing 8 0 (Geom.Size - offset) 0 : Petal (innerSw / 2) innerSw + refer-glyph : MangleName 'blackSlightlySmallCircle' + refer-glyph : MangleName 'whiteSlightlySmallCircle' + + # Balloon + create-glyph [MangleName 'balloonAsterisk4'] [MangleUnicode 0x2723] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 4 0 Geom.Size 0 : Balloon normalSw ballRad + create-glyph [MangleName 'balloonHeavyAsterisk4'] [MangleUnicode 0x2724] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 4 0 Geom.Size 0 : Balloon heavySw (ballRad * 1.35) + create-glyph [MangleName 'balloonAsterisk6'] [MangleUnicode 0x2749] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 6 0 Geom.Size 0 : Balloon normalSw ballRad + + create-glyph [MangleName 'clubAsterisk4'] [MangleUnicode 0x2725] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 4 0 Geom.Size 0 : Club normalSw (ballRad * 1.35) + + # Snowflake + create-glyph [MangleName 'snowflake'] [MangleUnicode 0x2744] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 6 0 Geom.Size 0 : Snowflake lightSw lightSw 6 0 + create-glyph [MangleName 'snowflakeTight'] [MangleUnicode 0x2745] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 6 0 Geom.Size 0 : Snowflake lightSw lightSw 6 1 + create-glyph [MangleName 'snowflakeHeavyChevron'] [MangleUnicode 0x2746] : glyph-proc + set-width Geom.Width + include : union.apply null : for-rotational-pointing 6 0 Geom.Size 0 : Snowflake lightSw semiBoldSw 6 0 + + # Sparkle + create-glyph [MangleName 'sparkle'] [MangleUnicode 0x2747] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 4 0 Geom.Size bigBallRad2 : Teardrop normalSw teardropSw + union.apply null : for-rotational-pointing 4 0.5 Geom.Size bigBallRad : Line normalSw + BigBallCenter + create-glyph [MangleName 'sparkleHeavy'] [MangleUnicode 0x2748] : glyph-proc + set-width Geom.Width + include : union + union.apply null : for-rotational-pointing 4 0 Geom.Size bigBallRad2 : Teardrop normalSw teardropHeavySw + union.apply null : for-rotational-pointing 4 0.5 Geom.Size bigBallRad : Line boldSw + BigBallCenter + +glyph-block Symbol-Other-Rotational : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + define [EternitySymbol sign] : glyph-proc + define sw : AdviceStroke 6.5 + define radius : (RightSB - Middle) / 2 + + foreach [j : range 0 8] : do + local angle : sign * j * Math.PI / 4 + local angle2 : sign * (j + 1) * Math.PI / 4 + include : difference + Circle.Outline.At (Middle + radius * [Math.cos angle ]) (SymbolMid + radius * [Math.sin angle ]) radius sw + Circle.Outline.At (Middle + radius * [Math.cos angle ]) (SymbolMid + radius * [Math.sin angle ]) (radius - sw) sw + Circle.Outline.At (Middle + radius * [Math.cos angle2]) (SymbolMid + radius * [Math.sin angle2]) radius sw + + create-glyph 'armn/eternitySignLeft' 0x58E : EternitySymbol 1 + create-glyph 'armn/eternitySignRight' 0x58D : EternitySymbol (-1) diff --git a/packages/font-glyphs/src/symbol/geometric/stars.ptl b/packages/font-glyphs/src/symbol/geometric/stars.ptl index 19626a408e..27a6dd23d4 100644 --- a/packages/font-glyphs/src/symbol/geometric/stars.ptl +++ b/packages/font-glyphs/src/symbol/geometric/stars.ptl @@ -17,6 +17,7 @@ glyph-block Symbol-Geometric-Stars : for-width-kinds WideWidth1 * { .name 'sixPointedBlackStar' .unicode 0x2736 .sides 6 .skip 1 .pMag 1.05 .phase 0 .pShrink 0.4 } * { .name 'eightPointedBlackStar' .unicode 0x2734 .sides 8 .skip 1 .pMag 1.15 .phase 0 .pShrink 0.25 } * { .name 'eightPointedRectilinearBlackStar' .unicode 0x2737 .sides 8 .skip 1 .pMag 1.05 .phase (1/8) .pShrink 0.4 } + * { .name 'eightPointedStarMask' .sides 8 .skip 1 .pMag 1 .phase 0 .pShrink [GeometricSizes Geom].SlightlySmall.size} * { .name 'heavyEightPointedRectilinearBlackStar' .unicode 0x2738 .sides 8 .skip 1 .pMag 1.05 .phase (1/8) .pShrink 0.5 } * { .name 'twelvePointedBlackStar' .unicode 0x2739 .sides 12 .skip 1 .pMag 1.05 .phase 0 .pShrink 0.5 } foreach [[object sides skip name unicode pMag phase pShrink] : items-of StarCfg] : do @@ -172,22 +173,3 @@ glyph-block Symbol-Geometric-Stars : for-width-kinds WideWidth1 size -- (0.625 * Geom.Size + swInner) include : ApparentTranslate Geom.MidX Geom.MidY - -glyph-block Symbol-Other-Stars : begin - glyph-block-import CommonShapes - glyph-block-import Common-Derivatives - - define [EternitySymbol sign] : glyph-proc - define sw : AdviceStroke 6.5 - define radius : (RightSB - Middle) / 2 - - foreach [j : range 0 8] : do - local angle : sign * j * Math.PI / 4 - local angle2 : sign * (j + 1) * Math.PI / 4 - include : difference - Circle.Outline.At (Middle + radius * [Math.cos angle ]) (SymbolMid + radius * [Math.sin angle ]) radius sw - Circle.Outline.At (Middle + radius * [Math.cos angle ]) (SymbolMid + radius * [Math.sin angle ]) (radius - sw) sw - Circle.Outline.At (Middle + radius * [Math.cos angle2]) (SymbolMid + radius * [Math.sin angle2]) radius sw - - create-glyph 'armn/eternitySignLeft' 0x58E : EternitySymbol 1 - create-glyph 'armn/eternitySignRight' 0x58D : EternitySymbol (-1) diff --git a/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl b/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl index 3ab2bbaf21..1438e54b62 100644 --- a/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl @@ -75,17 +75,19 @@ glyph-block Symbol-Pictograph-Checking-Marks : begin define xHeavySw : UnicodeWeightGrade 11 Geom.Scalar define ExtBracketConfig : list - list 0x276C mediumSw 1 - list 0x276D mediumSw 0 - list 0x276E heavySw 1 - list 0x276F heavySw 0 - list 0x2770 xHeavySw 1 - list 0x2771 xHeavySw 0 - foreach {unicode sw op} [items-of ExtBracketConfig] : begin + list 0x276C mediumSw 1 SB PictTop + list 0x276D mediumSw 0 SB PictTop + list 0x276E heavySw 1 [mix SB Middle 0.45] [mix SymbolMid ParenTop 0.5] + list 0x276F heavySw 0 [mix SB Middle 0.45] [mix SymbolMid ParenTop 0.5] + list 0x2770 xHeavySw 1 SB PictTop + list 0x2771 xHeavySw 0 SB PictTop + foreach {unicode sw op left top} [items-of ExtBracketConfig] : begin create-glyph [NameUni unicode] unicode : glyph-proc - local cor : DiagCor (PictTop - PictBot) (2 * (RightSB - SB)) + local bot : 2 * SymbolMid - top + local right : 2 * Middle - left + local cor : DiagCor (top - bot) (2 * (right - left)) include : dispiro widths.center (sw * cor) - corner [mix (SB + sw / 2) (RightSB - sw / 2) op] PictTop [heading Downward] - corner [mix (SB + sw / 2) (RightSB - sw / 2) (1 - op)] SymbolMid [heading Downward] - corner [mix (SB + sw / 2) (RightSB - sw / 2) op] PictBot [heading Downward] + corner [mix (left + sw / 2) (right - sw / 2) op] top [heading Downward] + corner [mix (left + sw / 2) (right - sw / 2) (1 - op)] SymbolMid [heading Downward] + corner [mix (left + sw / 2) (right - sw / 2) op] bot [heading Downward] diff --git a/packages/font-glyphs/src/symbol/pictograph/cross.ptl b/packages/font-glyphs/src/symbol/pictograph/cross.ptl index 17a1664908..67f60cb56e 100644 --- a/packages/font-glyphs/src/symbol/pictograph/cross.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/cross.ptl @@ -13,6 +13,7 @@ glyph-block Symbol-Cross : for-width-kinds WideWidth1 define Geom : GeometricDim MosaicUnitWidth MosaicWidth define Size : GeometricSizes Geom + define normalSw : UnicodeWeightGrade 4 Geom.Scalar define mediumSw : UnicodeWeightGrade 5 Geom.Scalar define heavySw : UnicodeWeightGrade 9 Geom.Scalar @@ -57,3 +58,45 @@ glyph-block Symbol-Cross : for-width-kinds WideWidth1 set-width Geom.Width include : LatinCross mediumSw false include : RingStrokeAt Geom.MidX yCenter (pRing * shortSize + 0.5 * mediumSw) mediumSw + + do "non-latin cross" + create-glyph [MangleName 'malteseCross'] [MangleUnicode 0x2720] : glyph-proc + set-width Geom.Width + + define span : normalSw / 2 + Geom.Size * 4.5 / 7 + define sw normalSw + + include : lift-@ : spiro-outline + corner (@x1 = Geom.Left) (@y1 = Geom.MidY + span) + corner (@x2 = @x1 + [HSwToV : 0.5 * sw]) @y1 + arcvh + flat (@x3 = @x1 + span) (@y2 = Geom.MidY + sw / 2) + curl (@x4 = @x6 - span) @y2 + archv + corner (@x5 = @x6 - [HSwToV : 0.5 * sw]) @y1 + corner (@x6 = Geom.Right) @y1 + corner @x6 (@y3 = Geom.MidY - span) + corner @x5 @y3 + arcvh + flat @x4 (@y4 = Geom.MidY - sw / 2) + curl @x3 @y4 + archv + corner @x2 @y3 + corner @x1 @y3 + include : lift-@ : spiro-outline + corner (@x1 = Geom.MidX + span) (@y1 = Geom.Top) + corner @x1 (@y2 = @y1 - sw / 2) + archv + flat (@x2 = Geom.MidX + [HSwToV : 0.5 * sw]) (@y3 = @y1 - span) + curl @x2 (@y4 = @y6 + span) + arcvh + corner @x1 (@y5 = @y6 + sw / 2) + corner @x1 (@y6 = Geom.Bot) + corner (@x4 = Geom.MidX - span) @y6 + corner @x4 @y5 + archv + flat (@x3 = Geom.MidX - [HSwToV : 0.5 * sw]) @y4 + curl @x3 @y3 + arcvh + corner @x4 @y2 + corner @x4 @y1 diff --git a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl index 6ce6ca9b38..f8de4da7d0 100644 --- a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl @@ -14,7 +14,7 @@ glyph-block Symbol-Punctuation-Percentages : begin define [PercentBarCor df sw] : begin local a : 1 - (((df.rightSB - df.leftSB - sw) / (CAP - 0)) ** 2) - return : HVContrast / [if (a <= 0) 1 : Math.sqrt a] + return : HSwToV : 1 / [if (a <= 0) 1 : Math.sqrt a] define [PercentBarShape df sw] : begin local cor : PercentBarCor df sw @@ -53,7 +53,7 @@ glyph-block Symbol-Punctuation-Percentages : begin create-glyph 'basepoint.NWID.dots' : glyph-proc define df : include : DivFrame para.diversityM - define slopeDf : DivFrame [Math.min (para.diversityM * 0.8) 1] + define slopeDf : DivFrame : Math.min 1 : para.diversityM * 0.8 define refSw : AdviceStroke 5 df.div @@ -147,7 +147,7 @@ glyph-block Symbol-Punctuation-Percentages : begin local adb : ArchDepthB * 0.5 * para.diversityM local sw : AdviceStroke2 4 5 CAP para.diversityM local fine : AdviceStroke2 5 5 CAP para.diversityM - local cor : HVContrast / [Math.sqrt : 1 - (((r - l - sw) / (CAP - 0)) ** 2)] + local cor : HSwToV : 1 / [Math.sqrt : 1 - (((r - l - sw) / (CAP - 0)) ** 2)] local pTerm : (fine / 2) / [Math.hypot CAP (r - l)] local pFine : 1 / 2 - (Stroke / 2) / [Math.hypot CAP (r - l)] diff --git a/packages/font-glyphs/src/symbol/punctuation/slashes-and-number-sign.ptl b/packages/font-glyphs/src/symbol/punctuation/slashes-and-number-sign.ptl index 0a89457efa..bec13e503d 100644 --- a/packages/font-glyphs/src/symbol/punctuation/slashes-and-number-sign.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/slashes-and-number-sign.ptl @@ -24,7 +24,7 @@ glyph-block Symbol-Punctuation-Slashes-And-Number-Sign : begin local-parameter : b -- ParenBot local-parameter : w -- Stroke - local cor : (1 / 2) * HVContrast / [Math.sqrt : 1 - (((r - l - w) / (t - b)) ** 2)] + local cor : HSwToV : 0.5 / [Math.sqrt : 1 - (((r - l - w) / (t - b)) ** 2)] include : spiro-outline corner (r - w * cor) t corner (r + w * cor) t @@ -40,7 +40,7 @@ glyph-block Symbol-Punctuation-Slashes-And-Number-Sign : begin create-glyph 'doubleSlash' 0x2AFD : glyph-proc define w : AdviceStroke 3 - define b : Math.max w (Width * 0.15) + define b : Math.max w : Width * 0.15 include : SlashShape (slashDefautLeft - b) (slashDefaultRight - b) nothing nothing w include : SlashShape (slashDefautLeft + b) (slashDefaultRight + b) nothing nothing w @@ -54,7 +54,7 @@ glyph-block Symbol-Punctuation-Slashes-And-Number-Sign : begin create-glyph 'slantedParallel' : glyph-proc define w : AdviceStroke 3 - define b : Math.max w (Width * 0.15) + define b : Math.max w : Width * 0.15 include : SlashShape (slashDefautLeft - b) (slashDefaultRight - b) TackTop TackBot w include : SlashShape (slashDefautLeft + b) (slashDefaultRight + b) TackTop TackBot w @@ -66,7 +66,7 @@ glyph-block Symbol-Punctuation-Slashes-And-Number-Sign : begin local-parameter : b -- ParenBot local-parameter : w -- Stroke - local cor : (1 / 2) * HVContrast / [Math.sqrt : 1 - (((r - l - w) / (t - b)) ** 2)] + local cor : HSwToV : 0.5 / [Math.sqrt : 1 - (((r - l - w) / (t - b)) ** 2)] include : spiro-outline corner (l - w * cor) t corner (l + w * cor) t diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 421f6a0e37..cba783a844 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-kits", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { "./derived-coordinates": "./src/derived-coordinates.mjs", @@ -8,9 +8,9 @@ "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "32.3.0", - "@iosevka/glyph": "32.3.0", - "@iosevka/util": "32.3.0", + "@iosevka/geometry": "32.3.1", + "@iosevka/glyph": "32.3.1", + "@iosevka/util": "32.3.1", "typo-geom": "^0.16.1" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index c3a59c6296..324685f481 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./lib/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "32.3.0", - "@iosevka/glyph": "32.3.0", + "@iosevka/font-glyphs": "32.3.1", + "@iosevka/glyph": "32.3.1", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index d8f1db5eed..d1910a8e41 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "32.3.0", - "@iosevka/font-otl": "32.3.0", - "@iosevka/geometry": "32.3.0", - "@iosevka/geometry-cache": "32.3.0", - "@iosevka/glyph": "32.3.0", - "@iosevka/param": "32.3.0", - "@iosevka/util": "32.3.0", + "@iosevka/font-glyphs": "32.3.1", + "@iosevka/font-otl": "32.3.1", + "@iosevka/geometry": "32.3.1", + "@iosevka/geometry-cache": "32.3.1", + "@iosevka/glyph": "32.3.1", + "@iosevka/param": "32.3.1", + "@iosevka/util": "32.3.1", "harfbuzzjs": "^0.4.3", "ot-builder": "^1.7.4", "semver": "^7.6.3", diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index 89b131b8bf..d29b7fbafe 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "32.3.0", + "@iosevka/geometry": "32.3.1", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index cb2e16f3b0..e85406a6dd 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -16,7 +16,7 @@ "./encoding": "./src/encoding.mjs" }, "dependencies": { - "@iosevka/util": "32.3.0", + "@iosevka/util": "32.3.1", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index 0aa8ae7f14..effb304540 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "32.3.0" + "@iosevka/geometry": "32.3.1" } } diff --git a/packages/param/package.json b/packages/param/package.json index 24101755cb..cf6e3b44c8 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "32.3.0" + "@iosevka/util": "32.3.1" } } diff --git a/packages/util/package.json b/packages/util/package.json index 9c9f07a9b8..2b019d2b62 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index 1f35f074bf..754038e013 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.3.0", + "@iosevka/param": "32.3.1", "@unicode/unicode-16.0.0": "^1.6.4", "semver": "^7.6.3" } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index cdb3f51d31..4b1439a2ad 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.3.0", + "@iosevka/param": "32.3.1", "@unicode/unicode-16.0.0": "^1.6.4", "cldr": "^7.6.0", "@msgpack/msgpack": "^2.8.0" diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index 76b62c8dab..2d1e0c1695 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "32.3.0", + "version": "32.3.1", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "32.3.0" + "@iosevka/data-export": "32.3.1" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index dc55509067..ee74d3dd5a 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/misc", - "version": "32.3.0", + "version": "32.3.1", "private": true, "dependencies": { "semver": "^7.6.3", "wawoff2": "^2.0.1", - "@iosevka/util": "32.3.0", + "@iosevka/util": "32.3.1", "@unicode/unicode-16.0.0": "^1.6.4" } } diff --git a/verdafile.mjs b/verdafile.mjs index a5c507c2d7..941694be04 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -1172,6 +1172,7 @@ const ReleaseNotePackagesFile = file(`${BUILD}/release-packages.json`, async (t, await FS.promises.writeFile(out.full, JSON.stringify(releaseNoteGroups, null, " ")); }); const AmendLicenseYear = task("amend-readme:license-year", async target => { + await target.need(Version, Parameters, UtilScripts); return node(`tools/amend-readme/src/license-year.mjs`, { path: "LICENSE.md", });