diff --git a/CHANGELOG.md b/CHANGELOG.md index f431154ae7..8efe4cbe58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ ## Modifications since last major version +### 32.4.0 + +* Add `curved` variant for `¶` (#2045). +* Add `top-cut` variants for `a`/`g`/`q`. +* Add `bottom-cut` variants for `b`. +* Refine shape of `Չ`. +* Make certain characters slightly wider under Quasi-Proportional. Affected characters: + - LATIN SMALL LETTER SCHWA WITH HOOK (`U+025A`). + - LATIN SMALL LETTER REVERSED OPEN E WITH HOOK (`U+025D`). + - LATIN LETTER SMALL CAPITAL OE (`U+0276`). + - LATIN LETTER SMALL CAPITAL AE (`U+1D01`). + - LATIN LETTER SMALL CAPITAL W (`U+1D21`). + - TELEPHONE SIGN (`U+2121`). + - FACSIMILE SIGN (`U+213B`). + - MODIFIER LETTER SMALL CAPITAL AA (`U+01780`). + - MODIFIER LETTER SMALL CAPITAL OE (`U+107A3`). +* Add characters: + - NEW SHEQEL SIGN (`U+20AA`) (#2097). + - TURKISH LIRA SIGN (`U+20BA`) (#2097). + - MANAT SIGN (`U+20BC`) (#2097). + - LARI SIGN (`U+20BE`) (#2097). + - VIEWDATA SQUARE (`U+2317`). + - PLACE OF INTEREST SIGN (`U+2318`). + - CURVED STEM PARAGRAPH SIGN ORNAMENT (`U+2761`). +* Add new spacing option `wide-mosaic` for custom build (#2637). + + ### 32.3.1 * Make certain characters slightly narrower under Quasi-Proportional. Affected characters: diff --git a/changes/32.4.0.md b/changes/32.4.0.md new file mode 100644 index 0000000000..ac464f996b --- /dev/null +++ b/changes/32.4.0.md @@ -0,0 +1,23 @@ +* Add `curved` variant for `¶` (#2045). +* Add `top-cut` variants for `a`/`g`/`q`. +* Add `bottom-cut` variants for `b`. +* Refine shape of `Չ`. +* Make certain characters slightly wider under Quasi-Proportional. Affected characters: + - LATIN SMALL LETTER SCHWA WITH HOOK (`U+025A`). + - LATIN SMALL LETTER REVERSED OPEN E WITH HOOK (`U+025D`). + - LATIN LETTER SMALL CAPITAL OE (`U+0276`). + - LATIN LETTER SMALL CAPITAL AE (`U+1D01`). + - LATIN LETTER SMALL CAPITAL W (`U+1D21`). + - TELEPHONE SIGN (`U+2121`). + - FACSIMILE SIGN (`U+213B`). + - MODIFIER LETTER SMALL CAPITAL AA (`U+01780`). + - MODIFIER LETTER SMALL CAPITAL OE (`U+107A3`). +* Add characters: + - NEW SHEQEL SIGN (`U+20AA`) (#2097). + - TURKISH LIRA SIGN (`U+20BA`) (#2097). + - MANAT SIGN (`U+20BC`) (#2097). + - LARI SIGN (`U+20BE`) (#2097). + - VIEWDATA SQUARE (`U+2317`). + - PLACE OF INTEREST SIGN (`U+2318`). + - CURVED STEM PARAGRAPH SIGN ORNAMENT (`U+2761`). +* Add new spacing option `wide-mosaic` for custom build (#2637). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 3254b4bf9c..5dd5cb20da 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 32.3.1 +# Package list of Release 32.4.0 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/character-variants.md b/doc/character-variants.md index adca464791..a02baaf1d8 100644 --- a/doc/character-variants.md +++ b/doc/character-variants.md @@ -1096,7 +1096,9 @@ - + + + 13 @@ -1108,7 +1110,9 @@ 19 20 21 - +22 +23 +24 cv37 @@ -1119,7 +1123,9 @@ - + + + 1 @@ -1129,7 +1135,9 @@ 5 6 7 - +8 +9 + cv38 @@ -1249,7 +1257,8 @@ - + + 1 @@ -1262,7 +1271,8 @@ 8 9 10 - +11 +12 cv43 @@ -1662,14 +1672,22 @@ - + + + + + 13 14 15 16 - +17 +18 +19 +20 + cv52 @@ -2303,7 +2321,7 @@ -cv67 +cv67 @@ -2332,6 +2350,18 @@ 12 + + + + + + +13 +14 +15 + + + VXAC @@ -2675,7 +2705,9 @@ - + + + 13 @@ -2687,7 +2719,9 @@ 19 20 21 - +22 +23 +24 cv80 @@ -3685,12 +3719,14 @@ VSAR - + + 1 2 - +3 + VSAS diff --git a/doc/custom-build.md b/doc/custom-build.md index 43e3df2136..c2603a8d4f 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -74,6 +74,7 @@ Inside the plan, top-level properties include: - `U+2B33` LONG LEFTWARDS SQUIGGLE ARROW - Remove `NWID` and `WWID` features typographic features - `fixed`: Apply `fontconfig-mono` changes and further remove ligations. + - `wide-mosaic`: Similar to `normal`, but all mosaic (box-drawing characters and block elements) will be wide. * `serifs`: Optional, String, configures style of serifs. - When set to `slab`, the font will be converted into slab-serif. - Otherwise the font will be sans-serif. @@ -1151,7 +1152,7 @@ Subsection `variants` is used to configure character variants in the font. Prope Z with cursive body shape, and a horizontal crossbar - Styles for `a` -
21 variants +
24 variants @@ -1195,9 +1196,15 @@ Subsection `variants` is used to configure character variants in the font. Prope + + + + + +
a = 'double-storey-serifless', cv36 = 1
a with double-storey body, and serifless hook; without serif at terminal (default for Sans Upright)
a with single-storey body, earless (rounded top-right), and serif at terminal
a = 'single-storey-earless-rounded-tailed', cv36 = 21
a with single-storey body, earless (rounded top-right), and curly tail
a = 'single-storey-top-cut-serifless', cv36 = 22
a with single-storey body, and a diagonal cut at top; without serif at terminal
a = 'single-storey-top-cut-serifed', cv36 = 23
a with single-storey body, a diagonal cut at top, and serif at terminal
a = 'single-storey-top-cut-tailed', cv36 = 24
a with single-storey body, a diagonal cut at top, and curly tail
- Styles for `b` -
7 variants +
9 variants @@ -1213,6 +1220,10 @@ Subsection `variants` is used to configure character variants in the font. Prope + + + +
b = 'toothed-serifless', cv37 = 1
b with toothed shape; without serifs (default for Sans)
b with toothless (rounded) shape; without serifs
b = 'toothless-rounded-serifed', cv37 = 7
b with toothless (rounded) shape, and serifs
b = 'bottom-cut-serifless', cv37 = 8
b with a diagonal cut at bottom; without serifs
b = 'bottom-cut-serifed', cv37 = 9
b with a diagonal cut at bottom, and serifs
- Styles for `c`
5 variants @@ -1305,7 +1316,7 @@ Subsection `variants` is used to configure character variants in the font. Prope f with flat top hook, diagonal tail, and crossbar at X-height
- Styles for `g` -
10 variants +
12 variants @@ -1327,6 +1338,10 @@ Subsection `variants` is used to configure character variants in the font. Prope + + + +
g = 'double-storey', cv42 = 1
g with double-storey shape
g with single-storey shape, flat bottom hook, and earless (cornered top-right)
g = 'single-storey-flat-hook-earless-rounded', cv42 = 10
g with single-storey shape, flat bottom hook, and earless (rounded top-right)
g = 'single-storey-top-cut', cv42 = 11
g with single-storey shape, and a diagonal cut at top
g = 'single-storey-flat-hook-top-cut', cv42 = 12
g with single-storey shape, flat bottom hook, and a diagonal cut at top
- Styles for `h`
7 variants @@ -1637,7 +1652,7 @@ Subsection `variants` is used to configure character variants in the font. Prope p with earless (rounded) shape, and serifs
- Styles for `q` -
16 variants +
20 variants @@ -1671,6 +1686,14 @@ Subsection `variants` is used to configure character variants in the font. Prope + + + + + + + +
q = 'straight-serifless', cv51 = 1
q with straight terminal; without serifs (default for Sans)
q with earless (rounded) shape, and tailed terminal; without serifs
q = 'earless-rounded-diagonal-tailed-serifless', cv51 = 16
q with earless (rounded) shape, and diagonally tailed terminal; without serifs
q = 'top-cut-straight-serifless', cv51 = 17
q with a diagonal cut at top, and straight terminal; without serifs
q = 'top-cut-straight-serifed', cv51 = 18
q with a diagonal cut at top, straight terminal, and serifs
q = 'top-cut-tailed-serifless', cv51 = 19
q with a diagonal cut at top, and tailed terminal; without serifs
q = 'top-cut-diagonal-tailed-serifless', cv51 = 20
q with a diagonal cut at top, and diagonally tailed terminal; without serifs
- Styles for `r`
20 variants @@ -2209,7 +2232,7 @@ Subsection `variants` is used to configure character variants in the font. Prope Lowercase Thorn (þ) with serifs (default for Slab)
- Styles for `α` (Greek lower Alpha) -
12 variants +
15 variants @@ -2235,6 +2258,12 @@ Subsection `variants` is used to configure character variants in the font. Prope + + + + + +
lower-alpha = 'crossing', cv67 = 1
Greek lower Alpha (α) with cross-like shape at right (default)
Greek lower Alpha (α) with straight right bar, earless (rounded top-right), and serif at terminal
lower-alpha = 'barred-earless-rounded-tailed', cv67 = 12
Greek lower Alpha (α) with straight right bar, earless (rounded top-right), and curly tail
lower-alpha = 'barred-top-cut', cv67 = 13
Greek lower Alpha (α) with straight right bar, and a diagonal cut at top
lower-alpha = 'barred-top-cut-serifed', cv67 = 14
Greek lower Alpha (α) with straight right bar, a diagonal cut at top, and serif at terminal
lower-alpha = 'barred-top-cut-tailed', cv67 = 15
Greek lower Alpha (α) with straight right bar, a diagonal cut at top, and curly tail
- Styles for `β` (Greek lower Beta)
2 variants @@ -2485,7 +2514,7 @@ Subsection `variants` is used to configure character variants in the font. Prope Greek lower Psi (ψ) with flat top, and serifs
- Styles for `а` (Cyrillic Lower A) -
21 variants +
24 variants @@ -2529,6 +2558,12 @@ Subsection `variants` is used to configure character variants in the font. Prope + + + + + +
cyrl-a = 'double-storey-serifless', cv79 = 1
Cyrillic Lower A (а) with double-storey body, and serifless hook; without serif at terminal (default for Sans Upright)
Cyrillic Lower A (а) with single-storey body, earless (rounded top-right), and serif at terminal
cyrl-a = 'single-storey-earless-rounded-tailed', cv79 = 21
Cyrillic Lower A (а) with single-storey body, earless (rounded top-right), and curly tail
cyrl-a = 'single-storey-top-cut-serifless', cv79 = 22
Cyrillic Lower A (а) with single-storey body, and a diagonal cut at top; without serif at terminal
cyrl-a = 'single-storey-top-cut-serifed', cv79 = 23
Cyrillic Lower A (а) with single-storey body, a diagonal cut at top, and serif at terminal
cyrl-a = 'single-storey-top-cut-tailed', cv79 = 24
Cyrillic Lower A (а) with single-storey body, a diagonal cut at top, and curly tail
- Styles for `в` (Cyrillic Lower Ve)
8 variants @@ -3375,12 +3410,14 @@ Subsection `variants` is used to configure character variants in the font. Prope Question mark (?) with a corner at middle and flat hook
- Styles for `¶` -
2 variants +
3 variants + +
pilcrow = 'high', VSAR = 1
Higher pilcrow sign (default)
pilcrow = 'low', VSAR = 2
Lower pilcrow sign
pilcrow = 'curved', VSAR = 3
Curved pilcrow sign
- Styles for `∂` (Partial derivative symbol)
2 variants diff --git a/doc/cv-influences.md b/doc/cv-influences.md index e592e784b2..a10464eb3c 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -89,7 +89,7 @@ - `cv22`: - L (`U+004C`), £ (`U+00A3`), Ĺ (`U+0139`), Ļ (`U+013B`), Ľ (`U+013D`), Ŀ (`U+013F`), Ł (`U+0141`), LJ (`U+01C7`), Lj (`U+01C8`), Ƚ (`U+023D`), ʟ (`U+029F`), ᴌ (`U+1D0C`), ᴸ (`U+1D38`), ᶫ (`U+1DAB`), ᷞ (`U+1DDE`), Ḷ (`U+1E36`), Ḹ (`U+1E38`), Ḻ (`U+1E3A`), Ḽ (`U+1E3C`), Ỻ (`U+1EFA`), ₤ (`U+20A4`), ℡ (`U+2121`), ⅂ (`U+2142`), ⅃ (`U+2143`), Ⅼ (`U+216C`), ␀ (`U+2400`), ␇ (`U+2407`), ␊ (`U+240A`), ␐ (`U+2410`), ␡ (`U+2421`), ␤ (`U+2424`), Ⓛ (`U+24C1`), Ⱡ (`U+2C60`), Ɫ (`U+2C62`), Ꝉ (`U+A748`), Ꞁ (`U+A780`), Ɬ (`U+A7AD`),  (`U+E0A1`), 𐞜 (`U+1079C`), 𜳡 (`U+1CCE1`), 𝐋 (`U+1D40B`), 𝐿 (`U+1D43F`), 𝑳 (`U+1D473`), 𝖫 (`U+1D5AB`), 𝗟 (`U+1D5DF`), 𝘓 (`U+1D613`), 𝙇 (`U+1D647`), 𝙻 (`U+1D67B`), 𝼄 (`U+1DF04`), 🄛 (`U+1F11B`), 🄻 (`U+1F13B`), 🅛 (`U+1F15B`), 🅻 (`U+1F17B`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆩 (`U+1F1A9`), 🇱 (`U+1F1F1`) + L (`U+004C`), £ (`U+00A3`), Ĺ (`U+0139`), Ļ (`U+013B`), Ľ (`U+013D`), Ŀ (`U+013F`), Ł (`U+0141`), LJ (`U+01C7`), Lj (`U+01C8`), Ƚ (`U+023D`), ʟ (`U+029F`), ᴌ (`U+1D0C`), ᴸ (`U+1D38`), ᶫ (`U+1DAB`), ᷞ (`U+1DDE`), Ḷ (`U+1E36`), Ḹ (`U+1E38`), Ḻ (`U+1E3A`), Ḽ (`U+1E3C`), Ỻ (`U+1EFA`), ₤ (`U+20A4`), ₺ (`U+20BA`), ℡ (`U+2121`), ⅂ (`U+2142`), ⅃ (`U+2143`), Ⅼ (`U+216C`), ␀ (`U+2400`), ␇ (`U+2407`), ␊ (`U+240A`), ␐ (`U+2410`), ␡ (`U+2421`), ␤ (`U+2424`), Ⓛ (`U+24C1`), Ⱡ (`U+2C60`), Ɫ (`U+2C62`), Ꝉ (`U+A748`), Ꞁ (`U+A780`), Ɬ (`U+A7AD`),  (`U+E0A1`), 𐞜 (`U+1079C`), 𜳡 (`U+1CCE1`), 𝐋 (`U+1D40B`), 𝐿 (`U+1D43F`), 𝑳 (`U+1D473`), 𝖫 (`U+1D5AB`), 𝗟 (`U+1D5DF`), 𝘓 (`U+1D613`), 𝙇 (`U+1D647`), 𝙻 (`U+1D67B`), 𝼄 (`U+1DF04`), 🄛 (`U+1F11B`), 🄻 (`U+1F13B`), 🅛 (`U+1F15B`), 🅻 (`U+1F17B`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆩 (`U+1F1A9`), 🇱 (`U+1F1F1`) - `cv23`: @@ -616,7 +616,7 @@ - `cv22`: - L (`U+004C`), £ (`U+00A3`), Ĺ (`U+0139`), Ļ (`U+013B`), Ľ (`U+013D`), Ŀ (`U+013F`), Ł (`U+0141`), LJ (`U+01C7`), Lj (`U+01C8`), Ƚ (`U+023D`), ʟ (`U+029F`), ᴌ (`U+1D0C`), ᴸ (`U+1D38`), ᶫ (`U+1DAB`), ᷞ (`U+1DDE`), Ḷ (`U+1E36`), Ḹ (`U+1E38`), Ḻ (`U+1E3A`), Ḽ (`U+1E3C`), Ỻ (`U+1EFA`), ₤ (`U+20A4`), ℡ (`U+2121`), ⅂ (`U+2142`), ⅃ (`U+2143`), Ⅼ (`U+216C`), ␀ (`U+2400`), ␇ (`U+2407`), ␊ (`U+240A`), ␐ (`U+2410`), ␡ (`U+2421`), ␤ (`U+2424`), Ⓛ (`U+24C1`), Ⱡ (`U+2C60`), Ɫ (`U+2C62`), Ꝉ (`U+A748`), Ꞁ (`U+A780`), Ɬ (`U+A7AD`),  (`U+E0A1`), 𐞜 (`U+1079C`), 𜳡 (`U+1CCE1`), 𝐋 (`U+1D40B`), 𝐿 (`U+1D43F`), 𝑳 (`U+1D473`), 𝖫 (`U+1D5AB`), 𝗟 (`U+1D5DF`), 𝘓 (`U+1D613`), 𝙇 (`U+1D647`), 𝙻 (`U+1D67B`), 𝼄 (`U+1DF04`), 🄛 (`U+1F11B`), 🄻 (`U+1F13B`), 🅛 (`U+1F15B`), 🅻 (`U+1F17B`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆩 (`U+1F1A9`), 🇱 (`U+1F1F1`) + L (`U+004C`), £ (`U+00A3`), Ĺ (`U+0139`), Ļ (`U+013B`), Ľ (`U+013D`), Ŀ (`U+013F`), Ł (`U+0141`), LJ (`U+01C7`), Lj (`U+01C8`), Ƚ (`U+023D`), ʟ (`U+029F`), ᴌ (`U+1D0C`), ᴸ (`U+1D38`), ᶫ (`U+1DAB`), ᷞ (`U+1DDE`), Ḷ (`U+1E36`), Ḹ (`U+1E38`), Ḻ (`U+1E3A`), Ḽ (`U+1E3C`), Ỻ (`U+1EFA`), ₤ (`U+20A4`), ₺ (`U+20BA`), ℡ (`U+2121`), ⅂ (`U+2142`), ⅃ (`U+2143`), Ⅼ (`U+216C`), ␀ (`U+2400`), ␇ (`U+2407`), ␊ (`U+240A`), ␐ (`U+2410`), ␡ (`U+2421`), ␤ (`U+2424`), Ⓛ (`U+24C1`), Ⱡ (`U+2C60`), Ɫ (`U+2C62`), Ꝉ (`U+A748`), Ꞁ (`U+A780`), Ɬ (`U+A7AD`),  (`U+E0A1`), 𐞜 (`U+1079C`), 𜳡 (`U+1CCE1`), 𝐋 (`U+1D40B`), 𝐿 (`U+1D43F`), 𝑳 (`U+1D473`), 𝖫 (`U+1D5AB`), 𝗟 (`U+1D5DF`), 𝘓 (`U+1D613`), 𝙇 (`U+1D647`), 𝙻 (`U+1D67B`), 𝼄 (`U+1DF04`), 🄛 (`U+1F11B`), 🄻 (`U+1F13B`), 🅛 (`U+1F15B`), 🅻 (`U+1F17B`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆩 (`U+1F1A9`), 🇱 (`U+1F1F1`) - `cv23`: diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index 23167b040b..7207b76518 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -9,7 +9,8 @@ - + + @@ -21,13 +22,13 @@ - + - + - + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 1d8a914bd8..2e50a6fb1f 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -9,7 +9,8 @@ - + + @@ -21,13 +22,13 @@ - + - + - + \ No newline at end of file diff --git a/images/cs-block-armenian.dark.svg b/images/cs-block-armenian.dark.svg index a684162499..816214fdb6 100644 --- a/images/cs-block-armenian.dark.svg +++ b/images/cs-block-armenian.dark.svg @@ -22,7 +22,7 @@ - + @@ -42,9 +42,9 @@ - + - + @@ -74,7 +74,7 @@ - + diff --git a/images/cs-block-armenian.light.svg b/images/cs-block-armenian.light.svg index 8a3ca38dff..b6709bf022 100644 --- a/images/cs-block-armenian.light.svg +++ b/images/cs-block-armenian.light.svg @@ -22,7 +22,7 @@ - + @@ -42,9 +42,9 @@ - + - + @@ -74,7 +74,7 @@ - + diff --git a/images/cs-block-currency-symbols.dark.svg b/images/cs-block-currency-symbols.dark.svg index 6f735f1be5..346c3cf88d 100644 --- a/images/cs-block-currency-symbols.dark.svg +++ b/images/cs-block-currency-symbols.dark.svg @@ -28,21 +28,25 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -185,33 +189,33 @@ - - + + - + - + - + - + - + @@ -231,27 +235,27 @@ - + - + - + - + - + @@ -266,17 +270,17 @@ - + - + - - + + @@ -285,23 +289,23 @@ - - + + - + - - + + - + @@ -316,7 +320,7 @@ - + diff --git a/images/cs-block-currency-symbols.light.svg b/images/cs-block-currency-symbols.light.svg index c0db8de20a..4f6a7388ac 100644 --- a/images/cs-block-currency-symbols.light.svg +++ b/images/cs-block-currency-symbols.light.svg @@ -28,21 +28,25 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -185,33 +189,33 @@ - - + + - + - + - + - + - + @@ -231,27 +235,27 @@ - + - + - + - + - + @@ -266,17 +270,17 @@ - + - + - - + + @@ -285,23 +289,23 @@ - - + + - + - - + + - + @@ -316,7 +320,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-a.dark.svg b/images/cs-block-cyrillic-extended-a.dark.svg index 0ecf94ce0c..f3aa80e2c8 100644 --- a/images/cs-block-cyrillic-extended-a.dark.svg +++ b/images/cs-block-cyrillic-extended-a.dark.svg @@ -49,7 +49,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-a.light.svg b/images/cs-block-cyrillic-extended-a.light.svg index 7046d6e060..6b60947cdf 100644 --- a/images/cs-block-cyrillic-extended-a.light.svg +++ b/images/cs-block-cyrillic-extended-a.light.svg @@ -49,7 +49,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg index a06285dc04..864b84a3b9 100644 --- a/images/cs-block-cyrillic-extended-b.dark.svg +++ b/images/cs-block-cyrillic-extended-b.dark.svg @@ -42,7 +42,7 @@ - + @@ -99,8 +99,8 @@ - - + + diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg index 37205002d6..7df950f775 100644 --- a/images/cs-block-cyrillic-extended-b.light.svg +++ b/images/cs-block-cyrillic-extended-b.light.svg @@ -42,7 +42,7 @@ - + @@ -99,8 +99,8 @@ - - + + diff --git a/images/cs-block-cyrillic-extended-c.dark.svg b/images/cs-block-cyrillic-extended-c.dark.svg index 8cc86a307e..7d542b6e4a 100644 --- a/images/cs-block-cyrillic-extended-c.dark.svg +++ b/images/cs-block-cyrillic-extended-c.dark.svg @@ -22,7 +22,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-c.light.svg b/images/cs-block-cyrillic-extended-c.light.svg index 203649224a..dbe4ae5cf5 100644 --- a/images/cs-block-cyrillic-extended-c.light.svg +++ b/images/cs-block-cyrillic-extended-c.light.svg @@ -22,7 +22,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-d.dark.svg b/images/cs-block-cyrillic-extended-d.dark.svg index de9019c9c9..66a6151473 100644 --- a/images/cs-block-cyrillic-extended-d.dark.svg +++ b/images/cs-block-cyrillic-extended-d.dark.svg @@ -49,7 +49,7 @@ - + @@ -74,11 +74,11 @@ - + - - + + diff --git a/images/cs-block-cyrillic-extended-d.light.svg b/images/cs-block-cyrillic-extended-d.light.svg index ea1c07fa75..d098b3f089 100644 --- a/images/cs-block-cyrillic-extended-d.light.svg +++ b/images/cs-block-cyrillic-extended-d.light.svg @@ -49,7 +49,7 @@ - + @@ -74,11 +74,11 @@ - + - - + + diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg index a68e1d59e4..fd18fc50b5 100644 --- a/images/cs-block-cyrillic.dark.svg +++ b/images/cs-block-cyrillic.dark.svg @@ -34,7 +34,7 @@ - + @@ -114,7 +114,7 @@ - + @@ -163,16 +163,16 @@ - - + + - - + + @@ -189,8 +189,8 @@ - - + + @@ -209,8 +209,8 @@ - - + + @@ -250,10 +250,10 @@ - - - - + + + + diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg index 1738736eca..5d748e7599 100644 --- a/images/cs-block-cyrillic.light.svg +++ b/images/cs-block-cyrillic.light.svg @@ -34,7 +34,7 @@ - + @@ -114,7 +114,7 @@ - + @@ -163,16 +163,16 @@ - - + + - - + + @@ -189,8 +189,8 @@ - - + + @@ -209,8 +209,8 @@ - - + + @@ -250,10 +250,10 @@ - - - - + + + + diff --git a/images/cs-block-dingbats.dark.svg b/images/cs-block-dingbats.dark.svg index 28707c2204..8652849b6b 100644 --- a/images/cs-block-dingbats.dark.svg +++ b/images/cs-block-dingbats.dark.svg @@ -69,46 +69,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -746,8 +747,8 @@ - - + + @@ -762,7 +763,7 @@ - + @@ -802,22 +803,22 @@ - + - + - + - + @@ -832,12 +833,12 @@ - + - + @@ -862,52 +863,52 @@ - + - + - + - + - + - + - + - + - + - + @@ -922,82 +923,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1012,27 +1013,27 @@ - + - + - + - + - + @@ -1072,17 +1073,17 @@ - + - + - + @@ -1107,37 +1108,37 @@ - + - + - + - + - + - + - + @@ -1192,7 +1193,7 @@ - + @@ -1267,7 +1268,7 @@ - + \ No newline at end of file diff --git a/images/cs-block-dingbats.light.svg b/images/cs-block-dingbats.light.svg index b04cc31a0f..51a049bb70 100644 --- a/images/cs-block-dingbats.light.svg +++ b/images/cs-block-dingbats.light.svg @@ -69,46 +69,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -746,8 +747,8 @@ - - + + @@ -762,7 +763,7 @@ - + @@ -802,22 +803,22 @@ - + - + - + - + @@ -832,12 +833,12 @@ - + - + @@ -862,52 +863,52 @@ - + - + - + - + - + - + - + - + - + - + @@ -922,82 +923,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1012,27 +1013,27 @@ - + - + - + - + - + @@ -1072,17 +1073,17 @@ - + - + - + @@ -1107,37 +1108,37 @@ - + - + - + - + - + - + - + @@ -1192,7 +1193,7 @@ - + @@ -1267,7 +1268,7 @@ - + \ No newline at end of file diff --git a/images/cs-block-general-punctuation.dark.svg b/images/cs-block-general-punctuation.dark.svg index aece60453d..b39a6cb425 100644 --- a/images/cs-block-general-punctuation.dark.svg +++ b/images/cs-block-general-punctuation.dark.svg @@ -67,9 +67,9 @@ - - - + + + diff --git a/images/cs-block-general-punctuation.light.svg b/images/cs-block-general-punctuation.light.svg index 291b687289..48009df257 100644 --- a/images/cs-block-general-punctuation.light.svg +++ b/images/cs-block-general-punctuation.light.svg @@ -67,9 +67,9 @@ - - - + + + diff --git a/images/cs-block-greek-and-coptic.dark.svg b/images/cs-block-greek-and-coptic.dark.svg index 438797ac1f..c5c19573c9 100644 --- a/images/cs-block-greek-and-coptic.dark.svg +++ b/images/cs-block-greek-and-coptic.dark.svg @@ -129,7 +129,7 @@ - + diff --git a/images/cs-block-greek-and-coptic.light.svg b/images/cs-block-greek-and-coptic.light.svg index 1966c4ddaf..e836f5131a 100644 --- a/images/cs-block-greek-and-coptic.light.svg +++ b/images/cs-block-greek-and-coptic.light.svg @@ -129,7 +129,7 @@ - + diff --git a/images/cs-block-ipa-extensions.dark.svg b/images/cs-block-ipa-extensions.dark.svg index 47cf8356d7..b77acdfe4a 100644 --- a/images/cs-block-ipa-extensions.dark.svg +++ b/images/cs-block-ipa-extensions.dark.svg @@ -29,10 +29,10 @@ - + - + @@ -56,7 +56,7 @@ - + diff --git a/images/cs-block-ipa-extensions.light.svg b/images/cs-block-ipa-extensions.light.svg index 7988d63bb3..e8b20e94ad 100644 --- a/images/cs-block-ipa-extensions.light.svg +++ b/images/cs-block-ipa-extensions.light.svg @@ -29,10 +29,10 @@ - + - + @@ -56,7 +56,7 @@ - + diff --git a/images/cs-block-latin-1-supplement.dark.svg b/images/cs-block-latin-1-supplement.dark.svg index e0e5e39f68..80b5c7cd8e 100644 --- a/images/cs-block-latin-1-supplement.dark.svg +++ b/images/cs-block-latin-1-supplement.dark.svg @@ -39,7 +39,7 @@ - + diff --git a/images/cs-block-latin-1-supplement.light.svg b/images/cs-block-latin-1-supplement.light.svg index 037a104824..52a6a9d915 100644 --- a/images/cs-block-latin-1-supplement.light.svg +++ b/images/cs-block-latin-1-supplement.light.svg @@ -39,7 +39,7 @@ - + diff --git a/images/cs-block-latin-extended-b.dark.svg b/images/cs-block-latin-extended-b.dark.svg index 5f8932e36a..12f6b4c589 100644 --- a/images/cs-block-latin-extended-b.dark.svg +++ b/images/cs-block-latin-extended-b.dark.svg @@ -50,7 +50,7 @@ - + diff --git a/images/cs-block-latin-extended-b.light.svg b/images/cs-block-latin-extended-b.light.svg index 07a7d20eb7..e37531372f 100644 --- a/images/cs-block-latin-extended-b.light.svg +++ b/images/cs-block-latin-extended-b.light.svg @@ -50,7 +50,7 @@ - + diff --git a/images/cs-block-latin-extended-d.dark.svg b/images/cs-block-latin-extended-d.dark.svg index 4aa728dffc..b3719846ab 100644 --- a/images/cs-block-latin-extended-d.dark.svg +++ b/images/cs-block-latin-extended-d.dark.svg @@ -31,7 +31,7 @@ - + @@ -127,8 +127,8 @@ - - + + diff --git a/images/cs-block-latin-extended-d.light.svg b/images/cs-block-latin-extended-d.light.svg index 7c6b6419c4..2239f6239e 100644 --- a/images/cs-block-latin-extended-d.light.svg +++ b/images/cs-block-latin-extended-d.light.svg @@ -31,7 +31,7 @@ - + @@ -127,8 +127,8 @@ - - + + diff --git a/images/cs-block-latin-extended-e.dark.svg b/images/cs-block-latin-extended-e.dark.svg index 31819896b9..6f773f8d9b 100644 --- a/images/cs-block-latin-extended-e.dark.svg +++ b/images/cs-block-latin-extended-e.dark.svg @@ -37,7 +37,7 @@ - + diff --git a/images/cs-block-latin-extended-e.light.svg b/images/cs-block-latin-extended-e.light.svg index 28fd253fc2..d522f39916 100644 --- a/images/cs-block-latin-extended-e.light.svg +++ b/images/cs-block-latin-extended-e.light.svg @@ -37,7 +37,7 @@ - + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg index 3e2cd1edb6..ca72c2108f 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg @@ -102,7 +102,7 @@ - + @@ -154,7 +154,7 @@ - + @@ -398,7 +398,7 @@ - + @@ -441,7 +441,7 @@ - + @@ -483,7 +483,7 @@ - + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.light.svg b/images/cs-block-mathematical-alphanumeric-symbols.light.svg index 30cb83c2b8..a26fa1e636 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.light.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.light.svg @@ -102,7 +102,7 @@ - + @@ -154,7 +154,7 @@ - + @@ -398,7 +398,7 @@ - + @@ -441,7 +441,7 @@ - + @@ -483,7 +483,7 @@ - + diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index 1a984fc0df..9ccc9a38da 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -39,185 +39,187 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -435,48 +437,48 @@ - - + + - - + + - + - + - + - + - + - + - + @@ -491,22 +493,22 @@ - + - + - + - + @@ -521,32 +523,32 @@ - + - + - + - + - + - + @@ -566,7 +568,7 @@ - + @@ -591,72 +593,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -671,82 +673,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -761,82 +763,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -851,82 +853,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -941,62 +943,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -1006,17 +1008,17 @@ - + - + - + @@ -1051,12 +1053,12 @@ - + - + @@ -1071,22 +1073,22 @@ - + - + - + - + @@ -1096,7 +1098,7 @@ - + @@ -1141,12 +1143,12 @@ - + - + @@ -1176,27 +1178,27 @@ - + - + - + - + - + @@ -1211,77 +1213,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1301,22 +1303,22 @@ - + - + - + - + @@ -1341,42 +1343,42 @@ - + - + - + - + - + - + - + - + @@ -1391,67 +1393,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1461,12 +1463,12 @@ - + - + @@ -1531,12 +1533,12 @@ - + - + @@ -1581,7 +1583,7 @@ - + @@ -1591,12 +1593,12 @@ - + - + @@ -1611,42 +1613,42 @@ - + - + - + - + - + - + - + - + @@ -1661,77 +1663,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index 0a2621a2f5..b396676bb6 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -39,185 +39,187 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -435,48 +437,48 @@ - - + + - - + + - + - + - + - + - + - + - + @@ -491,22 +493,22 @@ - + - + - + - + @@ -521,32 +523,32 @@ - + - + - + - + - + - + @@ -566,7 +568,7 @@ - + @@ -591,72 +593,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -671,82 +673,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -761,82 +763,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -851,82 +853,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -941,62 +943,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -1006,17 +1008,17 @@ - + - + - + @@ -1051,12 +1053,12 @@ - + - + @@ -1071,22 +1073,22 @@ - + - + - + - + @@ -1096,7 +1098,7 @@ - + @@ -1141,12 +1143,12 @@ - + - + @@ -1176,27 +1178,27 @@ - + - + - + - + - + @@ -1211,77 +1213,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1301,22 +1303,22 @@ - + - + - + - + @@ -1341,42 +1343,42 @@ - + - + - + - + - + - + - + - + @@ -1391,67 +1393,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1461,12 +1463,12 @@ - + - + @@ -1531,12 +1533,12 @@ - + - + @@ -1581,7 +1583,7 @@ - + @@ -1591,12 +1593,12 @@ - + - + @@ -1611,42 +1613,42 @@ - + - + - + - + - + - + - + - + @@ -1661,77 +1663,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-musical-symbols.dark.svg b/images/cs-block-musical-symbols.dark.svg index a151129561..b676ec5ad9 100644 --- a/images/cs-block-musical-symbols.dark.svg +++ b/images/cs-block-musical-symbols.dark.svg @@ -35,7 +35,7 @@ - + diff --git a/images/cs-block-musical-symbols.light.svg b/images/cs-block-musical-symbols.light.svg index de0df51da3..e04bf8677b 100644 --- a/images/cs-block-musical-symbols.light.svg +++ b/images/cs-block-musical-symbols.light.svg @@ -35,7 +35,7 @@ - + diff --git a/images/cs-block-phonetic-extensions-supplement.dark.svg b/images/cs-block-phonetic-extensions-supplement.dark.svg index 377d74daaf..ad1650054d 100644 --- a/images/cs-block-phonetic-extensions-supplement.dark.svg +++ b/images/cs-block-phonetic-extensions-supplement.dark.svg @@ -68,7 +68,7 @@ - + diff --git a/images/cs-block-phonetic-extensions-supplement.light.svg b/images/cs-block-phonetic-extensions-supplement.light.svg index 1f5592d071..68141fb4af 100644 --- a/images/cs-block-phonetic-extensions-supplement.light.svg +++ b/images/cs-block-phonetic-extensions-supplement.light.svg @@ -68,7 +68,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.dark.svg b/images/cs-block-phonetic-extensions.dark.svg index 7111350d6e..2caaaedd98 100644 --- a/images/cs-block-phonetic-extensions.dark.svg +++ b/images/cs-block-phonetic-extensions.dark.svg @@ -24,8 +24,8 @@ - - + + diff --git a/images/cs-block-phonetic-extensions.light.svg b/images/cs-block-phonetic-extensions.light.svg index 42ecafeaa0..5f3c0a0b8e 100644 --- a/images/cs-block-phonetic-extensions.light.svg +++ b/images/cs-block-phonetic-extensions.light.svg @@ -24,8 +24,8 @@ - - + + diff --git a/images/cs-block-supplemental-punctuation.dark.svg b/images/cs-block-supplemental-punctuation.dark.svg index d04d1063aa..77112b52f6 100644 --- a/images/cs-block-supplemental-punctuation.dark.svg +++ b/images/cs-block-supplemental-punctuation.dark.svg @@ -60,7 +60,7 @@ - + diff --git a/images/cs-block-supplemental-punctuation.light.svg b/images/cs-block-supplemental-punctuation.light.svg index 032a8bd91c..39e4407a0f 100644 --- a/images/cs-block-supplemental-punctuation.light.svg +++ b/images/cs-block-supplemental-punctuation.light.svg @@ -60,7 +60,7 @@ - + diff --git a/images/cs-block-supplemental-symbols-and-pictographs.dark.svg b/images/cs-block-supplemental-symbols-and-pictographs.dark.svg index 5419da0940..5f7b2786d5 100644 --- a/images/cs-block-supplemental-symbols-and-pictographs.dark.svg +++ b/images/cs-block-supplemental-symbols-and-pictographs.dark.svg @@ -21,7 +21,7 @@ - + diff --git a/images/cs-block-supplemental-symbols-and-pictographs.light.svg b/images/cs-block-supplemental-symbols-and-pictographs.light.svg index 482591ec2e..76fe806d66 100644 --- a/images/cs-block-supplemental-symbols-and-pictographs.light.svg +++ b/images/cs-block-supplemental-symbols-and-pictographs.light.svg @@ -21,7 +21,7 @@ - + diff --git a/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg b/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg index fa3b8e7125..fae52325d9 100644 --- a/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg +++ b/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg @@ -1,5 +1,5 @@ - + @@ -632,7 +632,6 @@ - @@ -4627,95 +4626,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-symbols-for-legacy-computing-supplement.light.svg b/images/cs-block-symbols-for-legacy-computing-supplement.light.svg index 2fc49ee385..087d465b0b 100644 --- a/images/cs-block-symbols-for-legacy-computing-supplement.light.svg +++ b/images/cs-block-symbols-for-legacy-computing-supplement.light.svg @@ -1,5 +1,5 @@ - + @@ -632,7 +632,6 @@ - @@ -4627,95 +4626,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cv-a-single-storey-top-cut-serifed.dark.svg b/images/cv-a-single-storey-top-cut-serifed.dark.svg new file mode 100644 index 0000000000..4c0139dbca --- /dev/null +++ b/images/cv-a-single-storey-top-cut-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-single-storey-top-cut-serifed.light.svg b/images/cv-a-single-storey-top-cut-serifed.light.svg new file mode 100644 index 0000000000..eb7df8ebac --- /dev/null +++ b/images/cv-a-single-storey-top-cut-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-single-storey-top-cut-serifless.dark.svg b/images/cv-a-single-storey-top-cut-serifless.dark.svg new file mode 100644 index 0000000000..2727b89a77 --- /dev/null +++ b/images/cv-a-single-storey-top-cut-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-single-storey-top-cut-serifless.light.svg b/images/cv-a-single-storey-top-cut-serifless.light.svg new file mode 100644 index 0000000000..5cf76c1394 --- /dev/null +++ b/images/cv-a-single-storey-top-cut-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-single-storey-top-cut-tailed.dark.svg b/images/cv-a-single-storey-top-cut-tailed.dark.svg new file mode 100644 index 0000000000..051367f5ae --- /dev/null +++ b/images/cv-a-single-storey-top-cut-tailed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-single-storey-top-cut-tailed.light.svg b/images/cv-a-single-storey-top-cut-tailed.light.svg new file mode 100644 index 0000000000..22713cf603 --- /dev/null +++ b/images/cv-a-single-storey-top-cut-tailed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-b-bottom-cut-serifed.dark.svg b/images/cv-b-bottom-cut-serifed.dark.svg new file mode 100644 index 0000000000..2ab452113b --- /dev/null +++ b/images/cv-b-bottom-cut-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-b-bottom-cut-serifed.light.svg b/images/cv-b-bottom-cut-serifed.light.svg new file mode 100644 index 0000000000..7d16f7eafa --- /dev/null +++ b/images/cv-b-bottom-cut-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-b-bottom-cut-serifless.dark.svg b/images/cv-b-bottom-cut-serifless.dark.svg new file mode 100644 index 0000000000..fa9e28a542 --- /dev/null +++ b/images/cv-b-bottom-cut-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-b-bottom-cut-serifless.light.svg b/images/cv-b-bottom-cut-serifless.light.svg new file mode 100644 index 0000000000..712a035b06 --- /dev/null +++ b/images/cv-b-bottom-cut-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-cyrl-a-single-storey-top-cut-serifed.dark.svg b/images/cv-cyrl-a-single-storey-top-cut-serifed.dark.svg new file mode 100644 index 0000000000..48699c2b1f --- /dev/null +++ b/images/cv-cyrl-a-single-storey-top-cut-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-cyrl-a-single-storey-top-cut-serifed.light.svg b/images/cv-cyrl-a-single-storey-top-cut-serifed.light.svg new file mode 100644 index 0000000000..53fb723d77 --- /dev/null +++ b/images/cv-cyrl-a-single-storey-top-cut-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-cyrl-a-single-storey-top-cut-serifless.dark.svg b/images/cv-cyrl-a-single-storey-top-cut-serifless.dark.svg new file mode 100644 index 0000000000..39a8a09037 --- /dev/null +++ b/images/cv-cyrl-a-single-storey-top-cut-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-cyrl-a-single-storey-top-cut-serifless.light.svg b/images/cv-cyrl-a-single-storey-top-cut-serifless.light.svg new file mode 100644 index 0000000000..5378c26118 --- /dev/null +++ b/images/cv-cyrl-a-single-storey-top-cut-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-cyrl-a-single-storey-top-cut-tailed.dark.svg b/images/cv-cyrl-a-single-storey-top-cut-tailed.dark.svg new file mode 100644 index 0000000000..f640bf3a1b --- /dev/null +++ b/images/cv-cyrl-a-single-storey-top-cut-tailed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-cyrl-a-single-storey-top-cut-tailed.light.svg b/images/cv-cyrl-a-single-storey-top-cut-tailed.light.svg new file mode 100644 index 0000000000..a13011042f --- /dev/null +++ b/images/cv-cyrl-a-single-storey-top-cut-tailed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-g-single-storey-flat-hook-top-cut.dark.svg b/images/cv-g-single-storey-flat-hook-top-cut.dark.svg new file mode 100644 index 0000000000..5aa5a368df --- /dev/null +++ b/images/cv-g-single-storey-flat-hook-top-cut.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-g-single-storey-flat-hook-top-cut.light.svg b/images/cv-g-single-storey-flat-hook-top-cut.light.svg new file mode 100644 index 0000000000..e4ebaff8a7 --- /dev/null +++ b/images/cv-g-single-storey-flat-hook-top-cut.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-g-single-storey-top-cut.dark.svg b/images/cv-g-single-storey-top-cut.dark.svg new file mode 100644 index 0000000000..60516d07a8 --- /dev/null +++ b/images/cv-g-single-storey-top-cut.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-g-single-storey-top-cut.light.svg b/images/cv-g-single-storey-top-cut.light.svg new file mode 100644 index 0000000000..f2926b4171 --- /dev/null +++ b/images/cv-g-single-storey-top-cut.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-alpha-barred-top-cut-serifed.dark.svg b/images/cv-lower-alpha-barred-top-cut-serifed.dark.svg new file mode 100644 index 0000000000..27ed16dd6c --- /dev/null +++ b/images/cv-lower-alpha-barred-top-cut-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-alpha-barred-top-cut-serifed.light.svg b/images/cv-lower-alpha-barred-top-cut-serifed.light.svg new file mode 100644 index 0000000000..3ed87b9877 --- /dev/null +++ b/images/cv-lower-alpha-barred-top-cut-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-alpha-barred-top-cut-tailed.dark.svg b/images/cv-lower-alpha-barred-top-cut-tailed.dark.svg new file mode 100644 index 0000000000..998c3e8a35 --- /dev/null +++ b/images/cv-lower-alpha-barred-top-cut-tailed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-alpha-barred-top-cut-tailed.light.svg b/images/cv-lower-alpha-barred-top-cut-tailed.light.svg new file mode 100644 index 0000000000..2e4cd29c5a --- /dev/null +++ b/images/cv-lower-alpha-barred-top-cut-tailed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-alpha-barred-top-cut.dark.svg b/images/cv-lower-alpha-barred-top-cut.dark.svg new file mode 100644 index 0000000000..4181e2eba2 --- /dev/null +++ b/images/cv-lower-alpha-barred-top-cut.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-alpha-barred-top-cut.light.svg b/images/cv-lower-alpha-barred-top-cut.light.svg new file mode 100644 index 0000000000..85251af760 --- /dev/null +++ b/images/cv-lower-alpha-barred-top-cut.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-pilcrow-curved.dark.svg b/images/cv-pilcrow-curved.dark.svg new file mode 100644 index 0000000000..3de8751ddd --- /dev/null +++ b/images/cv-pilcrow-curved.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-pilcrow-curved.light.svg b/images/cv-pilcrow-curved.light.svg new file mode 100644 index 0000000000..68c703fc0a --- /dev/null +++ b/images/cv-pilcrow-curved.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-pilcrow-high.dark.svg b/images/cv-pilcrow-high.dark.svg index a688006130..378a084c9c 100644 --- a/images/cv-pilcrow-high.dark.svg +++ b/images/cv-pilcrow-high.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-pilcrow-high.light.svg b/images/cv-pilcrow-high.light.svg index 04facb30b1..68ee135d26 100644 --- a/images/cv-pilcrow-high.light.svg +++ b/images/cv-pilcrow-high.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-pilcrow-low.dark.svg b/images/cv-pilcrow-low.dark.svg index 4cb44d4dfb..5209795c67 100644 --- a/images/cv-pilcrow-low.dark.svg +++ b/images/cv-pilcrow-low.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-pilcrow-low.light.svg b/images/cv-pilcrow-low.light.svg index b185e401b6..40485d0267 100644 --- a/images/cv-pilcrow-low.light.svg +++ b/images/cv-pilcrow-low.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-top-cut-diagonal-tailed-serifless.dark.svg b/images/cv-q-top-cut-diagonal-tailed-serifless.dark.svg new file mode 100644 index 0000000000..bb8623ab29 --- /dev/null +++ b/images/cv-q-top-cut-diagonal-tailed-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-q-top-cut-diagonal-tailed-serifless.light.svg b/images/cv-q-top-cut-diagonal-tailed-serifless.light.svg new file mode 100644 index 0000000000..d0df890bcb --- /dev/null +++ b/images/cv-q-top-cut-diagonal-tailed-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-q-top-cut-straight-serifed.dark.svg b/images/cv-q-top-cut-straight-serifed.dark.svg new file mode 100644 index 0000000000..0586b8d207 --- /dev/null +++ b/images/cv-q-top-cut-straight-serifed.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-q-top-cut-straight-serifed.light.svg b/images/cv-q-top-cut-straight-serifed.light.svg new file mode 100644 index 0000000000..cb90927523 --- /dev/null +++ b/images/cv-q-top-cut-straight-serifed.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-q-top-cut-straight-serifless.dark.svg b/images/cv-q-top-cut-straight-serifless.dark.svg new file mode 100644 index 0000000000..f76e38d7e2 --- /dev/null +++ b/images/cv-q-top-cut-straight-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-q-top-cut-straight-serifless.light.svg b/images/cv-q-top-cut-straight-serifless.light.svg new file mode 100644 index 0000000000..2cba919e2a --- /dev/null +++ b/images/cv-q-top-cut-straight-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-q-top-cut-tailed-serifless.dark.svg b/images/cv-q-top-cut-tailed-serifless.dark.svg new file mode 100644 index 0000000000..7e9d1c05b2 --- /dev/null +++ b/images/cv-q-top-cut-tailed-serifless.dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-q-top-cut-tailed-serifless.light.svg b/images/cv-q-top-cut-tailed-serifless.light.svg new file mode 100644 index 0000000000..ad5a4db65c --- /dev/null +++ b/images/cv-q-top-cut-tailed-serifless.light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/images/languages.dark.svg b/images/languages.dark.svg index f0ef67ea26..c1b4ea408c 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -71,7 +71,7 @@ - + @@ -89,7 +89,7 @@ - + @@ -308,7 +308,7 @@ - + @@ -346,7 +346,7 @@ - + diff --git a/images/languages.light.svg b/images/languages.light.svg index 7f15df5dc0..a088c285f0 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -71,7 +71,7 @@ - + @@ -89,7 +89,7 @@ - + @@ -308,7 +308,7 @@ - + @@ -346,7 +346,7 @@ - + diff --git a/images/package-sample-Iosevka.dark.svg b/images/package-sample-Iosevka.dark.svg index 42216c71ff..e2442b69b7 100644 --- a/images/package-sample-Iosevka.dark.svg +++ b/images/package-sample-Iosevka.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-Iosevka.light.svg b/images/package-sample-Iosevka.light.svg index e8a16a7d59..5302f8b969 100644 --- a/images/package-sample-Iosevka.light.svg +++ b/images/package-sample-Iosevka.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaAile.dark.svg b/images/package-sample-IosevkaAile.dark.svg index 6ce2dd5d5b..2a621c20e9 100644 --- a/images/package-sample-IosevkaAile.dark.svg +++ b/images/package-sample-IosevkaAile.dark.svg @@ -107,7 +107,7 @@ - + diff --git a/images/package-sample-IosevkaAile.light.svg b/images/package-sample-IosevkaAile.light.svg index 39b32f2211..2d61cde90d 100644 --- a/images/package-sample-IosevkaAile.light.svg +++ b/images/package-sample-IosevkaAile.light.svg @@ -107,7 +107,7 @@ - + diff --git a/images/package-sample-IosevkaCurly.dark.svg b/images/package-sample-IosevkaCurly.dark.svg index 0d4714a7d6..1ccdd337d3 100644 --- a/images/package-sample-IosevkaCurly.dark.svg +++ b/images/package-sample-IosevkaCurly.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaCurly.light.svg b/images/package-sample-IosevkaCurly.light.svg index 5a7144fc57..3eb973ee1a 100644 --- a/images/package-sample-IosevkaCurly.light.svg +++ b/images/package-sample-IosevkaCurly.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.dark.svg b/images/package-sample-IosevkaCurlySlab.dark.svg index f5ec9e8378..903d001259 100644 --- a/images/package-sample-IosevkaCurlySlab.dark.svg +++ b/images/package-sample-IosevkaCurlySlab.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.light.svg b/images/package-sample-IosevkaCurlySlab.light.svg index 7b8357a3e0..a8df788421 100644 --- a/images/package-sample-IosevkaCurlySlab.light.svg +++ b/images/package-sample-IosevkaCurlySlab.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaEtoile.dark.svg b/images/package-sample-IosevkaEtoile.dark.svg index dc1e6310e8..b6c745027b 100644 --- a/images/package-sample-IosevkaEtoile.dark.svg +++ b/images/package-sample-IosevkaEtoile.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaEtoile.light.svg b/images/package-sample-IosevkaEtoile.light.svg index 641d2c920b..01791d3e80 100644 --- a/images/package-sample-IosevkaEtoile.light.svg +++ b/images/package-sample-IosevkaEtoile.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixed.dark.svg b/images/package-sample-IosevkaFixed.dark.svg index 42216c71ff..e2442b69b7 100644 --- a/images/package-sample-IosevkaFixed.dark.svg +++ b/images/package-sample-IosevkaFixed.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixed.light.svg b/images/package-sample-IosevkaFixed.light.svg index e8a16a7d59..5302f8b969 100644 --- a/images/package-sample-IosevkaFixed.light.svg +++ b/images/package-sample-IosevkaFixed.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.dark.svg b/images/package-sample-IosevkaFixedCurly.dark.svg index 0d4714a7d6..1ccdd337d3 100644 --- a/images/package-sample-IosevkaFixedCurly.dark.svg +++ b/images/package-sample-IosevkaFixedCurly.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.light.svg b/images/package-sample-IosevkaFixedCurly.light.svg index 5a7144fc57..3eb973ee1a 100644 --- a/images/package-sample-IosevkaFixedCurly.light.svg +++ b/images/package-sample-IosevkaFixedCurly.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.dark.svg b/images/package-sample-IosevkaFixedCurlySlab.dark.svg index f5ec9e8378..903d001259 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.dark.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.light.svg b/images/package-sample-IosevkaFixedCurlySlab.light.svg index 7b8357a3e0..a8df788421 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.light.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.dark.svg b/images/package-sample-IosevkaFixedSS01.dark.svg index e5ec199efd..1c21d1ac9b 100644 --- a/images/package-sample-IosevkaFixedSS01.dark.svg +++ b/images/package-sample-IosevkaFixedSS01.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.light.svg b/images/package-sample-IosevkaFixedSS01.light.svg index 394d3ab55c..f66880e039 100644 --- a/images/package-sample-IosevkaFixedSS01.light.svg +++ b/images/package-sample-IosevkaFixedSS01.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS02.dark.svg b/images/package-sample-IosevkaFixedSS02.dark.svg index f76d57595c..3096552334 100644 --- a/images/package-sample-IosevkaFixedSS02.dark.svg +++ b/images/package-sample-IosevkaFixedSS02.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS02.light.svg b/images/package-sample-IosevkaFixedSS02.light.svg index cc536b358b..a92b866b52 100644 --- a/images/package-sample-IosevkaFixedSS02.light.svg +++ b/images/package-sample-IosevkaFixedSS02.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.dark.svg b/images/package-sample-IosevkaFixedSS03.dark.svg index e84407f3aa..9e5b487be2 100644 --- a/images/package-sample-IosevkaFixedSS03.dark.svg +++ b/images/package-sample-IosevkaFixedSS03.dark.svg @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.light.svg b/images/package-sample-IosevkaFixedSS03.light.svg index 99a1c9d1ad..5fad676e93 100644 --- a/images/package-sample-IosevkaFixedSS03.light.svg +++ b/images/package-sample-IosevkaFixedSS03.light.svg @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.dark.svg b/images/package-sample-IosevkaFixedSS04.dark.svg index 67740f8027..f52746f78b 100644 --- a/images/package-sample-IosevkaFixedSS04.dark.svg +++ b/images/package-sample-IosevkaFixedSS04.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.light.svg b/images/package-sample-IosevkaFixedSS04.light.svg index a5cc69784d..871044c9d5 100644 --- a/images/package-sample-IosevkaFixedSS04.light.svg +++ b/images/package-sample-IosevkaFixedSS04.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS05.dark.svg b/images/package-sample-IosevkaFixedSS05.dark.svg index 47d79c0d66..e0476af0dd 100644 --- a/images/package-sample-IosevkaFixedSS05.dark.svg +++ b/images/package-sample-IosevkaFixedSS05.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS05.light.svg b/images/package-sample-IosevkaFixedSS05.light.svg index 470dc86fee..35b4312dce 100644 --- a/images/package-sample-IosevkaFixedSS05.light.svg +++ b/images/package-sample-IosevkaFixedSS05.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.dark.svg b/images/package-sample-IosevkaFixedSS06.dark.svg index bdd5233ede..844def99b8 100644 --- a/images/package-sample-IosevkaFixedSS06.dark.svg +++ b/images/package-sample-IosevkaFixedSS06.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.light.svg b/images/package-sample-IosevkaFixedSS06.light.svg index 447b674edd..2af6857e95 100644 --- a/images/package-sample-IosevkaFixedSS06.light.svg +++ b/images/package-sample-IosevkaFixedSS06.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.dark.svg b/images/package-sample-IosevkaFixedSS07.dark.svg index 6fa0da0aa5..9bb9ac9437 100644 --- a/images/package-sample-IosevkaFixedSS07.dark.svg +++ b/images/package-sample-IosevkaFixedSS07.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.light.svg b/images/package-sample-IosevkaFixedSS07.light.svg index 7e073d66c4..b772135426 100644 --- a/images/package-sample-IosevkaFixedSS07.light.svg +++ b/images/package-sample-IosevkaFixedSS07.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.dark.svg b/images/package-sample-IosevkaFixedSS08.dark.svg index abb8fce945..d6305f48b2 100644 --- a/images/package-sample-IosevkaFixedSS08.dark.svg +++ b/images/package-sample-IosevkaFixedSS08.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.light.svg b/images/package-sample-IosevkaFixedSS08.light.svg index 1d174a7087..759265a898 100644 --- a/images/package-sample-IosevkaFixedSS08.light.svg +++ b/images/package-sample-IosevkaFixedSS08.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.dark.svg b/images/package-sample-IosevkaFixedSS09.dark.svg index 5494408a68..a3e247289a 100644 --- a/images/package-sample-IosevkaFixedSS09.dark.svg +++ b/images/package-sample-IosevkaFixedSS09.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.light.svg b/images/package-sample-IosevkaFixedSS09.light.svg index 4f456cb2f0..d2e20ebf16 100644 --- a/images/package-sample-IosevkaFixedSS09.light.svg +++ b/images/package-sample-IosevkaFixedSS09.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg index add32959ae..2279160d50 100644 --- a/images/package-sample-IosevkaFixedSS10.dark.svg +++ b/images/package-sample-IosevkaFixedSS10.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg index f618e0a950..d6a274e7a6 100644 --- a/images/package-sample-IosevkaFixedSS10.light.svg +++ b/images/package-sample-IosevkaFixedSS10.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.dark.svg b/images/package-sample-IosevkaFixedSS11.dark.svg index a1477ea2b1..60d96de88a 100644 --- a/images/package-sample-IosevkaFixedSS11.dark.svg +++ b/images/package-sample-IosevkaFixedSS11.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.light.svg b/images/package-sample-IosevkaFixedSS11.light.svg index 0bbb38ee83..425eb1bb28 100644 --- a/images/package-sample-IosevkaFixedSS11.light.svg +++ b/images/package-sample-IosevkaFixedSS11.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.dark.svg b/images/package-sample-IosevkaFixedSS12.dark.svg index d8d874520b..436e03820a 100644 --- a/images/package-sample-IosevkaFixedSS12.dark.svg +++ b/images/package-sample-IosevkaFixedSS12.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.light.svg b/images/package-sample-IosevkaFixedSS12.light.svg index c5c6d60c85..0075ac9733 100644 --- a/images/package-sample-IosevkaFixedSS12.light.svg +++ b/images/package-sample-IosevkaFixedSS12.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.dark.svg b/images/package-sample-IosevkaFixedSS13.dark.svg index de67705331..fb29bf6f83 100644 --- a/images/package-sample-IosevkaFixedSS13.dark.svg +++ b/images/package-sample-IosevkaFixedSS13.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.light.svg b/images/package-sample-IosevkaFixedSS13.light.svg index d3df3328fb..1ac70f7771 100644 --- a/images/package-sample-IosevkaFixedSS13.light.svg +++ b/images/package-sample-IosevkaFixedSS13.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg index 3390b87bfc..2d839a6277 100644 --- a/images/package-sample-IosevkaFixedSS14.dark.svg +++ b/images/package-sample-IosevkaFixedSS14.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg index 2d5877efe5..d635623c73 100644 --- a/images/package-sample-IosevkaFixedSS14.light.svg +++ b/images/package-sample-IosevkaFixedSS14.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS15.dark.svg b/images/package-sample-IosevkaFixedSS15.dark.svg index 459bad1afd..20339cf751 100644 --- a/images/package-sample-IosevkaFixedSS15.dark.svg +++ b/images/package-sample-IosevkaFixedSS15.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS15.light.svg b/images/package-sample-IosevkaFixedSS15.light.svg index 2651d417d2..fa0dda72fc 100644 --- a/images/package-sample-IosevkaFixedSS15.light.svg +++ b/images/package-sample-IosevkaFixedSS15.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.dark.svg b/images/package-sample-IosevkaFixedSS16.dark.svg index 40f849f995..4d55708b5a 100644 --- a/images/package-sample-IosevkaFixedSS16.dark.svg +++ b/images/package-sample-IosevkaFixedSS16.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.light.svg b/images/package-sample-IosevkaFixedSS16.light.svg index c0c15dec54..824b12ca66 100644 --- a/images/package-sample-IosevkaFixedSS16.light.svg +++ b/images/package-sample-IosevkaFixedSS16.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.dark.svg b/images/package-sample-IosevkaFixedSS17.dark.svg index c80dc09f6d..7870d9fd0a 100644 --- a/images/package-sample-IosevkaFixedSS17.dark.svg +++ b/images/package-sample-IosevkaFixedSS17.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.light.svg b/images/package-sample-IosevkaFixedSS17.light.svg index 5b37810114..601bcb385a 100644 --- a/images/package-sample-IosevkaFixedSS17.light.svg +++ b/images/package-sample-IosevkaFixedSS17.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.dark.svg b/images/package-sample-IosevkaFixedSS18.dark.svg index ea78d9e26b..4876faf8c5 100644 --- a/images/package-sample-IosevkaFixedSS18.dark.svg +++ b/images/package-sample-IosevkaFixedSS18.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.light.svg b/images/package-sample-IosevkaFixedSS18.light.svg index a6385a616e..675207d98c 100644 --- a/images/package-sample-IosevkaFixedSS18.light.svg +++ b/images/package-sample-IosevkaFixedSS18.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.dark.svg b/images/package-sample-IosevkaFixedSlab.dark.svg index 8352ffec21..724c7c73ce 100644 --- a/images/package-sample-IosevkaFixedSlab.dark.svg +++ b/images/package-sample-IosevkaFixedSlab.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.light.svg b/images/package-sample-IosevkaFixedSlab.light.svg index 469201bb44..7118a0875b 100644 --- a/images/package-sample-IosevkaFixedSlab.light.svg +++ b/images/package-sample-IosevkaFixedSlab.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.dark.svg b/images/package-sample-IosevkaSS01.dark.svg index e5ec199efd..1c21d1ac9b 100644 --- a/images/package-sample-IosevkaSS01.dark.svg +++ b/images/package-sample-IosevkaSS01.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.light.svg b/images/package-sample-IosevkaSS01.light.svg index 394d3ab55c..f66880e039 100644 --- a/images/package-sample-IosevkaSS01.light.svg +++ b/images/package-sample-IosevkaSS01.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS02.dark.svg b/images/package-sample-IosevkaSS02.dark.svg index f76d57595c..3096552334 100644 --- a/images/package-sample-IosevkaSS02.dark.svg +++ b/images/package-sample-IosevkaSS02.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS02.light.svg b/images/package-sample-IosevkaSS02.light.svg index cc536b358b..a92b866b52 100644 --- a/images/package-sample-IosevkaSS02.light.svg +++ b/images/package-sample-IosevkaSS02.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.dark.svg b/images/package-sample-IosevkaSS03.dark.svg index e84407f3aa..9e5b487be2 100644 --- a/images/package-sample-IosevkaSS03.dark.svg +++ b/images/package-sample-IosevkaSS03.dark.svg @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.light.svg b/images/package-sample-IosevkaSS03.light.svg index 99a1c9d1ad..5fad676e93 100644 --- a/images/package-sample-IosevkaSS03.light.svg +++ b/images/package-sample-IosevkaSS03.light.svg @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.dark.svg b/images/package-sample-IosevkaSS04.dark.svg index 67740f8027..f52746f78b 100644 --- a/images/package-sample-IosevkaSS04.dark.svg +++ b/images/package-sample-IosevkaSS04.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.light.svg b/images/package-sample-IosevkaSS04.light.svg index a5cc69784d..871044c9d5 100644 --- a/images/package-sample-IosevkaSS04.light.svg +++ b/images/package-sample-IosevkaSS04.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS05.dark.svg b/images/package-sample-IosevkaSS05.dark.svg index 47d79c0d66..e0476af0dd 100644 --- a/images/package-sample-IosevkaSS05.dark.svg +++ b/images/package-sample-IosevkaSS05.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS05.light.svg b/images/package-sample-IosevkaSS05.light.svg index 470dc86fee..35b4312dce 100644 --- a/images/package-sample-IosevkaSS05.light.svg +++ b/images/package-sample-IosevkaSS05.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.dark.svg b/images/package-sample-IosevkaSS06.dark.svg index bdd5233ede..844def99b8 100644 --- a/images/package-sample-IosevkaSS06.dark.svg +++ b/images/package-sample-IosevkaSS06.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.light.svg b/images/package-sample-IosevkaSS06.light.svg index 447b674edd..2af6857e95 100644 --- a/images/package-sample-IosevkaSS06.light.svg +++ b/images/package-sample-IosevkaSS06.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.dark.svg b/images/package-sample-IosevkaSS07.dark.svg index 6fa0da0aa5..9bb9ac9437 100644 --- a/images/package-sample-IosevkaSS07.dark.svg +++ b/images/package-sample-IosevkaSS07.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.light.svg b/images/package-sample-IosevkaSS07.light.svg index 7e073d66c4..b772135426 100644 --- a/images/package-sample-IosevkaSS07.light.svg +++ b/images/package-sample-IosevkaSS07.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.dark.svg b/images/package-sample-IosevkaSS08.dark.svg index abb8fce945..d6305f48b2 100644 --- a/images/package-sample-IosevkaSS08.dark.svg +++ b/images/package-sample-IosevkaSS08.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.light.svg b/images/package-sample-IosevkaSS08.light.svg index 1d174a7087..759265a898 100644 --- a/images/package-sample-IosevkaSS08.light.svg +++ b/images/package-sample-IosevkaSS08.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.dark.svg b/images/package-sample-IosevkaSS09.dark.svg index 5494408a68..a3e247289a 100644 --- a/images/package-sample-IosevkaSS09.dark.svg +++ b/images/package-sample-IosevkaSS09.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.light.svg b/images/package-sample-IosevkaSS09.light.svg index 4f456cb2f0..d2e20ebf16 100644 --- a/images/package-sample-IosevkaSS09.light.svg +++ b/images/package-sample-IosevkaSS09.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg index add32959ae..2279160d50 100644 --- a/images/package-sample-IosevkaSS10.dark.svg +++ b/images/package-sample-IosevkaSS10.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.light.svg b/images/package-sample-IosevkaSS10.light.svg index f618e0a950..d6a274e7a6 100644 --- a/images/package-sample-IosevkaSS10.light.svg +++ b/images/package-sample-IosevkaSS10.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.dark.svg b/images/package-sample-IosevkaSS11.dark.svg index a1477ea2b1..60d96de88a 100644 --- a/images/package-sample-IosevkaSS11.dark.svg +++ b/images/package-sample-IosevkaSS11.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.light.svg b/images/package-sample-IosevkaSS11.light.svg index 0bbb38ee83..425eb1bb28 100644 --- a/images/package-sample-IosevkaSS11.light.svg +++ b/images/package-sample-IosevkaSS11.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.dark.svg b/images/package-sample-IosevkaSS12.dark.svg index d8d874520b..436e03820a 100644 --- a/images/package-sample-IosevkaSS12.dark.svg +++ b/images/package-sample-IosevkaSS12.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.light.svg b/images/package-sample-IosevkaSS12.light.svg index c5c6d60c85..0075ac9733 100644 --- a/images/package-sample-IosevkaSS12.light.svg +++ b/images/package-sample-IosevkaSS12.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.dark.svg b/images/package-sample-IosevkaSS13.dark.svg index de67705331..fb29bf6f83 100644 --- a/images/package-sample-IosevkaSS13.dark.svg +++ b/images/package-sample-IosevkaSS13.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.light.svg b/images/package-sample-IosevkaSS13.light.svg index d3df3328fb..1ac70f7771 100644 --- a/images/package-sample-IosevkaSS13.light.svg +++ b/images/package-sample-IosevkaSS13.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg index 3390b87bfc..2d839a6277 100644 --- a/images/package-sample-IosevkaSS14.dark.svg +++ b/images/package-sample-IosevkaSS14.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.light.svg b/images/package-sample-IosevkaSS14.light.svg index 2d5877efe5..d635623c73 100644 --- a/images/package-sample-IosevkaSS14.light.svg +++ b/images/package-sample-IosevkaSS14.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS15.dark.svg b/images/package-sample-IosevkaSS15.dark.svg index 459bad1afd..20339cf751 100644 --- a/images/package-sample-IosevkaSS15.dark.svg +++ b/images/package-sample-IosevkaSS15.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS15.light.svg b/images/package-sample-IosevkaSS15.light.svg index 2651d417d2..fa0dda72fc 100644 --- a/images/package-sample-IosevkaSS15.light.svg +++ b/images/package-sample-IosevkaSS15.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.dark.svg b/images/package-sample-IosevkaSS16.dark.svg index 40f849f995..4d55708b5a 100644 --- a/images/package-sample-IosevkaSS16.dark.svg +++ b/images/package-sample-IosevkaSS16.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.light.svg b/images/package-sample-IosevkaSS16.light.svg index c0c15dec54..824b12ca66 100644 --- a/images/package-sample-IosevkaSS16.light.svg +++ b/images/package-sample-IosevkaSS16.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.dark.svg b/images/package-sample-IosevkaSS17.dark.svg index c80dc09f6d..7870d9fd0a 100644 --- a/images/package-sample-IosevkaSS17.dark.svg +++ b/images/package-sample-IosevkaSS17.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.light.svg b/images/package-sample-IosevkaSS17.light.svg index 5b37810114..601bcb385a 100644 --- a/images/package-sample-IosevkaSS17.light.svg +++ b/images/package-sample-IosevkaSS17.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.dark.svg b/images/package-sample-IosevkaSS18.dark.svg index ea78d9e26b..4876faf8c5 100644 --- a/images/package-sample-IosevkaSS18.dark.svg +++ b/images/package-sample-IosevkaSS18.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.light.svg b/images/package-sample-IosevkaSS18.light.svg index a6385a616e..675207d98c 100644 --- a/images/package-sample-IosevkaSS18.light.svg +++ b/images/package-sample-IosevkaSS18.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.dark.svg b/images/package-sample-IosevkaSlab.dark.svg index 8352ffec21..724c7c73ce 100644 --- a/images/package-sample-IosevkaSlab.dark.svg +++ b/images/package-sample-IosevkaSlab.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.light.svg b/images/package-sample-IosevkaSlab.light.svg index 469201bb44..7118a0875b 100644 --- a/images/package-sample-IosevkaSlab.light.svg +++ b/images/package-sample-IosevkaSlab.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.dark.svg b/images/package-sample-IosevkaTerm.dark.svg index 42216c71ff..e2442b69b7 100644 --- a/images/package-sample-IosevkaTerm.dark.svg +++ b/images/package-sample-IosevkaTerm.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.light.svg b/images/package-sample-IosevkaTerm.light.svg index e8a16a7d59..5302f8b969 100644 --- a/images/package-sample-IosevkaTerm.light.svg +++ b/images/package-sample-IosevkaTerm.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.dark.svg b/images/package-sample-IosevkaTermCurly.dark.svg index 0d4714a7d6..1ccdd337d3 100644 --- a/images/package-sample-IosevkaTermCurly.dark.svg +++ b/images/package-sample-IosevkaTermCurly.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.light.svg b/images/package-sample-IosevkaTermCurly.light.svg index 5a7144fc57..3eb973ee1a 100644 --- a/images/package-sample-IosevkaTermCurly.light.svg +++ b/images/package-sample-IosevkaTermCurly.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.dark.svg b/images/package-sample-IosevkaTermCurlySlab.dark.svg index f5ec9e8378..903d001259 100644 --- a/images/package-sample-IosevkaTermCurlySlab.dark.svg +++ b/images/package-sample-IosevkaTermCurlySlab.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.light.svg b/images/package-sample-IosevkaTermCurlySlab.light.svg index 7b8357a3e0..a8df788421 100644 --- a/images/package-sample-IosevkaTermCurlySlab.light.svg +++ b/images/package-sample-IosevkaTermCurlySlab.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.dark.svg b/images/package-sample-IosevkaTermSS01.dark.svg index e5ec199efd..1c21d1ac9b 100644 --- a/images/package-sample-IosevkaTermSS01.dark.svg +++ b/images/package-sample-IosevkaTermSS01.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.light.svg b/images/package-sample-IosevkaTermSS01.light.svg index 394d3ab55c..f66880e039 100644 --- a/images/package-sample-IosevkaTermSS01.light.svg +++ b/images/package-sample-IosevkaTermSS01.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS02.dark.svg b/images/package-sample-IosevkaTermSS02.dark.svg index f76d57595c..3096552334 100644 --- a/images/package-sample-IosevkaTermSS02.dark.svg +++ b/images/package-sample-IosevkaTermSS02.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS02.light.svg b/images/package-sample-IosevkaTermSS02.light.svg index cc536b358b..a92b866b52 100644 --- a/images/package-sample-IosevkaTermSS02.light.svg +++ b/images/package-sample-IosevkaTermSS02.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.dark.svg b/images/package-sample-IosevkaTermSS03.dark.svg index e84407f3aa..9e5b487be2 100644 --- a/images/package-sample-IosevkaTermSS03.dark.svg +++ b/images/package-sample-IosevkaTermSS03.dark.svg @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.light.svg b/images/package-sample-IosevkaTermSS03.light.svg index 99a1c9d1ad..5fad676e93 100644 --- a/images/package-sample-IosevkaTermSS03.light.svg +++ b/images/package-sample-IosevkaTermSS03.light.svg @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.dark.svg b/images/package-sample-IosevkaTermSS04.dark.svg index 67740f8027..f52746f78b 100644 --- a/images/package-sample-IosevkaTermSS04.dark.svg +++ b/images/package-sample-IosevkaTermSS04.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.light.svg b/images/package-sample-IosevkaTermSS04.light.svg index a5cc69784d..871044c9d5 100644 --- a/images/package-sample-IosevkaTermSS04.light.svg +++ b/images/package-sample-IosevkaTermSS04.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS05.dark.svg b/images/package-sample-IosevkaTermSS05.dark.svg index 47d79c0d66..e0476af0dd 100644 --- a/images/package-sample-IosevkaTermSS05.dark.svg +++ b/images/package-sample-IosevkaTermSS05.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS05.light.svg b/images/package-sample-IosevkaTermSS05.light.svg index 470dc86fee..35b4312dce 100644 --- a/images/package-sample-IosevkaTermSS05.light.svg +++ b/images/package-sample-IosevkaTermSS05.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.dark.svg b/images/package-sample-IosevkaTermSS06.dark.svg index bdd5233ede..844def99b8 100644 --- a/images/package-sample-IosevkaTermSS06.dark.svg +++ b/images/package-sample-IosevkaTermSS06.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.light.svg b/images/package-sample-IosevkaTermSS06.light.svg index 447b674edd..2af6857e95 100644 --- a/images/package-sample-IosevkaTermSS06.light.svg +++ b/images/package-sample-IosevkaTermSS06.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.dark.svg b/images/package-sample-IosevkaTermSS07.dark.svg index 6fa0da0aa5..9bb9ac9437 100644 --- a/images/package-sample-IosevkaTermSS07.dark.svg +++ b/images/package-sample-IosevkaTermSS07.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.light.svg b/images/package-sample-IosevkaTermSS07.light.svg index 7e073d66c4..b772135426 100644 --- a/images/package-sample-IosevkaTermSS07.light.svg +++ b/images/package-sample-IosevkaTermSS07.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.dark.svg b/images/package-sample-IosevkaTermSS08.dark.svg index abb8fce945..d6305f48b2 100644 --- a/images/package-sample-IosevkaTermSS08.dark.svg +++ b/images/package-sample-IosevkaTermSS08.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.light.svg b/images/package-sample-IosevkaTermSS08.light.svg index 1d174a7087..759265a898 100644 --- a/images/package-sample-IosevkaTermSS08.light.svg +++ b/images/package-sample-IosevkaTermSS08.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.dark.svg b/images/package-sample-IosevkaTermSS09.dark.svg index 5494408a68..a3e247289a 100644 --- a/images/package-sample-IosevkaTermSS09.dark.svg +++ b/images/package-sample-IosevkaTermSS09.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.light.svg b/images/package-sample-IosevkaTermSS09.light.svg index 4f456cb2f0..d2e20ebf16 100644 --- a/images/package-sample-IosevkaTermSS09.light.svg +++ b/images/package-sample-IosevkaTermSS09.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg index add32959ae..2279160d50 100644 --- a/images/package-sample-IosevkaTermSS10.dark.svg +++ b/images/package-sample-IosevkaTermSS10.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg index f618e0a950..d6a274e7a6 100644 --- a/images/package-sample-IosevkaTermSS10.light.svg +++ b/images/package-sample-IosevkaTermSS10.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.dark.svg b/images/package-sample-IosevkaTermSS11.dark.svg index a1477ea2b1..60d96de88a 100644 --- a/images/package-sample-IosevkaTermSS11.dark.svg +++ b/images/package-sample-IosevkaTermSS11.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.light.svg b/images/package-sample-IosevkaTermSS11.light.svg index 0bbb38ee83..425eb1bb28 100644 --- a/images/package-sample-IosevkaTermSS11.light.svg +++ b/images/package-sample-IosevkaTermSS11.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.dark.svg b/images/package-sample-IosevkaTermSS12.dark.svg index d8d874520b..436e03820a 100644 --- a/images/package-sample-IosevkaTermSS12.dark.svg +++ b/images/package-sample-IosevkaTermSS12.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.light.svg b/images/package-sample-IosevkaTermSS12.light.svg index c5c6d60c85..0075ac9733 100644 --- a/images/package-sample-IosevkaTermSS12.light.svg +++ b/images/package-sample-IosevkaTermSS12.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.dark.svg b/images/package-sample-IosevkaTermSS13.dark.svg index de67705331..fb29bf6f83 100644 --- a/images/package-sample-IosevkaTermSS13.dark.svg +++ b/images/package-sample-IosevkaTermSS13.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.light.svg b/images/package-sample-IosevkaTermSS13.light.svg index d3df3328fb..1ac70f7771 100644 --- a/images/package-sample-IosevkaTermSS13.light.svg +++ b/images/package-sample-IosevkaTermSS13.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg index 3390b87bfc..2d839a6277 100644 --- a/images/package-sample-IosevkaTermSS14.dark.svg +++ b/images/package-sample-IosevkaTermSS14.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg index 2d5877efe5..d635623c73 100644 --- a/images/package-sample-IosevkaTermSS14.light.svg +++ b/images/package-sample-IosevkaTermSS14.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS15.dark.svg b/images/package-sample-IosevkaTermSS15.dark.svg index 459bad1afd..20339cf751 100644 --- a/images/package-sample-IosevkaTermSS15.dark.svg +++ b/images/package-sample-IosevkaTermSS15.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS15.light.svg b/images/package-sample-IosevkaTermSS15.light.svg index 2651d417d2..fa0dda72fc 100644 --- a/images/package-sample-IosevkaTermSS15.light.svg +++ b/images/package-sample-IosevkaTermSS15.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.dark.svg b/images/package-sample-IosevkaTermSS16.dark.svg index 40f849f995..4d55708b5a 100644 --- a/images/package-sample-IosevkaTermSS16.dark.svg +++ b/images/package-sample-IosevkaTermSS16.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.light.svg b/images/package-sample-IosevkaTermSS16.light.svg index c0c15dec54..824b12ca66 100644 --- a/images/package-sample-IosevkaTermSS16.light.svg +++ b/images/package-sample-IosevkaTermSS16.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.dark.svg b/images/package-sample-IosevkaTermSS17.dark.svg index c80dc09f6d..7870d9fd0a 100644 --- a/images/package-sample-IosevkaTermSS17.dark.svg +++ b/images/package-sample-IosevkaTermSS17.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.light.svg b/images/package-sample-IosevkaTermSS17.light.svg index 5b37810114..601bcb385a 100644 --- a/images/package-sample-IosevkaTermSS17.light.svg +++ b/images/package-sample-IosevkaTermSS17.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.dark.svg b/images/package-sample-IosevkaTermSS18.dark.svg index ea78d9e26b..4876faf8c5 100644 --- a/images/package-sample-IosevkaTermSS18.dark.svg +++ b/images/package-sample-IosevkaTermSS18.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.light.svg b/images/package-sample-IosevkaTermSS18.light.svg index a6385a616e..675207d98c 100644 --- a/images/package-sample-IosevkaTermSS18.light.svg +++ b/images/package-sample-IosevkaTermSS18.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.dark.svg b/images/package-sample-IosevkaTermSlab.dark.svg index 8352ffec21..724c7c73ce 100644 --- a/images/package-sample-IosevkaTermSlab.dark.svg +++ b/images/package-sample-IosevkaTermSlab.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.light.svg b/images/package-sample-IosevkaTermSlab.light.svg index 469201bb44..7118a0875b 100644 --- a/images/package-sample-IosevkaTermSlab.light.svg +++ b/images/package-sample-IosevkaTermSlab.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-off-0.dark.svg b/images/ss-i-off-0.dark.svg index 77e4dd6b00..6f1193fa2f 100644 --- a/images/ss-i-off-0.dark.svg +++ b/images/ss-i-off-0.dark.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-off-0.light.svg b/images/ss-i-off-0.light.svg index f493fd7480..fa3ca5e7b4 100644 --- a/images/ss-i-off-0.light.svg +++ b/images/ss-i-off-0.light.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index 2f21ecc63a..e44430b977 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index 58c04f3283..a2e0247a0c 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss02-1.dark.svg b/images/ss-i-ss02-1.dark.svg index 6b290270a3..7c09c9c485 100644 --- a/images/ss-i-ss02-1.dark.svg +++ b/images/ss-i-ss02-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss02-1.light.svg b/images/ss-i-ss02-1.light.svg index 4e5f17d547..dd821c5937 100644 --- a/images/ss-i-ss02-1.light.svg +++ b/images/ss-i-ss02-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss03-1.dark.svg b/images/ss-i-ss03-1.dark.svg index af6e1c5517..3c547134f0 100644 --- a/images/ss-i-ss03-1.dark.svg +++ b/images/ss-i-ss03-1.dark.svg @@ -28,13 +28,13 @@ - + - - + + @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -222,12 +222,16 @@ - + - - + + + + + + @@ -244,17 +248,21 @@ - + - - - - + + + + + + + + @@ -551,17 +559,23 @@ - + - + + + - + - - + + + + + + diff --git a/images/ss-i-ss03-1.light.svg b/images/ss-i-ss03-1.light.svg index 1928cbbeb6..de16b55e32 100644 --- a/images/ss-i-ss03-1.light.svg +++ b/images/ss-i-ss03-1.light.svg @@ -28,13 +28,13 @@ - + - - + + @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -222,12 +222,16 @@ - + - - + + + + + + @@ -244,17 +248,21 @@ - + - - - - + + + + + + + + @@ -551,17 +559,23 @@ - + - + + + - + - - + + + + + + diff --git a/images/ss-i-ss04-1.dark.svg b/images/ss-i-ss04-1.dark.svg index 103597a118..43f9f8cc64 100644 --- a/images/ss-i-ss04-1.dark.svg +++ b/images/ss-i-ss04-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss04-1.light.svg b/images/ss-i-ss04-1.light.svg index d9b6c45586..6db48fb69a 100644 --- a/images/ss-i-ss04-1.light.svg +++ b/images/ss-i-ss04-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss05-1.dark.svg b/images/ss-i-ss05-1.dark.svg index 4d2232ccdb..feb8cac5c4 100644 --- a/images/ss-i-ss05-1.dark.svg +++ b/images/ss-i-ss05-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss05-1.light.svg b/images/ss-i-ss05-1.light.svg index 3c00ebeb6f..3a32787391 100644 --- a/images/ss-i-ss05-1.light.svg +++ b/images/ss-i-ss05-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss06-1.dark.svg b/images/ss-i-ss06-1.dark.svg index e4abc4ef3b..004e46a3ce 100644 --- a/images/ss-i-ss06-1.dark.svg +++ b/images/ss-i-ss06-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss06-1.light.svg b/images/ss-i-ss06-1.light.svg index 615f78bffe..b1af6bf2bc 100644 --- a/images/ss-i-ss06-1.light.svg +++ b/images/ss-i-ss06-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index 09c5d5a8ec..a2c2507279 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index 727103931c..3414757f95 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss08-1.dark.svg b/images/ss-i-ss08-1.dark.svg index df14737c2c..8cf5664ce7 100644 --- a/images/ss-i-ss08-1.dark.svg +++ b/images/ss-i-ss08-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss08-1.light.svg b/images/ss-i-ss08-1.light.svg index 7bcdd14f88..f768f3965f 100644 --- a/images/ss-i-ss08-1.light.svg +++ b/images/ss-i-ss08-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index 930e78d004..681c67c8d0 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index d9ee4a1cca..f944c47aa4 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index cd0e9d23a1..210b8cf4ed 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -28,13 +28,13 @@ - - + + - + @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -210,13 +210,17 @@ - + - - - - - + + + + + + + + + @@ -245,17 +249,21 @@ - + - - - - + + + + + + + + @@ -348,9 +356,11 @@ - + - + + + @@ -517,9 +527,11 @@ - + - + + + @@ -568,7 +580,7 @@ - + @@ -577,15 +589,19 @@ - - - - - - - - - + + + + + + + + + + + + + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index 884534d27a..46cbc55fe4 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -28,13 +28,13 @@ - - + + - + @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -210,13 +210,17 @@ - + - - - - - + + + + + + + + + @@ -245,17 +249,21 @@ - + - - - - + + + + + + + + @@ -348,9 +356,11 @@ - + - + + + @@ -517,9 +527,11 @@ - + - + + + @@ -568,7 +580,7 @@ - + @@ -577,15 +589,19 @@ - - - - - - - - - + + + + + + + + + + + + + diff --git a/images/ss-i-ss11-1.dark.svg b/images/ss-i-ss11-1.dark.svg index 25909ef6cd..0c1a3d53af 100644 --- a/images/ss-i-ss11-1.dark.svg +++ b/images/ss-i-ss11-1.dark.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss11-1.light.svg b/images/ss-i-ss11-1.light.svg index cf7e5882ce..2837344c6f 100644 --- a/images/ss-i-ss11-1.light.svg +++ b/images/ss-i-ss11-1.light.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index 9e9e8f7e93..107a639310 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index 54f68636a7..e352da1f59 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss13-1.dark.svg b/images/ss-i-ss13-1.dark.svg index 1131c13f95..7104808c88 100644 --- a/images/ss-i-ss13-1.dark.svg +++ b/images/ss-i-ss13-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss13-1.light.svg b/images/ss-i-ss13-1.light.svg index e6920e630c..683f1e1ce5 100644 --- a/images/ss-i-ss13-1.light.svg +++ b/images/ss-i-ss13-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index aa84081a87..f271972662 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index 2c6749eccc..a3157d0196 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss15-1.dark.svg b/images/ss-i-ss15-1.dark.svg index 130a8e1ed6..aa887974de 100644 --- a/images/ss-i-ss15-1.dark.svg +++ b/images/ss-i-ss15-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss15-1.light.svg b/images/ss-i-ss15-1.light.svg index b86e56df7e..14d816b492 100644 --- a/images/ss-i-ss15-1.light.svg +++ b/images/ss-i-ss15-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index 7e1380f8d4..8d5ccfa012 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index b7dfe2677b..3ccc4fd0cf 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index a39aab886a..542baa908c 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index 11a1f976b9..a5fd8b4433 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss18-1.dark.svg b/images/ss-i-ss18-1.dark.svg index fe6b3b4e74..8a14a5526c 100644 --- a/images/ss-i-ss18-1.dark.svg +++ b/images/ss-i-ss18-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss18-1.light.svg b/images/ss-i-ss18-1.light.svg index ce25461332..d6341d2d21 100644 --- a/images/ss-i-ss18-1.light.svg +++ b/images/ss-i-ss18-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss20-1.dark.svg b/images/ss-i-ss20-1.dark.svg index 3cc4ac7e59..eeba38e329 100644 --- a/images/ss-i-ss20-1.dark.svg +++ b/images/ss-i-ss20-1.dark.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-i-ss20-1.light.svg b/images/ss-i-ss20-1.light.svg index 85837d84de..a2430555eb 100644 --- a/images/ss-i-ss20-1.light.svg +++ b/images/ss-i-ss20-1.light.svg @@ -33,7 +33,7 @@ - + @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-off-0.dark.svg b/images/ss-u-off-0.dark.svg index 92bc51b59a..27714a819b 100644 --- a/images/ss-u-off-0.dark.svg +++ b/images/ss-u-off-0.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-off-0.light.svg b/images/ss-u-off-0.light.svg index f3c5bc1e87..4e92b13d53 100644 --- a/images/ss-u-off-0.light.svg +++ b/images/ss-u-off-0.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss01-1.dark.svg b/images/ss-u-ss01-1.dark.svg index 8241808824..df3a71cdab 100644 --- a/images/ss-u-ss01-1.dark.svg +++ b/images/ss-u-ss01-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss01-1.light.svg b/images/ss-u-ss01-1.light.svg index f6553be2e9..fe5eeb524f 100644 --- a/images/ss-u-ss01-1.light.svg +++ b/images/ss-u-ss01-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss02-1.dark.svg b/images/ss-u-ss02-1.dark.svg index 0c3042daeb..2f343692ad 100644 --- a/images/ss-u-ss02-1.dark.svg +++ b/images/ss-u-ss02-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss02-1.light.svg b/images/ss-u-ss02-1.light.svg index 7bf6730392..e2988d40f6 100644 --- a/images/ss-u-ss02-1.light.svg +++ b/images/ss-u-ss02-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss03-1.dark.svg b/images/ss-u-ss03-1.dark.svg index 54cdea6d65..1fd09d97b4 100644 --- a/images/ss-u-ss03-1.dark.svg +++ b/images/ss-u-ss03-1.dark.svg @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -254,10 +254,14 @@ - - - - + + + + + + + + @@ -555,10 +559,14 @@ - + - - + + + + + + diff --git a/images/ss-u-ss03-1.light.svg b/images/ss-u-ss03-1.light.svg index bc0bcd51f1..0127ecf42c 100644 --- a/images/ss-u-ss03-1.light.svg +++ b/images/ss-u-ss03-1.light.svg @@ -44,7 +44,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -254,10 +254,14 @@ - - - - + + + + + + + + @@ -555,10 +559,14 @@ - + - - + + + + + + diff --git a/images/ss-u-ss04-1.dark.svg b/images/ss-u-ss04-1.dark.svg index 9af9ac21e2..e9ff6fe591 100644 --- a/images/ss-u-ss04-1.dark.svg +++ b/images/ss-u-ss04-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss04-1.light.svg b/images/ss-u-ss04-1.light.svg index 7ca77f3f2b..8970d42ad3 100644 --- a/images/ss-u-ss04-1.light.svg +++ b/images/ss-u-ss04-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss05-1.dark.svg b/images/ss-u-ss05-1.dark.svg index efe0f28bf9..b60405fe14 100644 --- a/images/ss-u-ss05-1.dark.svg +++ b/images/ss-u-ss05-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss05-1.light.svg b/images/ss-u-ss05-1.light.svg index 70c7317f12..51bbe8e9d8 100644 --- a/images/ss-u-ss05-1.light.svg +++ b/images/ss-u-ss05-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss06-1.dark.svg b/images/ss-u-ss06-1.dark.svg index a0f30b43a1..c5c8c4a889 100644 --- a/images/ss-u-ss06-1.dark.svg +++ b/images/ss-u-ss06-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss06-1.light.svg b/images/ss-u-ss06-1.light.svg index bd38e8fe0a..da2da92d66 100644 --- a/images/ss-u-ss06-1.light.svg +++ b/images/ss-u-ss06-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss07-1.dark.svg b/images/ss-u-ss07-1.dark.svg index f2bb197d00..e045d6a1e1 100644 --- a/images/ss-u-ss07-1.dark.svg +++ b/images/ss-u-ss07-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss07-1.light.svg b/images/ss-u-ss07-1.light.svg index 3d13eb9cce..9bfa27b80c 100644 --- a/images/ss-u-ss07-1.light.svg +++ b/images/ss-u-ss07-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss08-1.dark.svg b/images/ss-u-ss08-1.dark.svg index 45023238b7..fccc59ee69 100644 --- a/images/ss-u-ss08-1.dark.svg +++ b/images/ss-u-ss08-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss08-1.light.svg b/images/ss-u-ss08-1.light.svg index 00fe1cc9bb..77484ec003 100644 --- a/images/ss-u-ss08-1.light.svg +++ b/images/ss-u-ss08-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss09-1.dark.svg b/images/ss-u-ss09-1.dark.svg index 6b54df00de..887f22575f 100644 --- a/images/ss-u-ss09-1.dark.svg +++ b/images/ss-u-ss09-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss09-1.light.svg b/images/ss-u-ss09-1.light.svg index 763740d858..2880f94615 100644 --- a/images/ss-u-ss09-1.light.svg +++ b/images/ss-u-ss09-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss10-1.dark.svg b/images/ss-u-ss10-1.dark.svg index 163ed57c07..9f50009e35 100644 --- a/images/ss-u-ss10-1.dark.svg +++ b/images/ss-u-ss10-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss10-1.light.svg b/images/ss-u-ss10-1.light.svg index ea8caa7698..ac8a0ba935 100644 --- a/images/ss-u-ss10-1.light.svg +++ b/images/ss-u-ss10-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss11-1.dark.svg b/images/ss-u-ss11-1.dark.svg index 73a2e5f174..aad83292c7 100644 --- a/images/ss-u-ss11-1.dark.svg +++ b/images/ss-u-ss11-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss11-1.light.svg b/images/ss-u-ss11-1.light.svg index 809e67e0a2..a249c8c8e3 100644 --- a/images/ss-u-ss11-1.light.svg +++ b/images/ss-u-ss11-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss12-1.dark.svg b/images/ss-u-ss12-1.dark.svg index 2bf9c7ecfc..5c019f408d 100644 --- a/images/ss-u-ss12-1.dark.svg +++ b/images/ss-u-ss12-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss12-1.light.svg b/images/ss-u-ss12-1.light.svg index b32db2fde6..833a671efe 100644 --- a/images/ss-u-ss12-1.light.svg +++ b/images/ss-u-ss12-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss13-1.dark.svg b/images/ss-u-ss13-1.dark.svg index 1896445112..3b304120cf 100644 --- a/images/ss-u-ss13-1.dark.svg +++ b/images/ss-u-ss13-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss13-1.light.svg b/images/ss-u-ss13-1.light.svg index cf12dc1f06..3fb7e48829 100644 --- a/images/ss-u-ss13-1.light.svg +++ b/images/ss-u-ss13-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss14-1.dark.svg b/images/ss-u-ss14-1.dark.svg index 1acda78ce9..e7ea8ed035 100644 --- a/images/ss-u-ss14-1.dark.svg +++ b/images/ss-u-ss14-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss14-1.light.svg b/images/ss-u-ss14-1.light.svg index 1d00ae03ef..47aa6f4bb1 100644 --- a/images/ss-u-ss14-1.light.svg +++ b/images/ss-u-ss14-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss15-1.dark.svg b/images/ss-u-ss15-1.dark.svg index 5f7714b5cb..14047f8c13 100644 --- a/images/ss-u-ss15-1.dark.svg +++ b/images/ss-u-ss15-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss15-1.light.svg b/images/ss-u-ss15-1.light.svg index 8094aff11f..c36335ac26 100644 --- a/images/ss-u-ss15-1.light.svg +++ b/images/ss-u-ss15-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss16-1.dark.svg b/images/ss-u-ss16-1.dark.svg index 8a4d688798..4e575e45e3 100644 --- a/images/ss-u-ss16-1.dark.svg +++ b/images/ss-u-ss16-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss16-1.light.svg b/images/ss-u-ss16-1.light.svg index 8c4a84ee66..b1f729669b 100644 --- a/images/ss-u-ss16-1.light.svg +++ b/images/ss-u-ss16-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss17-1.dark.svg b/images/ss-u-ss17-1.dark.svg index 2bd6d8421e..52c733baec 100644 --- a/images/ss-u-ss17-1.dark.svg +++ b/images/ss-u-ss17-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss17-1.light.svg b/images/ss-u-ss17-1.light.svg index ed31bae291..612590a3fe 100644 --- a/images/ss-u-ss17-1.light.svg +++ b/images/ss-u-ss17-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss18-1.dark.svg b/images/ss-u-ss18-1.dark.svg index ae1da2fd14..ab677f0cd6 100644 --- a/images/ss-u-ss18-1.dark.svg +++ b/images/ss-u-ss18-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss18-1.light.svg b/images/ss-u-ss18-1.light.svg index cfc7549c83..6d523a962f 100644 --- a/images/ss-u-ss18-1.light.svg +++ b/images/ss-u-ss18-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss20-1.dark.svg b/images/ss-u-ss20-1.dark.svg index 09d309b1cb..436db46dce 100644 --- a/images/ss-u-ss20-1.dark.svg +++ b/images/ss-u-ss20-1.dark.svg @@ -108,7 +108,7 @@ - + diff --git a/images/ss-u-ss20-1.light.svg b/images/ss-u-ss20-1.light.svg index ff2a4e3f44..b62ec491f3 100644 --- a/images/ss-u-ss20-1.light.svg +++ b/images/ss-u-ss20-1.light.svg @@ -108,7 +108,7 @@ - + diff --git a/package-lock.json b/package-lock.json index fedce698db..dd5f8ac531 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "32.3.1", + "version": "32.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "32.3.1", + "version": "32.4.0", "workspaces": [ "packages/*", "tools/*" @@ -5153,16 +5153,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@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", + "@iosevka/font-glyphs": "32.4.0", + "@iosevka/font-otl": "32.4.0", + "@iosevka/geometry": "32.4.0", + "@iosevka/geometry-cache": "32.4.0", + "@iosevka/glyph": "32.4.0", + "@iosevka/param": "32.4.0", + "@iosevka/util": "32.4.0", "@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.1", + "version": "32.4.0", "dependencies": { - "@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", + "@iosevka/font-kits": "32.4.0", + "@iosevka/geometry": "32.4.0", + "@iosevka/geometry-cache": "32.4.0", + "@iosevka/glyph": "32.4.0", + "@iosevka/util": "32.4.0", "typo-geom": "^0.16.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { - "@iosevka/geometry": "32.3.1", - "@iosevka/glyph": "32.3.1", - "@iosevka/util": "32.3.1", + "@iosevka/geometry": "32.4.0", + "@iosevka/glyph": "32.4.0", + "@iosevka/util": "32.4.0", "typo-geom": "^0.16.1" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { - "@iosevka/font-glyphs": "32.3.1", - "@iosevka/glyph": "32.3.1", + "@iosevka/font-glyphs": "32.4.0", + "@iosevka/glyph": "32.4.0", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { - "@iosevka/util": "32.3.1", + "@iosevka/util": "32.4.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { - "@iosevka/geometry": "32.3.1", + "@iosevka/geometry": "32.4.0", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { - "@iosevka/geometry": "32.3.1" + "@iosevka/geometry": "32.4.0" } }, "packages/param": { "name": "@iosevka/param", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { - "@iosevka/util": "32.3.1" + "@iosevka/util": "32.4.0" } }, "packages/util": { "name": "@iosevka/util", - "version": "32.3.1" + "version": "32.4.0" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.3.1", + "@iosevka/param": "32.4.0", "@unicode/unicode-16.0.0": "^1.6.4", "semver": "^7.6.3" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.3.1", + "@iosevka/param": "32.4.0", "@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.1", + "version": "32.4.0", "dependencies": { - "@iosevka/data-export": "32.3.1" + "@iosevka/data-export": "32.4.0" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "32.3.1", + "version": "32.4.0", "dependencies": { - "@iosevka/util": "32.3.1", + "@iosevka/util": "32.4.0", "@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 673838ec6b..d90aa7687c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "32.3.1", + "version": "32.4.0", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 0cbe5fd618..8f2f750cfb 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./lib/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./lib/meta/unicode-knowledge.mjs" }, "dependencies": { - "@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", + "@iosevka/font-kits": "32.4.0", + "@iosevka/geometry": "32.4.0", + "@iosevka/geometry-cache": "32.4.0", + "@iosevka/glyph": "32.4.0", + "@iosevka/util": "32.4.0", "typo-geom": "^0.16.1" } } diff --git a/packages/font-glyphs/src/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl index 5b9eeac6f9..a2095a84c1 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1536,7 +1536,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin local shrink : clamp 0 1 _shrink local kern 0 foreach [cycle : range 0 8] : begin - set kern : kKern * (2 * SB * shrink + (0.5 * Stroke * [HSwToV shrink] - OX * 2)) + set kern : kKern * (2 * SB * shrink + (HalfStroke * [HSwToV shrink] - OX * 2)) local tmpShrink : (wwM + kern * (mockNParts - 1)) / (mockNParts * Width) set shrink : Math.max _shrink : clamp 0 1 tmpShrink @@ -1619,9 +1619,9 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin define stdShrink : clamp 0.625 0.9 : StrokeWidthBlend 0.625 0.9 createPhoneticLigatures ToLetter 'phonetic1' 1 2 stdShrink 1 : list - list 0xFB00 { 'f' 'f' } null - list 0xFB01 { 'f/compLigLeft1' 'dotlessi/compLigRight' } null - list 0xFB02 { 'f/compLigLeft2' 'l/compLigRight' } null + list 0xFB00 { 'f' 'f' } null + list 0xFB01 { 'f/compLigLeft1' 'dotlessi/compLigRight' } null + list 0xFB02 { 'f/compLigLeft2' 'l/compLigRight' } null createPhoneticLigatures ToLetter 'phonetic2' para.diversityMM 2 stdShrink 1 : list list 0x02A3 { 'd/phoneticLeft' 'z/phoneticRight' } 'b' @@ -1646,7 +1646,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0xFB03 { 'f/compLigLeft1' 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB04 { 'f/compLigLeft3' 'f/compLigLeft2' 'l/compLigRight' } null - createPhoneticLigatures ToLetter 'phoneticSmcp' (para.diversityT * para.diversityMM) 3 1 0.5 : list + createPhoneticLigatures ToLetter 'phoneticSmcp' (para.diversityM * para.diversityMM) 3 1 0.5 : list list 0x2121 { 'smcpT' 'smcpE' 'smcpL' } 'e' list 0x213B { 'smcpF' 'smcpA' 'smcpX' } 'e' @@ -1669,35 +1669,6 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin createPhoneticLigatures ToLetter 'thSlash' 1 2 stdShrink 1 : list list 0x1D7A { 't/phoneticLeft1' 'h' 'wideSlash' } 'b' -glyph-block Autobuild-Rhotic : begin - glyph-block-import Mark-Shared-Metrics : markFine - glyph-block-import CommonShapes - glyph-block-import Common-Derivatives - glyph-block-import Recursive-Build : Widen - glyph-block-import Letter-Latin-Rhotic : ErTail - glyph-block-import Autobuild-Transformed-Shared : extendRelatedGlyphs link-relations - - define [createRhotics groupName yTail _records] : begin - local {records relSets targetNameMap} : extendRelatedGlyphs "rhotic_\(groupName)" _records - local pendingGlyphs : records.map : [record] => record.1 - local thinFont : Widen pendingGlyphs 0.85 1 - foreach {unicode glyphid pri} [items-of records] - if [not : query-glyph targetNameMap.(glyphid)] - create-glyph (targetNameMap.(glyphid)) unicode : glyph-proc - if [not : thinFont.queryByName glyphid] : begin - throw : new Error "Cannot find glyph \(glyphid)" - include : MarkSet.e - include : thinFont.queryByName glyphid - include : ErTail (Width * 0.85 - SB - [HSwToV : 1.25 * markFine]) yTail (XH * 0.2) - - link-relations relSets - return { targetNameMap records } - - createRhotics 'er' (XH / 2) - list { 0x25A 'schwa' } - createRhotics 'revLatinEpsilonEr' (XH * [mix 0.65 1 0.5]) - list { 0x25D 'latn/epsilonRev' } - glyph-block Autobuild-Double-Emotions : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives @@ -1708,7 +1679,7 @@ glyph-block Autobuild-Double-Emotions : begin define CWidth : if FMosaicWide MosaicWidth (Width * div) define shrink1 : if FMosaicWide 1 _shrink1 define shrink2 : if FMosaicWide 1 _shrink2 - define kern : SB * shrink1 + SB * shrink2 + 0.5 * Stroke * [mix shrink1 shrink2 0.5] - OX * 2 + define kern : SB * shrink1 + SB * shrink2 + HalfStroke * [mix shrink1 shrink2 0.5] - OX * 2 define jobs : CollectJobs NON-DECOMPOSABLE NOT-CENTERED ALLOW-PROPORTIONAL prefix MosaicNameSuffix demands define df1 : CreateDerivedFontFromJobs jobs {} : lambda [gs] : Thinner gs shrink1 true @@ -1728,7 +1699,7 @@ glyph-block Autobuild-Double-Emotions : begin include : Translate (dfg1.advanceWidth * wadj1 - kern) 0 include : union dfg1 [with-transform [Translate (dfg1.advanceWidth) 0] dfm1] include : Ungizmo - include : Translate (-refW / 2) 0 + include : Translate ((-refW) / 2) 0 include : Scale [clamp 0 1 ((CWidth - SB * 1.25) / (CWidth - SB * 2) * CWidth / refW)] 1 include : Translate (CWidth / 2) 0 include : Regizmo @@ -1754,7 +1725,7 @@ glyph-block Autobuild-Grouped-Digits : begin HBar.b 0 Width (Descender * 0.75) [AdviceStroke 4] glyph-proc include : refer-glyph "denseShade.WWID" - include : Translate (-Width / 2) 0 + include : Translate ((-Width) / 2) 0 include : Translate (-Width) 0 foreach [gid : items-of numberGlyphIDs] : foreach [nd : items-of {0 1 2 3 4 5 6}] diff --git a/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl b/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl index 183ec6cf45..fbd66a6b3b 100644 --- a/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl +++ b/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl @@ -99,7 +99,7 @@ export : define Superscript : list list 0x1DB3 'sRTail' list 0x1DB4 'esh' list 0x1DB5 'tLTail' - list 0x1DB6 'uLongBarOver' + list 0x1DB6 'uBar' list 0x1DB7 'latn/upsilon' list 0x1DB8 'smcpU' list 0x1DB9 'vHookTop' @@ -129,7 +129,7 @@ export : define Superscript : list list 0xA717 'dotvbar' list 0xA718 'dotslash' list 0xA719 'dothbar' - list 0xA71A 'turnedRevNegate' + list 0xA71A 'invNegate' list 0xA71B 'arrowUp.NWID' list 0xA71C 'arrowDown.NWID' list 0xA71D 'alveolarclick' diff --git a/packages/font-glyphs/src/common/shapes.ptl b/packages/font-glyphs/src/common/shapes.ptl index 5c21db27b2..2a859ec004 100644 --- a/packages/font-glyphs/src/common/shapes.ptl +++ b/packages/font-glyphs/src/common/shapes.ptl @@ -347,6 +347,12 @@ glyph-block CommonShapes : begin flat xleft y curl xright y + glyph-block-export HOverlayObliqueBar + define [HOverlayObliqueBar xleft xright y s slant] : dispiro + widths.center [fallback s OverlayStroke] + flat xleft (y - [fallback slant : XH * 0.1]) + curl xright (y + [fallback slant : XH * 0.1]) + glyph-block-export HCrossBar define [HCrossBar xl xr y s] : dispiro widths.center [fallback s OverlayStroke] diff --git a/packages/font-glyphs/src/letter/armenian/feh.ptl b/packages/font-glyphs/src/letter/armenian/feh.ptl index e743960b56..79debcafab 100644 --- a/packages/font-glyphs/src/letter/armenian/feh.ptl +++ b/packages/font-glyphs/src/letter/armenian/feh.ptl @@ -33,8 +33,8 @@ glyph-block Letter-Armenian-Feh : begin local df : include : DivFrame para.diversityM 3 include : df.markSet.capital local sw : Math.min df.mvs : AdviceStroke2 3 3 CAP df.div - local ada : df.archDepthA ArchDepth sw - local adb : df.archDepthB ArchDepth sw + local ada : df.archDepthAOf ArchDepth sw + local adb : df.archDepthBOf ArchDepth sw include : FehBody df CAP 0 sw Hook ada adb include : VBar.m df.middle 0 CAP sw if SLAB : begin @@ -45,8 +45,8 @@ glyph-block Letter-Armenian-Feh : begin local df : include : DivFrame para.diversityM 3 include : df.markSet.bp local sw : Math.min df.mvs : AdviceStroke2 3 3 Ascender df.div - local ada : df.archDepthA SmallArchDepth sw - local adb : df.archDepthB SmallArchDepth sw + local ada : df.archDepthAOf SmallArchDepth sw + local adb : df.archDepthBOf SmallArchDepth sw include : FehBody df Ascender 0 sw Hook ada adb include : VBar.m df.middle Descender Ascender sw if SLAB : begin diff --git a/packages/font-glyphs/src/letter/armenian/hook-group.ptl b/packages/font-glyphs/src/letter/armenian/hook-group.ptl index cba3877f40..d5c68848c2 100644 --- a/packages/font-glyphs/src/letter/armenian/hook-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/hook-group.ptl @@ -140,9 +140,7 @@ glyph-block Letter-Armenian-Hook-Group : begin create-glyph 'armn/Peh' 0x54A : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.capital - local ada : df.archDepthA ArchDepth df.mvs - local adb : df.archDepthB ArchDepth df.mvs - include : LeftHook df CAP 0 df.mvs Hook ada adb + include : LeftHook df CAP 0 df.mvs Hook df.archDepthA df.archDepthB include : VBar.m df.middle (XH / 2) (CAP - 0.5 * df.mvs) df.mvs if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 diff --git a/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl index 4e47d0de27..6ee6271e76 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-sha-group.ptl @@ -67,11 +67,10 @@ glyph-block Letter-Armenian-Lower-Sha-Group : begin local rhs : strokeOffset df.rightSB refY dx dy df.mvs HVContrast local joinX : mix df.leftSB rhs.x 0.2 local joinY : mix (Descender + df.mvs) rhs.y 0.2 - local fine : df.mvs * (ShoulderFine / Stroke) include : dispiro widths.lhs df.mvs straight.down.start (x1 - [HSwToV df.mvs]) y1 [heading Downward] - flat joinX joinY [widths.lhs fine] + flat joinX joinY [widths.lhs df.shoulderFine] curl df.leftSB (Descender + df.mvs) include : [ArmHBar.normal df].desc diff --git a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl index 6173a86c30..b04dbc542d 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl @@ -279,13 +279,12 @@ glyph-block Letter-Armenian-Lower-U-Group : begin include : VBar.l df.leftSB 0 XH df.mvs # Combination of nShoulder.knots and the straight 2 shape - local fine : ShoulderFine * (df.mvs / Stroke) - local left : Math.max (df.rightSB - [HSwToV df.mvs] - jut) df.middle + local left : Math.max df.middle : df.rightSB - [HSwToV df.mvs] - jut include : dispiro - widths.rhs fine - flat (df.leftSB + [HSwToV : df.mvs - fine]) (XH - SmallArchDepthA - TINY) - curl (df.leftSB + [HSwToV : df.mvs - fine]) (XH - SmallArchDepthA) - arch.rhs XH (sw -- df.mvs) (swBefore -- fine) + widths.rhs df.shoulderFine + flat (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - SmallArchDepthA - TINY) + curl (df.leftSB + [HSwToV : df.mvs - df.shoulderFine]) (XH - SmallArchDepthA) + arch.rhs XH (sw -- df.mvs) (swBefore -- df.shoulderFine) TwoNeck df XH 0 left include : HBar.b left (left + [HSwToV df.mvs] + jut) 0 df.mvs if SLAB : begin diff --git a/packages/font-glyphs/src/letter/armenian/to.ptl b/packages/font-glyphs/src/letter/armenian/to.ptl index d24044082a..000dc32ff5 100644 --- a/packages/font-glyphs/src/letter/armenian/to.ptl +++ b/packages/font-glyphs/src/letter/armenian/to.ptl @@ -28,7 +28,7 @@ glyph-block Letter-Armenian-To : begin flat df.rightSB (CAP - ArchDepthB) curl df.rightSB (0 + ArchDepthA) arch.rhs 0 (sw -- df.mvs) (swAfter -- fine) - g4 (df.middle - [HSwToV : fine / 2]) [mix 0 barPosT 0.5] [widths.rhs fine] + g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT 0.5] [widths.rhs fine] arcvh flat [mix df.leftSB df.rightSB 0.7] barPosT [widths.rhs df.mvs] curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) barPosT @@ -50,7 +50,7 @@ glyph-block Letter-Armenian-To : begin bottom -- (0 + ArchDepthA) stroke -- df.mvs arch.rhs 0 (sw -- df.mvs) (swAfter -- fine) - g4 (df.middle - [HSwToV : fine / 2]) [mix 0 barPosT 0.5] [widths.rhs fine] + g4 (df.middle - [HSwToV : 0.5 * fine]) [mix 0 barPosT 0.5] [widths.rhs fine] arcvh flat [mix df.leftSB df.rightSB 0.7] barPosT [widths.rhs df.mvs] curl (df.rightSB + jut - [HSwToV : 0.5 * df.mvs]) barPosT diff --git a/packages/font-glyphs/src/letter/armenian/upper-dza-group.ptl b/packages/font-glyphs/src/letter/armenian/upper-dza-group.ptl index 2bd42f6bb9..cfdeeb2d2b 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-dza-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-dza-group.ptl @@ -32,33 +32,35 @@ glyph-block Letter-Armenian-Upper-Dza : begin create-glyph 'armn/Sha' 0x547 : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital + local junctY : mix XH CAP 0.5 include : dispiro widths.rhs df.mvs curl df.leftSB CAP [heading Rightward] - flat df.middle ([mix XH CAP 0.5] + df.mvs - df.shoulderFine) [heading Rightward] + flat df.middle (junctY + df.mvs - df.shoulderFine) [heading Rightward] curl df.rightSB (XH + df.mvs) [heading Rightward] include : dispiro widths.rhs df.mvs g4 df.rightSB Hook hookstart 0 (sw -- df.mvs) - flat df.leftSB ArchDepthB - curl df.leftSB ([mix XH CAP 0.5] - ArchDepthA) + flatside.lu df.leftSB 0 junctY ArchDepthA ArchDepthB arcvh - g4 df.middle [mix XH CAP 0.5] [widths.rhs df.shoulderFine] + g4 df.middle junctY [widths.rhs df.shoulderFine] do "Cha" create-glyph 'armn/Cha' 0x549 : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital + local barTop : Hook * 0.8 + local barBot O + local junctY : [mix barBot barTop 0.5] + df.mvs - df.shoulderFine include : dispiro widths.rhs df.mvs g4 df.leftSB (CAP - Hook) hookstart CAP (sw -- df.mvs) - flat df.rightSB (CAP - ArchDepthB) - curl df.rightSB ([mix (XH / 2) df.mvs 0.5] - df.shoulderFine + ArchDepthA) + flatside.rd df.rightSB junctY CAP ArchDepthA ArchDepthB arcvh - g4 df.middle ([mix (XH / 2) df.mvs 0.5] - df.shoulderFine) [widths.rhs df.shoulderFine] + g4 df.middle junctY [widths.rhs df.shoulderFine] include : dispiro - widths.rhs df.mvs - flat [mix df.leftSB df.rightSB 0.1] (XH / 2) [heading Rightward] - curl [mix df.leftSB df.rightSB 0.9] df.mvs [heading Rightward] + widths.lhs df.mvs + flat [mix df.leftSB df.rightSB 0.1] barTop [heading Rightward] + curl [mix df.leftSB df.rightSB 0.9] barBot [heading Rightward] diff --git a/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl b/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl index a1283cf532..e18f7b2d34 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-gim-group.ptl @@ -25,8 +25,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin flat df.rightSB 0 [heading Upward] curl df.rightSB (CAP - ArchDepthB) arch.lhs CAP (sw -- df.mvs) - flat df.leftSB (CAP - ArchDepthA) - curl df.leftSB (barPosB + ArchDepthB) + flatside.ld df.leftSB barPosB CAP ArchDepthA ArchDepthB arcvh flat df.middle barPosB curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) barPosB @@ -42,8 +41,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin flat df.rightSB CAP [heading Downward] curl df.rightSB (0 + ArchDepthA) arch.rhs 0 (sw -- df.mvs) - flat (df.leftSB + OX) (0 + ArchDepthB) - curl (df.leftSB + OX) (highBarPos - ArchDepthA) + flatside.lu df.leftSB 0 highBarPos ArchDepthA ArchDepthB arcvh flat df.middle highBarPos curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos @@ -59,8 +57,7 @@ glyph-block Letter-Armenian-Upper-Gim-Group : begin flat df.rightSB Ascender [heading Downward] curl df.rightSB (0 + SmallArchDepthA) arch.rhs 0 (sw -- df.mvs) - flat (df.leftSB + OX) (0 + SmallArchDepthB) - curl (df.leftSB + OX) (highBarPos - SmallArchDepthA) + flatside.lu df.leftSB 0 highBarPos ArchDepthA ArchDepthB arcvh flat df.middle highBarPos curl (df.rightSB + jut * [if SLAB 1.5 1] - [HSwToV : 0.5 * df.mvs]) highBarPos diff --git a/packages/font-glyphs/src/letter/armenian/upper-yi.ptl b/packages/font-glyphs/src/letter/armenian/upper-yi.ptl index dd00720d21..1c17f26732 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-yi.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-yi.ptl @@ -16,11 +16,11 @@ glyph-block Letter-Armenian-Upper-Yi : begin local df : include : DivFrame 1 include : df.markSet.capital local ze : CyrZe 0 0 CAP 0 - left -- df.leftSB + left -- df.leftSB right -- df.rightSB blend -- (1 + (2 * O) / (df.rightSB - df.leftSB)) - hook -- Hook - op -- HBarPos + hook -- Hook + op -- HBarPos include : ze.Shape if SLAB : begin local midy : mix 0 CAP HBarPos diff --git a/packages/font-glyphs/src/letter/cyrillic/de.ptl b/packages/font-glyphs/src/letter/cyrillic/de.ptl index ffb86bab7d..1e9cb732a1 100644 --- a/packages/font-glyphs/src/letter/cyrillic/de.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/de.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Cyrillic-De : begin glyph-block-import Letter-Greek-Lower-Epsilon : CyrZe EpsilonConfig glyph-block-export BottomExtension - local BottomExtension : 0.25 * Stroke - LongVJut + local BottomExtension : QuarterStroke - LongVJut glyph-block-export CyrDeBottom define [CyrDeBottom left right _sw _desc] : glyph-proc @@ -153,13 +153,13 @@ glyph-block Letter-Cyrillic-De : begin local middle : mix left right 0.5 local sw : fallback _sw df.mvs - local yRingTop : Math.min (XH + O) (XH - Stroke * 0.25) - local ada : df.archDepthA (SmallArchDepth * yRingTop / XH) - local adb : df.archDepthB (SmallArchDepth * yRingTop / XH) + local yRingTop : Math.min (XH + O) (XH - QuarterStroke) + local ada : df.archDepthAOf : SmallArchDepth * yRingTop / XH + local adb : df.archDepthBOf : SmallArchDepth * yRingTop / XH return : sink widths.lhs ShoulderFine - straight.up.start (right - OX - [HSwToV (sw - ShoulderFine)]) (yRingTop - adb) + straight.up.start (right - OX - [HSwToV : sw - ShoulderFine]) (yRingTop - adb) arch.lhs yRingTop (sw -- sw) (swBefore -- ShoulderFine) flat (left + OX) (yRingTop - ada) curl (left + OX) adb diff --git a/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl b/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl index 052ea88c63..481a6bf08b 100644 --- a/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl @@ -14,8 +14,8 @@ glyph-block Letter-Cyrillic-Dzhe : begin include : VBar.l SB 0 top include : HBar.b SB RightSB 0 include : VBar.r RightSB 0 top - local desc : 0.25 * Stroke - LongVJut - include : VBar.m Middle desc Stroke + local desc : (-LongVJut) + QuarterStroke + include : VBar.m Middle desc Stroke VJutStroke include : ExtendBelowBaseAnchors desc if SLAB : let [sf : SerifFrame.fromDf [DivFrame 1] top 0] : begin include : composite-proc sf.lt.full sf.rt.full sf.lb.outer sf.rb.outer diff --git a/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl b/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl index 206bb69b25..3303d713b2 100644 --- a/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl @@ -9,15 +9,16 @@ glyph-block Letter-Cyrillic-Lower-Be : begin glyph-block-import Common-Derivatives create-glyph 'cyrl/be' 0x431 : glyph-proc - include : MarkSet.b + local df : include : DivFrame 1 + include : df.markSet.b - local yRingTop : Math.min (XH + O) (XH - Stroke * 0.25) - local ada : [DivFrame 1].archDepthA (SmallArchDepth * yRingTop / XH) - local adb : [DivFrame 1].archDepthB (SmallArchDepth * yRingTop / XH) + local yRingTop : Math.min (XH + O) (XH - QuarterStroke) + local ada : df.archDepthAOf : SmallArchDepth * yRingTop / XH + local adb : df.archDepthBOf : SmallArchDepth * yRingTop / XH include : dispiro widths.rhs ShoulderFine - straight.up.start (SB + OX + [HSwToV (Stroke - ShoulderFine)]) (yRingTop - ada) + straight.up.start (SB + OX + [HSwToV : Stroke - ShoulderFine]) (yRingTop - ada) arch.rhs yRingTop (swBefore -- ShoulderFine) flat (RightSB - OX) (yRingTop - adb) curl (RightSB - OX) ada @@ -25,4 +26,4 @@ glyph-block Letter-Cyrillic-Lower-Be : begin flat (SB + OX) adb curl (SB + OX) (yRingTop - ada) alsoThruThem [list {0.3 0.85} {0.65 0.925}] important g4 - g4 (RightSB - (1 / 16) * [HSwToV Stroke]) Ascender [heading Rightward] + g4 (RightSB - [HSwToV : Stroke / 16]) Ascender [heading Rightward] diff --git a/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl b/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl index 319ec4b462..48d03a1ff0 100644 --- a/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl @@ -28,20 +28,18 @@ glyph-block Letter-Cyrillic-Multiocular-O : begin local yTop : middleRowTop + pY * (Ascender - middleRowTop) local xLeft : subDf.leftSB + (pX / 3) * (df.width - subDf.width) local xRight : subDf.rightSB + (pX / 3) * (df.width - subDf.width) - local ada : subDf.archDepthA SmallArchDepth - local adb : subDf.archDepthB SmallArchDepth local dotSpace : InnerDot.spaceOfDf subDf - local kHeight2 : [Math.sqrt ([InnerDot.spaceOfDf : DivFrame 1] / dotSpace)] * 1.5 + local kHeight2 : [Math.sqrt : [InnerDot.spaceOfDf : DivFrame 1] / dotSpace] * 1.5 return : union - OShape.NoOvershoot yTop yBot xLeft xRight subDf.mvs ada adb + OShape.NoOvershoot yTop yBot xLeft xRight subDf.mvs subDf.smallArchDepthA subDf.smallArchDepthB InnerDot [mix xLeft xRight 0.5] [mix yTop yBot 0.5] kHeight2 (DrawAt === DotAt) kdr dotSpace 5 - include : SingleEye 0 0 - include : SingleEye 1 0 - include : SingleEye 2 0 - include : SingleEye 3 0 + include : SingleEye 0 0 + include : SingleEye 1.0 0 + include : SingleEye 2.0 0 + include : SingleEye 3.0 0 include : SingleEye 0.5 (+1) include : SingleEye 1.5 (+1) include : SingleEye 2.5 (+1) diff --git a/packages/font-glyphs/src/letter/cyrillic/yat.ptl b/packages/font-glyphs/src/letter/cyrillic/yat.ptl index 547089a85b..6f3c328581 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yat.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yat.ptl @@ -28,7 +28,7 @@ glyph-block Letter-Cyrillic-Yat : begin pBar -- pBar stroke -- sw - local cTop : if SLAB (top - Stroke / 2) top + local cTop : if SLAB (top - HalfStroke) top local _xCrossbarLeft : mix 0 df.leftSB : if SLAB 0.25 0.375 local xCrossbarLeft : fallback xCrossbarLeftOverride _xCrossbarLeft diff --git a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl index 6d976581ff..976e53e08d 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl @@ -280,58 +280,58 @@ glyph-block Letter-Cyrillic-Yeri : begin local df : include : DivFrame 1 include : df.markSet.capital include : Uc CAP - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yeri.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.e include : Lc XH - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/YeriBar.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital include : Uc CAP - left -- df.leftSB + left -- df.leftSB right -- df.rightSB include : YeriOverlayBar df CAP create-glyph "cyrl/yeriBar.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.e include : Lc XH - left -- df.leftSB + left -- df.leftSB right -- df.rightSB include : YeriOverlayBar df XH create-glyph "cyrl/Yer.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.capital include : CyrBackYerShape Uc CAP - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yer.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.e include : CyrBackYerShape Lc XH - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yerTall.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.b include : CyrBackYerShape Lc Ascender - left -- df.leftSB + left -- df.leftSB right -- df.rightSB - pBar -- (YeriBarPos * XH / Ascender) + pBar -- (YeriBarPos * XH / Ascender) create-glyph "cyrl/YerNeutral.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.capital include : CyrNeutralYerShape Uc CAP - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yerNeutral.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT include : df.markSet.e include : CyrNeutralYerShape Lc XH - left -- df.leftSB + left -- df.leftSB right -- df.rightSB create-glyph "ZhuangToneSix.\(suffix)" : glyph-proc include : MarkSet.capital @@ -405,13 +405,13 @@ glyph-block Letter-Cyrillic-Yeri : begin local xm : df.middle + [HSwToV : 0.5 * df.mvs] include : RevYeri.RoundShape CAP df.leftSB xm df.mvs include : UpwardHookShape - left -- df.middle - [HSwToV : 0.5 * df.mvs] - right -- df.rightSB + left -- df.middle - [HSwToV : 0.5 * df.mvs] + right -- df.rightSB ybegin -- CAP - yend -- (CAP / 2) - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) - sw -- df.mvs + yend -- (CAP / 2) + ada -- (SmallArchDepthA * 0.6 * df.div) + adb -- (SmallArchDepthB * 0.6 * df.div) + sw -- df.mvs if SLAB : begin include : HSerif.mt df.middle CAP Jut df.mvs local sf2 : [SerifFrame.fromDf df (CAP / 2) 0].slice 1 2 diff --git a/packages/font-glyphs/src/letter/greek/lower-delta.ptl b/packages/font-glyphs/src/letter/greek/lower-delta.ptl index bc5046b688..59d725cca3 100644 --- a/packages/font-glyphs/src/letter/greek/lower-delta.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-delta.ptl @@ -12,10 +12,9 @@ glyph-block Letter-Greek-Lower-Delta : begin create-glyph 'grek/delta.rounded' : glyph-proc include : MarkSet.b - local yRingTop : Stroke * 0.25 + Ascender * 0.619 - local xNeck : mix SB RightSB 0.06 + local yRingTop : QuarterStroke + Ascender * 0.619 + local xNeck : mix SB RightSB 0.06 local xOTLeft : mix SB RightSB 0.5 - local fine : Stroke * 0.5 include : dispiro g4 [mix Middle RightSB 0.85] [mix XH Ascender 0.8] [widths.lhs] @@ -32,7 +31,7 @@ glyph-block Letter-Greek-Lower-Delta : begin flat (SB + OX) SmallArchDepthB curl (SB + OX) (yRingTop - SmallArchDepthA) arcvh - g4 xOTLeft (yRingTop - (Stroke - fine) / 2) [widths.rhs fine] + g4 xOTLeft (yRingTop - QuarterStroke) [widths.rhs HalfStroke] create-glyph 'grek/delta.flatTop' : glyph-proc include : MarkSet.b @@ -40,7 +39,7 @@ glyph-block Letter-Greek-Lower-Delta : begin local fine ShoulderFine local coFine : mix fine Stroke 0.5 local yTop : Ascender - Stroke - local yMid : Stroke * 0.25 + [mix 0 XH (7 / 8)] + local yMid : QuarterStroke + [mix 0 XH (7 / 8)] local yMid2 : mix yMid [YSmoothMidR yMid 0 SmallArchDepthA SmallArchDepthB] 0.95 local yMid3 : mix yMid [YSmoothMidR yMid 0 SmallArchDepthA SmallArchDepthB] 0.5 local yMockBarStart : yMid3 + 2.25 * Stroke @@ -49,8 +48,8 @@ glyph-block Letter-Greek-Lower-Delta : begin include : HBar.t SB RightSB Ascender include : intersection [MaskBelow yTop] : dispiro widths.lhs fine - flat (RightSB - OX - [HSwToV (Stroke - fine)]) SmallArchDepthA - curl (RightSB - OX - [HSwToV (Stroke - fine)]) (yMid - SmallArchDepthB) + flat (RightSB - OX - [HSwToV : Stroke - fine]) SmallArchDepthA + curl (RightSB - OX - [HSwToV : Stroke - fine]) (yMid - SmallArchDepthB) arch.lhs yMid (swBefore -- fine) flat (SB + OX) (yMid - SmallArchDepthA) curl (SB + OX) SmallArchDepthB diff --git a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl index 8fe22aa169..d8ecc960d8 100644 --- a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl @@ -9,13 +9,15 @@ glyph-module glyph-block Letter-Greek-Lower-Epsilon : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Mark-Shared-Metrics : markFine glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors glyph-block-import Letter-Shared : CreateTurnedLetter glyph-block-import Letter-Shared-Shapes : SerifedArcStart SerifedArcEnd SerifFrame glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart InwardSlabArcEnd glyph-block-import Letter-Shared-Shapes : ArcStartSerif ArcEndSerif glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight - glyph-block-import Letter-Shared-Shapes : DToothlessRise RetroflexHook CyrDescender UpwardHookShape + glyph-block-import Letter-Shared-Shapes : DToothlessRise RetroflexHook CyrDescender + glyph-block-import Letter-Shared-Shapes : UpwardHookShape RhoticHookShape define SLAB-NONE 0 define SLAB-CLASSICAL 1 @@ -246,7 +248,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin create-glyph "cyrl/Dhe.\(suffix)" : glyph-proc include [refer-glyph "cyrl/Ze.\(suffix)"] AS_BASE ALSO_METRICS - local desc : (-LongVJut) + HalfStroke + local desc : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors desc include : let [zeNoO : CyrZe slabTop slabBot CAP 0 (hook -- Hook) (xo -- 0) (yo -- 0)] difference @@ -255,13 +257,27 @@ glyph-block Letter-Greek-Lower-Epsilon : begin create-glyph "cyrl/dhe.\(suffix)" : glyph-proc include [refer-glyph "cyrl/ze.\(suffix)"] AS_BASE ALSO_METRICS - local desc : (-LongVJut) + HalfStroke + local desc : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors desc include : let [zeNoO : CyrZe slabTop slabBot XH 0 (hook -- SHook) (xo -- 0) (yo -- 0)] difference VBar.m [arch.adjust-x.bot Middle] desc (Stroke + O) VJutStroke zeNoO.ShapeMask + create-glyph "cyrl/zeRhoticHook.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 1 + include : df.markSet.e + local divSub : Math.min 1 : 0.85 * para.diversityM + local dfSub : DivFrame divSub 2 + local stroke : AdviceStroke2 2 3 XH divSub + local ze : CyrZe slabTop slabBot XH 0 + left -- dfSub.leftSB + right -- dfSub.rightSB + hook -- SHook + stroke -- stroke + include : union [ze.Shape] [ze.AutoStartSerifL] [ze.AutoEndSerifL] + include : RhoticHookShape (dfSub.rightSB - [HSwToV : 1.25 * markFine]) df.width (XH * 0.825) (XH * 0.2) + create-glyph "cyrl/DzjeKomi.\(suffix)" : glyph-proc include : MarkSet.capital local ze : CyrZe slabTop OPEN-VERTICAL CAP 0 (hook -- Hook) @@ -389,6 +405,21 @@ glyph-block Letter-Greek-Lower-Epsilon : begin include : eps.Shape include : bar df top stroke + define [TopCutBody df top bar hook ada adb] : glyph-proc + local eps : SmallEpsilon CLOSED-STEM CLOSED-STEM top 0 + blend -- VolBlend + hook -- hook + overflow -- 0 + ada2 -- ada + adb2 -- adb + define [object stroke] : eps.Dim + include : eps.Shape + include : bar df (top - stroke / 2) stroke + include : spiro-outline + corner df.rightSB top + corner df.rightSB (top - stroke / 2) + corner (df.rightSB - [HSwToV stroke]) (top - stroke / 2) + define [EarlessCornerBody df top bar hook ada adb] : glyph-proc local eps : SmallEpsilon SLAB-INWARD CLOSED-STEM top 0 blend -- VolBlend @@ -415,16 +446,19 @@ glyph-block Letter-Greek-Lower-Epsilon : begin singleStoreySerifless { FullBarBody SingleStorey.SeriflessBar } singleStoreyEarlessCornerSerifless { EarlessCornerBody SingleStorey.SeriflessBar } singleStoreyEarlessRoundedSerifless { EarlessRoundedBody SingleStorey.SeriflessBar } + singleStoreyTopCutSerifless { TopCutBody SingleStorey.SeriflessBar } singleStoreySerifed { FullBarBody SingleStorey.BottomSerifedBar } singleStoreyEarlessCornerSerifed { EarlessCornerBody SingleStorey.BottomSerifedBar } singleStoreyEarlessRoundedSerifed { EarlessRoundedBody SingleStorey.BottomSerifedBar } + singleStoreyTopCutSerifed { TopCutBody SingleStorey.BottomSerifedBar } singleStoreyDoubleSerifed { FullBarBody SingleStorey.DoubleSerifedBar } singleStoreyTailed { FullBarBody SingleStorey.TailedBar } singleStoreyEarlessCornerTailed { EarlessCornerBody SingleStorey.TailedBar } singleStoreyEarlessRoundedTailed { EarlessRoundedBody SingleStorey.TailedBar } + singleStoreyTopCutTailed { TopCutBody SingleStorey.TailedBar } singleStoreyTailedSerifed { FullBarBody SingleStorey.TailedSerifedBar } @@ -519,26 +553,31 @@ glyph-block Letter-Greek-Lower-Epsilon : begin include : MarkSet.e include : Base df XH Slabs SHook SmallArchDepthA SmallArchDepthB - select-variant 'AeVolapuk' 0xA79A (follow -- [conditional-follow SLAB 'a/singleStorey/autoSerifed/slab' 'a/singleStorey/autoSerifed/sans']) select-variant 'aeVolapuk' 0xA79B (follow -- [conditional-follow SLAB 'a/singleStorey/autoSerifed/slab' 'a/singleStorey/autoSerifed/sans']) select-variant 'UeVolapuk' 0xA79E (follow -- 'u') select-variant 'ueVolapuk' 0xA79F (follow -- 'u') - alias 'grek/epsilon' 0x3B5 'latn/epsilon.serifless' select-variant 'latn/Epsilon' 0x190 select-variant 'latn/epsilon' 0x25B + CreateTurnedLetter 'turnepsilon' 0x1D08 'latn/epsilon' HalfAdvance (XH / 2) + + alias 'grek/epsilon' 0x3B5 'latn/epsilon.serifless' + alias 'cyrl/ZeRev' 0x510 'latn/Epsilon' alias 'cyrl/zeRev' 0x511 'latn/epsilon' select-variant 'cyrl/Ze' 0x417 select-variant 'cyrl/ze' 0x437 - select-variant 'cyrl/KsiBase' (follow -- 'cyrl/ZeTopSerifOnly') - select-variant 'cyrl/ksiBase' (follow -- 'cyrl/zeTopSerifOnly') - select-variant 'cyrl/ze.BGR' (follow -- 'cyrl/ze') + select-variant 'cyrl/ze.BGR' (follow -- 'cyrl/ze') + alias 'latn/EpsilonRev' 0xA7AB 'cyrl/Ze' alias 'latn/epsilonRev' 0x25C 'cyrl/ze' + select-variant 'latn/epsilonRevRhoticHook' 0x25D (shapeFrom -- 'cyrl/zeRhoticHook') (follow -- 'cyrl/ze') + + select-variant 'cyrl/KsiBase' (follow -- 'cyrl/ZeTopSerifOnly') + select-variant 'cyrl/ksiBase' (follow -- 'cyrl/zeTopSerifOnly') select-variant 'cyrl/ZjeKomi' 0x504 (follow -- 'cyrl/ZeTopSerifOnly') select-variant 'cyrl/zjeKomi' 0x505 (follow -- 'cyrl/zeTopSerifOnly') @@ -563,13 +602,12 @@ glyph-block Letter-Greek-Lower-Epsilon : begin include : ExtendBelowBaseAnchors (-AccentHeight) select-variant 'latn/epsilon/descBase' (shapeFrom -- 'latn/epsilon') - select-variant 'latn/epsilonRev/descBase' (shapeFrom -- 'cyrl/ze') (follow -- 'cyrl/ze/descBase') - derive-composites 'latn/epsilonRetroflexHook' 0x1D93 'latn/epsilon/descBase' RetroflexHook.r RightSB 0 (refSw -- [AdviceStroke2 2 3 XH]) + + select-variant 'latn/epsilonRev/descBase' (shapeFrom -- 'cyrl/ze') (follow -- 'cyrl/ze/descBase') derive-composites 'latn/epsilonRevRetroflexHook' 0x1D94 'latn/epsilonRev/descBase' - RetroflexHook.l SB 0 (refSw -- [AdviceStroke2 2 3 XH]) - ExtendBelowBaseAnchors Descender + RetroflexHook.l SB 0 (refSw -- [AdviceStroke2 2 3 XH]) create-glyph 'voicedLaryngealSpirant' 0x1D24 : glyph-proc include : MarkSet.b diff --git a/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl index eb4f996878..99a285cbf1 100644 --- a/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl @@ -18,7 +18,7 @@ glyph-block Letter-Greek-Lower-Lunate-Epsilon : begin arcvh flat [mix SB RightSB 0.625] 0 [heading Rightward] curl RightSB 0 [heading Rightward] - include : HBar.m (SB + [HSwToV HalfStroke]) ([mix SB RightSB 0.75] + 0.25 * Stroke) (XH / 2) [AdviceStroke2 2 3 XH] + include : HBar.m (SB + [HSwToV HalfStroke]) ([mix SB RightSB 0.75] + QuarterStroke) (XH / 2) [AdviceStroke2 2 3 XH] create-glyph 'grek/lowerLunateEpsilonRev' 0x3F6 : glyph-proc include : MarkSet.e @@ -30,4 +30,4 @@ glyph-block Letter-Greek-Lower-Lunate-Epsilon : begin arcvh flat [mix RightSB SB 0.625] 0 [heading Leftward] curl SB 0 [heading Leftward] - include : HBar.m ([mix RightSB SB 0.75] - 0.25 * Stroke) (RightSB - [HSwToV HalfStroke]) (XH / 2) [AdviceStroke2 2 3 XH] + include : HBar.m ([mix RightSB SB 0.75] - QuarterStroke) (RightSB - [HSwToV HalfStroke]) (XH / 2) [AdviceStroke2 2 3 XH] diff --git a/packages/font-glyphs/src/letter/greek/lower-nu.ptl b/packages/font-glyphs/src/letter/greek/lower-nu.ptl index 9f2801d78c..52546981ae 100644 --- a/packages/font-glyphs/src/letter/greek/lower-nu.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-nu.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Greek-Lower-Nu : begin create-glyph 'grek/nu.casual' : glyph-proc include : MarkSet.e - local xmid : Middle + HalfStroke * 0.75 + local xmid : Middle + 0.375 * Stroke include : dispiro g4 (SB + [HSwToV : 0.4 * Stroke]) (XH - O) [widths.rhs] bezControls 0.33 0.2 1 0.76 6 important diff --git a/packages/font-glyphs/src/letter/greek/lower-rho-symbol.ptl b/packages/font-glyphs/src/letter/greek/lower-rho-symbol.ptl index 18d91b61f0..1bbf58802b 100644 --- a/packages/font-glyphs/src/letter/greek/lower-rho-symbol.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-rho-symbol.ptl @@ -8,12 +8,11 @@ glyph-module glyph-block Letter-Greek-Lower-Rho-Symbol : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : OBarRight + glyph-block-import Letter-Shared-Shapes : OBarLeft create-glyph 'grek/rhoSymbol' 0x3F1 : glyph-proc include : MarkSet.p - include : tagged 'bowl' : OBarRight.rounded (yTerminal -- XH) - include : FlipAround Middle (XH / 2) + include : tagged 'bowl' : OBarLeft.roundedTop (yTerminal -- 0) include : dispiro widths.lhs flat SB (XH - SmallArchDepthA) diff --git a/packages/font-glyphs/src/letter/greek/phi.ptl b/packages/font-glyphs/src/letter/greek/phi.ptl index 3cac3517b9..b20354dbbb 100644 --- a/packages/font-glyphs/src/letter/greek/phi.ptl +++ b/packages/font-glyphs/src/letter/greek/phi.ptl @@ -10,20 +10,16 @@ glyph-block Letter-Greek-Phi : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors ExtendBelowBaseAnchors glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagTail OBarLeft OBarRight - glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift define [VarPhiRing fFlatTB df y2 y3] : glyph-proc include : VBar.m df.middle y2 y3 df.mvs include : if fFlatTB - OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs (ArchDepthA * df.div) (ArchDepthB * df.div) + OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs df.archDepthA df.archDepthB Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV df.mvs - OShape y3 y2 df.leftSB df.rightSB df.mvs (ArchDepthA * df.div) (ArchDepthB * df.div) + OShape y3 y2 df.leftSB df.rightSB df.mvs df.archDepthA df.archDepthB define [CyrlEfSplitRing fFlatTB df y2 y3] : glyph-proc - local { subDf } : SubDfAndShift 0 df OX - local ada : subDf.archDepthA SmallArchDepth df.mvs - local adb : subDf.archDepthB SmallArchDepth df.mvs - + local subDf : df.slice 3 2 OX include : VBar.m df.middle y2 y3 df.mvs include : union OBarRight.shape @@ -32,16 +28,16 @@ glyph-block Letter-Greek-Phi : begin left -- df.leftSB right -- (df.middle + [HSwToV : 0.5 * df.mvs]) sw -- df.mvs - ada -- ada - adb -- adb + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB OBarLeft.shape top -- y3 bot -- y2 left -- (df.middle - [HSwToV : 0.5 * df.mvs]) right -- df.rightSB sw -- df.mvs - ada -- ada - adb -- adb + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB define [GrekLowerPhiCursiveRing fFlatTB df y2 y3] : glyph-proc local l : df.leftSB + OX * 2 @@ -129,10 +125,10 @@ glyph-block Letter-Greek-Phi : begin local df : include : DivFrame para.diversityMM 3 include : df.markSet.capital - local vJut : Math.max (LongVJut - HalfStroke) : if SLAB (1.5 * Stroke) 0 + local yExt : Math.max (LongVJut - QuarterStroke) : if SLAB (1.5 * Stroke) 0 - local top : CAP + vJut - local bot : 0 - vJut + local top : CAP + yExt + local bot : 0 - yExt include : ExtendAboveBaseAnchors top include : ExtendBelowBaseAnchors bot @@ -194,10 +190,10 @@ glyph-block Letter-Greek-Phi : begin local df : include : DivFrame div 3 include : df.markSet.bp include : Bowl true df 0 XH - local mvs : fallback barSw df.mvs - include : Bar df Descender 0 XH Ascender mvs - if sMT : include : sMT df Ascender mvs - if sMB : include : sMB df Descender mvs + local vs : fallback barSw df.mvs + include : Bar df Descender 0 XH Ascender vs + if sMT : include : sMT df Ascender vs + if sMB : include : sMB df Descender vs select-variant 'cyrl/ef' 0x444 select-variant 'cyrl/ef.BGR' (shapeFrom -- 'cyrl/ef') diff --git a/packages/font-glyphs/src/letter/greek/pi.ptl b/packages/font-glyphs/src/letter/greek/pi.ptl index 22d06d85e7..928043cb4f 100644 --- a/packages/font-glyphs/src/letter/greek/pi.ptl +++ b/packages/font-glyphs/src/letter/greek/pi.ptl @@ -15,7 +15,7 @@ glyph-block Letter-Greek-Pi : begin glyph-block-export PiShape define [PiShape] : with-params [df top bottom [shrinkRate 0.05] [fine Stroke] [doSerif false] [endShrink 0] [tailed false]] : glyph-proc local shrink : if doSerif 0 (shrinkRate * (df.rightSB - df.leftSB)) - local endexpand : if doSerif 0 (- endShrink * (df.rightSB - df.leftSB) || shrink / 2) + local endexpand : if doSerif 0 ((-endShrink) * (df.rightSB - df.leftSB) || shrink / 2) include : HBar.t (df.leftSB - endexpand) (df.rightSB + endexpand) top fine include : VBar.l (df.leftSB + shrink) bottom (top - fine / 2) fine if tailed @@ -28,7 +28,7 @@ glyph-block Letter-Greek-Pi : begin define [MathBBPiShape] : with-params [df top bottom [shrinkRate 0.05] [endShrink 0]] : glyph-proc local shrink : shrinkRate * (df.rightSB - df.leftSB) - local endexpand : -endShrink * (df.rightSB - df.leftSB) || shrink / 2 + local endexpand : (-endShrink) * (df.rightSB - df.leftSB) || shrink / 2 include : HBar.t (df.leftSB - endexpand) (df.rightSB + endexpand) top BBS include : BBBarLeft (df.leftSB + shrink) bottom top include : BBBarRight (df.rightSB - shrink) bottom top @@ -53,7 +53,7 @@ glyph-block Letter-Greek-Pi : begin derive-composites 'cyrl/PeDescender' 0x524 'cyrl/Pe' [CyrDescender.rSideJut RightSB 0] derive-composites 'cyrl/peDescender.upright' null 'cyrl/pe.upright' [CyrDescender.rSideJut RightSB 0] - define SmallPiShrink : 1/6 - [HSwToV : 0.25 * Stroke] / (RightSB - SB) + define SmallPiShrink : (1/6) - [HSwToV QuarterStroke] / (RightSB - SB) define SmallPiConfig : object smallCap { {0 SLAB } false } diff --git a/packages/font-glyphs/src/letter/greek/qoppa.ptl b/packages/font-glyphs/src/letter/greek/qoppa.ptl index 0c71a81884..15c7a1fa2c 100644 --- a/packages/font-glyphs/src/letter/greek/qoppa.ptl +++ b/packages/font-glyphs/src/letter/greek/qoppa.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Greek-Qoppa : begin create-glyph 'grek/Qoppa' 0x3DE : glyph-proc include : MarkSet.capital - define x1 : SB + [HSwToV : 0.25 * Stroke] - O + define x1 : SB + [HSwToV QuarterStroke] - O define x1co : Width - x1 define x2 : mix SB RightSB 0.3 define x2co : Width - x2 diff --git a/packages/font-glyphs/src/letter/greek/upper-gamma.ptl b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl index 3e081132ff..5bfd02a54c 100644 --- a/packages/font-glyphs/src/letter/greek/upper-gamma.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl @@ -20,7 +20,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin define SLAB-BOTTOM 2 define SLAB-ALL 3 - define GammaBarLeft (SB * 1.5) + define GammaBarLeft : SB * 1.5 define [GammaShape top bot slabType] : glyph-proc include : LeaningAnchor.Below.VBar.l GammaBarLeft include : VBar.l GammaBarLeft bot top @@ -59,15 +59,15 @@ glyph-block Letter-Greek-Upper-Gamma: begin create-glyph "cyrl/GheDescender.\(suffix)" : glyph-proc include [refer-glyph "grek/Gamma.\(suffix)"] AS_BASE ALSO_METRICS include : CyrDescender.rSideJut - x -- (GammaBarLeft + [HSwToV Stroke]) - y -- 0 + x -- (GammaBarLeft + [HSwToV Stroke]) + y -- 0 jut -- MidJutSide create-glyph "cyrl/GheDHook.\(suffix)" : glyph-proc include [refer-glyph "grek/Gamma.\(suffix)"] AS_BASE ALSO_METRICS include : PalatalHook.rSideJut - x -- (GammaBarLeft + [HSwToV Stroke]) - y -- 0 + x -- (GammaBarLeft + [HSwToV Stroke]) + y -- 0 jut -- MidJutSide create-glyph "cyrl/ghe.upright.\(suffix)" : glyph-proc @@ -77,30 +77,30 @@ glyph-block Letter-Greek-Upper-Gamma: begin create-glyph "cyrl/gheDescender.upright.\(suffix)" : glyph-proc include [refer-glyph "cyrl/ghe.upright.\(suffix)"] AS_BASE ALSO_METRICS include : CyrDescender.rSideJut - x -- (GammaBarLeft + [HSwToV Stroke]) - y -- 0 + x -- (GammaBarLeft + [HSwToV Stroke]) + y -- 0 jut -- MidJutSide create-glyph "cyrl/gheDHook.upright.\(suffix)" : glyph-proc include [refer-glyph "cyrl/ghe.upright.\(suffix)"] AS_BASE ALSO_METRICS include : PalatalHook.rSideJut - x -- (GammaBarLeft + [HSwToV Stroke]) - y -- 0 + x -- (GammaBarLeft + [HSwToV Stroke]) + y -- 0 jut -- MidJutSide create-glyph "cyrl/Ge.\(suffix)" : glyph-proc include : MarkSet.capital - include : ExtendAboveBaseAnchors (CAP + LongVJut - HalfStroke) + include : ExtendAboveBaseAnchors (CAP + LongVJut - QuarterStroke) include : GammaShape CAP 0 slabType eject-contour 'serifRT' - include : VBar.r (RightSB - OX) CAP (CAP + LongVJut - HalfStroke) + include : VBar.r (RightSB - OX) CAP (CAP + LongVJut - QuarterStroke) VJutStroke create-glyph "cyrl/ge.\(suffix)" : glyph-proc include : MarkSet.e - include : ExtendAboveBaseAnchors (XH + LongVJut - HalfStroke) + include : ExtendAboveBaseAnchors (XH + LongVJut - QuarterStroke) include : GammaShape XH 0 slabType eject-contour 'serifRT' - include : VBar.r (RightSB - OX) XH (XH + LongVJut - HalfStroke) + include : VBar.r (RightSB - OX) XH (XH + LongVJut - QuarterStroke) VJutStroke if para.isItalic : eject-contour 'serifLB' create-glyph "cyrl/GheMidHook.\(suffix)" : glyph-proc @@ -109,7 +109,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin include : MidHook.general left -- (GammaBarLeft + [HSwToV Stroke]) right -- RightSB - top -- (CAP * HBarPos + Stroke / 4) + top -- (CAP * HBarPos + QuarterStroke) ada -- ArchDepthA adb -- ArchDepthB @@ -119,7 +119,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin include : MidHook.general left -- (GammaBarLeft + [HSwToV Stroke]) right -- RightSB - top -- (XH * HBarPos + Stroke / 4) + top -- (XH * HBarPos + QuarterStroke) ada -- (ArchDepthA * (HBarPos ** 0.3)) adb -- (ArchDepthB * (HBarPos ** 0.3)) if para.isItalic : eject-contour 'serifLB' diff --git a/packages/font-glyphs/src/letter/latin-ext/eth.ptl b/packages/font-glyphs/src/letter/latin-ext/eth.ptl index c336a0c126..2e3f531e89 100644 --- a/packages/font-glyphs/src/letter/latin-ext/eth.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/eth.ptl @@ -17,7 +17,7 @@ glyph-block Letter-Latin-Eth : begin define [ArcStartKnots] : list widths.lhs fine - straight.up.mid (RightSB - OX - [HSwToV (Stroke - fine)]) yMid2 + straight.up.mid (RightSB - OX - [HSwToV : Stroke - fine]) yMid2 arch.lhs yMid (swBefore -- fine) g4 (SB + OX) [YSmoothMidL yMid 0 SmallArchDepthA SmallArchDepthB] arch.lhs 0 @@ -34,7 +34,7 @@ glyph-block Letter-Latin-Eth : begin create-glyph 'dInsular.straight-bar' : glyph-proc include : MarkSet.b local yMockBarStart : yMid2 + Stroke * 0.3 - local xTerminal : [mix SB RightSB 0.4] + [HSwToV : 0.5 * Stroke] + local xTerminal : [mix SB RightSB 0.4] + [HSwToV HalfStroke] local pStraightBarStart : 0.75 - (Stroke / Ascender) include : intersection [MaskBelow Ascender] : dispiro ArcStartKnots @@ -46,7 +46,7 @@ glyph-block Letter-Latin-Eth : begin derive-composites 'eth' 0xF0 'dInsular' : dispiro widths.center OverlayStroke - flat [mix SB RightSB 0.1] [mix XH Ascender (-0.05)] + flat [mix SB RightSB 0.1] [mix XH Ascender (-0.05)] curl [mix SB RightSB 0.95] [mix XH Ascender 0.35] create-glyph 'DInsular' 0xA779 : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl index 0dce366198..a957440410 100644 --- a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl @@ -39,7 +39,7 @@ glyph-block Letter-Latin-Ezh : begin 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 + define hookTerminalWidth : sw * ([AdviceStroke 3.5] / Stroke) define xDiagWidth : 1 * sw define yFootHeight : [Math.max (0.15 * (top - bot)) (sw * 0.625)] + 0.4 * sw define yHookDepth : hook + sw * 0.25 @@ -171,7 +171,7 @@ glyph-block Letter-Latin-Ezh : begin terminalShape -- CurlyTailTerminalShape create-glyph "ezhRetroflexHook.\(suffix)" : glyph-proc - include : MarkSet.p + include : MarkSet.e include : EzhShape [DivFrame 1] XH 0 isCursive -- isCursive isSerifed -- isSerifed @@ -188,16 +188,14 @@ glyph-block Letter-Latin-Ezh : begin local df : include : DivFrame para.diversityM 1 include : df.markSet.p local dfSub : DivFrame (0.75 * para.diversityM) 2 - local ada : dfSub.archDepthA SmallArchDepth dfSub.mvs - local adb : dfSub.archDepthB SmallArchDepth dfSub.mvs local [object yMidBar] : include : EzhShape dfSub XH Descender isCursive -- isCursive isSerifed -- isSerifed sw -- dfSub.mvs hook -- Hook - ada -- ada - adb -- adb - local y : [mix yMidBar Descender : pArc ada adb] - 0.5 * dfSub.mvs + ada -- dfSub.smallArchDepthA + adb -- dfSub.smallArchDepthB + local y : [mix yMidBar Descender : pArc dfSub.smallArchDepthA dfSub.smallArchDepthB] - 0.5 * dfSub.mvs include : PalatalHook.r x -- df.rightSB y -- y @@ -218,7 +216,7 @@ glyph-block Letter-Latin-Ezh : begin create-glyph "ezhRetroflexHook/phoneticRight.\(suffix)" : glyph-proc include : MarkSet.p - local b : Math.min (O - SHook) ((-LongVJut) + 0.25 * Stroke) + local b : Math.min (O - SHook) ((-LongVJut) + QuarterStroke) include : EzhShape [DivFrame 1] XH b pLeft -- (4/15) isCursive -- isCursive diff --git a/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl b/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl index 9217889206..688a21a1e0 100644 --- a/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl @@ -16,8 +16,8 @@ glyph-block Letter-Latin-Flattened-Open-A : begin local top : 0.5 * XH local subDf : df.slice 3 2 OX - local ada : Math.min (top - TINY) : subDf.archDepthA SmallArchDepth df.mvs - local adb : Math.min (top - TINY) : subDf.archDepthB SmallArchDepth df.mvs + local ada : Math.min subDf.smallArchDepthA : top - TINY + local adb : Math.min subDf.smallArchDepthB : top - TINY include : dispiro widths.lhs df.mvs diff --git a/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl b/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl index 9d4186365b..f1e73e1465 100644 --- a/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl @@ -17,12 +17,12 @@ glyph-block Letter-Latin-Insular-G : begin local fallArcShape : list {0.25 0.1} {0.5 0.21} {0.75 0.38} local xFirstTurn : [mix SB RightSB 0.3] + [if SLAB 0.75 0.5] * [HSwToV Stroke] - local xIntersection : [mix xFirstTurn RightSB 0.3] - [HSwToV : 0.5 * Stroke] + local xIntersection : [mix xFirstTurn RightSB 0.3] - [HSwToV HalfStroke] - local yIntersection : [mix bot top 0.55] - 0.25 * Stroke + local yIntersection : [mix bot top 0.55] - QuarterStroke local yFirstTurn : [mix yIntersection top 0.32] - 0.2 * Stroke - local yBottomRingLeft : [mix bot yIntersection (0.875 * pl)] + 0.25 * Stroke - local yBottomRingRight : [mix bot yIntersection (0.875 * pr)] + 0.25 * Stroke + local yBottomRingLeft : [mix bot yIntersection (0.875 * pl)] + QuarterStroke + local yBottomRingRight : [mix bot yIntersection (0.875 * pr)] + QuarterStroke local yPhantomBowlEnd : mix bot yIntersection 1.2 include : HBar.t SB RightSB top diff --git a/packages/font-glyphs/src/letter/latin-ext/long-s.ptl b/packages/font-glyphs/src/letter/latin-ext/long-s.ptl index 7689a87cd2..545ee872f7 100644 --- a/packages/font-glyphs/src/letter/latin-ext/long-s.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/long-s.ptl @@ -58,7 +58,7 @@ glyph-block Letter-Latin-Long-S : begin local balance : IBalance2 : DivFrame 1 include : with-transform [Translate balance 0] : glyph-proc include : VBar.m Middle bottom (top - Hook) - include : VerticalHook.m Middle (top - Hook) (-LongJut + balance) (-Hook + HalfStroke) + include : VerticalHook.m Middle (top - Hook) ((-LongJut) + balance) ((-Hook) + HalfStroke) if fSlab : include : union HSerif.lb (Middle - [HSwToV HalfStroke]) bottom (SideJut + balance) HSerif.rb (Middle + [HSwToV HalfStroke]) bottom SideJut @@ -79,7 +79,7 @@ glyph-block Letter-Latin-Long-S : begin HSerif.mt xSerifPos XH serifLength define [LongSBentHookBase y0 m fSlab] : glyph-proc - local xTerminal : RightSB + RBalance2 + [Math.max 0 (m - [StdSmallFBarLeftPos0])] + local xTerminal : RightSB + RBalance2 + [Math.max 0 : m - [StdSmallFBarLeftPos0]] include : dispiro widths.lhs g4 xTerminal (Ascender - Hook) @@ -162,7 +162,7 @@ glyph-block Letter-Latin-Long-S : begin create-glyph "longs.flatHookTailed\(suffix)" : glyph-proc include : MarkSet.bp currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above' - include : LongSShape Ascender Descender (HookX + 0.25 * Stroke) Hook + include : LongSShape Ascender Descender (HookX + QuarterStroke) Hook include : StandardSerifs (Middle - [HSwToV HalfStroke]) serifStyle create-forked-glyph "longsBar.flatHookTailed\(suffix)" : LongSSymmetricOverlayBar Middle @@ -175,7 +175,7 @@ glyph-block Letter-Latin-Long-S : begin currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above' include : union intersection [MaskAbove 0] - LongSShape Ascender Descender (HookX + 0.25 * Stroke) Hook + LongSShape Ascender Descender (HookX + QuarterStroke) Hook SmallFDiagonalTail [DivFrame 1] (Middle - [HSwToV HalfStroke]) StandardSerifs (Middle - [HSwToV HalfStroke]) serifStyle create-forked-glyph "longsBar.flatHookDiagonalTailed\(suffix)" : LongSSymmetricOverlayBar Middle @@ -196,7 +196,7 @@ glyph-block Letter-Latin-Long-S : begin include : MarkSet.bp local m : StdSmallFBarLeftPos true include : LongSBentHookBase (XH / 2) m SLAB_SERIFLESS - include : LongSLowerHalf 1 (m + [HSwToV HalfStroke]) (XH / 2 - O) Descender (HookX + 0.25 * Stroke) Hook Stroke + include : LongSLowerHalf 1 (m + [HSwToV HalfStroke]) (XH / 2 - O) Descender (HookX + QuarterStroke) Hook Stroke include : StandardSerifs m serifStyle create-forked-glyph "longsBar.bentHookTailed\(suffix)" : LongSBentHookOverlayBar m @@ -210,7 +210,7 @@ glyph-block Letter-Latin-Long-S : begin create-glyph "eshBaseline" 0xAB4D : glyph-proc include : MarkSet.b - include : LongSShape Ascender 0 (HookX + 0.25 * Stroke) Hook + include : LongSShape Ascender 0 (HookX + QuarterStroke) Hook select-variant "longs" 0x17F select-variant "longs/compLigLeft" (shapeFrom -- "longs") @@ -226,18 +226,18 @@ glyph-block Letter-Latin-Long-S : begin create-glyph "eshRetroflexHook" 0x1D98 : glyph-proc include : MarkSet.bp - include : LongSShape Ascender 0 (HookX + 0.25 * Stroke) Hook + include : LongSShape Ascender 0 (HookX + QuarterStroke) Hook include : RetroflexHook.l - x -- (Middle - (HookX + 0.25 * Stroke)) + x -- (Middle - (HookX + QuarterStroke)) y -- 0 yOverflow -- Stroke create-glyph "eshRetroflexHook/teshRight" : glyph-proc include : MarkSet.bp - local b : Math.min (2 * O - Stroke) ((-LongVJut) + 0.25 * Stroke) - include : LongSShape Ascender b (HookX + 0.25 * Stroke) Hook + local b : Math.min (2 * O - Stroke) ((-LongVJut) + QuarterStroke) + include : LongSShape Ascender b (HookX + QuarterStroke) Hook include : RetroflexHook.l - x -- (Middle - (HookX + 0.25 * Stroke)) + x -- (Middle - (HookX + QuarterStroke)) y -- b yOverflow -- Stroke @@ -249,7 +249,7 @@ glyph-block Letter-Latin-Long-S : begin # local x2 : mix RightSB m 0.25 # local y2 : Descender + O include : union - LongSUpperHalf 1 (Middle - FBalance) Ascender 0 (HookX + 0.25 * Stroke) Hook + LongSUpperHalf 1 (Middle - FBalance) Ascender 0 (HookX + QuarterStroke) Hook dispiro widths.rhs flat m (-O) [heading Downward] @@ -264,4 +264,4 @@ glyph-block Letter-Latin-Long-S : begin create-glyph "iviby" 0x285 : glyph-proc include : MarkSet.p - include : RevLongSShape XH Descender (HookX + 0.25 * Stroke) Hook + include : RevLongSShape XH Descender (HookX + QuarterStroke) Hook diff --git a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl index 6b6db360ee..e063e1496a 100644 --- a/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl @@ -30,7 +30,8 @@ glyph-block Letter-Latin-Lower-AE-OE : begin do "a subglyphs" define [AAShape body hookStyle pShift df o] : begin local { subDf shift } : SubDfAndShift pShift df o - return : with-transform [ApparentTranslate shift 0] [body subDf hookStyle df.mvs] + return : with-transform [ApparentTranslate shift 0] + body subDf hookStyle df.mvs glyph-block-import Letter-Latin-Lower-A : DoubleStorey define DoubleStoreyConfig : object @@ -62,26 +63,26 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : difference [right] : intersection MaskAbove (XH * OverlayPos * 1.02) union - with-transform [ApparentTranslate (-0.25 * df.mvs) 0] [left] - with-transform [ApparentTranslate (-0.50 * df.mvs) 0] [left] - with-transform [ApparentTranslate (-0.75 * df.mvs) 0] [left] - with-transform [ApparentTranslate (-1.00 * df.mvs) 0] [left] + with-transform [ApparentTranslate ((-0.25) * df.mvs) 0] [left] + with-transform [ApparentTranslate ((-0.50) * df.mvs) 0] [left] + with-transform [ApparentTranslate ((-0.75) * df.mvs) 0] [left] + with-transform [ApparentTranslate ((-1.00) * df.mvs) 0] [left] include : difference [left] : intersection MaskBelow (XH * OverlayPos * 1.02) union - with-transform [ApparentTranslate (+0.25 * df.mvs) 0] [right] - with-transform [ApparentTranslate (+0.50 * df.mvs) 0] [right] - with-transform [ApparentTranslate (+0.75 * df.mvs) 0] [right] - with-transform [ApparentTranslate (+1.00 * df.mvs) 0] [right] + with-transform [ApparentTranslate ((+0.25) * df.mvs) 0] [right] + with-transform [ApparentTranslate ((+0.50) * df.mvs) 0] [right] + with-transform [ApparentTranslate ((+0.75) * df.mvs) 0] [right] + with-transform [ApparentTranslate ((+1.00) * df.mvs) 0] [right] do "o subglyphs" define [oeOPart pShift df top ad] : begin local { subDf shift } : SubDfAndShift pShift df OX return : with-transform [ApparentTranslate shift 0] OShape top 0 subDf.leftSB subDf.rightSB df.mvs - subDf.archDepthA ad df.mvs - subDf.archDepthB ad df.mvs + subDf.archDepthAOf ad df.mvs + subDf.archDepthBOf ad df.mvs create-glyph 'oe/o' : glyph-proc local df : include : DivFrame para.diversityMM 3 @@ -110,16 +111,20 @@ glyph-block Letter-Latin-Lower-AE-OE : begin define [EShape pShift df body] : begin local { subDf shift } : SubDfAndShift pShift df OX - local ada : subDf.archDepthA SmallArchDepth df.mvs - local adb : subDf.archDepthB SmallArchDepth df.mvs - return : with-transform [ApparentTranslate shift 0] [body subDf XH (stroke -- df.mvs) (ada -- ada) (adb -- adb)] + return : with-transform [ApparentTranslate shift 0] + body subDf XH + stroke -- df.mvs + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB define [InvEShape pShift df revbody] : begin local { subDf shift } : SubDfAndShift pShift df OX - local ada : subDf.archDepthA SmallArchDepth df.mvs - local adb : subDf.archDepthB SmallArchDepth df.mvs return : with-transform [ApparentTranslate shift 0] - with-transform [FlipAround subDf.middle (XH / 2)] [revbody subDf XH (stroke -- df.mvs) (ada -- ada) (adb -- adb)] + with-transform [FlipAround subDf.middle (XH / 2)] + revbody subDf XH + stroke -- df.mvs + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB define Config : object flatCrossbar { SmallEShape RevSmallEShape } @@ -143,9 +148,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin define df : DivFrame para.diversityMM 3 define { subDf shift } : SubDfAndShift 1 df 0 - local ada : subDf.archDepthA SmallArchDepth df.mvs - local adb : subDf.archDepthB SmallArchDepth df.mvs - define sg : UShapeGroup ada adb + define sg : UShapeGroup subDf.smallArchDepthA subDf.smallArchDepthB foreach { suffix { Base Slabs } } [Object.entries : SmallUConfigT sg] : do create-glyph "ue/u.\(suffix)" : glyph-proc @@ -164,7 +167,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin set-mark-anchor 'cvDecompose' 0 0 include : difference Base subDf XH df.mvs - intersection [MaskLeft subDf.middle] [MaskAbove (XH - adb)] + intersection [MaskLeft subDf.middle] [MaskAbove (XH - subDf.smallArchDepthB)] include : Slabs subDf XH include : ApparentTranslate shift 0 eject-contour 'serifLT' @@ -173,25 +176,19 @@ glyph-block Letter-Latin-Lower-AE-OE : begin glyph-block-import Letter-Latin-C : CLetterForm CConfig define [openOShape df sty styBot] : new-glyph : glyph-proc - local { subDf } : SubDfAndShift 0 df OX - local ada : subDf.archDepthA SmallArchDepth df.mvs - local adb : subDf.archDepthB SmallArchDepth df.mvs - + local subDf : df.slice 3 2 OX local lf : CLetterForm subDf sty styBot XH 0 - ada -- [subDf.archDepthA SmallArchDepth df.mvs] - adb -- [subDf.archDepthB SmallArchDepth df.mvs] + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB sw -- df.mvs include : lf.full include : FlipAround (subDf.width / 2) (XH / 2) define FLAT-CONNECTION 3 define [EsTeLeftShape subDf styBot] : new-glyph : glyph-proc - local ada : subDf.archDepthA SmallArchDepth subDf.mvs - local adb : subDf.archDepthB SmallArchDepth subDf.mvs - local lf : CLetterForm subDf FLAT-CONNECTION styBot XH 0 - ada -- [subDf.archDepthA SmallArchDepth subDf.mvs] - adb -- [subDf.archDepthB SmallArchDepth subDf.mvs] + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB sw -- subDf.mvs include : lf.full @@ -230,10 +227,16 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 - local { subDf } : SubDfAndShift 0 df + local subDf : df.slice 3 2 local bp : RBarPos XH fSlabBot - include : RevRShape legShape XH (df -- subDf) (slab -- revSlabs) (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (sw -- df.mvs) + include : RevRShape legShape XH + df -- subDf + slab -- revSlabs + legSlab -- doLegSlab + bp -- bp + open -- fOpen + sw -- df.mvs eject-contour 'strokeR' eject-contour 'serifRB' @@ -246,12 +249,12 @@ glyph-block Letter-Latin-Lower-AE-OE : begin create-glyph "cyrl/rha/left.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.p - local { subDf } : SubDfAndShift 0 df + local subDf : df.slice 3 2 set-base-anchor 'cvDecompose' 0 0 include : Body left -- subDf.leftSB - right -- subDf.rightSB + OX + right -- (subDf.rightSB + OX) sw -- df.mvs include : Serifs subDf XH df.mvs include : LeaningAnchor.Below.VBar.l SB @@ -316,7 +319,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : HBar.t subDf.leftSB subDf.rightSB XH subDf.mvs if doTopSerifs : begin - local swVJut : Math.min subDf.mvs (0.625 * (subDf.rightSB - subDf.middle - [HSwToV : 0.5 * subDf.mvs])) + local swVJut : Math.min subDf.mvs : 0.625 * (subDf.rightSB - subDf.middle - [HSwToV : 0.5 * subDf.mvs]) include : VSerif.dr subDf.rightSB XH VJut swVJut if doBottomSerifs : begin local midJutCenter : MidJutCenter * (subDf.width / Width) @@ -371,22 +374,24 @@ glyph-block Letter-Latin-Lower-AE-OE : begin create-glyph "rightHalfSlashOverlay" : glyph-proc local fine : 0.375 * OverlayStroke - local { subDf shift } : SubDfAndShift 1 [DivFrame para.diversityMM 3] OX + local df : DivFrame para.diversityMM 3 + local { subDf shift } : SubDfAndShift 1 df OX include : dispiro - flat (shift + subDf.leftSB + OX + fine) [mix XH 0 1.05] [widths.center : 2 * fine] + flat (shift + subDf.leftSB + OX + fine) [mix XH 0 1.05] [widths.center : 2 * fine] curl (shift + subDf.rightSB - OX - fine) [mix 0 XH 1.05] create-glyph "rightHalfBarOverlay" : glyph-proc - local { subDf shift } : SubDfAndShift 1 [DivFrame para.diversityMM 3] OX - include : HBar.m (shift + subDf.leftSB + OX + 1) (shift + subDf.rightSB - OX - 1) (XH * 0.5) OverlayStroke + local df : DivFrame para.diversityMM 3 + local { subDf shift } : SubDfAndShift 1 df OX + include : HBar.m (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (shift + subDf.rightSB - [HSwToV : 0.5 * df.mvs]) (XH * 0.5) df.mvs define [OODots df kHeight fRound kdr] : glyph-proc - local { subDf shift } : SubDfAndShift 0 df OX + local subDf : df.slice 3 2 OX local space : InnerDot.spaceOfDf subDf - local kHeight2 : [Math.sqrt ([InnerDot.spaceOfDf : DivFrame 1] / space)] * kHeight + local kHeight2 : [Math.sqrt : [InnerDot.spaceOfDf : DivFrame 1] / space] * kHeight local offset : 0.5 * (space + [HSwToV df.mvs]) include : InnerDot (-offset) 0 kHeight2 fRound kdr space 3 - include : InnerDot offset 0 kHeight2 fRound kdr space 3 + include : InnerDot (+offset) 0 kHeight2 fRound kdr space 3 foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do create-glyph "OODots.\(suffix)" : glyph-proc @@ -465,9 +470,9 @@ glyph-block Letter-Latin-Lower-AE-OE : begin refer-glyph ra difference refer-glyph ha - with-transform [ApparentTranslate (-0.25 * df.mvs) 0] [refer-glyph ra] - with-transform [ApparentTranslate (-0.50 * df.mvs) 0] [refer-glyph ra] - with-transform [ApparentTranslate (-0.75 * df.mvs) 0] [refer-glyph ra] - with-transform [ApparentTranslate (-1.00 * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate ((-0.25) * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate ((-0.50) * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate ((-0.75) * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate ((-1.00) * df.mvs) 0] [refer-glyph ra] derive-multi-part-glyphs 'cyrl/rha' 0x517 { 'cyrl/rha/left' 'cyrl/rha/right' } BuildRha diff --git a/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl b/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl index bec136cd90..0f85c48771 100644 --- a/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl @@ -8,29 +8,24 @@ glyph-module glyph-block Letter-Latin-Lower-DB-QP : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : OBarLeft UpwardHookShape SerifFrame - glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift + glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight define [DbCenterShape df] : glyph-proc - local { subDf } : SubDfAndShift 0 df OX - local ada : subDf.archDepthA SmallArchDepth df.mvs - local adb : subDf.archDepthB SmallArchDepth df.mvs - - include : OBarLeft.roundedTop - left -- df.middle - [HSwToV : 0.5 * df.mvs] - right -- df.rightSB - yTerminal -- 0 + local subDf : df.slice 3 2 OX + include : OBarRight.rounded + left -- df.leftSB + right -- (df.middle + [HSwToV : 0.5 * df.mvs]) + yTerminal -- XH sw -- df.mvs - ada -- ada - adb -- adb - include : FlipAround df.middle (XH / 2) + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB include : OBarLeft.rounded - left -- df.middle - [HSwToV : 0.5 * df.mvs] + left -- (df.middle - [HSwToV : 0.5 * df.mvs]) right -- df.rightSB yTerminal -- (XH / 2) sw -- df.mvs - ada -- ada - adb -- adb + ada -- subDf.smallArchDepthA + adb -- subDf.smallArchDepthB create-glyph 'db' 0x238 : glyph-proc local df : include : DivFrame para.diversityMM 3 diff --git a/packages/font-glyphs/src/letter/latin-ext/rhotic.ptl b/packages/font-glyphs/src/letter/latin-ext/rhotic.ptl index b589bb8ed7..7a5a3bf5d8 100644 --- a/packages/font-glyphs/src/letter/latin-ext/rhotic.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/rhotic.ptl @@ -8,30 +8,14 @@ glyph-module glyph-block Letter-Latin-Rhotic : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Mark-Shared-Metrics : markFine - - glyph-block-export ErTail - define [ErTail left y rise w dohook] : glyph-proc - local right Width - local mid : mix left right 0.5 - local sw : fallback w [AdviceStroke 5] - include : dispiro - widths.rhs sw - g2 (left - [HSwToV : 0.5 * sw]) (y) - g2 (mid - [HSwToV : 0.5 * sw]) (y + rise) - include : dispiro - widths.center sw - flat mid (y + rise) [heading Downward] - curl mid (y + [if dohook 0 (rise - 1)]) [heading Downward] - if dohook {[hookend (y - rise) (sw -- sw)]} {[arcvh]} - g4 (right - [if dohook sw 0]) (y - [if dohook (rise * 0.5) rise]) [if dohook nothing [heading Rightward]] + glyph-block-import Letter-Shared-Shapes : RhoticHookShape create-glyph 'rhoticHook' 0x2DE : glyph-proc - include : ErTail (-[HSwToV Stroke]) (XH / 2) (XH * 0.3) Stroke true + include : RhoticHookShape (-[HSwToV Stroke]) Width (XH / 2) (XH * 0.3) Stroke true create-glyph 'rhoticHook/sup' : glyph-proc local sw : [AdviceStroke 3.5] / 0.7 - include : ErTail (-[HSwToV Stroke] - 3 * SB) (XH / 2) (XH * 0.3) sw true + include : RhoticHookShape (-[HSwToV Stroke] - 3 * SB) Width (XH / 2) (XH * 0.3) sw true include : Ungizmo include : Translate (-Middle) (-CAP) include : Scale 0.7 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 a015882cf3..a18dbc1cb2 100644 --- a/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl @@ -7,18 +7,17 @@ glyph-module glyph-block Letter-Latin-Sakha-Yat : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - 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 include : Yeri top - left -- (df.middle - [HSwToV : 0.5 * df.mvs]) - right -- df.rightSB + left -- (df.middle - [HSwToV : 0.5 * df.mvs]) + right -- df.rightSB stroke -- df.mvs - jut -- [Math.min Jut : Jut * 0.75 * df.div] + jut -- [Math.min Jut : Jut * 0.75 * df.div] - local fEnoughSpaceForFullSerifs : MEnoughSpaceForFullSerifs df + local fEnoughSpaceForFullSerifs : df.width > 7 * para.refJut 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) diff --git a/packages/font-glyphs/src/letter/latin-ext/thorn.ptl b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl index e0ceebf733..85a52ef68a 100644 --- a/packages/font-glyphs/src/letter/latin-ext/thorn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl @@ -69,7 +69,7 @@ glyph-block Letter-Latin-Thorn : begin top -- (CAP - [if st Stroke 0]) bot -- (CAP - [yThornBowlBot CAP st]) - create-glyph "ThornStrokeBot.\(suffix)" : glyph-proc + create-glyph "ThornStrokeBottom.\(suffix)" : glyph-proc include [refer-glyph "Thorn.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in x -- xThornLeftStroke @@ -78,7 +78,7 @@ glyph-block Letter-Latin-Thorn : begin select-variant 'Thorn' 0xDE select-variant 'ThornStroke' 0xA764 (follow -- 'Thorn') - select-variant 'ThornStrokeBot' 0xA766 (follow -- 'Thorn') + select-variant 'ThornStrokeBottom' 0xA766 (follow -- 'Thorn') create-glyph 'grek/Sho' 0x3F7 : glyph-proc include : MarkSet.capital diff --git a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl index 7f34158299..32de987cea 100644 --- a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl @@ -31,7 +31,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin define ALetters : object AA { 0xA732 para.diversityMM 'capital' CAP } - smcpAA { null para.diversityT 'e' XH } + smcpAA { null para.diversityM 'e' XH } foreach { prefix { code div mk height } } [Object.entries ALetters] : do foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do @@ -85,7 +85,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin list "\(prefix)/Left" "\(prefix)/LeftMask" "\(prefix)/Right" "\(prefix)/RightMask" function [srcs gr] : glyph-proc define df : DivFrame div 3.5 - define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] + define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) : AdviceStroke 6 define { left leftMask right rightMask } srcs include [refer-glyph left] AS_BASE ALSO_METRICS @@ -102,7 +102,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin derive-multi-part-glyphs 'AO' 0xA734 {"AA/Left" "AA/LeftMask" "OO/right"} function [srcs gr] : glyph-proc define df : DivFrame para.diversityMM 3.5 - define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] + define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) : AdviceStroke 6 define { left leftMask right } srcs include [refer-glyph left] AS_BASE ALSO_METRICS include : difference [refer-glyph right] [refer-glyph leftMask] diff --git a/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl index c154ba34c4..32dcfad518 100644 --- a/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl @@ -73,8 +73,8 @@ glyph-block Letter-Latin-Upper-AE-OE : begin corner eleft 0 define [AEAHalfRoundTop df top eleft sw] : glyph-proc - define ada : df.archDepthA ArchDepth sw - define adb : df.archDepthB ArchDepth sw + define ada : df.archDepthAOf ArchDepth sw + define adb : df.archDepthBOf ArchDepth sw local yMidLeft : if (top > ada + adb) (top - ada) : mix top 0 (ada / (ada + adb)) @@ -94,7 +94,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin include : HSerif.mb (df.leftSB + [HSwToV : 0.5 * sw]) 0 Jut sw match slabKind [Just SLAB-A-TRI] : begin - include : HSerif.lt df.middle top (MidJutSide + [HSwToV : 0.25 * Stroke]) + include : HSerif.lt df.middle top (MidJutSide + [HSwToV QuarterStroke]) [Just SLAB-A-TOP] : begin include : HSerif.lt df.middle top [mix MidJutSide LongJut 0.5] @@ -129,7 +129,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin include : VSerif.ur df.rightSB 0 jutBot swVJut match slabKind [Just SLAB-E-CAPPED] : begin - local fine : swVJut * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * swVJut / Stroke include : VBar.r xMidRight (yBar - jutMid) (yBar + jutMid) fine do "Ya Half" @@ -148,7 +148,13 @@ glyph-block Letter-Latin-Upper-AE-OE : begin local subDf : df.sliceFine 3 2 0.5 [HSwToV : 0.25 * sw] set-base-anchor 'cvDecompose' 0 0 - include : RevRShape legShape CAP (df -- subDf) (slab -- revSlabs) (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (sw -- sw) + include : RevRShape legShape CAP + df -- subDf + slab -- revSlabs + legSlab -- doLegSlab + bp -- bp + open -- fOpen + sw -- sw eject-contour 'strokeR' eject-contour 'serifRT' @@ -177,7 +183,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin set-base-anchor 'cvDecompose' 0 0 include : AEAHalf df bodyShape CAP slabKind create-glyph "smcpAE/AHalf.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityT 3 + define df : include : DivFrame para.diversityM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : AEAHalf df bodyShape XH slabKind @@ -189,7 +195,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin set-mark-anchor 'cvDecompose' 0 0 include : AEEHalf df CAP slabKind create-glyph "smcpAE/EHalf.\(suffix)" : glyph-proc - define df : DivFrame para.diversityT 3 + define df : DivFrame para.diversityM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : AEEHalf df XH slabKind @@ -209,10 +215,10 @@ glyph-block Letter-Latin-Upper-AE-OE : begin define eBarPos DesignParameters.upperEBarPos define sw : Math.min df.mvs : AdviceStroke2 3 3 top df.div define eleft : df.middle - [HSwToV : sw * [if SLAB (1 / 3) (1 / 4)]] - define swVJut : Math.min sw ((df.rightSB - eleft - [HSwToV sw]) * (4 / 5)) + define swVJut : Math.min sw : (df.rightSB - eleft - [HSwToV sw]) * (4 / 5) - define ada : df.archDepthA ArchDepth sw - define adb : df.archDepthB ArchDepth sw + define ada : df.archDepthAOf ArchDepth sw + define adb : df.archDepthBOf ArchDepth sw local xMidRight : df.rightSB - sw / 4 local yBar : top * eBarPos @@ -239,7 +245,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin include : VSerif.ur df.rightSB 0 jutBot swVJut match slabKind [Just SLAB-E-CAPPED] : begin - local fine : swVJut * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * swVJut / Stroke include : VBar.r xMidRight (yBar - jutMid) (yBar + jutMid) fine foreach { suffix { slabKind } } [Object.entries EConfig] : do @@ -248,9 +254,9 @@ glyph-block Letter-Latin-Upper-AE-OE : begin include : df.markSet.capital include : OEShape CAP df slabKind create-glyph "smcpOE.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityT 3 + define df : include : DivFrame para.diversityM 3 include : df.markSet.e include : OEShape XH df slabKind - select-variant 'OE' 0x152 (follow -- 'AE/EHalf') - select-variant 'smcpOE' 0x276 (follow -- 'AE/EHalf') + select-variant 'OE' 0x152 (follow -- 'AE/EHalf') + select-variant 'smcpOE' 0x276 (follow -- 'AE/EHalf') diff --git a/packages/font-glyphs/src/letter/latin-ext/wynn.ptl b/packages/font-glyphs/src/letter/latin-ext/wynn.ptl index 4eb04976a3..fe15e47be6 100644 --- a/packages/font-glyphs/src/letter/latin-ext/wynn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/wynn.ptl @@ -19,7 +19,7 @@ glyph-block Letter-Latin-Wynn : begin define [WynnShape bot top] : glyph-proc include : VBar.l SB bot top - local bowlBottom : 0.5 * Stroke + [mix bot top 0.15] + local bowlBottom : HalfStroke + [mix bot top 0.15] local bowlStartDepth : 0.15 * (top - bowlBottom) local yCounterPesudoBottom : mix bowlBottom top 0.333 diff --git a/packages/font-glyphs/src/letter/latin-ext/yogh.ptl b/packages/font-glyphs/src/letter/latin-ext/yogh.ptl index a5540a59af..9e5b21376e 100644 --- a/packages/font-glyphs/src/letter/latin-ext/yogh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/yogh.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Latin-Yogh : begin define SLAB-CLASSICAL 1 define SLAB-INWARD 2 - define [PhantomBotYOfUpperHalf top bot] : [mix bot top OverlayPos] - 0.25 * Stroke + define [PhantomBotYOfUpperHalf top bot] : [mix bot top OverlayPos] - QuarterStroke define [TopYOfLowerHalf top bot] : [mix bot top OverlayPos] + 0.06 * Stroke define [UpperHalfT sink slab offset top bot] : begin @@ -27,7 +27,7 @@ glyph-block Letter-Latin-Yogh : begin __ : list [g4 SB (top - Hook) [widths.rhs]] [hookstart (top - offset)] g4 (RightSB - offset) yRightHalf alsoThruThem {{0.5 0.8} {0.75 0.92}} important - [if (sink == dispiro) g4 corner] ([mix SB RightSB 0.1] + Stroke * 0.25) yBottomTerminal + [if (sink == dispiro) g4 corner] ([mix SB RightSB 0.1] + QuarterStroke) yBottomTerminal define [LowerHalfT sink top bot] : begin local pyt : mix bot [TopYOfLowerHalf top bot] 1.2 diff --git a/packages/font-glyphs/src/letter/latin/c.ptl b/packages/font-glyphs/src/letter/latin/c.ptl index 316ea8d18f..e0a6ee0a96 100644 --- a/packages/font-glyphs/src/letter/latin/c.ptl +++ b/packages/font-glyphs/src/letter/latin/c.ptl @@ -213,11 +213,11 @@ glyph-block Letter-Latin-C : begin create-glyph "cyrl/esWide.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityT 3 include : df.markSet.e - local desc : (-LongVJut) + HalfStroke + local desc : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors desc local lf : CLetterForm df sty styBot XH desc - ada -- [df.archDepthA SmallArchDepth Stroke] - adb -- [df.archDepthB SmallArchDepth Stroke] + ada -- [df.archDepthAOf SmallArchDepth Stroke] + adb -- [df.archDepthBOf SmallArchDepth Stroke] include : lf.full create-glyph "cHookTop.\(suffix)" : glyph-proc @@ -356,7 +356,7 @@ glyph-block Letter-Latin-C : begin derive-glyphs 'cyrl/The' 0x4AA "cyrl/Es" : function [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS - local desc : (-LongVJut) + HalfStroke + local desc : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors desc include : difference VBar.m [arch.adjust-x.bot Middle] desc (Stroke + O) VJutStroke @@ -373,7 +373,7 @@ glyph-block Letter-Latin-C : begin derive-glyphs 'cyrl/the' 0x4AB "cyrl/es" : function [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS - local desc : (-LongVJut) + HalfStroke + local desc : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors desc include : difference VBar.m [arch.adjust-x.bot Middle] desc (Stroke + O) VJutStroke diff --git a/packages/font-glyphs/src/letter/latin/k.ptl b/packages/font-glyphs/src/letter/latin/k.ptl index 2cd0bb6429..1fd1e40f57 100644 --- a/packages/font-glyphs/src/letter/latin/k.ptl +++ b/packages/font-glyphs/src/letter/latin/k.ptl @@ -26,8 +26,8 @@ glyph-block Letter-Latin-K : begin local kshRight : right + [KBalanceRight true straightBar] local serifLengthAdj : Ok + [HSwToV stroke] return : shape.rSideJut - x -- (kshRight - serifLengthAdj) - y -- 0 + x -- (kshRight - serifLengthAdj) + y -- 0 jut -- (Jut + serifLengthAdj) define [KSlabs mode top left right stroke straightBar] : glyph-proc @@ -46,8 +46,8 @@ glyph-block Letter-Latin-K : begin local kshRightBot : right + [KBalanceRight slabLegs true] local kshRightTop : if fHookTop (kshRightBot - HookX * 0.5 + [HSwToV : 0.5 * stroke]) kshRightBot - local attach (top * 0.42 - stroke) - local attach2 (top * 0.72 + stroke) + local attach : top * 0.42 - stroke + local attach2 : top * 0.72 + stroke set-base-anchor 'trailing' (kshRightBot - Ok) 0 @@ -273,10 +273,10 @@ glyph-block Letter-Latin-K : begin return : sink g4.up.start (dim.arcStartX + offset) dim.arcStartY [widths.rhs.heading dim.arcFine Upward] arch.rhs (top - offset) - sw -- dim.arcStroke + sw -- dim.arcStroke swBefore -- dim.arcFine - swAfter -- dim.arcStroke - p -- dim.pArcTopX + swAfter -- dim.arcStroke + p -- dim.pArcTopX g4.down.mid (dim.arcRightX - offset) (dim.arcRightY - 0.5 * dim.arcRightSlope * [HSwToV dim.arcStroke]) heading {.y dim.arcRightSlope .x HVContrast} @@ -310,7 +310,7 @@ glyph-block Letter-Latin-K : begin define swDiagTail : AdviceStroke 2 (1 - (dim.kshLeft - SB) / Width) define swDiagTailAdj : swDiagTail / [mix 1 HVContrast 0.375] - define xDTGap : 0.10 * (RightSB - SB) - (0.125 + [clamp 0 0.375 (0.5 * (Width / UPM * 2 - 1))]) * swDiagTail + define xDTGap : 0.10 * (RightSB - SB) - (0.125 + [clamp 0 0.375 : 0.5 * (Width / UPM * 2 - 1)]) * swDiagTail define xDTStart : dim.arcTerminalX + [HSwToV swDiagTail] + xDTGap define xDTEnd : dim.kshRight - 0.8 * Hook - [HSwToV : 0.25 * swDiagTail] + xDTGap * 0.625 define tailAngle : Math.min 85 (50 + [Math.atan2 (0.75 * swDiagTail) Hook] / Math.PI * 180) @@ -325,7 +325,7 @@ glyph-block Letter-Latin-K : begin CursiveLoopT spiro-outline (-O) left right stroke top slabLT slabLegs define [KHookTopBar xBarLeft] : TopHook.toRight.lBarInner - x -- xBarLeft + x -- xBarLeft yBot -- 0 yTop -- Ascender @@ -372,7 +372,7 @@ glyph-block Letter-Latin-K : begin create-glyph 'UpperKaiSymbolAttachment' : glyph-proc set-width 0 set-mark-anchor 'trailing' 0 0 - define shapeDepth : 0.8 * Descender - 0.25 * Stroke + define shapeDepth : 0.8 * Descender - QuarterStroke define kSw : mix 1 HVContrast Math.SQRT1_2 include : PointingTo 0 0 shapeDepth shapeDepth : function [mag] : union dispiro @@ -404,7 +404,7 @@ glyph-block Letter-Latin-K : begin create-glyph "KDescender.\(suffix)" : glyph-proc include : MarkSet.capital include : KBaseShape Stroke CAP CyrDescender - include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) + include : ExtendBelowBaseAnchors ((-LongVJut) + QuarterStroke) create-glyph "KStroke.\(suffix)" : glyph-proc include [refer-glyph "K.\(suffix)"] AS_BASE ALSO_METRICS @@ -432,7 +432,7 @@ glyph-block Letter-Latin-K : begin create-glyph "smcpKDescender.\(suffix)" : glyph-proc include : MarkSet.e include : KBaseShape Stroke XH CyrDescender - include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) + include : ExtendBelowBaseAnchors ((-LongVJut) + QuarterStroke) create-glyph "smcpKVBar.\(suffix)" : glyph-proc include : MarkSet.e @@ -508,7 +508,7 @@ glyph-block Letter-Latin-K : begin create-glyph "kDescender.\(suffix)" : glyph-proc include : MarkSet.b include : kBaseShape CyrDescender - include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) + include : ExtendBelowBaseAnchors ((-LongVJut) + QuarterStroke) create-glyph "kPalatalHook.\(suffix)" : glyph-proc include : MarkSet.b diff --git a/packages/font-glyphs/src/letter/latin/lower-a.ptl b/packages/font-glyphs/src/letter/latin/lower-a.ptl index f4690f2380..8ed62f22f5 100644 --- a/packages/font-glyphs/src/letter/latin/lower-a.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-a.ptl @@ -19,10 +19,10 @@ glyph-block Letter-Latin-Lower-A : begin define [ADoubleStoreyStroke df] : AdviceStroke2 2 3 XH df.div define [ADoubleStoreySmoothA df] : begin local sw : ADoubleStoreyStroke df - return : df.archDepthA (ArchDepth * [StrokeWidthBlend 0.9 0.81 sw]) sw + return : df.archDepthAOf (ArchDepth * [StrokeWidthBlend 0.9 0.81 sw]) sw define [ADoubleStoreySmoothB df] : begin local sw : ADoubleStoreyStroke df - return : df.archDepthB (ArchDepth * [StrokeWidthBlend 0.9 0.81 sw]) sw + return : df.archDepthBOf (ArchDepth * [StrokeWidthBlend 0.9 0.81 sw]) sw define [ADoubleStoreyHookAndBarT sink df hookStyle y0 stroke] : begin local isMask : sink == spiro-outline @@ -81,13 +81,13 @@ glyph-block Letter-Latin-Lower-A : begin export : define [Serifless df hookStyle sw] : union HookAndBar df hookStyle 0 sw - Arc df 0 nothing nothing sw + Arc df 0 nothing sw export : define [Serifed df hookStyle sw] : union Serifless df hookStyle sw begin [SerifFrame.fromDf df XH 0].rb.outer export : define [Tailed df hookStyle sw] : union HookAndBar df hookStyle (XH - [ADoubleStoreySmoothB df] + O) sw - Arc df 0 nothing nothing sw + Arc df 0 nothing sw RightwardTailedBar df.rightSB 0 (XH - [ADoubleStoreySmoothB df]) (sw -- [fallback sw : ADoubleStoreyStroke df]) export : define [ToothlessCorner df hookStyle sw] : union HookAndBar df hookStyle DToothlessRise sw @@ -99,7 +99,7 @@ glyph-block Letter-Latin-Lower-A : begin export : define [GetMask shapeFn df sw] : match shapeFn [Just ToothlessCorner] : ArcMask df 1 DToothlessRise sw [Just ToothlessRounded] : ArcMask df 2 [ADoubleStoreySmoothA df] sw - __ : ArcMask df 0 nothing nothing sw + __ : ArcMask df 0 nothing sw glyph-block-export DoubleStoreyConfig define DoubleStoreyConfig : object @@ -147,14 +147,14 @@ glyph-block Letter-Latin-Lower-A : begin right -- df.rightSB sw -- sw fine -- (ShoulderFine * (sw / Stroke)) - ada -- [df.archDepthA SmallArchDepth sw] - adb -- [df.archDepthB SmallArchDepth sw] + ada -- [df.archDepthAOf SmallArchDepth sw] + adb -- [df.archDepthBOf SmallArchDepth sw] export : define [FullBarBody df top bar _sw] : glyph-proc local sw : fallback _sw df.mvs include : EaredBodyImpl df top sw include : bar df top sw - export : define [ScriptCutBody df top bar _sw] : glyph-proc + export : define [TopCutBody df top bar _sw] : glyph-proc local sw : fallback _sw df.mvs include : EaredBodyImpl df top sw include : bar df (top - sw / 2) sw @@ -170,16 +170,16 @@ glyph-block Letter-Latin-Lower-A : begin right -- df.rightSB sw -- sw fine -- (ShoulderFine * (sw / Stroke)) - ada -- [df.archDepthA SmallArchDepth sw] - adb -- [df.archDepthB SmallArchDepth sw] + ada -- [df.archDepthAOf SmallArchDepth sw] + adb -- [df.archDepthBOf SmallArchDepth sw] rise -- DToothlessRise mBlend -- DMBlend include : FlipAround df.middle (top / 2) include : bar df (top - DToothlessRise) sw export : define [EarlessRoundedBody df top bar _sw] : glyph-proc local sw : fallback _sw df.mvs - local ada : df.archDepthA SmallArchDepth sw - local adb : df.archDepthB SmallArchDepth sw + local ada : df.archDepthAOf SmallArchDepth sw + local adb : df.archDepthBOf SmallArchDepth sw include : OBarLeft.rounded top -- top left -- df.leftSB @@ -220,21 +220,21 @@ glyph-block Letter-Latin-Lower-A : begin singleStoreySerifless { SingleStorey.FullBarBody SingleStorey.SeriflessBar } singleStoreyEarlessCornerSerifless { SingleStorey.EarlessCornerBody SingleStorey.SeriflessBar } singleStoreyEarlessRoundedSerifless { SingleStorey.EarlessRoundedBody SingleStorey.SeriflessBar } - singleStoreyScriptCutSerifless { SingleStorey.ScriptCutBody SingleStorey.SeriflessBar } + singleStoreyTopCutSerifless { SingleStorey.TopCutBody SingleStorey.SeriflessBar } singleStoreyTopSerifed { SingleStorey.FullBarBody SingleStorey.TopSerifedBar } singleStoreySerifed { SingleStorey.FullBarBody SingleStorey.BottomSerifedBar } singleStoreyEarlessCornerSerifed { SingleStorey.EarlessCornerBody SingleStorey.BottomSerifedBar } singleStoreyEarlessRoundedSerifed { SingleStorey.EarlessRoundedBody SingleStorey.BottomSerifedBar } - singleStoreyScriptCutSerifed { SingleStorey.ScriptCutBody SingleStorey.BottomSerifedBar } + singleStoreyTopCutSerifed { SingleStorey.TopCutBody SingleStorey.BottomSerifedBar } singleStoreyDoubleSerifed { SingleStorey.FullBarBody SingleStorey.DoubleSerifedBar } singleStoreyTailed { SingleStorey.FullBarBody SingleStorey.TailedBar } singleStoreyEarlessCornerTailed { SingleStorey.EarlessCornerBody SingleStorey.TailedBar } singleStoreyEarlessRoundedTailed { SingleStorey.EarlessRoundedBody SingleStorey.TailedBar } - singleStoreyScriptCutTailed { SingleStorey.ScriptCutBody SingleStorey.TailedBar } + singleStoreyTopCutTailed { SingleStorey.TopCutBody SingleStorey.TailedBar } singleStoreyTailedSerifed { SingleStorey.FullBarBody SingleStorey.TailedSerifedBar } @@ -262,7 +262,7 @@ glyph-block Letter-Latin-Lower-A : begin select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans']) (shapeFrom -- 'a') select-variant 'AScript' 0x2C6D (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans']) - derive-composites 'aScriptRetroflexHook' 0x1D90 'a.singleStoreyScriptCutSerifless' + derive-composites 'aScriptRetroflexHook' 0x1D90 'a.singleStoreyTopCutSerifless' RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke) CreateTurnedLetter 'turnaScript' 0x252 'aScript' HalfAdvance (XH / 2) diff --git a/packages/font-glyphs/src/letter/latin/lower-b.ptl b/packages/font-glyphs/src/letter/latin/lower-b.ptl index 02ac8e85ee..b28a55e8ee 100644 --- a/packages/font-glyphs/src/letter/latin/lower-b.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-b.ptl @@ -16,6 +16,14 @@ glyph-block Letter-Latin-Lower-B : begin OBarLeft.shape VBar.l SB 0 yTop + define [BottomCutBody yTop] : union + OBarLeft.shape + VBar.l SB HalfStroke yTop + spiro-outline + corner SB 0 + corner SB HalfStroke + corner (SB + [HSwToV Stroke]) HalfStroke + define [ToothlessCornerBody yTop] : union OBarLeft.toothless (rise -- DToothlessRise) (mBlend -- DMBlend) VBar.l SB DToothlessRise yTop @@ -31,6 +39,7 @@ glyph-block Letter-Latin-Lower-B : begin toothed ToothedBody toothlessCorner ToothlessCornerBody toothlessRounded ToothlessRoundedBody + bottomCut BottomCutBody object # serifs serifless { no-shape false } motionSerifed { LTSerifs true } @@ -44,7 +53,7 @@ glyph-block Letter-Latin-Lower-B : begin include : Body Ascender include : Serifs include : LeaningAnchor.Above.VBar.l SB - set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay + set-base-anchor 'overlayOnExtension' (SB + [HSwToV HalfStroke]) yOverlay set-base-anchor 'overlay' Middle (XH / 2) create-glyph "bStroke.\(suffix)" : glyph-proc @@ -65,7 +74,7 @@ glyph-block Letter-Latin-Lower-B : begin local xRight : mix SB RightSB 0.9 include : HBar.t xLeft xRight Ascender include : Serifs - if doTS : include : VSerif.dr [mix SB RightSB 0.9] Ascender VJut + if doTS : include : VSerif.dr xRight Ascender VJut include : LeaningAnchor.Above.VBar.m [mix xLeft xRight 0.5] if [not doTS] : create-glyph "bHookTop.\(suffix)" : glyph-proc @@ -103,5 +112,5 @@ glyph-block Letter-Latin-Lower-B : begin OShapeOutline.NoOvershoot XH 0 (SB + BBD + [HSwToV BBS]) RightSB VBar.r (RightSB - BBD - OX) 0 XH BBS include : OBarLeft.shape - left -- SB + BBD - sw -- BBS + left -- (SB + BBD) + sw -- BBS diff --git a/packages/font-glyphs/src/letter/latin/lower-d.ptl b/packages/font-glyphs/src/letter/latin/lower-d.ptl index 30684b2fdd..03004d1d00 100644 --- a/packages/font-glyphs/src/letter/latin/lower-d.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-d.ptl @@ -17,50 +17,50 @@ glyph-block Letter-Latin-Lower-D : begin define [ToothedBody df yTop] : union OBarRight.shape - left -- df.leftSB + left -- df.leftSB right -- df.rightSB - sw -- df.mvs - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + sw -- df.mvs + ada -- df.smallArchDepthA + adb -- df.smallArchDepthB tagged 'rightBar' : VBar.r df.rightSB 0 yTop define [ToothlessCornerBody df yTop] : union OBarRight.toothless - left -- df.leftSB - right -- df.rightSB - sw -- df.mvs - rise -- DToothlessRise + left -- df.leftSB + right -- df.rightSB + sw -- df.mvs + rise -- DToothlessRise mBlend -- DMBlend - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + ada -- df.smallArchDepthA + adb -- df.smallArchDepthB tagged 'rightBar' : VBar.r df.rightSB DToothlessRise yTop define [ToothlessCornerHBBBody df yTop] : union OBarRight.toothless - left -- df.leftSB - right -- df.rightSB - sw -- df.mvs - rise -- DToothlessRise + left -- df.leftSB + right -- df.rightSB + sw -- df.mvs + rise -- DToothlessRise mBlend -- DMBlend - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + ada -- df.smallArchDepthA + adb -- df.smallArchDepthB tagged 'rightBar' : VBar.r df.rightSB 0 yTop define [ToothlessRoundedBody df yTop] : OBarRight.rounded - left -- df.leftSB - right -- df.rightSB - sw -- df.mvs + left -- df.leftSB + right -- df.rightSB + sw -- df.mvs yTerminal -- yTop - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + ada -- df.smallArchDepthA + adb -- df.smallArchDepthB define [TailedBody df yTop] : union OBarRight.shape - left -- df.leftSB + left -- df.leftSB right -- df.rightSB - sw -- df.mvs - ada -- [df.archDepthA SmallArchDepth df.mvs] - adb -- [df.archDepthB SmallArchDepth df.mvs] + sw -- df.mvs + ada -- df.smallArchDepthA + adb -- df.smallArchDepthB RightwardTailedBar df.rightSB 0 yTop define [TopSerif df yTop] : tagged 'serifRT' @@ -95,7 +95,7 @@ glyph-block Letter-Latin-Lower-D : begin if topSerif : include : topSerif df Ascender if bottomSerif : include : bottomSerif df Ascender include : LeaningAnchor.Above.VBar.r df.rightSB - set-base-anchor 'overlayOnExtension' (df.rightSB - [HSwToV : 0.5 * Stroke]) yOverlay + set-base-anchor 'overlayOnExtension' (df.rightSB - [HSwToV HalfStroke]) yOverlay create-glyph "dStroke.\(suffix)" : glyph-proc local df : DivFrame 1 @@ -110,7 +110,7 @@ glyph-block Letter-Latin-Lower-D : begin local xRight : df.rightSB + O include : HBar.t xLeft xRight Ascender if topSerif : begin - include : VSerif.dl xLeft Ascender : Math.min VJut (0.8 * (Ascender - XH)) + include : VSerif.dl xLeft Ascender [Math.min VJut : 0.8 * (Ascender - XH)] if [not para.isItalic] : include : HSerif.rt df.rightSB Ascender SideJut if bottomSerif : include : bottomSerif df Ascender include : LeaningAnchor.Above.VBar.m [mix xLeft xRight 0.5] @@ -132,15 +132,15 @@ glyph-block Letter-Latin-Lower-D : begin eject-contour 'rightBar' include : with-transform [ApparentTranslate (df.width - dfHalf.width) 0] : UpwardHookShape - left -- dfHalf.leftSB - right -- dfHalf.rightSB + left -- dfHalf.leftSB + right -- dfHalf.rightSB ybegin -- Ascender - yend -- (XH / 2) - ada -- [dfHalf.archDepthA SmallArchDepth df.mvs] - adb -- [dfHalf.archDepthB SmallArchDepth df.mvs] - sw -- df.mvs + yend -- (XH / 2) + ada -- [dfHalf.archDepthAOf SmallArchDepth df.mvs] + adb -- [dfHalf.archDepthBOf SmallArchDepth df.mvs] + sw -- df.mvs - if topSerif : include : topSerif dfHalf Ascender + if topSerif : include : topSerif dfHalf Ascender if SLAB : begin local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2 include sf2.rt.full @@ -175,7 +175,7 @@ glyph-block Letter-Latin-Lower-D : begin include : RetroflexHook.rExt RightSB 0 include : LeaningAnchor.Below.VBar.r RightSB - CreateCommaCaronComposition 'dCaron' 0x10F 'dCaronBase' (Width - [HSwToV : 0.25 * Stroke]) + CreateCommaCaronComposition 'dCaron' 0x10F 'dCaronBase' (Width - [HSwToV QuarterStroke]) derive-multi-part-glyphs 'dDot' 0x1E0B {'d' 'dotAbove'} : lambda [srcs gr] : glyph-proc local { base mark } srcs @@ -198,20 +198,20 @@ glyph-block Letter-Latin-Lower-D : begin local fine : AdviceStroke 4 local rinner : clamp (Width * 0.065) (XH * 0.05) (fine * 0.35) local sw : AdviceStroke 2.75 - local m1 : Math.min RightSB (Width - rinner * 2 - fine - OX) + local m : Math.min RightSB (Width - rinner * 2 - fine - OX) - include : LeaningAnchor.Above.VBar.r m1 - include : OBarRight.shape (left -- SB) (right -- m1) (sw -- sw) + include : LeaningAnchor.Above.VBar.r m + include : OBarRight.shape (left -- SB) (right -- m) (sw -- sw) include : dispiro widths.lhs sw - flat (m1 - [HSwToV sw]) Ascender [heading Downward] - curl (m1 - [HSwToV sw]) (rinner * 2 + fine) - CurlyTail.n fine 0 (m1 + rinner * 2 + fine) - x2 -- ([mix SB m1 0.5] - [HSwToV : 0.75 * fine]) - y2 -- 0.37 * Descender + flat (m - [HSwToV sw]) Ascender [heading Downward] + curl (m - [HSwToV sw]) (rinner * 2 + fine) + CurlyTail.n fine 0 (m + rinner * 2 + fine) + x2 -- ([mix SB m 0.5] - [HSwToV : 0.75 * fine]) + y2 -- (0.37 * Descender) swBefore -- sw terminalSlopeAdj -- 0.25 - if fSerif : include : HSerif.lt (m1 - [HSwToV sw]) Ascender SideJut + if fSerif : include : HSerif.lt (m - [HSwToV sw]) Ascender SideJut select-variant 'dCurlyTail' 0x221 @@ -224,5 +224,5 @@ glyph-block Letter-Latin-Lower-D : begin OShapeOutline.NoOvershoot XH 0 SB (RightSB - BBD - [HSwToV BBS]) VBar.l (SB + BBD + OX) 0 XH BBS include : OBarRight.shape - right -- RightSB - BBD - sw -- BBS + right -- (RightSB - BBD) + sw -- BBS diff --git a/packages/font-glyphs/src/letter/latin/lower-e.ptl b/packages/font-glyphs/src/letter/latin/lower-e.ptl index e6bd3a4d62..1585090e47 100644 --- a/packages/font-glyphs/src/letter/latin/lower-e.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-e.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-E : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Letter-Shared : CreateSelectorVariants DefineSelectorGlyph CreateTurnedLetter - glyph-block-import Letter-Shared-Shapes : FlatHookDepth RetroflexHook + glyph-block-import Letter-Shared-Shapes : FlatHookDepth RetroflexHook RhoticHookShape glyph-block-import Letter-Shared-Shapes : SerifedArcEnd InwardSlabArcEnd ArcEndSerif glyph-block-import Mark-Shared-Metrics : markExtend markStroke markStress markFine glyph-block-import Mark-Above : aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack @@ -135,10 +135,10 @@ glyph-block Letter-Latin-Lower-E : begin tailSlab -- tailSlab define shift : Width * (df.div - divSub) if fDesc : begin - local desc : (-LongVJut) + HalfStroke + local desc : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors desc include : difference - VBar.m subDf.middle desc (stroke + O) [AdviceStroke 3.5 df.div] + VBar.m subDf.middle desc (stroke + O) (VJutStroke * subDf.mvs / Stroke) OShapeOutline.NoOvershoot top 0 subDf.leftSB subDf.rightSB stroke include : Translate shift 0 @@ -235,6 +235,19 @@ glyph-block Letter-Latin-Lower-E : begin include [refer-glyph "e.\(suffix)"] AS_BASE ALSO_METRICS include : FlipAround Middle (XH / 2) + create-glyph "schwaRhoticHook.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 1 + include : df.markSet.e + local divSub : Math.min 1 : 0.85 * para.diversityM + local dfSub : DivFrame divSub 2 + local stroke : AdviceStroke2 2 3 XH divSub + include : Body dfSub XH + stroke -- stroke + ada -- [dfSub.archDepthAOf SmallArchDepth stroke] + adb -- [dfSub.archDepthBOf SmallArchDepth stroke] + include : FlipAround dfSub.middle (XH / 2) + include : RhoticHookShape (dfSub.rightSB - [HSwToV : 1.25 * markFine]) df.width (XH * 0.5) (XH * 0.2) + create-glyph "schwaRetroflexHook.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 1 include : df.markSet.e @@ -243,8 +256,8 @@ glyph-block Letter-Latin-Lower-E : begin local stroke : AdviceStroke2 2 3 XH divSub include : Body dfSub XH stroke -- stroke - ada -- [dfSub.archDepthA SmallArchDepth stroke] - adb -- [dfSub.archDepthB SmallArchDepth stroke] + ada -- [dfSub.archDepthAOf SmallArchDepth stroke] + adb -- [dfSub.archDepthBOf SmallArchDepth stroke] include : FlipAround dfSub.middle (XH / 2) include : RetroflexHook.r x -- [mix RightSB df.width 0.5] @@ -261,7 +274,7 @@ glyph-block Letter-Latin-Lower-E : begin create-glyph "eBar.\(suffix)" : glyph-proc include [refer-glyph "e.\(suffix)"] AS_BASE ALSO_METRICS - include : HBar.m [mix SB 0 0.7] [mix RightSB Width 0.7] (XH * 0.25 + Stroke * 0.25) + include : HBar.m [mix SB 0 0.7] [mix RightSB Width 0.7] (XH * 0.25 + QuarterStroke) Math.min (0.25 * (XH - 3 * Stroke)) : AdviceStroke 5 DefineSelectorGlyph "cyrl/Schwa" suffix [DivFrame 1] 'capital' @@ -340,6 +353,7 @@ glyph-block Letter-Latin-Lower-E : begin select-variant 'Schwa' 0x18F select-variant 'schwa' 0x259 + select-variant 'schwaRhoticHook' 0x25A (follow -- 'schwa') select-variant 'schwaRetroflexHook' 0x1D95 (follow -- 'schwa') select-variant 'eRev' 0x258 (follow -- 'e') diff --git a/packages/font-glyphs/src/letter/latin/lower-f.ptl b/packages/font-glyphs/src/letter/latin/lower-f.ptl index 171242b945..4dce418aeb 100644 --- a/packages/font-glyphs/src/letter/latin/lower-f.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-f.ptl @@ -44,21 +44,21 @@ glyph-block Letter-Latin-Lower-F : begin flat counterHookLeft Descender curl [Math.max (barRight - hd.x) (counterHookLeft + TINY)] Descender archv.superness DesignParameters.tightHookSuperness - flat barRight [Math.min 0 (Descender + hd.y)] - curl barRight 0.1 [heading Upward] + flat barRight [Math.min 0 (Descender + hd.y)] [heading Upward] + curl barRight TINY [heading Upward] glyph-block-export SmallFDiagonalTail define [SmallFDiagonalTail df barLeft] : begin local xBarMiddle : barLeft + [HSwToV HalfStroke] return : dispiro - flat xBarMiddle 0.1 [widths.center.heading Stroke Downward] + flat xBarMiddle TINY [widths.center.heading Stroke Downward] 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] - [HSwToV : Stroke * [if barAtCenter 0.45 0.25]] glyph-block-export StdSmallFBarLeftPos0 - define [StdSmallFBarLeftPos0] : [mix SB RightSB 0.35] - [HSwToV : 0.25 * Stroke] + define [StdSmallFBarLeftPos0] : [mix SB RightSB 0.35] - [HSwToV QuarterStroke] define [StandardSmallFShape df m bh counterHook] : glyph-proc local barAtCenter : (counterHook === CH-HOOK) || (counterHook === CH-DIAGONAL-HOOK) @@ -66,7 +66,7 @@ glyph-block Letter-Latin-Lower-F : begin local barLeft : StdSmallFBarLeftPos barAtCenter include : LeaningAnchor.Above.Hook barLeft (df.rightSB + barLeft - barLeft0) - set-base-anchor 'overlay' (barLeft + [HSwToV : 0.5 * Stroke]) (bh / 2) + set-base-anchor 'overlay' (barLeft + [HSwToV HalfStroke]) (bh / 2) include : StdFShapeT dispiro df 0 barLeft0 Stroke include : Translate (barLeft - barLeft0) 0 @@ -105,7 +105,7 @@ glyph-block Letter-Latin-Lower-F : begin [mix crossLeft crossRight 0.42] - [HSwToV : 0.375 * Stroke] local hd : FlatHookDepth df - set-base-anchor 'overlay' (barLeft + [HSwToV : 0.5 * Stroke]) (bh / 2) + set-base-anchor 'overlay' (barLeft + [HSwToV HalfStroke]) (bh / 2) include : LeaningAnchor.Above.Hook barLeft (crossRight + topHookExt) include : dispiro diff --git a/packages/font-glyphs/src/letter/latin/lower-g.ptl b/packages/font-glyphs/src/letter/latin/lower-g.ptl index 16aa1cdf58..2ae6c43f5e 100644 --- a/packages/font-glyphs/src/letter/latin/lower-g.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-g.ptl @@ -19,20 +19,20 @@ glyph-block Letter-Latin-Lower-G : begin include : HBar.m l r currentGlyph.baseAnchors.overlay.y bw # overlay bar width for double-storey g - define obwDoubleStorey : Math.min [AdviceStroke 5] (0.5 / 3 * (CAP - Stroke * 4)) + define obwDoubleStorey : Math.min (0.5 / 3 * (CAP - Stroke * 4)) : AdviceStroke 5 create-glyph 'g.doubleStoreyClosed' : glyph-proc include : MarkSet.p local obot : XH * DesignParameters.gBarPos - O - Stroke * 0.4 include : OShape XH obot SB (RightSB - 0.3 * SB) - local gleftx ([mix 0 SB 0.85] + OX) - local grightx ([mix Width RightSB 0.825] - OX) + local gleftx : [mix 0 SB 0.85] + OX + local grightx : [mix Width RightSB 0.825] - OX local groundy : Math.round : [mix Descender (XH * DesignParameters.gBarPos) 0.64] + HalfStroke local gtipy : [mix groundy (obot + Stroke + O) 1.005] - Stroke * CThin include : dispiro g4.left.start [mix SB RightSB 0.4] gtipy [widths 0 (Stroke * CThin)] - g4 ([mix SB RightSB 0.0575] + Stroke * 0.85) [mix groundy gtipy 0.5] [widths.rhs (Stroke * [mix CThin 1 0.5])] + g4 ([mix SB RightSB 0.0575] + Stroke * 0.85) [mix groundy gtipy 0.5] [widths.rhs : Stroke * [mix CThin 1 0.5]] flat [mix SB RightSB 0.435] groundy [widths.rhs Stroke] curl [mix RightSB SB 0.435] groundy archv 4 @@ -58,13 +58,13 @@ glyph-block Letter-Latin-Lower-G : begin local obot : XH * DesignParameters.gBarPos - O - Stroke * 0.4 include : OShape XH obot SB (RightSB - 0.3 * SB) - local gleftx ([mix 0 SB 0.85] + OX) - local grightx ([mix Width RightSB 0.825] - OX) + local gleftx : [mix 0 SB 0.85] + OX + local grightx : [mix Width RightSB 0.825] - OX local groundy : Math.round : [mix Descender (XH * DesignParameters.gBarPos) 0.64] + HalfStroke local gtipy : [mix groundy (obot + Stroke + O) 1.005] - Stroke * CThin include : dispiro g4.left.start [mix SB RightSB 0.4] gtipy [widths 0 (Stroke * CThin)] - g4 ([mix SB RightSB 0.0575] + Stroke * 0.85) [mix groundy gtipy 0.5] [widths.rhs (Stroke * [mix CThin 1 0.5])] + g4 ([mix SB RightSB 0.0575] + Stroke * 0.85) [mix groundy gtipy 0.5] [widths.rhs : Stroke * [mix CThin 1 0.5]] flat [mix SB RightSB 0.435] groundy [widths.rhs Stroke] curl [mix RightSB SB 0.435] groundy archv 4 @@ -112,15 +112,19 @@ glyph-block Letter-Latin-Lower-G : begin CurlyTail.n fine Descender df.leftSB df.width (Descender + 0.5 * fine) yLoopTop -- (0.15 * Descender + 0.25 * fine) - export : define [ScriptCutBody df top] : glyph-proc + export : define [TopCutBody df top] : glyph-proc include : SeriflessBody df top include : spiro-outline - corner df.rightSB top - corner df.rightSB (top - HalfStroke) + corner df.rightSB top + corner df.rightSB (top - HalfStroke) corner (df.rightSB - [HSwToV Stroke]) (top - HalfStroke) export : define [SeriflessBody df top] : glyph-proc - include : OBarRight.shape (top -- top) (left -- df.leftSB) (right -- df.rightSB) (sw -- df.mvs) + include : OBarRight.shape + top -- top + left -- df.leftSB + right -- df.rightSB + sw -- df.mvs export : define [SerifedBody df top] : glyph-proc include : SeriflessBody df top @@ -128,21 +132,21 @@ glyph-block Letter-Latin-Lower-G : begin export : define [EarlessCornerBody df top] : glyph-proc include : OBarLeft.toothless - top -- top - left -- df.leftSB - right -- df.rightSB - rise -- DToothlessRise + top -- top + left -- df.leftSB + right -- df.rightSB + rise -- DToothlessRise mBlend -- DMBlend - sw -- df.mvs + sw -- df.mvs include : FlipAround df.middle (top / 2) export : define [EarlessRoundedBody df top] : glyph-proc include : OBarLeft.rounded - top -- top - left -- df.leftSB - right -- df.rightSB + top -- top + left -- df.leftSB + right -- df.rightSB yTerminal -- (XH - SmallArchDepthA) - sw -- df.mvs + sw -- df.mvs include : FlipAround df.middle (top / 2) define SingleStoreyConfig : SuffixCfg.weave @@ -155,7 +159,7 @@ glyph-block Letter-Latin-Lower-G : begin earlessCorner { SingleStorey.EarlessCornerBody DToothlessRise } earlessCornerHTB { SingleStorey.EarlessCornerBody 0 } earlessRounded { SingleStorey.EarlessRoundedBody (XH - SmallArchDepthA) } - scriptCut { SingleStorey.ScriptCutBody HalfStroke } + topCut { SingleStorey.TopCutBody HalfStroke } foreach { suffix { hookShape {bodyShape hookStart} } } [Object.entries SingleStoreyConfig] : do create-glyph "g.\(suffix)" : glyph-proc @@ -181,10 +185,10 @@ glyph-block Letter-Latin-Lower-G : begin include : bodyShape dfSub XH include : hookShape dfSub (XH - hookStart) include : PalatalHook.r - x -- df.rightSB - y -- 0 - xLink -- dfSub.rightSB - refSw -- dfSub.mvs + x -- df.rightSB + y -- 0 + xLink -- dfSub.rightSB + refSw -- dfSub.mvs maskOut -- [intersection [MaskBelow 0] [MaskLeft dfSub.rightSB]] create-glyph "gBar.\(suffix)" : glyph-proc @@ -213,8 +217,8 @@ glyph-block Letter-Latin-Lower-G : begin include : MarkSet.p set-base-anchor 'overlay' Middle (XH / 2) define df : DivFrame 1 - include : SingleStorey.ScriptCutBody df XH - include : SingleStorey.CrossedHook df (XH - HalfStroke) + include : SingleStorey.TopCutBody df XH + include : SingleStorey.CrossedHook df (XH - HalfStroke) glyph-block-import Letter-Blackboard : BBS BBD BBBarRight create-glyph 'mathbb/g' 0x1D558 : glyph-proc @@ -223,9 +227,9 @@ glyph-block Letter-Latin-Lower-G : begin OShapeOutline.NoOvershoot XH 0 SB (RightSB - BBD - [HSwToV BBS]) VBar.l (SB + BBD + OX) 0 XH BBS include : OBarRight.shape - left -- SB - right -- RightSB - BBD - sw -- BBS + left -- SB + right -- (RightSB - BBD) + sw -- BBS include : SingleStorey.BentHookT dispiro [DivFrame 1] XH 0 BBS include : HBar.t (RightSB - BBD) RightSB XH BBS include : intersection diff --git a/packages/font-glyphs/src/letter/latin/lower-il.ptl b/packages/font-glyphs/src/letter/latin/lower-il.ptl index d2c005b04f..dce165c77f 100644 --- a/packages/font-glyphs/src/letter/latin/lower-il.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-il.ptl @@ -83,7 +83,7 @@ glyph-block Letter-Latin-Lower-I : begin local tailLength : LongJut * 1.05 * [mix 1 df.div 0.75] local hd : FlatHookDepth df - define xFinal : xMiddle + [Math.max (hd.x - [HSwToV : 0.5 * df.mvs] + 1) tailLength] + 0.5 * df.mvs * TanSlope + define xFinal : xMiddle + [Math.max tailLength : hd.x - [HSwToV : 0.5 * df.mvs] + 1] + 0.5 * df.mvs * TanSlope include : dispiro widths.center df.mvs flat xMiddle top [heading Downward] @@ -99,7 +99,7 @@ glyph-block Letter-Latin-Lower-I : begin local hookScaleX : mix 1 df.div 0.5 local hookScaleY : mix 1 df.div 1.25 local x0 : mix (0.5 * df.mvs) (0.5 * df.mvs + (Hook - df.mvs + 1) * 0.85 * df.div + [IBalance2 df]) hookScaleX - local x1 : mix (0.5 * df.mvs) ([Math.max (Hook - 0.5 * df.mvs + 1) tailLength] + [IBalance2 df]) hookScaleX + local x1 : mix (0.5 * df.mvs) ([Math.max tailLength : Hook - 0.5 * df.mvs + 1] + [IBalance2 df]) hookScaleX include : dispiro widths.center df.mvs flat xMiddle top [heading Downward] @@ -112,7 +112,7 @@ glyph-block Letter-Latin-Lower-I : begin set-base-anchor 'palatalHookMask' (xMiddle + x0) (HalfStroke + O) export : define [ShortTailed df top xMiddle] : glyph-proc - include : RightwardTailedBar (xMiddle + [HSwToV : 0.5 * Stroke]) 0 top + include : RightwardTailedBar (xMiddle + [HSwToV HalfStroke]) 0 top export : define [DiagTailed df top xMiddle] : glyph-proc set-base-anchor 'trailing' (xMiddle + [HSwToV : 0.75 * df.mvs]) 0 @@ -132,7 +132,7 @@ glyph-block Letter-Latin-Lower-I : begin curl xMiddle Hook arcvh flat (xMiddle + Hook - 0.5 * df.mvs) (0.5 * df.mvs) - curl [Math.max df.rightSB (xMiddle + [Math.max HookX (LongJut * 1.05 * df.div)])] (0.5 * df.mvs) [heading Rightward] + curl [Math.max df.rightSB : xMiddle + [Math.max HookX : LongJut * 1.05 * df.div]] (0.5 * df.mvs) [heading Rightward] define Serifs : namespace export : define [Hooky df top xMiddle] : HSerif.lt xMiddle top (LongJut * df.div) Stroke df.mvs @@ -366,22 +366,22 @@ glyph-block Letter-Latin-Lower-I : begin derive-glyphs 'lSlash' 0x142 'l' : lambda [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS local anchor currentGlyph.baseAnchors.overlay - local stretch : Math.sqrt (currentGlyph.advanceWidth / UPM * 2) + local stretch : Math.sqrt : currentGlyph.advanceWidth / UPM * 2 include : FlatSlashShape anchor.x anchor.y (0.5 * OverlayStroke) (0.8 * stretch) (0.4 * stretch) # Curly-tail shape define [CurlyTailShape df fSerif] : glyph-proc local fine : AdviceStroke 3.5 - local rinner : LongJut / 2 - fine / 2 - local m1 : df.middle + [HSwToV HalfStroke] - local x2 : mix SB m1 0.25 - local y2 : - fine + # local rinner : LongJut / 2 - fine / 2 + local m : df.middle + [HSwToV HalfStroke] + # local x2 : mix SB m 0.25 + # local y2 : - fine if fSerif : include : HSerif.lt df.middle Ascender LongJut include : dispiro widths.lhs - flat (m1 - [HSwToV Stroke]) Ascender [heading Downward] - curl (m1 - [HSwToV Stroke]) (fine + rinner * 2) - CurlyTail.n fine 0 (m1 + LongJut) SB 0 + flat (m - [HSwToV Stroke]) Ascender [heading Downward] + curl (m - [HSwToV Stroke]) LongJut + CurlyTail.n fine 0 (m + LongJut) SB 0 create-glyph 'lCurlyTail.serifless' : glyph-proc local df : include : DivFrame para.diversityI diff --git a/packages/font-glyphs/src/letter/latin/lower-m.ptl b/packages/font-glyphs/src/letter/latin/lower-m.ptl index 43efc08a07..25d3b482ff 100644 --- a/packages/font-glyphs/src/letter/latin/lower-m.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-m.ptl @@ -287,16 +287,17 @@ glyph-block Letter-Latin-Lower-M : begin local subDf : df.slice 4 3 0 include : Body subDf XH 0 0 (XH / 2) include : UpwardHookShape - left -- subDf.rightSB - [HSwToV subDf.mvs] - right -- df.rightSB + left -- (subDf.rightSB - [HSwToV subDf.mvs]) + right -- df.rightSB ybegin -- (XH / 2) - yend -- (XH / 2) - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) - sw -- subDf.mvs + yend -- (XH / 2) + ada -- (SmallArchDepthA * 0.6 * df.div) + adb -- (SmallArchDepthB * 0.6 * df.div) + sw -- subDf.mvs include : Serifs subDf XH 0 0 (XH / 2) true false - local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 2 3 - if SLAB : include sf2.rt.full + if SLAB : begin + local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 2 3 + include sf2.rt.full create-glyph "cyrl/tje.italic/base/corner.\(suffix)" : glyph-proc local df : include : DivFrame [mix 1 para.diversityMM 2] 4 @@ -317,7 +318,7 @@ glyph-block Letter-Latin-Lower-M : begin include : MidHook.general left -- subDf.rightSB right -- df.rightSB - top -- XH * 0.625 + df.mvs / 4 + top -- (XH * 0.625 + df.mvs / 4) ada -- ArchDepthA adb -- ArchDepthB sw -- subDf.mvs @@ -338,15 +339,15 @@ glyph-block Letter-Latin-Lower-M : begin alias 'cyrl/te.BGR' null 'cyrl/te.italic' alias 'cyrl/te/reduced.BGR' null 'cyrl/te.italic' alias 'cyrl/teThreeLeg.italic' null 'cyrl/te.italic' - derive-composites 'cyrl/teDescender.italic' null 'cyrl/te.italic/descBase' : do - local df : DivFrame para.diversityMM 3 + + derive-composites 'cyrl/teDescender.italic' null 'cyrl/te.italic/descBase' : let [df : dfM] CyrDescender.rSideJut df.rightSB 0 (refSw -- df.mvs) - derive-composites 'mPalatalHook' 0x1D86 'm/descBase' : do - local df : DivFrame para.diversityMM 3 + + derive-composites 'mPalatalHook' 0x1D86 'm/descBase' : let [df : dfM] PalatalHook.r xLink -- df.rightSB - x -- df.rightSB + SideJut - y -- 0 + x -- (df.rightSB + SideJut) + y -- 0 refSw -- df.mvs select-variant 'meng' 0x271 @@ -456,30 +457,30 @@ glyph-block Letter-Latin-Lower-M : begin HBar.b (xMid - bbd) xMid 0 bbs nShoulder.shape stroke -- bbs - left -- (df.leftSB + bbd + [HSwToV bbs]) - right -- xMid - fine -- ShoulderFine + left -- (df.leftSB + bbd + [HSwToV bbs]) + right -- xMid + fine -- ShoulderFine intersection VBar.r (xMid - bbd) 0 XH bbs nShoulder.mask stroke -- bbs - left -- (df.leftSB + bbd + [HSwToV bbs] + 1) - right -- (xMid - 1) - top -- (XH - 1) - fine -- ShoulderFine + left -- (df.leftSB + bbd + [HSwToV bbs] + 1) + right -- (xMid - 1) + top -- (XH - 1) + fine -- ShoulderFine include : union HBar.b (df.rightSB - bbd) df.rightSB 0 bbs nShoulder.shape leftY0 -- 0 stroke -- bbs - left -- xMid - right -- df.rightSB - fine -- ShoulderFine + left -- xMid + right -- df.rightSB + fine -- ShoulderFine intersection VBar.r (df.rightSB - bbd) 0 XH bbs nShoulder.mask stroke -- bbs - left -- (xMid + 1) - right -- (df.rightSB - 1) - top -- (XH - 1) - fine -- ShoulderFine + left -- (xMid + 1) + right -- (df.rightSB - 1) + top -- (XH - 1) + fine -- ShoulderFine diff --git a/packages/font-glyphs/src/letter/latin/lower-n.ptl b/packages/font-glyphs/src/letter/latin/lower-n.ptl index f747f4a98c..de88c9602d 100644 --- a/packages/font-glyphs/src/letter/latin/lower-n.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-n.ptl @@ -49,11 +49,11 @@ glyph-block Letter-Latin-Lower-N : begin define [EaredBody top left right yBR sw] : glyph-proc include : VBar.l left 0 top sw include : nShoulder.shape - left -- (left + [HSwToV sw]) - right -- right - top -- top + left -- (left + [HSwToV sw]) + right -- right + top -- top bottom -- yBR - fine -- ShoulderFine + fine -- ShoulderFine stroke -- sw define [EarlessCornerBody top left right yBR sw] : glyph-proc @@ -338,14 +338,14 @@ glyph-block Letter-Latin-Lower-N : begin include : HBar.b (df.rightSB - bbd) df.rightSB 0 bbs include : nShoulder.shape stroke -- bbs - left -- (df.leftSB + bbd + [HSwToV bbs]) - right -- df.rightSB - fine -- ShoulderFine + left -- (df.leftSB + bbd + [HSwToV bbs]) + right -- df.rightSB + fine -- ShoulderFine include : intersection VBar.r (df.rightSB - bbd) 0 XH bbs nShoulder.mask stroke -- bbs - left -- (df.leftSB + bbd + [HSwToV bbs] + 1) - right -- (df.rightSB - 1) - top -- (XH - 1) - fine -- ShoulderFine + left -- (df.leftSB + bbd + [HSwToV bbs] + 1) + right -- (df.rightSB - 1) + top -- (XH - 1) + fine -- ShoulderFine diff --git a/packages/font-glyphs/src/letter/latin/lower-p.ptl b/packages/font-glyphs/src/letter/latin/lower-p.ptl index 7d28361846..12fb6222b1 100644 --- a/packages/font-glyphs/src/letter/latin/lower-p.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-p.ptl @@ -62,17 +62,16 @@ glyph-block Letter-Latin-Lower-P : begin foreach { suffix { Body {Serifs doTS doBS} }} [Object.entries PConfig] : do local yOverlay : mix 0 (Descender + [if doBS Stroke 0]) 0.5 - local df : DivFrame 1 create-glyph "p.\(suffix)" : glyph-proc include : MarkSet.p include : Body - include : Serifs df XH + include : Serifs [DivFrame 1] XH include : LeaningAnchor.Below.VBar.l SB - set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay + set-base-anchor 'overlayOnExtension' (SB + [HSwToV HalfStroke]) yOverlay set-base-anchor 'strike' Middle (XH / 2) - create-glyph "pStrokeBot.\(suffix)" : glyph-proc + create-glyph "pStrokeBottom.\(suffix)" : glyph-proc include [refer-glyph "p.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in x -- SB @@ -82,17 +81,17 @@ glyph-block Letter-Latin-Lower-P : begin create-glyph "thorn.\(suffix)" : glyph-proc include : MarkSet.bp include : SmallThornEaredBody - include : Serifs df Ascender + include : Serifs [DivFrame 1] Ascender include : LeaningAnchor.Above.VBar.l SB include : LeaningAnchor.Below.VBar.l SB - set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay + set-base-anchor 'overlayOnExtension' (SB + [HSwToV HalfStroke]) yOverlay set-base-anchor 'strike' Middle (XH / 2) create-glyph "thornStroke.\(suffix)" : glyph-proc include [refer-glyph "thorn.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in SB XH (Ascender - [if doTS Stroke 0]) - create-glyph "thornStrokeBot.\(suffix)" : glyph-proc + create-glyph "thornStrokeBottom.\(suffix)" : glyph-proc include [refer-glyph "thorn.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in x -- SB @@ -102,10 +101,10 @@ glyph-block Letter-Latin-Lower-P : begin create-glyph "pPalatalHook.\(suffix)" : glyph-proc include [refer-glyph "p.\(suffix)"] AS_BASE ALSO_METRICS - local tinyGap : Math.max (Width / 32) [AdviceStroke 24] + local tinyGap : Math.max (Width / 32) : AdviceStroke 24 local xMask : Math.max SB + [HSwToV Stroke] + 2 * tinyGap - SB + [HSwToV : 0.5 * Stroke] + MidJutSide + tinyGap + SB + [HSwToV HalfStroke] + MidJutSide + tinyGap include : PalatalHook.r x -- [mix [arch.adjust-x.bot Middle] RightSB 0.75] @@ -121,15 +120,15 @@ glyph-block Letter-Latin-Lower-P : begin alias 'grek/rho' 0x3C1 'p.earlessRoundedSerifless' - select-variant 'pStrokeBot' 0xA751 (follow -- 'p') + select-variant 'pStrokeBottom' 0xA751 (follow -- 'p') - alias 'grek/rhoStroke' 0x3FC 'pStrokeBot.earlessRoundedSerifless' + alias 'grek/rhoStroke' 0x3FC 'pStrokeBottom.earlessRoundedSerifless' select-variant 'thorn' 0xFE alias 'grek/sho' 0x3F8 'thorn.earedSerifless' select-variant 'thornStroke' 0xA765 (follow -- 'thorn') - select-variant 'thornStrokeBot' 0xA767 (follow -- 'thorn') + select-variant 'thornStrokeBottom' 0xA767 (follow -- 'thorn') derive-glyphs 'cyrl/erTick' 0x48F 'cyrl/er' : lambda [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS @@ -153,5 +152,5 @@ glyph-block Letter-Latin-Lower-P : begin OShapeOutline.NoOvershoot XH 0 (SB + BBD + [HSwToV BBS]) RightSB VBar.r (RightSB - BBD - OX) 0 XH BBS include : OBarLeft.shape - left -- SB + BBD - sw -- BBS + left -- (SB + BBD) + sw -- BBS diff --git a/packages/font-glyphs/src/letter/latin/lower-q.ptl b/packages/font-glyphs/src/letter/latin/lower-q.ptl index 223f559822..11cb4a3cfe 100644 --- a/packages/font-glyphs/src/letter/latin/lower-q.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-q.ptl @@ -34,6 +34,18 @@ glyph-block Letter-Latin-Lower-Q : begin [Just TERMINAL-TAILED] : RightwardTailedBar RightSB bottom top [Just TERMINAL-DIAG] : RDiagTailedBar RightSB bottom top + define [TopCutBody terminal top bottom] : glyph-proc + set-base-anchor 'trailing' (RightSB - markHalfStroke) Descender + include : OBarRight.shape (top -- top) + include : match terminal + [Just TERMINAL-NORMAL] : VBar.r RightSB bottom (top - HalfStroke) + [Just TERMINAL-TAILED] : RightwardTailedBar RightSB bottom (top - HalfStroke) + [Just TERMINAL-DIAG] : RDiagTailedBar RightSB bottom (top - HalfStroke) + include : spiro-outline + corner RightSB top + corner RightSB (top - HalfStroke) + corner (RightSB - [HSwToV Stroke]) (top - HalfStroke) + define [EarlessCornerBody terminal top bottom] : glyph-proc set-base-anchor 'trailing' (RightSB - markHalfStroke) Descender include : OBarLeft.toothless (top -- top) (rise -- DToothlessRise) (mBlend -- DMBlend) @@ -64,6 +76,7 @@ glyph-block Letter-Latin-Lower-Q : begin "" EaredBody earlessCorner EarlessCornerBody earlessRounded EarlessRoundedBody + topCut TopCutBody object # tail straight { TERMINAL-NORMAL false } tailed { TERMINAL-TAILED true } @@ -118,6 +131,6 @@ glyph-block Letter-Latin-Lower-Q : begin OShapeOutline.NoOvershoot XH 0 SB (RightSB - BBD - [HSwToV BBS]) VBar.l (SB + BBD + OX) 0 XH BBS include : OBarRight.shape - left -- SB - right -- RightSB - BBD - sw -- BBS + left -- SB + right -- (RightSB - BBD) + sw -- BBS diff --git a/packages/font-glyphs/src/letter/latin/lower-r.ptl b/packages/font-glyphs/src/letter/latin/lower-r.ptl index 56ac32ad2b..2e778b8437 100644 --- a/packages/font-glyphs/src/letter/latin/lower-r.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-r.ptl @@ -77,7 +77,7 @@ glyph-block Letter-Latin-Lower-R : begin include : LeaningAnchor.Above.Hook mix df.leftSB (xBar - [HSwToV Stroke]) : if doTopSerif 0.5 1 begin df.rightSB - set-base-anchor 'overlay' (xBar - Stroke * 0.25) [mix bottom top 0.5] + set-base-anchor 'overlay' (xBar - QuarterStroke) [mix bottom top 0.5] set-base-anchor 'palatalHookAttach' xBar bottom set-base-anchor 'palatalHookPos' (xBar + [PalatalHook.adviceGap Stroke]) bottom currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above' @@ -88,7 +88,7 @@ glyph-block Letter-Latin-Lower-R : begin include : LeaningAnchor.Below.Hook begin df.leftSB df.width - [mix df.leftSB (xBar - [HSwToV Stroke]) : if doTopSerif 0.5 1] - set-base-anchor 'overlay' (df.width - (xBar - Stroke * 0.25)) [mix bottom top 0.5] + set-base-anchor 'overlay' (df.width - (xBar - QuarterStroke)) [mix bottom top 0.5] currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above' currentGlyph.copyBaseAnchorIfAbsent 'leaningBelow' 'below' @@ -98,7 +98,7 @@ glyph-block Letter-Latin-Lower-R : begin define [object xBar rBottomSerif rTopSerif fine xArchMiddle skew rHookX rHookY hookSuperness] : RDim df md include : dispiro widths.lhs - g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward] + g4.up.start rHookX (XH - rHookY - HalfStroke) [heading Upward] arcvh 32 hookSuperness g4.left.mid (xArchMiddle - CorrectionOMidS * [linreg 72 0.75 108 1 Stroke]) (XH - O) [widths.heading Stroke 0 {.y (-1) .x (-skew)}] archv 32 @@ -141,7 +141,7 @@ glyph-block Letter-Latin-Lower-R : begin define [object xBar xArchMiddle rHookX rHookY hookSuperness rBottomSerif] : RDim df md include : dispiro widths.lhs - g4.up.start rHookX (XH - rHookY - Stroke * 0.5) [heading Upward] + g4.up.start rHookX (XH - rHookY - HalfStroke) [heading Upward] arcvh nothing hookSuperness g4.left.mid (xArchMiddle - CorrectionOMidS) (XH - O) [heading Leftward] g4 (xBar - [HSwToV Stroke]) (XH - DToothlessRise) @@ -161,7 +161,7 @@ glyph-block Letter-Latin-Lower-R : begin define [FlapHooklessShape df md doTopSerif doBottomSerif] : glyph-proc define [object xBar rBottomSerif xArchMiddle] : RDim df md - set-base-anchor 'overlay' (xBar - [HSwToV : 0.5 * Stroke]) (XH / 2) + set-base-anchor 'overlay' (xBar - [HSwToV HalfStroke]) (XH / 2) include : dispiro widths.lhs g4.left.start (xArchMiddle - CorrectionOMidS * [linreg 72 0.75 108 1 Stroke]) (XH - O) @@ -227,12 +227,12 @@ glyph-block Letter-Latin-Lower-R : begin create-glyph "fInsular.\(suffix)" : glyph-proc include [refer-glyph "rLongLeg.\(suffix)"] AS_BASE ALSO_METRICS define [object xBar rHookX] : RDim df mode - include : HBar.b xBar (rHookX - [Math.max (0.15 * (df.rightSB - df.leftSB)) [HSwToV : 0.25 * Stroke]]) 0 + include : HBar.b xBar (rHookX - [Math.max (0.15 * (df.rightSB - df.leftSB)) [HSwToV QuarterStroke]]) 0 create-glyph "FInsular.\(suffix)" : glyph-proc include [refer-glyph "rCapLongLeg.\(suffix)"] AS_BASE ALSO_METRICS define [object xBar rHookX] : RDim df mode - include : HBar.b xBar (rHookX - [Math.max (0.15 * (df.rightSB - df.leftSB)) [HSwToV : 0.25 * Stroke]]) 0 + include : HBar.b xBar (rHookX - [Math.max (0.15 * (df.rightSB - df.leftSB)) [HSwToV QuarterStroke]]) 0 create-glyph "rPalatalHook.\(suffix)" : glyph-proc include [refer-glyph "r.\(suffix)"] AS_BASE ALSO_METRICS @@ -321,6 +321,12 @@ glyph-block Letter-Latin-Lower-R : begin select-variant 'rTurnLongLegRTail' 0x1DF08 (follow -- 'rTurnRTail') select-variant 'rPalatalHook' 0x1D89 (follow -- 'r') + select-variant 'rFlap' 0x27E (shapeFrom -- 'r') + CreateAccentedComposition 'rFlapTildeOver' 0x1D73 'rFlap' 'tildeOver' + + select-variant 'rTurnPalatalHook' 0x1DF15 (follow -- 'rTurnRTail') + select-variant 'rFlapPalatalHook' 0x1DF16 (shapeFrom -- 'rPalatalHook') (follow -- 'rFlap') + define [BBRShape df md doTopSerif doBottomSerif] : glyph-proc define [object xBar fine xArchMiddle skew rHookX rHookY hookSuperness] : RDim df md BBD BBS include : dispiro @@ -336,9 +342,3 @@ glyph-block Letter-Latin-Lower-R : begin create-glyph 'mathbb/r' 0x1D563 : glyph-proc include : dfR.markSet.e include : BBRShape dfN rStraight 0 0 - - select-variant 'rFlap' 0x27E (shapeFrom -- 'r') - CreateAccentedComposition 'rFlapTildeOver' 0x1D73 'rFlap' 'tildeOver' - - select-variant 'rTurnPalatalHook' 0x1DF15 (follow -- 'rTurnRTail') - select-variant 'rFlapPalatalHook' 0x1DF16 (shapeFrom -- 'rPalatalHook') (follow -- 'rFlap') diff --git a/packages/font-glyphs/src/letter/latin/lower-t.ptl b/packages/font-glyphs/src/letter/latin/lower-t.ptl index e513d13f9a..a042f6bd05 100644 --- a/packages/font-glyphs/src/letter/latin/lower-t.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-t.ptl @@ -21,7 +21,7 @@ glyph-block Letter-Latin-Lower-T : begin define SYM-PR-BALANCED 3 define dfNarrowT : DivFrame para.diversityF - define [xSmallTBarLeftT df] : df.middle - TBalance * (df.div ** 2) - [HSwToV HalfStroke] + define [xSmallTBarLeftT df] : df.middle - (df.div ** 2) * TBalance - [HSwToV HalfStroke] define [xSmallTCrossRefT df] : [xSmallTBarLeftT df] + df.div * TBalance2 + [HSwToV HalfStroke] define yCrossBar XH @@ -40,7 +40,7 @@ glyph-block Letter-Latin-Lower-T : begin define [XHookTerminal df sym] : match sym [Just SYM-LEFT] df.rightSB - __ : [BarLeftPos df sym] + [Math.max ((df.width - df.leftSB * 2) * 0.75 + [HSwToV : 0.25 * Stroke]) [HSwToV : 2.25 * Stroke]] + __ : [BarLeftPos df sym] + [Math.max ((df.width - df.leftSB * 2) * 0.75 + [HSwToV QuarterStroke]) [HSwToV : 2.25 * Stroke]] export : define [HookShapeT sink df sym offset top bot sw] : begin local xLeft : BarLeftPos df sym @@ -121,7 +121,7 @@ glyph-block Letter-Latin-Lower-T : begin export : define [BarLeftPos df sym] : match sym [Just SYM-LEFT] : mix df.leftSB [xSmallTBarLeftT df] 0.5 [Just SYM-BALANCED] : [mix [CrossLeft df] [CrossRight df] 0.42] - [HSwToV : 0.375 * Stroke] - ([Just SYM-PR-LEFT] || [Just SYM-PR-BALANCED]) : df.middle - [HSwToV : 0.5 * Stroke] + ([Just SYM-PR-LEFT] || [Just SYM-PR-BALANCED]) : df.middle - [HSwToV HalfStroke] export : define [Body df sym top bot] : Impl NORMAL df sym top bot 0 export : define [Retroflex df sym top bot] : Impl RETROFLEX df sym top bot 0 @@ -321,7 +321,7 @@ glyph-block Letter-Latin-Lower-T : begin return : dispiro widths.lhs stroke flat [xSmallTBarLeftT df] top [heading Downward] - curl [xSmallTBarLeftT df] XH [heading Downward] + curl [xSmallTBarLeftT df] XH [heading Downward] alsoThru.g2 0.5 0.5 [widths.center stroke] g4 df.rightSB (archDepth) [widths.rhs stroke] match sb diff --git a/packages/font-glyphs/src/letter/latin/lower-y.ptl b/packages/font-glyphs/src/letter/latin/lower-y.ptl index 7795d76001..97b905de3a 100644 --- a/packages/font-glyphs/src/letter/latin/lower-y.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-y.ptl @@ -46,9 +46,9 @@ glyph-block Letter-Latin-Lower-Y : begin local pds 0.1 local pds2 0.01 local slabyvx 0.625 - local ds0 : (top - bottom) * pds + local ds0 : (top - bottom) * pds local ds20 : (top - bottom) * pds2 - local ds : if slabCurly [Math.max [AdviceStroke2 3 6 (top - bottom)] ds0] ds0 + local ds : if slabCurly [Math.max ds0 : AdviceStroke2 3 6 (top - bottom)] ds0 local ds2 : if slabCurlyNoTurnB ds : ds20 + [if bottomIsNotVertical (slabysize * slabyvx) 0] return {ds ds2} @@ -131,11 +131,11 @@ glyph-block Letter-Latin-Lower-Y : begin curl [mix me.yrstroker joinX ((top - bottom) / (top - joinY))] bottom [widths.rhs.heading ([me.diagCor (top - bottom)] * Stroke) Downward] (bottomShape == BS-LOOP) : begin local joinHeight1 : me.yJoinHeight top bottom - local k : 1 / [Math.sin : Math.atan2 (joinX - Middle) (joinY - joinHeight1)] - 0.25 - local joinHeight3 : [Math.abs k] * Stroke + joinHeight1 - local deltaX : Math.max yBottomJut [HSwToV : 1.2 * Stroke] + local k : Math.abs : 1 / [Math.sin : Math.atan2 (joinX - Middle) (joinY - joinHeight1)] - 0.25 + local joinHeight3 : k * Stroke + joinHeight1 + local deltaX : Math.max yBottomJut : HSwToV : 1.2 * Stroke local fine : AdviceStroke 3 - local xLoopLeft : Math.min [Math.max (SB * -0.25) [mix joinX (me.yrstrokel - deltaX) 2]] (joinX - 1.5 * [HSwToV fine]) + local xLoopLeft : Math.min (joinX - [HSwToV : 1.5 * fine]) : Math.max ((-0.25) * SB) : mix joinX (me.yrstrokel - deltaX) 2 local xCenter : mix xLoopLeft joinX 0.5 list ConnectZ me.yshrink @@ -343,10 +343,10 @@ glyph-block Letter-Latin-Lower-Y : begin define Cursive : namespace export : define [Arc top bottom] : uBowl.shape - top -- top + top -- top bottom -- bottom - left -- SB - right -- (RightSB - [HSwToV Stroke]) + left -- SB + right -- (RightSB - [HSwToV Stroke]) export : define [Hook y0 bottom] : dispiro widths.rhs @@ -443,14 +443,14 @@ glyph-block Letter-Latin-Lower-Y : begin include : intersection spiro-outline corner [mix RightSB Middle (-1)] [mix XH 0 (-1)] - corner [mix RightSB Middle (2)] [mix XH 0 (2)] - corner (-Width * 2) [mix XH 0 (2)] - corner (-Width * 2) [mix XH 0 (-1)] + corner [mix RightSB Middle (+2)] [mix XH 0 (+2)] + corner ((-2) * Width) [mix XH 0 (+2)] + corner ((-2) * Width) [mix XH 0 (-1)] Rect XH Descender (-Width) (2 * Width) union - ExtLineCenter 1 BBS SB XH (Middle - 0.25 * kDiag * BBD) 0 - ExtLineCenter 1 BBS (SB + kDiag * BBD) XH (Middle + 0.75 * kDiag * BBD) 0 + ExtLineCenter 1 BBS SB XH (Middle - 0.25 * kDiag * BBD) 0 + ExtLineCenter 1 BBS (SB + kDiag * BBD) XH (Middle + 0.75 * kDiag * BBD) 0 include : intersection Rect XH Descender (-Width) (2 * Width) - ExtLineCenter 1 BBS RightSB XH Middle 0 + ExtLineCenter 1 BBS RightSB XH Middle 0 diff --git a/packages/font-glyphs/src/letter/latin/o.ptl b/packages/font-glyphs/src/letter/latin/o.ptl index ebb74962e5..d566e4974d 100644 --- a/packages/font-glyphs/src/letter/latin/o.ptl +++ b/packages/font-glyphs/src/letter/latin/o.ptl @@ -40,25 +40,19 @@ glyph-block Letter-Latin-O : begin create-glyph 'cyrl/Uk/O' : glyph-proc local df : include : DivFrame para.diversityF 2 include : df.markSet.capital - local ada : df.archDepthA ArchDepth df.mvs - local adb : df.archDepthB ArchDepth df.mvs - include : OShape CAP 0 df.leftSB df.rightSB df.mvs ada adb + include : OShape CAP 0 df.leftSB df.rightSB df.mvs df.archDepthA df.archDepthB create-glyph 'cyrl/uk/o' : glyph-proc local df : include : DivFrame para.diversityF 2 include : df.markSet.e - local ada : df.archDepthA SmallArchDepth df.mvs - local adb : df.archDepthB SmallArchDepth df.mvs - include : OShape XH 0 df.leftSB df.rightSB df.mvs ada adb + include : OShape XH 0 df.leftSB df.rightSB df.mvs df.smallArchDepthA df.smallArchDepthB create-glyph 'cyrl/oNarrow' 0x1C82 : glyph-proc local df : include : DivFrame para.diversityF 2 include : df.markSet.e local subDf : DivFrame (5 / 6) 2 - local ada : subDf.archDepthA SmallArchDepth subDf.mvs - local adb : subDf.archDepthB SmallArchDepth subDf.mvs include : with-transform [ApparentTranslate (0.5 * (df.width - subDf.width)) 0] - OShape XH 0 subDf.leftSB subDf.rightSB subDf.mvs ada adb + OShape XH 0 subDf.leftSB subDf.rightSB subDf.mvs subDf.smallArchDepthA subDf.smallArchDepthB define rBroadOn : DotRadius * [StrokeWidthBlend 1.625 1] create-glyph 'cyrl/BroadOn' 0x47A : glyph-proc @@ -68,9 +62,7 @@ glyph-block Letter-Latin-O : begin local gap : Math.min Math.max (0.25 * dist) [HSwToV : Math.SQRT2 * rBroadOn] Math.max (dist - [HSwToV : 3 * df.mvs]) [HSwToV df.mvs] - local ada : df.archDepthA ArchDepth df.mvs - local adb : df.archDepthB ArchDepth df.mvs - include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs ada adb gap + include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs df.archDepthA df.archDepthB gap include : DotAt df.middle (df.mvs / 2 + O) rBroadOn include : DotAt df.middle (CAP - df.mvs / 2 - O) rBroadOn @@ -81,9 +73,7 @@ glyph-block Letter-Latin-O : begin local gap : Math.min Math.max (0.25 * dist) [HSwToV : Math.SQRT2 * rBroadOn] Math.max (dist - [HSwToV : 3 * df.mvs]) [HSwToV df.mvs] - local ada : df.archDepthA SmallArchDepth df.mvs - local adb : df.archDepthB SmallArchDepth df.mvs - include : OShapeFlatTB XH 0 df.leftSB df.rightSB df.mvs ada adb gap + include : OShapeFlatTB XH 0 df.leftSB df.rightSB df.mvs df.smallArchDepthA df.smallArchDepthB gap include : DotAt df.middle (df.mvs / 2 + O) rBroadOn include : DotAt df.middle (XH - df.mvs / 2 - O) rBroadOn @@ -138,12 +128,20 @@ glyph-block Letter-Latin-O : begin curl (XH - SB - O - fine) [mix 0 Width 1.05] create-glyph 'Obar' 0x19F : glyph-proc - include [refer-glyph 'O'] AS_BASE - include : HBar.m (SB + OX + 1) (RightSB - OX - 1) (CAP * 0.5) OverlayStroke + include : MarkSet.capital + local stroke : AdviceStroke2 2 3 CAP + include : OShape CAP 0 SB RightSB stroke ArchDepthA ArchDepthB + include : intersection + OShapeOutline.NoOvershoot CAP 0 SB RightSB stroke ArchDepthA ArchDepthB + HBar.m (SB + OX) (RightSB - OX) (CAP * 0.5) stroke create-glyph 'obar' 0x275 : glyph-proc - include [refer-glyph 'o'] AS_BASE - include : HBar.m (SB + OX + 1) (RightSB - OX - 1) (XH * 0.5) OverlayStroke + include : MarkSet.e + local stroke : AdviceStroke2 2 3 XH + include : OShape XH 0 SB RightSB stroke nothing nothing + include : intersection + OShapeOutline.NoOvershoot XH 0 SB RightSB stroke nothing nothing + HBar.m (SB + OX) (RightSB - OX) (XH * 0.5) stroke alias 'grek/capSymbolTheta' 0x3F4 'Obar' @@ -158,16 +156,24 @@ glyph-block Letter-Latin-O : begin alias 'bullEye' 0x298 'cyrl/OMonocular' create-glyph 'cyrl/OCross' 0xA69A : glyph-proc - include [refer-glyph 'O'] AS_BASE - local fine ([StrokeWidthBlend 1 0.5] * OverlayStroke) - include : HBar.m (SB + OX + 1) (RightSB - OX - 1) (CAP * 0.5) fine - include : VBar.m Middle (O + 1) (CAP - O - 1) fine + include : MarkSet.capital + local stroke : AdviceStroke2 3 3 CAP + include : OShape CAP 0 SB RightSB stroke ArchDepthA ArchDepthB + include : intersection + OShapeOutline.NoOvershoot CAP 0 SB RightSB stroke ArchDepthA ArchDepthB + union + HBar.m (SB + OX) (RightSB - OX) (CAP * 0.5) stroke + VBar.m Middle O (CAP - O) [Math.min stroke : VSwToH : (RightSB - SB) / 2 - [HSwToV stroke]] create-glyph 'cyrl/oCross' 0xA69B : glyph-proc - include [refer-glyph 'o'] AS_BASE - local fine ([StrokeWidthBlend 1 0.5] * OverlayStroke) - include : HBar.m (SB + OX + 1) (RightSB - OX - 1) (XH * 0.5) fine - include : VBar.m Middle (O + 1) (XH - O - 1) fine + include : MarkSet.e + local stroke : AdviceStroke2 3 3 XH + include : OShape XH 0 SB RightSB stroke nothing nothing + include : intersection + OShapeOutline.NoOvershoot XH 0 SB RightSB stroke nothing nothing + union + HBar.m (SB + OX) (RightSB - OX) (XH * 0.5) stroke + VBar.m Middle O (XH - O) [Math.min stroke : VSwToH : (RightSB - SB) / 2 - [HSwToV stroke]] create-glyph 'romanThousandCD' 0x2180 : glyph-proc local df : include : DivFrame para.diversityMM 3 @@ -233,9 +239,9 @@ glyph-block Letter-Latin-O : begin include : dispiro widths.rhs flat (SB + OX) (XH / 2) [heading Upward] - curl (SB + OX) (XH - [Math.min (XH / 2 - TINY) SmallArchDepthA]) + curl (SB + OX) (XH - [Math.min SmallArchDepthA : XH / 2 - TINY]) arch.rhs XH - flat (RightSB - OX) (XH - [Math.min (XH / 2 - TINY) SmallArchDepthB]) + flat (RightSB - OX) (XH - [Math.min SmallArchDepthB : XH / 2 - TINY]) curl (RightSB - OX) (XH / 2) [heading Downward] create-glyph 'olowerhalf' 0x1D17 : glyph-proc @@ -243,9 +249,9 @@ glyph-block Letter-Latin-O : begin include : dispiro widths.lhs flat (SB + OX) (XH / 2) [heading Downward] - curl (SB + OX) [Math.min (XH / 2 - TINY) SmallArchDepthB] + curl (SB + OX) [Math.min SmallArchDepthB : XH / 2 - TINY] arch.lhs 0 - flat (RightSB - OX) [Math.min (XH / 2 - TINY) SmallArchDepthA] + flat (RightSB - OX) [Math.min SmallArchDepthA : XH / 2 - TINY] curl (RightSB - OX) (XH / 2) [heading Upward] create-glyph 'oWithLightCentralizationStroke' : glyph-proc @@ -284,18 +290,18 @@ glyph-block Letter-Latin-O : begin create-glyph 'OPolish' 0xA7C0 : glyph-proc include [refer-glyph 'O'] AS_BASE include : MarkSet.capital - include : ExtendAboveBaseAnchors (CAP + LongVJut - HalfStroke) - include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) - include : VBar.m Middle CAP (CAP + LongVJut - HalfStroke) - include : VBar.m Middle (-LongVJut + HalfStroke) 0 + include : ExtendAboveBaseAnchors (CAP + LongVJut - QuarterStroke) + include : ExtendBelowBaseAnchors (0 - LongVJut + QuarterStroke) + include : VBar.m Middle CAP (CAP + LongVJut - QuarterStroke) VJutStroke + include : VBar.m Middle 0 (0 - LongVJut + QuarterStroke) VJutStroke create-glyph 'oPolish' 0xA7C1 : glyph-proc include [refer-glyph 'o'] AS_BASE include : MarkSet.e - include : ExtendAboveBaseAnchors (XH + LongVJut - HalfStroke) - include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) - include : VBar.m Middle XH (XH + LongVJut - HalfStroke) - include : VBar.m Middle (-LongVJut + HalfStroke) 0 + include : ExtendAboveBaseAnchors (XH + LongVJut - QuarterStroke) + include : ExtendBelowBaseAnchors (0 - LongVJut + QuarterStroke) + include : VBar.m Middle XH (XH + LongVJut - QuarterStroke) VJutStroke + include : VBar.m Middle 0 (0 - LongVJut + QuarterStroke) VJutStroke derive-composites 'oRetroflexHook' 0x1DF1B 'o' : RetroflexHook.l x -- [mix [arch.adjust-x.bot Middle] SB 0.75] @@ -308,7 +314,7 @@ glyph-block Letter-Latin-O : begin include : intersection OShapeOutline.NoOvershoot CAP 0 SB RightSB BBS ArchDepthA ArchDepthB union - VBar.l (SB + OX + BBD) 0 CAP BBS + VBar.l (SB + OX + BBD) 0 CAP BBS VBar.r (RightSB - OX - BBD) 0 CAP BBS create-glyph 'mathbb/o' 0x1D560 : glyph-proc @@ -317,5 +323,5 @@ glyph-block Letter-Latin-O : begin include : intersection OShapeOutline.NoOvershoot XH 0 SB RightSB BBS union - VBar.l (SB + OX + BBD) 0 XH BBS + VBar.l (SB + OX + BBD) 0 XH BBS VBar.r (RightSB - OX - BBD) 0 XH BBS diff --git a/packages/font-glyphs/src/letter/latin/s.ptl b/packages/font-glyphs/src/letter/latin/s.ptl index 78ceab8e38..68a86327f6 100644 --- a/packages/font-glyphs/src/letter/latin/s.ptl +++ b/packages/font-glyphs/src/letter/latin/s.ptl @@ -404,12 +404,11 @@ glyph-block Letter-Latin-S : begin local fine : sw * [mix CThinB 1 0.6] local hd : FlatHookDepth DfCapital local yStart : XH - [ArcStartSerifDepth SHook] - local neckLength : 0.5 * Stroke local leftExt : 0.3 * (RightSB - SB) - [HSwToV : 0.25 * sw] include : dispiro widths.rhs fine - flat (RightSB - [HSwToV fine]) yStart [heading Upward] - curl (RightSB - [HSwToV fine]) (yStart + neckLength) [heading Upward] + flat (RightSB - [HSwToV fine]) yStart [heading Upward] + curl (RightSB - [HSwToV fine]) (yStart + HalfStroke) [heading Upward] alsoThru.g2 0.5 0.5 [widths.center : mix fine sw 0.35] g4 (RightSB - leftExt) [Math.min (Ascender - 1.375 * sw) : mix XH Ascender 0.5] [widths.lhs : mix fine sw 0.7] arcvh diff --git a/packages/font-glyphs/src/letter/latin/u.ptl b/packages/font-glyphs/src/letter/latin/u.ptl index 2023109056..08990a7345 100644 --- a/packages/font-glyphs/src/letter/latin/u.ptl +++ b/packages/font-glyphs/src/letter/latin/u.ptl @@ -8,13 +8,10 @@ glyph-module glyph-block Letter-Latin-U : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared : CreateAccentedComposition SetGrekUpperTonos glyph-block-import Letter-Shared-Shapes : uBowl RightwardTailedBar DToothlessRise SerifFrame - glyph-block-import Letter-Shared-Shapes : CyrDescender CyrTailDescender RetroflexHook VerticalHook TopHook - - glyph-block-export UShape USerifs + glyph-block-import Letter-Shared-Shapes : CyrDescender CyrTailDescender RetroflexHook TopHook define [UArcT] : with-params [sink df top bottom [stroke Stroke] [ada ArchDepthA] [adb ArchDepthB] [offset 0]] : sink widths.lhs stroke @@ -24,14 +21,15 @@ glyph-block Letter-Latin-U : begin flat (df.rightSB - offset) (bottom + ada + offset) [if (sink == spiro-outline) corner curl] (df.rightSB - offset) top [heading Upward] + glyph-block-export UShape define [UShape] : with-params [df top bottom [stroke Stroke] [ada ArchDepthA] [adb ArchDepthB] [offset 0]] : glyph-proc include : UArcT dispiro - df -- df - top -- top + df -- df + top -- top bottom -- bottom stroke -- stroke - ada -- ada - adb -- adb + ada -- ada + adb -- adb offset -- offset glyph-block-export UShapeGroup @@ -39,28 +37,28 @@ glyph-block Letter-Latin-U : begin export : define [Toothed df top sw fHookLeft fShortLeg] : glyph-proc set-base-anchor 'trailing' df.rightSB 0 include : uBowl.shape - top -- (top - [if fHookLeft (TailY + HalfStroke) 0]) + top -- (top - [if fHookLeft (TailY + HalfStroke) 0]) bottom -- 0 - left -- df.leftSB - right -- (df.rightSB - [HSwToV sw]) + left -- df.leftSB + right -- (df.rightSB - [HSwToV sw]) stroke -- sw - fine -- ShoulderFine - ada -- ada - adb -- adb + fine -- ShoulderFine + ada -- ada + adb -- adb if fHookLeft : include : TopHook.toLeft.lBarInner df.leftSB (adb + TINY) top (sw -- sw) include : tagged 'strokeR' : VBar.r df.rightSB 0 [if fShortLeg [mix ada top 0.5] top] sw export : define [Tailed df top sw fHookLeft fShortLeg] : glyph-proc set-base-anchor 'trailing' (df.rightSB + SideJut) 0 include : uBowl.shape - top -- (top - [if fHookLeft (TailY + HalfStroke) 0]) + top -- (top - [if fHookLeft (TailY + HalfStroke) 0]) bottom -- 0 - left -- df.leftSB - right -- (df.rightSB - [HSwToV sw]) + left -- df.leftSB + right -- (df.rightSB - [HSwToV sw]) stroke -- sw - fine -- ShoulderFine - ada -- ada - adb -- adb + fine -- ShoulderFine + ada -- ada + adb -- adb if fHookLeft : include : TopHook.toLeft.lBarInner df.leftSB (adb + TINY) top (sw -- sw) include : tagged 'strokeR' : RightwardTailedBar df.rightSB 0 [if fShortLeg [mix ada top 0.5] top] (sw -- sw) @@ -99,7 +97,7 @@ glyph-block Letter-Latin-U : begin define UUpper : UShapeGroup ArchDepthA ArchDepthB define ULower : UShapeGroup SmallArchDepthA SmallArchDepthB - define [UTopLeftSerif df yTop _sw] : tagged 'serifLT' + define [UTopLeftSerif df yTop _sw] : tagged 'serifLT' HSerif.lt df.leftSB yTop SideJut _sw define [UTopRightSerif df yTop _sw] : tagged 'serifRT' @@ -111,6 +109,7 @@ glyph-block Letter-Latin-U : begin if trAnchor : begin set-base-anchor 'trailing' (trAnchor.x + SideJut) trAnchor.y + glyph-block-export USerifs define USerifs : namespace export : define [Toothed df top _sw] : glyph-proc include : UTopLeftSerif df top _sw @@ -356,45 +355,9 @@ glyph-block Letter-Latin-U : begin include [refer-glyph src] AS_BASE ALSO_METRICS include [refer-glyph 'tildeAbove'] - derive-composites 'uRTailBR' 0x1D99 'u/uRTailBase' + derive-composites 'uRetroflexHook' 0x1D99 'u/uRTailBase' RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke) - do "Labiodental Approximant" - local df : DivFrame 1 - define [VHookTopShape top ada adb] : glyph-proc - include : dispiro - widths.lhs - flat df.leftSB top [heading Downward] - curl df.leftSB adb - arch.lhs 0 - flat df.rightSB ada - curl df.rightSB (top - Hook - HalfStroke) [heading Upward] - include : VerticalHook.r - x -- df.rightSB - y -- (top - Hook - HalfStroke) - xDepth -- (-(RightSB - [HSwToV HalfStroke] - Middle)) - yDepth -- (-Hook) - - create-glyph 'VHookTop.serifless' : glyph-proc - include : MarkSet.capital - include : VHookTopShape CAP ArchDepthA ArchDepthB - - create-glyph 'VHookTop.serifed' : glyph-proc - include [refer-glyph "VHookTop.serifless"] AS_BASE ALSO_METRICS - include : UTopLeftSerif df CAP - - select-variant 'VHookTop' 0x1B2 - - create-glyph 'vHookTop.serifless' : glyph-proc - include : MarkSet.e - include : VHookTopShape XH SmallArchDepthA SmallArchDepthB - - create-glyph 'vHookTop.serifed' : glyph-proc - include [refer-glyph "vHookTop.serifless"] AS_BASE ALSO_METRICS - include : UTopLeftSerif df XH - - select-variant 'vHookTop' 0x28B - derive-glyphs 'uWithLightCentralizationStroke' null 'u' : function [src gr] : glyph-proc include : MarkSet.p include : refer-glyph src @@ -417,7 +380,7 @@ glyph-block Letter-Latin-U : begin include : HSerif.lt SB XH SideJut CreateAccentedComposition 'uDieresis' 0xFC 'u' 'dieresisAbove' - CreateAccentedComposition 'uLongBarOver' 0x289 'u' 'hStrike' + CreateAccentedComposition 'uBar' 0x289 'u' 'hStrike' CreateAccentedComposition 'smcpUStroke' 0x1D7E 'smcpU' 'hStrike' # Sideways dieresis for U+1D1E @@ -442,11 +405,10 @@ glyph-block Letter-Latin-U : begin VBar.l (SB + BBD) 0 CAP BBS UArcT spiro-outline [DivFrame 1] CAP 0 stroke -- BBS - oper -- true + oper -- true offset -- 1 create-glyph 'mathbb/u' 0x1D566 : glyph-proc - local df : DivFrame 1 2 - include : df.markSet.e + include : MarkSet.e include [refer-glyph 'mathbb/n'] include : FlipAround Middle (XH / 2) diff --git a/packages/font-glyphs/src/letter/latin/upper-b.ptl b/packages/font-glyphs/src/letter/latin/upper-b.ptl index c88ae8fc9c..ab58caf27b 100644 --- a/packages/font-glyphs/src/letter/latin/upper-b.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-b.ptl @@ -21,7 +21,7 @@ glyph-block Letter-Latin-Upper-B : begin local barleft SB local mockBowlDepth : BowlXDepth top (bowl - stroke) barleft RightSB stroke local curvleft : RightSB - SB * 0.5 - mockBowlDepth + topArcInnerShift - local curvleftTop : Math.min curvleft (RightSB - SB * 0.5 - OX - stroke * 1.375 + topArcInnerShift) + local curvleftTop : Math.min curvleft : RightSB - SB * 0.5 - OX - stroke * 1.375 + topArcInnerShift local xTopArcRight : [mix SB RightSB BArcMix] - OX * 2 + topArcShift local fine : stroke * CThin @@ -78,7 +78,7 @@ glyph-block Letter-Latin-Upper-B : begin define [InterruptShape bp top sw st sb] : begin local bowl : top * bp + sw * (1 - bp) - local gap : Math.max ((RightSB - SB - [HSwToV : 2 * sw]) * 0.15) [AdviceStroke 10] + local gap : Math.max ((RightSB - SB - [HSwToV : 2 * sw]) * 0.15) : AdviceStroke 10 return : VBar.l (SB + [HSwToV sw]) (bowl - 1 * sw + O) (bowl + 0 * sw - O) gap define [StdShape top sw st sb] : BShape top (stroke -- sw) (serifTop -- st) (serifBot -- sb) @@ -88,16 +88,16 @@ glyph-block Letter-Latin-Upper-B : begin define [AsymmetricShape top sw st sb] : BShape top stroke -- [fallback sw : AdviceStroke2 2 3 top] barPos -- AsymmetricBBarPos - topArcShift -- -(RightSB - SB) * 0.05 - topArcInnerShift -- -(RightSB - SB) * 0.1 + topArcShift -- ((-0.05) * (RightSB - SB)) + topArcInnerShift -- ((-0.1) * (RightSB - SB)) serifTop -- st serifBot -- sb define [AsymmetricShapeInterrupted top sw st sb] : difference [AsymmetricShape top sw st sb] [InterruptShape 0.6 top sw st sb] define [AsymmetricMask top sw] : BShapeMask top stroke -- [fallback sw : AdviceStroke2 2 3 top] barPos -- AsymmetricBBarPos - topArcShift -- -(RightSB - SB) * 0.05 - topArcInnerShift -- -(RightSB - SB) * 0.1 + topArcShift -- ((-0.05) * (RightSB - SB)) + topArcInnerShift -- ((-0.1) * (RightSB - SB)) define [BOverlayStroke top bp] : begin local stroke : AdviceStroke2 2 3 top @@ -111,7 +111,7 @@ glyph-block Letter-Latin-Upper-B : begin define [BahtBar sw] : VBar.m [mix SB RightSB 0.48] (CAP - Descender / 2) (Descender / 2) sw define [BitcoinBar sw] : begin local xMid : mix SB RightSB 0.48 - local gap : Math.max [AdviceStroke 4] ((RightSB - SB) / 6) + local gap : Math.max ((RightSB - SB) / 6) : AdviceStroke 4 return : union VBar.m (xMid - (gap + [HSwToV sw]) / 2) (CAP - Descender / 2) (Descender / 2) sw VBar.m (xMid + (gap + [HSwToV sw]) / 2) (CAP - Descender / 2) (Descender / 2) sw diff --git a/packages/font-glyphs/src/letter/latin/upper-d.ptl b/packages/font-glyphs/src/letter/latin/upper-d.ptl index 40fd0f9e85..09a87faafe 100644 --- a/packages/font-glyphs/src/letter/latin/upper-d.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-d.ptl @@ -10,10 +10,10 @@ glyph-block Letter-Latin-Upper-D : begin glyph-block-import Common-Derivatives glyph-block-import Letter-Shared-Shapes : LetterBarOverlay LeftHook - define [DArcShapeT sink df top right offset sw fRound ySmooth] : glyph-proc + define [DArcShapeT sink df top right offset sw fRound smooth] : glyph-proc local mockWidth : right + (df.width - df.rightSB) local maxXSmoothWidth : mockWidth - df.leftSB * 2 - [HSwToV sw] - local dsmooth : fallback ySmooth : clamp (sw * 1.5) (top / 2 - TINY) ((top / CAP) * ArchDepth * 1.1) + local dsmooth : fallback smooth : clamp (sw * 1.5) (top / 2 - TINY) ((top / CAP) * ArchDepth * 1.1) local bsmooth : clamp (sw * 1.5) maxXSmoothWidth ((mockWidth / Width) * ArchDepth * 1.1) local barchDepthRd : clamp (sw * 1.5) maxXSmoothWidth ((mockWidth / Width) * ArchDepth * 1.25) @@ -39,9 +39,9 @@ glyph-block Letter-Latin-Upper-D : begin flat [arch.adjust-x.bot (right - bsmooth)] offset [if offset corner curl] (df.leftSB - O) offset [heading Leftward] - define [DShape df top right fRound ySmooth slabTop slabBot] : glyph-proc + define [DShape df top right fRound smooth slabTop slabBot] : glyph-proc include : VBar.l df.leftSB 0 top df.mvs - include : DArcShapeT dispiro df top right 0 df.mvs fRound ySmooth + include : DArcShapeT dispiro df top right 0 df.mvs fRound smooth if slabTop : include : tagged 'serifLT' : HSerif.lt df.leftSB top SideJut if slabBot : include : tagged 'serifLB' : HSerif.lb df.leftSB 0 SideJut @@ -67,7 +67,7 @@ glyph-block Letter-Latin-Upper-D : begin eject-contour 'serifLT' include : LeftHook SB CAP - create-glyph "smcpD.\(suffix)" : glyph-proc + if fRound : create-glyph "smcpD.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.e include : DShape df XH df.rightSB fRound ArchDepth fSlabTop fSlabBot @@ -107,7 +107,7 @@ glyph-block Letter-Latin-Upper-D : begin derive-composites 'Dbar' 0xA7C7 'D' HBar.m (SB - OX) (RightSB + OX) (CAP / 2) OverlayStroke - select-variant 'smcpD' 0x1D05 (follow -- 'D') + select-variant 'smcpD' 0x1D05 derive-glyphs 'smcpEth' 0x1D06 'smcpD' : lambda [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in SB Stroke (XH - Stroke) diff --git a/packages/font-glyphs/src/letter/latin/upper-e.ptl b/packages/font-glyphs/src/letter/latin/upper-e.ptl index 4bb29da852..1a0edd9b71 100644 --- a/packages/font-glyphs/src/letter/latin/upper-e.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-e.ptl @@ -32,7 +32,7 @@ glyph-block Letter-Latin-Upper-E : begin include : VSerif.dr RightSB top jutTop include : VSerif.ur RightSB 0 jutBot if serifM : begin - local fine : stroke * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * stroke / Stroke include : VBar.r xMidRight (yBar - jutMid) (yBar + jutMid) fine glyph-block-export RevEShape @@ -52,7 +52,7 @@ glyph-block Letter-Latin-Upper-E : begin include : VSerif.dl SB top jutTop include : VSerif.ul SB 0 jutBot if serifM : begin - local fine : stroke * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * stroke / Stroke include : VBar.l xMidLeft (yBar - 0.5 * jutBot) (yBar + 0.5 * jutBot) fine define EConfig : object diff --git a/packages/font-glyphs/src/letter/latin/upper-f.ptl b/packages/font-glyphs/src/letter/latin/upper-f.ptl index 809a0e2d0f..6a71599fd1 100644 --- a/packages/font-glyphs/src/letter/latin/upper-f.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-f.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Latin-Upper-F : begin glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook glyph-block-export xMidBarShrink - define [xMidBarShrink serifV] : [Math.max HalfStroke ((RightSB - SB) * 0.15)] + [if serifV (Stroke * 0.25) 0] + define [xMidBarShrink serifV] : [Math.max HalfStroke ((RightSB - SB) * 0.15)] + [if serifV QuarterStroke 0] define [yMidBarImpl y] : fallback y DesignParameters.upperEBarPos @@ -47,7 +47,7 @@ glyph-block Letter-Latin-Upper-F : begin include : tagged 'serifBottom' : HSerif.rb (xFBarLeft + [HSwToV HalfStroke]) 0 MidJutSide if serifV : include : VSerif.dr RightSB top jutTop if serifM : begin - local fine : stroke * [AdviceStroke 3.5] / Stroke + local fine : VJutStroke * stroke / Stroke include : VBar.r xMidRight (yBar - jutMid) (yBar + jutMid) fine define FConfig : object diff --git a/packages/font-glyphs/src/letter/latin/upper-g.ptl b/packages/font-glyphs/src/letter/latin/upper-g.ptl index fb1b26d882..ee579e13b3 100644 --- a/packages/font-glyphs/src/letter/latin/upper-g.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-g.ptl @@ -28,7 +28,7 @@ glyph-block Letter-Latin-Upper-G : begin define SLAB-HOOK-TOP 10 define [GShape toothShape slabShape crossBarShape top ada adb _yBarOverride] : glyph-proc - local yBar : fallback _yBarOverride (top * 0.52 + Stroke * 0.25) + local yBar : fallback _yBarOverride (top * 0.52 + QuarterStroke) local fine ShoulderFine local knots : match slabShape diff --git a/packages/font-glyphs/src/letter/latin/upper-l.ptl b/packages/font-glyphs/src/letter/latin/upper-l.ptl index 08df44d724..6f330d7f6a 100644 --- a/packages/font-glyphs/src/letter/latin/upper-l.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-l.ptl @@ -16,12 +16,12 @@ glyph-block Letter-Latin-Upper-L : begin glyph-block-import Letter-Shared-Shapes : BeltOverlay LetterBarOverlay define [LBarLeftX df] : df.leftSB * 1.5 - define [LRightX df] : df.rightSB - 0.75 * OX + define [LRightX df] : df.rightSB - 0.75 * OX define [LShape df top sgr swv] : glyph-proc include : VBar.l [LBarLeftX df] 0 top swv include : HBar.b ([LBarLeftX df] - O) [LRightX df] 0 if (sgr > 1) : begin - include : HSerif.lb ([LBarLeftX df] + [HSwToV : 0.5 * swv]) 0 Jut + include : HSerif.lb ([LBarLeftX df] + [HSwToV : 0.5 * swv]) 0 Jut include : HSerif.lt ([LBarLeftX df] + [HSwToV : 0.5 * swv]) top Jut include : HSerif.rt ([LBarLeftX df] + [HSwToV : 0.5 * swv]) top MidJutSide if (sgr > 0) : include : VSerif.ur [LRightX df] 0 VJut @@ -39,7 +39,7 @@ glyph-block Letter-Latin-Upper-L : begin include : LeaningAnchor.Above.VBar.l [LBarLeftX df] include : LShape df CAP serifGrade Stroke set-base-anchor 'cvDecompose' - [mix df.leftSB df.rightSB 0.65] + [HSwToV : 0.25 * Stroke] + [mix df.leftSB df.rightSB 0.65] + [HSwToV QuarterStroke] mix Stroke CAP 0.5 create-glyph "smcpL.\(suffix)" : glyph-proc @@ -117,9 +117,9 @@ glyph-block Letter-Latin-Upper-L : begin LetterBarOverlay.l.in [LBarLeftX : DivFrame 1] 0 CAP (py -- 0.4) create-glyph 'LBeltOverlay' - BeltOverlay CAP ([LBarLeftX : DivFrame 1] + [HSwToV : 0.5 * Stroke]) + BeltOverlay CAP ([LBarLeftX : DivFrame 1] + [HSwToV HalfStroke]) create-glyph 'smcpLBeltOverlay' - BeltOverlay XH ([LBarLeftX : DivFrame 1] + [HSwToV : 0.5 * Stroke]) + BeltOverlay XH ([LBarLeftX : DivFrame 1] + [HSwToV HalfStroke]) derive-composites 'LBar' 0x23D 'L' 'LBarOverlay' derive-composites 'LDoubleBar' 0x2C60 'L' 'LDoubleBarOverlay' diff --git a/packages/font-glyphs/src/letter/latin/upper-p.ptl b/packages/font-glyphs/src/letter/latin/upper-p.ptl index 714429b2fb..8f748bfd86 100644 --- a/packages/font-glyphs/src/letter/latin/upper-p.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-p.ptl @@ -185,7 +185,7 @@ glyph-block Letter-Latin-Upper-P : begin PShape XH (slab -- slabs) if fGap [PShape.OpenGap (top -- XH) (bot -- [if fSlabBot Stroke 0])] [glyph-proc] - create-glyph "PStrokeBot.\(suffix)" : glyph-proc + create-glyph "PStrokeBottom.\(suffix)" : glyph-proc include [refer-glyph "P.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in x -- (SB * PShape.defaultMul) @@ -245,7 +245,7 @@ glyph-block Letter-Latin-Upper-P : begin space -- { 0 (RightSB - [HSwToV Stroke]) } derive-composites 'PStroke' 0x2C63 'P' 'PStroke/overlay' - select-variant 'PStrokeBot' 0xA750 (follow -- 'P') + select-variant 'PStrokeBottom' 0xA750 (follow -- 'P') define [BBPShape] : with-params [[mul PShape.defaultMul] [overshoot PShape.defaultOvershoot]] : glyph-proc define sb : SB * mul diff --git a/packages/font-glyphs/src/letter/latin/upper-r.ptl b/packages/font-glyphs/src/letter/latin/upper-r.ptl index dbcbec5f16..26e5a6096c 100644 --- a/packages/font-glyphs/src/letter/latin/upper-r.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-r.ptl @@ -20,7 +20,7 @@ glyph-block Letter-Latin-Upper-R : begin define LEG-SHAPE-STANDING 2 define [RLegTerminalX legShape right sw] : right - [if legShape (OX * 2) 0] - define [RSlabExtraShift slab sw] : if slab (-Jut / 2 + [HSwToV : 0.5 * sw]) 0 + define [RSlabExtraShift slab sw] : if slab ((-Jut) / 2 + [HSwToV : 0.5 * sw]) 0 define [RLegDiagCor top bottom left right extraShift sw] : DiagCor (top - bottom) (right - left - extraShift) 0 sw define [RStandingLegFine sw] : sw * CThinB @@ -130,7 +130,7 @@ glyph-block Letter-Latin-Upper-R : begin if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0])] [glyph-proc] include : difference RLegShapes.(legShape) [RLegTop top sw bp] legBottom df.middle right top legSlab sw 0 - if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] + if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0)] [glyph-proc] define [RRotundaShape] : with-params [legShape top [df [DivFrame 1]] [mul 1] [pmRotunda 0] [endX df.middle] [hook Hook] [pBar 1] [slab null] [legSlab false] [sw Stroke]] : glyph-proc local bp : pBar * [RBarPos top false] @@ -147,7 +147,7 @@ glyph-block Letter-Latin-Upper-R : begin local left : df.leftSB + O + [if slab (Jut / 8) 0] include : difference RevPShape top (df -- df) (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) (sw -- sw) - if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0]) ] [glyph-proc] + if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0])] [glyph-proc] include : difference RevRLegShapes.(legShape) [RLegTop top sw bp] 0 left df.middle top legSlab sw 0 if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] @@ -191,7 +191,7 @@ glyph-block Letter-Latin-Upper-R : begin if (!fOpen) : create-glyph "RBar.\(suffix)" : glyph-proc include [refer-glyph "R.\(suffix)"] AS_BASE ALSO_METRICS - include : HBar.m [mix 0 SB 0.3] (SB - O) ((CAP - Stroke) * [RBarPos CAP SLAB] + Stroke * 0.25) + include : HBar.m [mix 0 SB 0.3] (SB - O) ((CAP - Stroke) * [RBarPos CAP SLAB] + QuarterStroke) if (!fSlabBot) : create-glyph "RRTail.\(suffix)" : glyph-proc include [refer-glyph "R.\(suffix)"] AS_BASE ALSO_METRICS diff --git a/packages/font-glyphs/src/letter/latin/upper-y.ptl b/packages/font-glyphs/src/letter/latin/upper-y.ptl index 1d63758af3..076fba22a4 100644 --- a/packages/font-glyphs/src/letter/latin/upper-y.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-y.ptl @@ -55,14 +55,14 @@ glyph-block Letter-Latin-Upper-Y : begin straight.right.start (SB - TailX / 3) (top - Stroke - O) g4 (SB + TailX / 3) (top - TailY) [widths.lhs : AdviceStroke 2.75] quadControls 0.55 0.7 32 unimportant - g4 (Middle - [HSwToV : 0.5 * Stroke]) cross [widths.lhs : AdviceStroke 3.5] + g4 (Middle - [HSwToV HalfStroke]) cross [widths.lhs : AdviceStroke 3.5] define [YHookRightHookedStroke top bot cross] : dispiro widths.rhs straight.left.start (RightSB + TailX / 3) (top - Stroke - O) g4 (RightSB - TailX / 3) (top - TailY) [widths.rhs : AdviceStroke 2.75] quadControls 0.55 0.7 32 unimportant - g4 (Middle + [HSwToV : 0.5 * Stroke]) cross [widths.rhs : AdviceStroke 3.5] + g4 (Middle + [HSwToV HalfStroke]) cross [widths.rhs : AdviceStroke 3.5] define [YHookTopShape] : with-params [bodyType slabType top bot [cross : YCrossPos top bot]] : glyph-proc include : YShape bodyType slabType top bot cross diff --git a/packages/font-glyphs/src/letter/latin/v.ptl b/packages/font-glyphs/src/letter/latin/v.ptl index 3acdde6731..e698900aa0 100644 --- a/packages/font-glyphs/src/letter/latin/v.ptl +++ b/packages/font-glyphs/src/letter/latin/v.ptl @@ -8,9 +8,8 @@ glyph-module glyph-block Letter-Latin-V : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-export VShape VShapeOutline glyph-block-import Letter-Shared : CreateTurnedLetter - glyph-block-import Letter-Shared-Shapes : DiagTail SerifFrame PalatalHook + glyph-block-import Letter-Shared-Shapes : DiagTail SerifFrame PalatalHook VerticalHook glyph-block-import Letter-Blackboard : BBS BBD glyph-block-export VCornerHalfWidth @@ -26,6 +25,7 @@ glyph-block Letter-Latin-V : begin define StraightSbShrink : mix 1 (DesignParameters.straightVShapeSbShrink * [StrokeWidthBlend 1 0.75]) : if SLAB 0.75 1 define [VShapeTopFlat top] : if SLAB [Math.min (top - Stroke) (top * 0.9)] (top * 0.9) + glyph-block-export VShapeOutline define [VShapeOutline] : with-params [df fBarStraight top [sw Stroke]] : glyph-proc define cornerHW : VCornerHalfWidth * sw / Stroke define dgCor : DiagCor top (Width / 2) 0 (sw * 2) @@ -63,6 +63,7 @@ glyph-block Letter-Latin-V : begin corner (df.middle - cornerHW) 0 corner df.middle [Math.min sw : if fBarStraight VShapeFineStraight VShapeFine] + glyph-block-export VShape define [VShape] : with-params [df fBarStraight top [sw Stroke]] : glyph-proc define cornerHW : VCornerHalfWidth * (sw / Stroke) define fine : Math.min sw : [if fBarStraight VShapeFineStraight VShapeFine] * (sw / Stroke) @@ -137,7 +138,7 @@ glyph-block Letter-Latin-V : begin straight.left.start (df.rightSB + hookWidthOuter) (top - sw - O) g4 (df.rightSB - hookWidthInner) (top - 0.5 * sw - TailY) quadControls 0.4 0.75 64 unimportant - g4 (df.middle + VCornerHalfWidth * sw / Stroke) 0 [widths.rhs (VShapeFine * sw / Stroke)] + g4 (df.middle + VCornerHalfWidth * sw / Stroke) 0 [widths.rhs : VShapeFine * sw / Stroke] define [VLoopShape] : with-params [df fBarStraight top [sw Stroke]] : glyph-proc include : VShape df fBarStraight top (sw -- sw) @@ -248,11 +249,11 @@ glyph-block Letter-Latin-V : begin x -- (Middle + [HSwToV HalfStroke] + [PalatalHook.adviceGap Stroke]) y -- 0 - define CursiveConfig : object + define VCursiveConfig : object cursiveSerifless { (1/24) false } cursiveSerifed { (1/16) true } - foreach { suffix { pxBar fDoSerif } } [Object.entries CursiveConfig] : do + foreach { suffix { pxBar fDoSerif } } [Object.entries VCursiveConfig] : do create-glyph "v.\(suffix)" : glyph-proc include : MarkSet.e include : VCursiveShape pxBar XH Stroke @@ -290,6 +291,40 @@ glyph-block Letter-Latin-V : begin CreateTurnedLetter 'turnV' 0x245 'V' HalfAdvance (CAP / 2) CreateTurnedLetter 'turnv' 0x28C 'v' HalfAdvance (XH / 2) + define [VHookTopShape df top ada adb] : glyph-proc + include : dispiro + widths.lhs + flat df.leftSB top [heading Downward] + curl df.leftSB adb + arch.lhs 0 + flat df.rightSB ada + curl df.rightSB (top - Hook - HalfStroke) [heading Upward] + include : VerticalHook.r + x -- df.rightSB + y -- (top - Hook - HalfStroke) + xDepth -- ((-RightSB) + Middle + [HSwToV HalfStroke]) + yDepth -- (-Hook) + + create-glyph 'VHookTop.serifless' : glyph-proc + include : MarkSet.capital + include : VHookTopShape [DivFrame 1] CAP ArchDepthA ArchDepthB + + create-glyph 'VHookTop.serifed' : glyph-proc + include [refer-glyph "VHookTop.serifless"] AS_BASE ALSO_METRICS + include : tagged 'serifLT' : HSerif.lt SB CAP SideJut + + select-variant 'VHookTop' 0x1B2 + + create-glyph 'vHookTop.serifless' : glyph-proc + include : MarkSet.e + include : VHookTopShape [DivFrame 1] XH SmallArchDepthA SmallArchDepthB + + create-glyph 'vHookTop.serifed' : glyph-proc + include [refer-glyph "vHookTop.serifless"] AS_BASE ALSO_METRICS + include : tagged 'serifLT' : HSerif.lt SB XH SideJut + + select-variant 'vHookTop' 0x28B + glyph-block-export BBVShape BBVInnerMaskShape BBVOuterMaskShape define [BBVShape l r kd ks top] : glyph-proc local m : mix l r 0.5 @@ -299,10 +334,10 @@ glyph-block Letter-Latin-V : begin include : intersection Rect top 0 (-Width) (2 * Width) union - ExtLineCenter 1 bbs l top (m - kDiag * bbd / 2) 0 - ExtLineCenter 1 bbs (l + kDiag * bbd) top (m + kDiag * bbd / 2) 0 - ExtLineCenter 1 bbs r top (m + kDiag * bbd / 2) 0 - include : HBar.t l (l + kDiag * bbd) top bbs + ExtLineCenter 1 bbs l top (m - kDiag * bbd / 2) 0 + ExtLineCenter 1 bbs (l + kDiag * bbd) top (m + kDiag * bbd / 2) 0 + ExtLineCenter 1 bbs r top (m + kDiag * bbd / 2) 0 + include : HBar.t l (l + kDiag * bbd) top bbs include : HBar.b (m - kDiag * bbd / 2) (m + kDiag * bbd / 2) 0 bbs define [BBVInnerMaskShape l r kd ks top] : glyph-proc @@ -311,7 +346,7 @@ glyph-block Letter-Latin-V : begin local kDiag : DiagCorDs top ((r - l) / 2) (bbd / 2) include : spiro-outline corner (l + kDiag * bbd) top - corner r top + corner r top corner (m + kDiag * bbd / 2) 0 define [BBVOuterMaskShape l r kd ks top] : glyph-proc @@ -319,8 +354,8 @@ glyph-block Letter-Latin-V : begin local bbd : BBD * kd local kDiag : DiagCorDs top ((r - l) / 2) (bbd / 2) include : spiro-outline - corner l top - corner r top + corner l top + corner r top corner (m + kDiag * bbd / 2) 0 corner (m - kDiag * bbd / 2) 0 diff --git a/packages/font-glyphs/src/letter/latin/w.ptl b/packages/font-glyphs/src/letter/latin/w.ptl index cbbed2f0fc..f7601c277e 100644 --- a/packages/font-glyphs/src/letter/latin/w.ptl +++ b/packages/font-glyphs/src/letter/latin/w.ptl @@ -376,11 +376,6 @@ glyph-block Letter-Latin-W : begin include : df.markSet.capital include : implT df CAP bodyType slabType - create-glyph "smcpW.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT 3 - include : df.markSet.e - include : implT df XH bodyType slabType - create-glyph "w.\(suffix)" : glyph-proc local df : include : DivFrame Ldiv 3 include : df.markSet.e @@ -416,7 +411,7 @@ glyph-block Letter-Latin-W : begin select-variant 'WHookTop' 0x2C72 select-variant 'w' 'w' link-reduced-variant 'w/sansSerif' 'w' MathSansSerif - select-variant 'smcpW' 0x1D21 (follow -- 'W') + select-variant 'smcpW' 0x1D21 (shapeFrom -- 'w') (follow -- 'W') select-variant 'ww' 0x2AC (follow -- 'w') select-variant 'wHookTop' 0x2C73 select-variant 'currency/wonSign' 0x20A9 (follow -- 'W') diff --git a/packages/font-glyphs/src/letter/latin/z.ptl b/packages/font-glyphs/src/letter/latin/z.ptl index c3c6652ff6..3ff576a299 100644 --- a/packages/font-glyphs/src/letter/latin/z.ptl +++ b/packages/font-glyphs/src/letter/latin/z.ptl @@ -70,9 +70,9 @@ glyph-block Letter-Latin-Z : begin define hookTerminalWidth : AdviceStroke 3.5 define xDiagWidth : 1 * Stroke define yFootHeight : [Math.max (0.15 * top) (Stroke * 0.625)] + 0.7 * Stroke - define kFoot : 1 + 0.5 * Stroke / yFootHeight - define yHookDepth : Hook + Stroke * 0.25 - define yHookStraightDepth : Math.min (yHookDepth - Stroke * 1.1) (yHookDepth / 3 - Stroke / 4) + define kFoot : 1 + HalfStroke / yFootHeight + define yHookDepth : Hook + QuarterStroke + define yHookStraightDepth : Math.min (yHookDepth - Stroke * 1.1) (yHookDepth / 3 - QuarterStroke) define xHookDepth : Math.max (0.25 * (RightSB - SB)) (hookTerminalWidth * 1.5) define xMockTailDepth : Math.max (0.375 * (RightSB - SB)) (hookTerminalWidth * 1.375) define kTop 0.625 @@ -163,7 +163,7 @@ glyph-block Letter-Latin-Z : begin define [ZemlyaBottomStroke] : begin local fine : AdviceStroke 4 - local hx : [Math.max (0.5 * HookX) [HSwToV : 1.25 * fine]] + [HSwToV : 0.125 * fine] + local hx : [Math.max (0.5 * HookX) : HSwToV : 1.25 * fine] + [HSwToV : 0.125 * fine] return : dispiro widths.lhs flat SB 0 [heading Rightward] @@ -179,7 +179,7 @@ glyph-block Letter-Latin-Z : begin define [ZemlyaBottomStrokeCursive] : begin local fine : AdviceStroke 4 - local hx : [Math.max (0.5 * HookX) [HSwToV : 1.25 * fine]] + [HSwToV : 0.125 * fine] + local hx : [Math.max (0.5 * HookX) : HSwToV : 1.25 * fine] + [HSwToV : 0.125 * fine] return : dispiro flat (RightSB - [HSwToV fine]) HalfStroke [widths.lhs.heading fine Downward] curl (RightSB - [HSwToV fine]) [mix (Descender + fine) 0 0.5] [widths.lhs.heading fine Downward] diff --git a/packages/font-glyphs/src/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl index 485c4b0c2e..ea0751e329 100644 --- a/packages/font-glyphs/src/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -97,21 +97,21 @@ glyph-block Letter-Blackboard : begin define [BBBarLeft] : with-params [x yBot yTop [bbs BBS] [bbd BBD]] : union VBar.l x yBot yTop bbs VBar.l (x + bbd) yBot yTop bbs - HBar.t x (x + bbd) yTop bbs + HBar.t x (x + bbd) yTop bbs HBar.b x (x + bbd) yBot bbs glyph-block-export BBBarCenter define [BBBarCenter] : with-params [x yBot yTop [bbs BBS] [bbd BBD]] : union VBar.m (x - bbd / 2) yBot yTop bbs VBar.m (x + bbd / 2) yBot yTop bbs - HBar.t (x - bbd / 2) (x + bbd / 2) yTop bbs + HBar.t (x - bbd / 2) (x + bbd / 2) yTop bbs HBar.b (x - bbd / 2) (x + bbd / 2) yBot bbs glyph-block-export BBBarRight define [BBBarRight] : with-params [x yBot yTop [bbs BBS] [bbd BBD]] : union VBar.r x yBot yTop bbs VBar.r (x - bbd) yBot yTop bbs - HBar.t x (x - bbd) yTop bbs + HBar.t x (x - bbd) yTop bbs HBar.b x (x - bbd) yBot bbs glyph-block-import Mark-Shared-Metrics : markMiddle @@ -160,8 +160,7 @@ glyph-block Letter-Shared-Shapes : begin flat (x + hookTurn) (high - overshoot) [heading Rightward] curl (x + hookDepth + sw * TanSlope) (high - overshoot) - glyph-block-export DToothlessRise - glyph-block-export DMBlend + glyph-block-export DToothlessRise DMBlend define DToothlessRise : Hook * 0.25 + Stroke / 16 define DMBlend 0.80 @@ -169,7 +168,7 @@ glyph-block Letter-Shared-Shapes : begin define CurlyTail : namespace define [normalBlender before _after args] : begin local ltr : args.xOuter > before.x - local rInner : 0.5 * ([Math.abs (args.xOuter - before.x)] - (2 * [HSwToV args.fine])) + local rInner : 0.5 * [Math.abs : args.xOuter - before.x] - [HSwToV args.fine] local top : fallback args.yLoopTop : args.bottom + 2 * (args.fine + rInner) local yOuter : [if ltr YSmoothMidR YSmoothMidL] top args.bottom @@ -242,7 +241,7 @@ glyph-block Letter-Shared-Shapes : begin local-parameter : adb -- SmallArchDepthB local-parameter : stroke -- Stroke local-parameter : fMask -- false - local-parameter : leftY0 -- (top - ada - 2) + local-parameter : leftY0 -- (top - ada - TINY) return : list flat (left - [HSwToV fine]) leftY0 [widths.rhs fine] @@ -589,7 +588,7 @@ glyph-block Letter-Shared-Shapes : begin glyph-block-export ArcStartSerifDepth define [ArcStartSerifDepth hook] : hook - 0 - define [ArcStartInwardSerifDepth hook stroke] : Math.max hook (DToothlessRise + stroke) + define [ArcStartInwardSerifDepth hook stroke] : Math.max hook : DToothlessRise + stroke glyph-block-export : ArcStartSerif define ArcStartSerif : namespace @@ -641,8 +640,8 @@ glyph-block Letter-Shared-Shapes : begin define dxTurn : [HSwToV : 0.5 * sw] + rIn + 0.5 * sign * TanSlope * fine define dxTailStart : dxTurn + sinAngle * (r * [mix 1 HVContrast sinAngle]) define dyTailStart : (rIn + fine) - cosAngle * r - define dxDepth : (depth - 0.25 * sw) * +dSinAngle - define dyDepth : (depth - 0.25 * sw) * -dCosAngle + define dxDepth : (depth - 0.25 * sw) * (+dSinAngle) + define dyDepth : (depth - 0.25 * sw) * (-dCosAngle) return : list g4.[if (sign > 0) "right" "left"].mid cx + sign * dxTurn @@ -688,7 +687,7 @@ glyph-block Letter-Shared-Shapes : begin define [JutIn left right jut swRef hSplit] : begin local ink : HSwToV swRef local gap : (right - left - hSplit * ink) / (hSplit - 1) - Math.min jut (0.5 * ink + [Math.max (Stroke * TanSlope) (0.375 * gap)]) + return : Math.min jut : 0.5 * ink + [Math.max (Stroke * TanSlope) (0.375 * gap)] class CSerifFrame public [new top bot left right swRef swSerif div hSplit fForceSymmetric] : begin @@ -707,7 +706,7 @@ glyph-block Letter-Shared-Shapes : begin local jutFS MidJutSide - local jut : mix [HSwToV : 0.5 * swRef] Jut [Math.min 1 : div * 2.25 / hSplit] + local jut : mix [HSwToV : 0.5 * swRef] Jut : Math.min 1 : div * 2.25 / hSplit local sideJut : jut - 0.5 * ink local jutIn : if fForceSymmetric jut : JutIn left right jut swRef hSplit @@ -817,13 +816,27 @@ glyph-block Letter-Shared-Shapes : begin include : dispiro widths.lhs sw flat left ybegin [heading Downward] - curl left [Math.min (ybegin - TINY) adb] + curl left [Math.min adb : ybegin - TINY] arcvh g4 [mix left right 0.5] bottom [heading Rightward] archv flat right ada curl right yend [heading Upward] + glyph-block-export RhoticHookShape + define [RhoticHookShape] : with-params [left right y rise [sw [AdviceStroke 5]] [doHook false]] : glyph-proc + local mid : mix left right 0.5 + include : dispiro + widths.rhs sw + g2 (left - [HSwToV : 0.5 * sw]) (y) + g2 (mid - [HSwToV : 0.5 * sw]) (y + rise) + include : dispiro + widths.center sw + flat mid (y + rise) [heading Downward] + curl mid (y + [if doHook 0 (rise - 1)]) [heading Downward] + if doHook {[hookend (y - rise) (sw -- sw)]} {[arcvh]} + g4 (right - [if doHook sw 0]) (y - [if doHook (rise * 0.5) rise]) [if doHook nothing [heading Rightward]] + # Generic "connected" vertical hooks glyph-block-export VerticalHook define VerticalHook : namespace @@ -910,7 +923,7 @@ glyph-block Letter-Shared-Shapes : begin # Diacritical descender of cyrillics glyph-block-export CyrDescender define CyrDescender : Descenders : function [x y xLink yAttach yOverflow sw] : glyph-proc - local extension : 0.25 * Stroke - LongVJut + local extension : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors (y + extension) include : union xLinkStroke xLink x yAttach sw @@ -918,7 +931,7 @@ glyph-block Letter-Shared-Shapes : begin glyph-block-export CyrTailDescender define CyrTailDescender : Descenders : function [x y xLink yAttach yOverflow sw] : glyph-proc - local extension : 0.25 * Stroke - LongVJut + local extension : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors (y + extension) include : union xLinkStroke xLink x yAttach sw @@ -930,7 +943,7 @@ glyph-block Letter-Shared-Shapes : begin # Palatal Hooks glyph-block-export PalatalHook define PalatalHook : Descenders : function [x y xLink yAttach yOverflow sw maskOut] : glyph-proc - local fullDepth : 0 - Descender - 0.5 * sw - O + local fullDepth : (-Descender) - 0.5 * sw - O include : ExtendBelowBaseAnchors (y + Descender) include : difference union @@ -941,13 +954,13 @@ glyph-block Letter-Shared-Shapes : begin xDepth -- (-TailX) yDepth -- TailY sw -- sw - yExtension -- [Math.max 0 (yAttach + yOverflow - y + (fullDepth - TailY))] + yExtension -- [Math.max 0 : yAttach + yOverflow - y + (fullDepth - TailY)] if maskOut maskOut [no-shape] # Retroflex hooks glyph-block-export RetroflexHook define RetroflexHook : Descenders : function [x y xLink yAttach yOverflow sw] : glyph-proc - local fullDepth : 0 - Descender - 0.5 * sw - O + local fullDepth : (-Descender) - 0.5 * sw - O include : ExtendBelowBaseAnchors (y + Descender) include : union xLinkStroke xLink x yAttach sw @@ -957,7 +970,7 @@ glyph-block Letter-Shared-Shapes : begin xDepth -- TailX yDepth -- TailY sw -- sw - yExtension -- [Math.max 0 (yAttach + yOverflow - y + (fullDepth - TailY))] + yExtension -- [Math.max 0 : yAttach + yOverflow - y + (fullDepth - TailY)] # Cyrillic "Middle Hook" Characters glyph-block-export MidHook @@ -983,13 +996,13 @@ glyph-block Letter-Shared-Shapes : begin ada -- ArchDepthA adb -- ArchDepthB sw -- df.mvs - xDepth -- (-[Math.max [HSwToV df.mvs] : Math.min HookX (0.5 * (df.rightSB - df.leftSB - [HSwToV : 2 * df.mvs]))]) + xDepth -- (-[Math.max [HSwToV df.mvs] : Math.min HookX : 0.5 * (df.rightSB - df.leftSB) - [HSwToV df.mvs]]) # Hook for Eng shape glyph-block-export EngHook define [EngHook] : with-params [x yStart yEnd [sw Stroke]] : begin return : VerticalHook.r x (yEnd + Hook + 0.5 * sw) (-HookX) Hook - yExtension -- [Math.max 0 (yStart - (yEnd + Hook + 0.5 * sw))] + yExtension -- [Math.max 0 : yStart - (yEnd + Hook + 0.5 * sw)] sw -- sw # Upward hook shape @@ -1069,49 +1082,57 @@ glyph-block Letter-Shared-Shapes : begin set BeltOverlay.at BeltOverlayAt do "Letter bar overlays" - glyph-block-export LetterBarOverlay - define [LetterBarOverlay] : with-params [x y space refSw pXInSw sw] : begin + glyph-block-export LetterBarOverlay LetterObliqueBarOverlay + define [BarOverlayImpl] : with-params [barFunc x y space refSw pXInSw sw] : begin local {xLeftSpace xRightSpace} space - local xLeftEdge : x - pXInSw * [HSwToV refSw] + local xLeftEdge : x - (0 + pXInSw) * [HSwToV refSw] local xRightEdge : x + (1 - pXInSw) * [HSwToV refSw] local p : (xLeftEdge - xLeftSpace) / ((xRightSpace - xRightEdge) + (xLeftEdge - xLeftSpace)) - local xC : mix xLeftEdge xRightEdge [mix 0.5 (1 - p) 0.5] + local xC : mix xLeftEdge xRightEdge : mix 0.5 (1 - p) 0.5 local jut : 0.75 * LongJut - return : HOverlayBar + return : barFunc Math.min (xLeftEdge - SideJut) - Math.max (xC - jut) [mix xLeftSpace xLeftEdge 0.3] + Math.max (xC - jut) : mix xLeftSpace xLeftEdge 0.3 Math.max (xRightEdge + SideJut) - Math.min [mix xRightSpace xRightEdge 0.3] (xC + jut) + Math.min (xC + jut) : mix xRightSpace xRightEdge 0.3 begin y begin sw - set LetterBarOverlay.l : function [] - with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin - LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw) - set LetterBarOverlay.m : function [] - with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin - LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw) - set LetterBarOverlay.r : function [] - with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin - LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw) - define [calcYAndSw bot top py sw] : begin local y : mix bot top py - local sw1 : Math.min sw (1.25 * (top - bot) * py) (1.25 * (top - bot) * (1 - py)) + local sw1 : Math.min sw + 1.25 * (top - bot) * (0 + py) + 1.25 * (top - bot) * (1 - py) return { y sw1 } - set LetterBarOverlay.l.in : function [] - with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] - : begin - local { y sw1 } : calcYAndSw bot top py sw - LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw1) - set LetterBarOverlay.m.in : function [] - with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] - : begin - local { y sw1 } : calcYAndSw bot top py sw - LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw1) - set LetterBarOverlay.r.in : function [] - with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] - : begin - local { y sw1 } : calcYAndSw bot top py sw - LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw1) + define [LetterBarOverlay] : with-params [x y space refSw pXInSw sw] + BarOverlayImpl HOverlayBar x y space refSw pXInSw sw + define [LetterObliqueBarOverlay] : with-params [x y space refSw pXInSw sw] + BarOverlayImpl HOverlayObliqueBar x y space refSw pXInSw sw + + foreach base {LetterBarOverlay LetterObliqueBarOverlay} : let [base] : begin + set base.l : function [] + with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin + (base) x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw) + set base.m : function [] + with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin + (base) x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw) + set base.r : function [] + with-params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin + (base) x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw) + + set base.l.in : function [] + with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] + : begin + local { y sw1 } : calcYAndSw bot top py sw + (base) x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw1) + set base.m.in : function [] + with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] + : begin + local { y sw1 } : calcYAndSw bot top py sw + (base) x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw1) + set base.r.in : function [] + with-params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] + : begin + local { y sw1 } : calcYAndSw bot top py sw + (base) x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw1) diff --git a/packages/font-glyphs/src/marks/above.ptl b/packages/font-glyphs/src/marks/above.ptl index 3c9560ae7b..8d951b746f 100644 --- a/packages/font-glyphs/src/marks/above.ptl +++ b/packages/font-glyphs/src/marks/above.ptl @@ -197,11 +197,11 @@ glyph-block Mark-Above : begin create-glyph 'asciiCaret.high' : glyph-proc include : CaretShape xMiddle -- Middle - width -- 3 * markExtend * asciiMarkZoomX - 0.25 * Stroke - top -- [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] + 0.5 * Stroke + width -- (3 * markExtend * asciiMarkZoomX - QuarterStroke) + top -- ([mix aboveMarkMid aboveMarkTop asciiMarkZoomY] + HalfStroke) bottom -- [mix aboveMarkMid aboveMarkBot asciiMarkZoomY] - swEnd -- Stroke * 1.05 - swMid -- [StrokeWidthBlend 1.25 1] * Stroke + swEnd -- (Stroke * 1.05) + swMid -- ([StrokeWidthBlend 1.25 1] * Stroke) create-glyph 'circumflexAbove' 0x302 : glyph-proc set-width 0 @@ -209,8 +209,8 @@ glyph-block Mark-Above : begin include : CaretShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 - bottom -- aboveMarkBot + markStress - markFine + top -- (aboveMarkTop + markFine * 0.7) + bottom -- (aboveMarkBot + markStress - markFine) swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw @@ -220,18 +220,18 @@ glyph-block Mark-Above : begin include : CaretRightShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 - bottom -- aboveMarkBot + markStress - markFine + top -- (aboveMarkTop + markFine * 0.7) + bottom -- (aboveMarkBot + markStress - markFine) swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw include : CaretTopBarShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 + top -- (aboveMarkTop + markFine * 0.7) pL -- (-1) pR -- 0 swMid -- CaretCaronMidSw - swBar -- 2 * markFine + swBar -- (2 * markFine) create-glyph 'upbarAbove' 0x1DC7 : glyph-proc set-width 0 @@ -239,18 +239,18 @@ glyph-block Mark-Above : begin include : CaretLeftShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 - bottom -- aboveMarkBot + markStress - markFine + top -- (aboveMarkTop + markFine * 0.7) + bottom -- (aboveMarkBot + markStress - markFine) swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw include : CaretTopBarShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop + markFine * 0.7 + top -- (aboveMarkTop + markFine * 0.7) pL -- 0 pR -- 1 swMid -- CaretCaronMidSw - swBar -- 2 * markFine + swBar -- (2 * markFine) define [CaronLeftShape] : with-params [top bottom xMiddle width swEnd swMid] : dispiro flat (xMiddle - 0.5 * width) top [widths.center swEnd] @@ -272,7 +272,7 @@ glyph-block Mark-Above : begin include : CaronShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop - markStress + 1.7 * markFine + top -- (aboveMarkTop - markStress + 1.7 * markFine) bottom -- aboveMarkBot swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw @@ -283,7 +283,7 @@ glyph-block Mark-Above : begin include : CaronRightShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop - markStress + 1.7 * markFine + top -- (aboveMarkTop - markStress + 1.7 * markFine) bottom -- aboveMarkBot swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw @@ -294,7 +294,7 @@ glyph-block Mark-Above : begin pL -- (-1) pR -- 0 swMid -- CaretCaronMidSw - swBar -- 2 * markFine + swBar -- (2 * markFine) create-glyph 'downbarAbove' 0x1DC5 : glyph-proc set-width 0 @@ -302,7 +302,7 @@ glyph-block Mark-Above : begin include : CaronLeftShape xMiddle -- markMiddle width -- CaretCaronWidth - top -- aboveMarkTop - markStress + 1.7 * markFine + top -- (aboveMarkTop - markStress + 1.7 * markFine) bottom -- aboveMarkBot swEnd -- CaretCaronTerminalSw swMid -- CaretCaronMidSw @@ -313,7 +313,7 @@ glyph-block Mark-Above : begin pL -- 0 pR -- 1 swMid -- CaretCaronMidSw - swBar -- 2 * markFine + swBar -- (2 * markFine) create-glyph 'dblCircumflexAbove' 0x1AB0 : glyph-proc set-width 0 @@ -359,7 +359,7 @@ glyph-block Mark-Above : begin include : TildeShape ttop -- aboveMarkTop tbot -- aboveMarkBot + markFine / 2 - leftEnd -- (markMiddle - markExtend * 1.5) + leftEnd -- (markMiddle - markExtend * 1.5) rightEnd -- (markMiddle + markExtend * 1.5) hs -- markHalfStroke @@ -367,7 +367,7 @@ glyph-block Mark-Above : begin include : TildeShape ttop -- [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] tbot -- [mix aboveMarkMid (aboveMarkBot + markFine / 2) asciiMarkZoomY] - leftEnd -- SB + leftEnd -- SB rightEnd -- RightSB hs -- (OperatorStroke / 2) @@ -378,7 +378,7 @@ glyph-block Mark-Above : begin include : TildeShape ttop -- [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] tbot -- [mix aboveMarkMid (aboveMarkBot + markFine / 2) asciiMarkZoomY] - leftEnd -- SB + leftEnd -- SB rightEnd -- (emDashWidth - SB) hs -- (OperatorStroke / 2) @@ -397,9 +397,9 @@ glyph-block Mark-Above : begin include : OverlayTildeT TildeShape create-glyph 'overlayTildeOperatorAboveMask' : glyph-proc - define FarRight : Width * 4 - define FarLeft : -Width * 3 - define FarAbove : CAP * 4 + define FarRight : Width * 4 + define FarLeft : (-Width) * 3 + define FarAbove : CAP * 4 define { z1 z2 z3 z4 } : include : OverlayTildeT TildeKnots define arcs : list : list @@ -418,15 +418,15 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.wide - local m [mix aboveMarkBot aboveMarkTop 0.4] - local ttop [mix m aboveMarkTop 0.7] - local tbot [mix m (aboveMarkBot + markFine / 2) 0.7] + local m : mix aboveMarkBot aboveMarkTop 0.4 + local ttop : mix m aboveMarkTop 0.7 + local tbot : mix m (aboveMarkBot + markFine / 2) 0.7 local fine : [AdviceStroke 4.5] / 2 include : TildeShape ttop -- ttop tbot -- tbot - leftEnd -- (markMiddle - markExtend * 1.5) + leftEnd -- (markMiddle - markExtend * 1.5) rightEnd -- (markMiddle + markExtend * 1.5) hs -- fine @@ -449,13 +449,13 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.impl 'above' (1 / 4) 1 local m aboveMarkBot - local ttop [mix m aboveMarkTop 0.7] - local tbot [mix m (aboveMarkBot + markFine / 2) 0.7] + local ttop : mix m aboveMarkTop 0.7 + local tbot : mix m (aboveMarkBot + markFine / 2) 0.7 define [addTilde] : TildeShape ttop -- ttop tbot -- tbot - leftEnd -- (markMiddle - markExtend * 1.5) + leftEnd -- (markMiddle - markExtend * 1.5) rightEnd -- (markMiddle + markExtend * 1.5) hs -- ([AdviceStroke 4.5] / 2) @@ -464,7 +464,7 @@ glyph-block Mark-Above : begin include : ApparentTranslate 0 shift include : addTilde - include : ApparentTranslate 0 (-0.5 * shift) + include : ApparentTranslate 0 ((-0.5) * shift) create-glyph 'macronAbove' 0x304 : glyph-proc set-width 0 @@ -551,17 +551,17 @@ glyph-block Mark-Above : begin include : dispiro widths.lhs boxsw flat (0 - Width) aboveMarkBot - curl 0 aboveMarkBot + curl 0 aboveMarkBot include : dispiro widths.rhs boxsw flat (0 - Width) aboveMarkTop - curl 0 aboveMarkTop + curl 0 aboveMarkTop glyph-block-export BreveShape define [BreveShape] : with-params [top bottom xMiddle width hs] : glyph-proc - local leftEnd (xMiddle - width * 0.5) - local rightEnd (xMiddle + width * 0.5) + local leftEnd : xMiddle - width * 0.5 + local rightEnd : xMiddle + width * 0.5 include : dispiro g4.down.start leftEnd top [widths.heading hs hs Downward] arcvh @@ -571,8 +571,8 @@ glyph-block Mark-Above : begin glyph-block-export InvBreveShape define [InvBreveShape] : with-params [top bottom xMiddle width hs] : glyph-proc - local leftEnd (xMiddle - width * 0.5) - local rightEnd (xMiddle + width * 0.5) + local leftEnd : xMiddle - width * 0.5 + local rightEnd : xMiddle + width * 0.5 include : dispiro g4.up.start leftEnd bottom [widths.heading hs hs Upward] arcvh @@ -585,7 +585,7 @@ glyph-block Mark-Above : begin include : StdAnchors.wide include : BreveShape xMiddle -- markMiddle - width -- 2.4 * markExtend + width -- (2.4 * markExtend) top -- aboveMarkTop bottom -- aboveMarkBot hs -- markHalfStroke @@ -595,7 +595,7 @@ glyph-block Mark-Above : begin include : StdAnchors.wide include : InvBreveShape xMiddle -- markMiddle - width -- 2.4 * markExtend + width -- (2.4 * markExtend) top -- aboveMarkTop bottom -- aboveMarkBot hs -- markHalfStroke @@ -604,10 +604,10 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.medium - local fine : Math.min markFine ((aboveMarkTop - aboveMarkBot) * 0.2) + local fine : Math.min markFine : (aboveMarkTop - aboveMarkBot) * 0.2 - local hookBot (aboveMarkBot - fine / 2) - local hookTop ([mix aboveMarkBot aboveMarkTop 0.9] + fine / 2) + local hookBot : aboveMarkBot - fine / 2 + local hookTop : [mix aboveMarkBot aboveMarkTop 0.9] + fine / 2 include : dispiro widths.lhs (fine * 2) flat (markMiddle - [HSwToV fine]) hookBot [heading Rightward] @@ -671,7 +671,7 @@ glyph-block Mark-Above : begin local radius commaAboveRadius include : Ring (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius) include : dispiro - widths.rhs : Math.min radius (markFine * [linreg 16 2 90 1.75 markStroke]) + widths.rhs [Math.min radius : markFine * [linreg 16 2 90 1.75 markStroke]] straight.down.start (markMiddle + radius) (aboveMarkTop - radius + commaOvershoot) quadControls 0 0.6 g4 [mix markMiddle (markMiddle - radius) 0.2] (aboveMarkBot - radius - commaOvershoot2) @@ -684,7 +684,7 @@ glyph-block Mark-Above : begin local radius : commaAboveRadius * DesignParameters.squareDotScalar include : Rect aboveMarkTop (aboveMarkTop - radius * 2) (markMiddle - radius) (markMiddle + radius) include : dispiro - widths.rhs : Math.min radius (markFine * [linreg 16 2 90 1.75 markStroke]) + widths.rhs [Math.min radius : markFine * [linreg 16 2 90 1.75 markStroke]] flat (markMiddle + radius) aboveMarkTop [heading Downward] curl (markMiddle + radius) (aboveMarkTop - 2 * radius) [heading Downward] quadControls 0 0.6 @@ -712,7 +712,7 @@ glyph-block Mark-Above : begin local radius commaAboveRadius include : Ring (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius) include : dispiro - widths.lhs : Math.min radius (markFine * [linreg 16 2 90 1.75 markStroke]) + widths.lhs [Math.min radius : markFine * [linreg 16 2 90 1.75 markStroke]] straight.down.start (markMiddle - radius) (aboveMarkTop - radius + commaOvershoot) quadControls 0 0.6 g4 [mix markMiddle (markMiddle + radius) 0.2] (aboveMarkBot - radius - commaOvershoot2) @@ -725,7 +725,7 @@ glyph-block Mark-Above : begin local radius : commaAboveRadius * DesignParameters.squareDotScalar include : Rect (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius) include : dispiro - widths.lhs : Math.min radius (markFine * [linreg 16 2 90 1.75 markStroke]) + widths.lhs [Math.min radius : markFine * [linreg 16 2 90 1.75 markStroke]] flat (markMiddle - radius) aboveMarkTop [heading Downward] curl (markMiddle - radius) (aboveMarkTop - 2 * radius) [heading Downward] quadControls 0 0.6 @@ -883,21 +883,21 @@ glyph-block Mark-Above : begin foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do create-glyph "dialytikaTonosAbove.\(suffix)" : glyph-proc set-width 0 - include : with-transform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)" + include : with-transform [ApparentTranslate 0 ((-AccentHeight) / 8)] : refer-glyph "dialytikaAbove.\(suffix)" include : with-transform [ApparentTranslate 0 0] : refer-glyph 'tonosAbove' include : StdAnchors.wide create-glyph "dialytikaVariaAbove.\(suffix)" : glyph-proc set-width 0 local shift : 0.125 * (markExtend * 0.875 - markStress) - include : with-transform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)" + include : with-transform [ApparentTranslate 0 ((-AccentHeight) / 8)] : refer-glyph "dialytikaAbove.\(suffix)" include : with-transform [ApparentTranslate shift 0] : refer-glyph 'variaAbove' include : StdAnchors.wide create-glyph "dialytikaOxiaAbove.\(suffix)" : glyph-proc set-width 0 local shift : 0.125 * (markExtend * 0.875 - markStress) - include : with-transform [ApparentTranslate 0 (-1/8 * AccentHeight)] : refer-glyph "dialytikaAbove.\(suffix)" + include : with-transform [ApparentTranslate 0 ((-AccentHeight) / 8)] : refer-glyph "dialytikaAbove.\(suffix)" include : with-transform [ApparentTranslate (-shift) 0] : refer-glyph 'oxiaAbove' include : StdAnchors.wide @@ -913,12 +913,12 @@ glyph-block Mark-Above : begin local bot aboveMarkBot local exp : Math.sqrt : 1 + (((top - bot) / markExtend) ** 2) include : dispiro - widths.center : markFine * 2 + widths.center (markFine * 2) flat (markMiddle + markExtend) top curl (markMiddle - markExtend) [mix top bot 0.5] [widths.center.heading (markFine * exp) Leftward] include : dispiro - widths.center : markFine * 2 + widths.center (markFine * 2) flat (markMiddle + markExtend) bot curl (markMiddle - markExtend) [mix top bot 0.5] [widths.center.heading (markFine * exp) Leftward] @@ -931,10 +931,10 @@ glyph-block Mark-Above : begin include : dispiro g4.left.start markMiddle aboveMarkTop [widths.center.heading (radiusOut - radiusIn) Leftward] archv - g4.down.mid (markMiddle - (aboveMarkTop - aboveMarkBot) / 2) [mix aboveMarkTop aboveMarkBot 0.5] [heading Downward] + g4.down.mid (markMiddle - (aboveMarkTop - aboveMarkBot) / 2) [mix aboveMarkTop aboveMarkBot 0.5] [heading Downward] arcvh g4.right.end markMiddle aboveMarkBot [heading Rightward] - include : Translate ((aboveMarkTop - aboveMarkBot) / 4) 0 + include : Translate (0.25 * (aboveMarkTop - aboveMarkBot)) 0 create-glyph 'rightHalfCircleAbove' 0x357 : glyph-proc set-width 0 @@ -945,8 +945,8 @@ glyph-block Mark-Above : begin archv g4.down.mid (markMiddle + (aboveMarkTop - aboveMarkBot) / 2) [mix aboveMarkTop aboveMarkBot 0.5] [heading Downward] arcvh - g4.left.end markMiddle aboveMarkBot [heading Leftward] - include : Translate (-(aboveMarkTop - aboveMarkBot) / 4) 0 + g4.left.end markMiddle aboveMarkBot [heading Leftward] + include : Translate ((-0.25) * (aboveMarkTop - aboveMarkBot)) 0 create-glyph 'zigzagAbove' 0x35B : glyph-proc set-width 0 @@ -957,7 +957,7 @@ glyph-block Mark-Above : begin local fr : new Box aboveMarkTop aboveMarkBot (markMiddle - ext) (markMiddle + ext) include : HBar.m fr.left fr.right fr.yMid (markFine * 2) include : intersection [MaskBelow fr.top] [MaskAbove (fr.yMid - markFine)] - ExtLineLhs 4 (markFine * 2) (fr.left + coSlope * (fr.top - fr.yMid - markFine)) fr.top (fr.left - 2 * markFine * coSlope) (fr.yMid - markFine) + ExtLineLhs 4 (markFine * 2) (fr.left + coSlope * (fr.top - fr.yMid - markFine)) fr.top (fr.left - 2 * markFine * coSlope) (fr.yMid - markFine) include : intersection [MaskAbove fr.bot] [MaskBelow (fr.yMid + markFine)] ExtLineLhs 4 (markFine * 2) (fr.right - coSlope * (fr.yMid - fr.bot - markFine)) fr.bot (fr.right + 2 * markFine * coSlope) (fr.yMid + markFine) @@ -969,12 +969,12 @@ glyph-block Mark-Above : begin local bot aboveMarkBot local exp : Math.sqrt : 1 + ((3 * markExtend / (top - bot)) ** 2) include : dispiro - widths.center : markFine * 2 + widths.center (markFine * 2) flat (markMiddle - markExtend) bot curl markMiddle top [widths.center.heading (markFine * exp) Upward] include : dispiro - widths.center : markFine * 2 + widths.center (markFine * 2) flat (markMiddle + markExtend) bot curl markMiddle top [widths.center.heading (markFine * exp) Upward] @@ -984,15 +984,15 @@ glyph-block Mark-Above : begin local fine : [AdviceStroke 6] / 2 local top aboveMarkTop local bot aboveMarkMid - local left : markMiddle - markExtend * 0.75 + local left : markMiddle - markExtend * 0.75 local right : markMiddle + markExtend * 0.75 local exp : Math.sqrt : 1 + (2 * (top - bot)) / (right - left) * (2 * (top - bot)) / (right - left) include : dispiro - widths.center : fine * 2 + widths.center (fine * 2) flat left bot curl [mix left right 0.5] top [widths.heading (fine * exp) (fine * exp) Rightward] include : dispiro - widths.center : fine * 2 + widths.center (fine * 2) flat right bot curl [mix left right 0.5] top [widths.heading (fine * exp) (fine * exp) Leftward] @@ -1008,16 +1008,16 @@ glyph-block Mark-Above : begin local fine : [AdviceStroke 5.75] / 2 local top aboveMarkTop local bot aboveMarkBot - local left : markMiddle - markExtend * 1.5 + local left : markMiddle - markExtend * 1.5 local right : markMiddle - markExtend * 0.5 local exp : Math.sqrt : 1 + (top - bot) / (2 * (right - left)) * (top - bot) / (2 * (right - left)) include : dispiro - widths.center : fine * 2 + widths.center (fine * 2) flat right top curl left [mix top bot 0.5] [widths.heading (fine * exp) (fine * exp) Downward] include : dispiro - widths.center : fine * 2 + widths.center (fine * 2) flat right bot curl left [mix top bot 0.5] [widths.heading (fine * exp) (fine * exp) Upward] @@ -1112,7 +1112,7 @@ glyph-block Mark-Above : begin include : StdAnchors.extraWide include : BreveShape xMiddle -- markMiddle - width -- 3.0 * markExtend + width -- (3 * markExtend) top -- aboveMarkTop bottom -- aboveMarkBot hs -- markHalfStroke @@ -1122,7 +1122,7 @@ glyph-block Mark-Above : begin include : StdAnchors.extraWide include : InvBreveShape xMiddle -- markMiddle - width -- 3.0 * markExtend + width -- (3 * markExtend) top -- aboveMarkTop bottom -- aboveMarkBot hs -- markHalfStroke @@ -1132,7 +1132,7 @@ glyph-block Mark-Above : begin include : StdAnchors.mediumWide local ext : 0.625 * markExtend + markFine - local coSlope 0.2 + local coSlope 0.2 local fr : new Box aboveMarkTop aboveMarkBot (markMiddle - ext) (markMiddle + ext) include : HBar.m fr.left (fr.right - coSlope * (fr.top - fr.yMid)) fr.yMid (markFine * 2) include : intersection [MaskBelow fr.top] [MaskAbove (fr.yMid - markFine)] @@ -1169,7 +1169,7 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.wide - local sw : [AdviceStroke 3.5] / Stroke * markStroke + local sw : markStroke * ([AdviceStroke 3.5] / Stroke) local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 include : dispiro @@ -1195,7 +1195,7 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.wide - local sw : [AdviceStroke 3.5] / Stroke * markStroke + local sw : markStroke * ([AdviceStroke 3.5] / Stroke) local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 include : dispiro @@ -1204,16 +1204,16 @@ glyph-block Mark-Above : begin g4.right.mid [mix markMiddle (markMiddle - extend) 0.5] (aboveMarkBot + 0.5 * sw) [heading Rightward] archv g4.up.end markMiddle aboveMarkTop [heading Upward] - include : HBar.t markMiddle (markMiddle + extend + 0.5 * markStress) aboveMarkTop sw + include : HBar.t markMiddle (markMiddle + extend + 0.5 * markStress) aboveMarkTop sw create-glyph 'macronBreveAbove' 0x1DCC : glyph-proc set-width 0 include : StdAnchors.wide - local sw : [AdviceStroke 3.5] / Stroke * markStroke + local sw : markStroke * ([AdviceStroke 3.5] / Stroke) local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 - include : HBar.t (markMiddle - extend - 0.5 * markStress) markMiddle aboveMarkTop sw + include : HBar.t (markMiddle - extend - 0.5 * markStress) markMiddle aboveMarkTop sw include : dispiro g4.down.start markMiddle aboveMarkTop [widths.center.heading sw Downward] arcvh @@ -1275,7 +1275,7 @@ glyph-block Mark-Above : begin local wide : markExtend * 0.3 local d : markExtend * 0.7 - local fine : 0.5 * [Math.min ([AdviceStroke 3.5] / Stroke * markStroke) (markExtend / 3)] + local fine : 0.5 * [Math.min (markStroke * ([AdviceStroke 3.5] / Stroke)) (markExtend / 3)] local stress : 1.2 * fine include : dispiro @@ -1321,7 +1321,7 @@ glyph-block Mark-Above : begin include : dispiro widths.lhs markFine g4 (left + braceDepth) (aboveMarkTop + markFine) - g4 (left + OX) aboveMarkMid + g4 (left + OX) aboveMarkMid g4 (left + braceDepth) (aboveMarkBot - markFine) create-glyph 'rightParenAbove' 0x1AC2 : glyph-proc @@ -1332,7 +1332,7 @@ glyph-block Mark-Above : begin include : dispiro widths.rhs markFine g4 (right - braceDepth) (aboveMarkTop + markFine) - g4 (right - OX) aboveMarkMid + g4 (right - OX) aboveMarkMid g4 (right - braceDepth) (aboveMarkBot - markFine) create-glyph 'parenAbove' 0x1ABB : glyph-proc @@ -1346,16 +1346,16 @@ glyph-block Mark-Above : begin set-mark-anchor 'aboveBraceL' markMiddle aboveMarkMid (markMiddle - 1.5 * markExtend) aboveMarkMid local braceDepth : markExtend * 0.25 local left : markMiddle - 1.5 * markExtend - local gap : [HSwToV markFine] + [Math.max markFine (markExtend * 0.5)] + local gap : [HSwToV markFine] + [Math.max markFine : markExtend * 0.5] include : dispiro widths.lhs markFine g4 (left + braceDepth) (aboveMarkTop + markFine) - g4 (left + OX) aboveMarkMid + g4 (left + OX) aboveMarkMid g4 (left + braceDepth) (aboveMarkBot - markFine) include : dispiro widths.lhs markFine g4 (left - gap + braceDepth) (aboveMarkTop + markFine) - g4 (left - gap + OX) aboveMarkMid + g4 (left - gap + OX) aboveMarkMid g4 (left - gap + braceDepth) (aboveMarkBot - markFine) create-glyph 'rightDoubleParenAbove' : glyph-proc @@ -1363,16 +1363,16 @@ glyph-block Mark-Above : begin set-mark-anchor 'aboveBraceR' markMiddle aboveMarkMid (markMiddle + 1.5 * markExtend) aboveMarkMid local braceDepth : markExtend * 0.25 local right : markMiddle + 1.5 * markExtend - local gap : [HSwToV markFine] + [Math.max markFine (markExtend * 0.5)] + local gap : [HSwToV markFine] + [Math.max markFine : markExtend * 0.5] include : dispiro widths.rhs markFine g4 (right - braceDepth) (aboveMarkTop + markFine) - g4 (right - OX) aboveMarkMid + g4 (right - OX) aboveMarkMid g4 (right - braceDepth) (aboveMarkBot - markFine) include : dispiro widths.rhs markFine g4 (right + gap - braceDepth) (aboveMarkTop + markFine) - g4 (right + gap - OX) aboveMarkMid + g4 (right + gap - OX) aboveMarkMid g4 (right + gap - braceDepth) (aboveMarkBot - markFine) create-glyph 'doubleParenAbove' 0x1ABC : glyph-proc diff --git a/packages/font-glyphs/src/marks/horn-and-angle.ptl b/packages/font-glyphs/src/marks/horn-and-angle.ptl index 59a1671d86..0eff52ae25 100644 --- a/packages/font-glyphs/src/marks/horn-and-angle.ptl +++ b/packages/font-glyphs/src/marks/horn-and-angle.ptl @@ -18,8 +18,8 @@ glyph-block Mark-Horn-And-Angle : begin # horn and angle marks define [HornDim attX attY overshootX overshootY yrP] : begin local radius commaAboveRadius - local hornFine : Math.min (radius * 0.75) (markFine * 1.75) - local hornStroke : Math.min (radius * 1) (markFine * 1.75) + local hornFine : Math.min (radius * 0.75) (markFine * 1.75) + local hornStroke : Math.min (radius * 1) (markFine * 1.75) local startX : attX + 2 * radius local startY : attY + yrP * radius + (aboveMarkTop - aboveMarkBot) / 2 return : object radius hornFine hornStroke startX startY @@ -42,13 +42,13 @@ glyph-block Mark-Horn-And-Angle : begin include : union RingAt (startX - radius) startY (radius - hornFine / 8) dispiro - g4 (startX + OX) (startY) [widths.rhs (hornFine / 4)] + g4 (startX + OX) (startY) [widths.rhs : hornFine / 4] arcvh g4 (startX - radius) (startY - radius) archv g4 (startX - 2 * radius) (startY) arcvh - g4 (startX - radius) (startY + radius) [widths.rhs (hornFine / 2)] + g4 (startX - radius) (startY + radius) [widths.rhs : hornFine / 2] archv g4 startX startY [widths.rhs hornFine] quadControls 0 0.75 16 : object : blend : lambda [t] @@ -69,52 +69,52 @@ glyph-block Mark-Horn-And-Angle : begin create-glyph 'horn.round' : glyph-proc set-width 0 - include : HornShape 0 XH 0 0 0.5 + include : HornShape 0 XH 0 0 0.5 include : HornMarkAnchor 0 XH 0 0 0.5 create-glyph 'horn.square' : glyph-proc set-width 0 include : SquareHornShape 0 XH 0 0 0.5 - include : HornMarkAnchor 0 XH 0 0 0.5 + include : HornMarkAnchor 0 XH 0 0 0.5 select-variant 'horn' 0x31B (follow -- 'diacriticDot') create-glyph 'longHorn.round' : glyph-proc set-width 0 - include : HornShape 0 XH (Width / 2) (ArchDepthB) 0.5 + include : HornShape 0 XH (Width / 2) (ArchDepthB) 0.5 include : HornMarkAnchor 0 XH (Width / 2) (ArchDepthB) 0.5 create-glyph 'longHorn.square' : glyph-proc set-width 0 include : SquareHornShape 0 XH (Width / 2) (ArchDepthB) 0.5 - include : HornMarkAnchor 0 XH (Width / 2) (ArchDepthB) 0.5 + include : HornMarkAnchor 0 XH (Width / 2) (ArchDepthB) 0.5 select-variant 'longHorn' null (follow -- 'diacriticDot') create-glyph 'leftangleTR' 0x31A : glyph-proc set-width 0 include : VBar.l 0 aboveMarkBot aboveMarkTop (markFine * 2) - include : HBar.t (-markExtend * 1.5) 0 aboveMarkTop (markFine * 2) + include : HBar.t ((-1.5) * markExtend) 0 aboveMarkTop (markFine * 2) set-mark-anchor 'topRight' 0 XH 0 aboveMarkTop - set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceL' ((-0.75) * markExtend) aboveMarkMid set-base-anchor 'aboveBraceR' 0 aboveMarkMid create-glyph 'ltailBR' 0x321 : glyph-proc set-width 0 set-mark-anchor 'bottomRight' 0 0 0 belowMarkBot - set-base-anchor 'belowBraceL' (-0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) (-0.5 * Hook - HalfStroke) - set-base-anchor 'belowBraceR' (-0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) (-0.5 * Hook - HalfStroke) + set-base-anchor 'belowBraceL' ((-0.5) * HookX - 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) ((-0.5) * Hook - HalfStroke) + set-base-anchor 'belowBraceR' ((-0.5) * HookX + 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) ((-0.5) * Hook - HalfStroke) include : dispiro widths.rhs flat 0 (-O) [heading Downward] curl 0 0 [heading Downward] - straight.left.end (-HookX - [HSwToV HalfStroke]) (-Hook - HalfStroke) + straight.left.end ((-HookX) - [HSwToV HalfStroke]) ((-Hook) - HalfStroke) create-glyph 'rtailBR' 0x322 : glyph-proc set-width 0 set-mark-anchor 'bottomRight' 0 0 0 belowMarkBot - set-base-anchor 'belowBraceL' (0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.75 * Stroke]) (-0.5 * Hook - HalfStroke) - set-base-anchor 'belowBraceR' (0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.5 * Stroke]) (-0.5 * Hook - HalfStroke) + set-base-anchor 'belowBraceL' (0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.75 * Stroke]) ((-0.5) * Hook - HalfStroke) + set-base-anchor 'belowBraceR' (0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.5 * Stroke]) ((-0.5) * Hook - HalfStroke) include : dispiro widths.rhs flat 0 (-O) [heading Downward] @@ -126,7 +126,7 @@ glyph-block Mark-Horn-And-Angle : begin set-width 0 local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5 local r : mix radius DotRadius 0.5 - include : DrawAt (-startX + r) startY (r * kdr) + include : DrawAt ((-startX) + r) startY (r * kdr) set-mark-anchor 'topLeft' 0 XH (-startX) startY set-base-anchor 'aboveBraceL' (startX - r) startY set-base-anchor 'aboveBraceR' (startX - r) startY @@ -142,7 +142,7 @@ glyph-block Mark-Horn-And-Angle : begin set-width 0 local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5 local r : mix radius DotRadius 0.5 - include : DrawAt (-startX + r) (XH - startY) (r * kdr) + include : DrawAt ((-startX) + r) (XH - startY) (r * kdr) set-mark-anchor 'bottomLeft' 0 0 (-startX) (XH - startY) set-base-anchor 'belowBraceL' (startX - r) startY set-base-anchor 'belowBraceR' (startX - r) startY @@ -156,8 +156,8 @@ glyph-block Mark-Horn-And-Angle : begin include : refer-glyph src include : ApparentTranslate (RightSB - Middle + DotRadius) 0 set-mark-anchor 'topRight' 0 XH 0 aboveMarkTop - set-base-anchor 'aboveBraceL' (-SB + DotRadius) aboveMarkMid - set-base-anchor 'aboveBraceR' (-SB + DotRadius) aboveMarkMid + set-base-anchor 'aboveBraceL' ((-SB) + DotRadius) aboveMarkMid + set-base-anchor 'aboveBraceR' ((-SB) + DotRadius) aboveMarkMid create-glyph 'cyrlKavykaTR' 0x1DF6 : glyph-proc set-width 0 @@ -168,8 +168,8 @@ glyph-block Mark-Horn-And-Angle : begin bottom -- aboveMarkBot hs -- markHalfStroke set-mark-anchor 'topRight' 0 XH 0 aboveMarkTop - set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid - set-base-anchor 'aboveBraceR' ( 0.75 * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceL' ((-0.75) * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceR' ((+0.75) * markExtend) aboveMarkMid create-glyph 'cyrlKavykaTL' 0x1DF7 : glyph-proc set-width 0 @@ -180,8 +180,8 @@ glyph-block Mark-Horn-And-Angle : begin bottom -- aboveMarkBot hs -- markHalfStroke set-mark-anchor 'topLeft' 0 XH 0 aboveMarkTop - set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid - set-base-anchor 'aboveBraceR' ( 0.75 * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceL' ((-0.75) * markExtend) aboveMarkMid + set-base-anchor 'aboveBraceR' ((+0.75) * markExtend) aboveMarkMid create-glyph 'rightHalfCircleTR' : glyph-proc set-width 0 @@ -215,18 +215,18 @@ glyph-block Mark-Horn-And-Angle : begin dispiro g4 markMiddle 0 [widths.rhs.heading fine Leftward] alsoThru 0.5 (0.375 - 0.2 * markStroke / depth) [widths.rhs : mix fine swMid 0.25] - g4.down.mid (markMiddle - extL) (-0.75 * depth) [widths.rhs.heading swMid {.x HVContrast .y turnSlope}] + g4.down.mid (markMiddle - extL) ((-0.75) * depth) [widths.rhs.heading swMid {.x HVContrast .y turnSlope}] arcvh - g4 (markMiddle + [mix (-extL) extR (11/16)]) (-depth + O) [widths.rhs.heading markStroke Rightward] - g4 (markMiddle + extR) (-depth + 0.5 * O) [heading Rightward] + g4 (markMiddle + [mix (-extL) extR (11/16)]) ((-depth) + O) [widths.rhs.heading markStroke Rightward] + g4 (markMiddle + extR) ((-depth) + 0.5 * O) [heading Rightward] intersection MaskAbove 0 MaskRight markMiddle - set-mark-anchor 'trailing' markMiddle 0 (markMiddle + extR) (-depth - 0.5 * O - markStroke) - set-base-anchor 'belowBraceL' (markMiddle - extL - paren * markExtend - [HSwToV : 0.25 * swMid]) (-0.75 * depth) - set-base-anchor 'belowBraceR' (markMiddle - 0.75 * extL + paren * markExtend) (-0.75 * depth) + set-mark-anchor 'trailing' markMiddle 0 (markMiddle + extR) ((-depth) - 0.5 * O - markStroke) + set-base-anchor 'belowBraceL' (markMiddle - extL - paren * markExtend - [HSwToV : 0.25 * swMid]) ((-0.75) * depth) + set-base-anchor 'belowBraceR' (markMiddle - 0.75 * extL + paren * markExtend) ((-0.75) * depth) create-glyph "\(glyphName)/spacer" : glyph-proc set-width 0 - set-mark-anchor 'below' 0 0 0 (-depth - 0.5 * O - markStroke) + set-mark-anchor 'below' 0 0 0 ((-depth) - 0.5 * O - markStroke) diff --git a/packages/font-glyphs/src/marks/overlay.ptl b/packages/font-glyphs/src/marks/overlay.ptl index 149520e9c5..e705fb71d2 100644 --- a/packages/font-glyphs/src/marks/overlay.ptl +++ b/packages/font-glyphs/src/marks/overlay.ptl @@ -144,10 +144,7 @@ glyph-block Mark-Overlay : begin create-glyph 'oblStrike' : glyph-proc set-width 0 set-mark-anchor 'strike' markMiddle (XH / 2) markMiddle (XH / 2) - include : dispiro - widths.center OverlayStroke - flat ([mix 0 SB 0.5] - Width) (0.4 * XH) - curl ([mix Width RightSB 0.5] - Width) (0.6 * XH) + include : HOverlayObliqueBar ([mix 0 SB 0.5] - Width) ([mix Width RightSB 0.5] - Width) (XH / 2) create-glyph 'tildeStrike' : glyph-proc set-width 0 diff --git a/packages/font-glyphs/src/meta/aesthetics.ptl b/packages/font-glyphs/src/meta/aesthetics.ptl index 74130cc36f..673d26bd58 100644 --- a/packages/font-glyphs/src/meta/aesthetics.ptl +++ b/packages/font-glyphs/src/meta/aesthetics.ptl @@ -97,6 +97,8 @@ export : define [calculateMetrics para] : begin AdviceStrokeInSpace spaceV 1 crwY 1 define Stroke : AdviceStroke 2 + define HalfStroke : Stroke / 2 + define QuarterStroke : Stroke / 4 define DotSize : fallback para.dotSize Stroke define PeriodSize : fallback para.periodSize DotSize define HBarPos : DesignParameters.hBarPos - 0.09 * Stroke / CAP @@ -105,8 +107,8 @@ export : define [calculateMetrics para] : begin define LongJut para.longjut define VJut para.vjut define LongVJut : fallback para.longvjut LongJut - define MidJutSide : Math.max Jut : mix [HSwToV : 0.5 * Stroke] LongJut 0.5 - define MidJutCenter : Math.max Jut : mix [HSwToV : 0.5 * Stroke] LongJut 0.6 + define MidJutSide : Math.max Jut : mix [HSwToV HalfStroke] LongJut 0.5 + define MidJutCenter : Math.max Jut : mix [HSwToV HalfStroke] LongJut 0.6 define AccentStackOffset para.accentStackOffset define AccentWidth para.accentWidth define AccentClearance para.accentClearance @@ -117,15 +119,15 @@ export : define [calculateMetrics para] : begin define SLAB para.slab - define [IBalance df] : df.div * df.div * [fallback para.ibalance (LongJut * 0.04)] # Serifed - define [IBalance2 df] : df.div * [fallback para.ibalance2 (LongJut * 0.14)] # Hooky, Tailed - define JBalance : fallback para.jbalance 0 - define JBalance2 : fallback para.jbalance2 (Stroke * 0.25 + LongJut * 0.04) - define TBalance : fallback para.tbalance JBalance + define [IBalance df] : df.div * df.div * [fallback para.ibalance (LongJut * 0.04)] # Serifed + define [IBalance2 df] : df.div * [fallback para.ibalance2 (LongJut * 0.14)] # Hooky, Tailed + define JBalance : fallback para.jbalance 0 + define JBalance2 : fallback para.jbalance2 (QuarterStroke + LongJut * 0.04) + define TBalance : fallback para.tbalance JBalance define TBalance2 : fallback para.tbalance2 TBalance - define RBalance : fallback para.rbalance (JBalance * 0.3) + define RBalance : fallback para.rbalance (JBalance * 0.3) define RBalance2 : fallback para.rbalance2 0 - define FBalance : fallback para.fbalance 0 + define FBalance : fallback para.fbalance 0 define OneBalance : fallback para.onebalance 0 # derived metrics @@ -138,10 +140,9 @@ export : define [calculateMetrics para] : begin define [NarrowUnicodeT wd] : function [u] : if (wd === Width) u null define [WideUnicodeT wd] : function [u] : if (wd !== Width) u null - define EssUpper : Stroke * [fallback para.essRatioUpper para.essRatio Contrast] - define EssLower : Stroke * [fallback para.essRatioLower para.essRatio Contrast] + define EssUpper : Stroke * [fallback para.essRatioUpper para.essRatio Contrast] + define EssLower : Stroke * [fallback para.essRatioLower para.essRatio Contrast] define EssQuestion : Stroke * [fallback para.essRatioQuestion para.essRatio Contrast] - define HalfStroke : Stroke / 2 define RightSB : Width - SB define Middle : Width / 2 define DotRadius : DotSize / 2 @@ -182,7 +183,7 @@ export : define [calculateMetrics para] : begin define CorrectionOMidX : TanSlope * 0.9 * [StrokeWidthBlend 1.3 0.9] define CorrectionOMidS : Stroke * CorrectionOMidX - define OverlayStroke : AdviceStroke 3.75 + define OverlayStroke : AdviceStroke 3.75 define OperatorStroke : AdviceStroke 2.75 define GeometryStroke : AdviceStroke 4 define ShoulderFine : Math.min (Stroke * para.shoulderFineMin) : AdviceStroke 24 @@ -194,20 +195,20 @@ export : define [calculateMetrics para] : begin define TINY : 1 / 128 return [object - DesignParameters UPM HalfUPM Width SB CAP XH Ascender Descender Contrast SymbolMid - ParenTop ParenBot OperTop OperBot TackTop TackBot PlusTop PlusBot PictTop PictBot BgOpTop - BgOpBot BgTkTop BgTkBot Italify Upright Scale Translate ApparentTranslate Rotate - GlobalTransform TanSlope HVContrast Upward Downward Rightward Leftward O OX OXHook Hook - AHook SHook RHook JHook HookX TailX TailY ArchDepth SmallArchDepth Stroke DotSize PeriodSize - HBarPos OverlayPos LongJut LongVJut Jut VJut VJutStroke AccentStackOffset AccentWidth - AccentClearance AccentHeight CThin CThinB SLAB IBalance IBalance2 JBalance JBalance2 TBalance - TBalance2 RBalance RBalance2 FBalance OneBalance WideWidth0 WideWidth1 WideWidth2 WideWidth3 - WideWidth4 EssUpper EssLower EssQuestion HalfStroke RightSB Middle DotRadius PeriodRadius - 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 VSwToH NarrowUnicodeT - WideUnicodeT VERY-FAR TINY] + DesignParameters UPM HalfUPM Width SB CAP XH Ascender Descender Contrast SymbolMid ParenTop + ParenBot OperTop OperBot TackTop TackBot PlusTop PlusBot PictTop PictBot BgOpTop BgOpBot + BgTkTop BgTkBot Italify Upright Scale Translate ApparentTranslate Rotate GlobalTransform + TanSlope HVContrast Upward Downward Rightward Leftward O OX OXHook Hook AHook SHook RHook + JHook HookX TailX TailY ArchDepth SmallArchDepth Stroke HalfStroke QuarterStroke DotSize + PeriodSize HBarPos OverlayPos Jut VJut LongJut LongVJut VJutStroke AccentStackOffset + AccentWidth AccentClearance AccentHeight CThin CThinB SLAB IBalance IBalance2 JBalance + JBalance2 TBalance TBalance2 RBalance RBalance2 FBalance OneBalance WideWidth0 WideWidth1 + WideWidth2 WideWidth3 WideWidth4 EssUpper EssLower EssQuestion RightSB Middle DotRadius + PeriodRadius ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX + CorrectionOMidS compositeBaseAnchors AdviceStroke AdviceStroke2 AdviceStrokeInSpace + OverlayStroke OperatorStroke GeometryStroke ShoulderFine AdviceGlottalStopArchDepth + StrokeWidthBlend ArchDepthAOf ArchDepthBOf SmoothAdjust SideJut MidJutSide MidJutCenter + YSmoothMidR YSmoothMidL HSwToV VSwToH NarrowUnicodeT WideUnicodeT VERY-FAR TINY] export : define [setFontMetrics para metrics fm] : begin define [object CAP Descender XH Width SymbolMid] metrics @@ -323,8 +324,8 @@ define [MarksetDiv p sbMul me] : begin define [MarkBottomLeft zone] {.baseAnchors {.bottomLeft [ta : new Anchor leftSB zone.bot]}} define [MarkBottomRight zone] {.baseAnchors {.bottomRight [ta : new Anchor rightSB zone.bot]}} - define markTieAbove {.baseAnchors {.tieAbove [ta : new Anchor width (me.XH + me.AccentStackOffset * 1.38)]}} - define markTieBelow {.baseAnchors {.tieBelow [ta : new Anchor width me.Descender ]}} + define markTieAbove {.baseAnchors {.tieAbove [ta : new Anchor width (me.XH + me.AccentStackOffset * 1.38)]}} + define markTieBelow {.baseAnchors {.tieBelow [ta : new Anchor width me.Descender ]}} define [buildStandardMarkSet zone] : lambda [] : begin if (this && this.baseAnchors) : begin @@ -440,12 +441,20 @@ export : define [GenDivFrame metrics] : begin set this.widthNoOvershoot : this.width - ox set this.divNoOvershoot : this.widthNoOvershoot / metrics.Width - public [archDepth d _stroke] : begin + set this.archDepth : this.archDepthOf metrics.ArchDepth mvs + set this.archDepthA : this.archDepthAOf metrics.ArchDepth mvs + set this.archDepthB : this.archDepthBOf metrics.ArchDepth mvs + + set this.smallArchDepth : this.archDepthOf metrics.SmallArchDepth mvs + set this.smallArchDepthA : this.archDepthAOf metrics.SmallArchDepth mvs + set this.smallArchDepthB : this.archDepthBOf metrics.SmallArchDepth mvs + + public [archDepthOf d _stroke] : begin return : Math.max (d * this.divNoOvershoot) (1.125 * [fallback _stroke this.mvs]) - public [archDepthA d _stroke] : begin - return : metrics.ArchDepthAOf [this.archDepth d _stroke] this.widthNoOvershoot - public [archDepthB d _stroke] : begin - return : metrics.ArchDepthBOf [this.archDepth d _stroke] this.widthNoOvershoot + public [archDepthAOf d _stroke] : begin + return : metrics.ArchDepthAOf [this.archDepthOf d _stroke] this.widthNoOvershoot + public [archDepthBOf d _stroke] : begin + return : metrics.ArchDepthBOf [this.archDepthOf d _stroke] this.widthNoOvershoot public [slice _divisions _keeps _o] : begin local o : fallback _o 0 diff --git a/packages/font-glyphs/src/meta/macros.ptl b/packages/font-glyphs/src/meta/macros.ptl index dcb9ba71e1..d790bd5b30 100644 --- a/packages/font-glyphs/src/meta/macros.ptl +++ b/packages/font-glyphs/src/meta/macros.ptl @@ -307,9 +307,9 @@ define-macro glyph-block-import : syntax-rules CommonShapes `[no-shape tagged Rect SquareAt Ring RingAt DotAt RingStroke RingStrokeAt DotStrokeAt Circle Ellipse OShapeT OShape OShapeOutline OShapeFlatTB HSerif - VSerif NeedSlab NeedNotItalic HBar HOverlayBar VBar FlatSlashShape hookstart hookend - flatside arch Ungizmo Regizmo FlipAround ScaleAround Realign ForceUpright DiagCor NameUni - PointingTo with-transform with-outlined remove-holes radicalize clear-geometry + VSerif NeedSlab NeedNotItalic HBar HOverlayBar HOverlayObliqueBar VBar FlatSlashShape + hookstart hookend flatside arch Ungizmo Regizmo FlipAround ScaleAround Realign ForceUpright + DiagCor NameUni PointingTo with-transform with-outlined remove-holes radicalize clear-geometry clear-anchors ExtLineCenter ExtLineLhs ExtLineRhs DiagCorDs HCrossBar MaskAbove MaskBelow MaskLeft MaskRight HalfRectTriangle MaskAboveLine MaskBelowLine MaskLeftLine MaskRightLine DotVariants WithDotVariants] @@ -380,16 +380,17 @@ define-macro glyph-block : syntax-rules PictTop PictBot BgOpTop BgOpBot BgTkTop BgTkBot Italify Upright Scale Translate ApparentTranslate Rotate GlobalTransform TanSlope HVContrast Upward Downward Rightward Leftward O OX OXHook Hook AHook SHook RHook JHook HookX TailX TailY ArchDepth - SmallArchDepth Stroke DotSize PeriodSize HBarPos OverlayPos LongJut LongVJut Jut VJut - VJutStroke AccentStackOffset AccentWidth AccentClearance AccentHeight CThin CThinB - SLAB IBalance IBalance2 JBalance JBalance2 TBalance TBalance2 RBalance RBalance2 - FBalance OneBalance WideWidth0 WideWidth1 WideWidth2 WideWidth3 WideWidth4 EssUpper - EssLower EssQuestion HalfStroke RightSB Middle DotRadius PeriodRadius SideJut - ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX CorrectionOMidS - AdviceStroke AdviceStroke2 AdviceStrokeInSpace OverlayStroke OperatorStroke GeometryStroke - ShoulderFine AdviceGlottalStopArchDepth StrokeWidthBlend ArchDepthAOf ArchDepthBOf - SmoothAdjust MidJutSide MidJutCenter compositeBaseAnchors YSmoothMidR YSmoothMidL HSwToV - VSwToH NarrowUnicodeT WideUnicodeT VERY-FAR TINY] + SmallArchDepth Stroke HalfStroke QuarterStroke DotSize PeriodSize HBarPos OverlayPos + Jut VJut LongJut LongVJut VJutStroke AccentStackOffset AccentWidth AccentClearance + AccentHeight CThin CThinB SLAB IBalance IBalance2 JBalance JBalance2 TBalance + TBalance2 RBalance RBalance2 FBalance OneBalance WideWidth0 WideWidth1 WideWidth2 + WideWidth3 WideWidth4 EssUpper EssLower EssQuestion RightSB Middle DotRadius + PeriodRadius ArchDepthA ArchDepthB SmallArchDepthA SmallArchDepthB CorrectionOMidX + CorrectionOMidS compositeBaseAnchors AdviceStroke AdviceStroke2 AdviceStrokeInSpace + OverlayStroke OperatorStroke GeometryStroke ShoulderFine AdviceGlottalStopArchDepth + StrokeWidthBlend ArchDepthAOf ArchDepthBOf SmoothAdjust SideJut MidJutSide + MidJutCenter YSmoothMidR YSmoothMidL HSwToV 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/number/1.ptl b/packages/font-glyphs/src/number/1.ptl index 91fcd3b6d1..a85726823a 100644 --- a/packages/font-glyphs/src/number/1.ptl +++ b/packages/font-glyphs/src/number/1.ptl @@ -26,8 +26,8 @@ glyph-block Digits-One : begin include : HSerif.lt (Middle + balance - [HSwToV HalfStroke]) (top - Stroke / 8 - Hook * pTopSerif * (top / CAP)) (LongJut - [HSwToV HalfStroke]) export : define [TopCut top balance pTopSerif] : glyph-proc - local sl : Middle + balance - [HSwToV : 0.5 * Stroke] - local sr : Middle + balance + [HSwToV : 0.5 * Stroke] + local sl : Middle + balance - [HSwToV HalfStroke] + local sr : Middle + balance + [HSwToV HalfStroke] include : spiro-outline corner sr 0 corner sl 0 diff --git a/packages/font-glyphs/src/number/6.ptl b/packages/font-glyphs/src/number/6.ptl index fe8e9a8b92..2de8b80bf4 100644 --- a/packages/font-glyphs/src/number/6.ptl +++ b/packages/font-glyphs/src/number/6.ptl @@ -11,7 +11,7 @@ glyph-block Digits-Six : begin glyph-block-export OpenContourSixShape define [OpenContourSixShape charTop] : glyph-proc - local oTop : charTop * 0.55 + Stroke / 2 + local oTop : charTop * 0.55 + HalfStroke local ymiddlea : (oTop - SmallArchDepthA + SmallArchDepthB) / 2 local ymiddleb : (oTop - SmallArchDepthB + SmallArchDepthA) / 2 include : dispiro @@ -22,7 +22,7 @@ glyph-block Digits-Six : begin arch.rhs 0 g4.up.mid (SB + OX) ymiddlea quadControls 0 0.85 - g4 ([mix SB RightSB 0.85] - [HSwToV : 0.25 * Stroke]) (charTop - O) [widths.rhs] + g4 ([mix SB RightSB 0.85] - [HSwToV QuarterStroke]) (charTop - O) [widths.rhs] glyph-block-export ClosedContourSixShape define [ClosedContourSixShape top] : glyph-proc diff --git a/packages/font-glyphs/src/number/7.ptl b/packages/font-glyphs/src/number/7.ptl index acafa1621d..1a62db43f9 100644 --- a/packages/font-glyphs/src/number/7.ptl +++ b/packages/font-glyphs/src/number/7.ptl @@ -44,23 +44,23 @@ glyph-block Digits-Seven : begin define [Crossbar top] : glyph-proc local m : mix SevenXLeft (RightSB - [HSwToV HalfStroke]) 0.5 include : HBar.m - m - [HSwToV : 0.25 * Stroke] - LongJut * 0.8 - m + [HSwToV : 0.25 * Stroke] + LongJut * 0.7 - mix 0 (top - Stroke * 0.25) 0.5 + m - [HSwToV QuarterStroke] - LongJut * 0.8 + m + [HSwToV QuarterStroke] + LongJut * 0.7 + mix 0 (top - QuarterStroke) 0.5 define [BendCrossbar top] : glyph-proc local m : [mix SevenXLeftBend (RightSB - [HSwToV HalfStroke]) 0.25] + 0.125 * Stroke include : HBar.m - m - [HSwToV : 0.25 * Stroke] - LongJut * 0.8 - m + [HSwToV : 0.25 * Stroke] + LongJut * 0.7 - mix 0 (top - Stroke * 0.25) 0.5 + m - [HSwToV QuarterStroke] - LongJut * 0.8 + m + [HSwToV QuarterStroke] + LongJut * 0.7 + mix 0 (top - QuarterStroke) 0.5 define [CurlyCrossbar top] : glyph-proc local m : mix SevenXLeftBend (RightSB - [HSwToV HalfStroke]) 0.375 include : HBar.m - m - [HSwToV : 0.25 * Stroke] - LongJut * 0.8 - m + [HSwToV : 0.25 * Stroke] + LongJut * 0.7 - mix 0 (top - Stroke * 0.25) 0.5 + m - [HSwToV QuarterStroke] - LongJut * 0.8 + m + [HSwToV QuarterStroke] + LongJut * 0.7 + mix 0 (top - QuarterStroke) 0.5 local SevenConfig : SuffixCfg.weave object # body diff --git a/packages/font-glyphs/src/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl index d2acb8187b..a25b8c509b 100644 --- a/packages/font-glyphs/src/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -662,7 +662,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : headFunc arrowX arrowYS arrowX arrowYE headSize define [ShareAlikeArrow] : glyph-proc - local arrowX : l + [HSwToV : 0.5 * Stroke] + local arrowX : l + [HSwToV HalfStroke] local headLength : headSize * Math.SQRT1_2 local gapSize : Math.max (2 * headLength) (CAP - 0 - ada - adb) local gapTop : CAP / 2 + 0.5 * gapSize diff --git a/packages/font-glyphs/src/symbol/counting-rod.ptl b/packages/font-glyphs/src/symbol/counting-rod.ptl index 1709630e46..f465ca68d0 100644 --- a/packages/font-glyphs/src/symbol/counting-rod.ptl +++ b/packages/font-glyphs/src/symbol/counting-rod.ptl @@ -9,7 +9,7 @@ glyph-block Symbol-Counting-Rod : begin glyph-block-import Common-Derivatives do "Counting Rods" - define rodDiv : Math.min 2 : mix 1 para.diversityMM 2 + define rodDiv : Math.min 2 : mix 1 para.diversityMM 3 define rodDf : DivFrame rodDiv 5 define rodSw rodDf.mvs define hRodSw : AdviceStroke 3 rodDiv diff --git a/packages/font-glyphs/src/symbol/geometric.ptl b/packages/font-glyphs/src/symbol/geometric.ptl index ea26c42aaf..0e46bcb85d 100644 --- a/packages/font-glyphs/src/symbol/geometric.ptl +++ b/packages/font-glyphs/src/symbol/geometric.ptl @@ -14,3 +14,4 @@ export : define [apply] : begin run-glyph-module "./geometric/ballot-box.mjs" run-glyph-module "./geometric/corner-shape.mjs" run-glyph-module "./geometric/square-corners.mjs" + run-glyph-module "./geometric/technical.mjs" diff --git a/packages/font-glyphs/src/symbol/geometric/plain.ptl b/packages/font-glyphs/src/symbol/geometric/plain.ptl index f83f2bb38b..c9347a0c52 100644 --- a/packages/font-glyphs/src/symbol/geometric/plain.ptl +++ b/packages/font-glyphs/src/symbol/geometric/plain.ptl @@ -611,51 +611,3 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 StdBlackShape RightArrowHeadShape 'blackArrowHeadRight' 0x27A4 Size.Oblique StdWhiteShape RightArrowHeadShape 'whiteArrowHeadRight' null {.sw ([Math.min GeometryStroke : AdviceStroke 4.75 : Math.sqrt Geom.Scalar] * [Math.sqrt 5])} - - do "Other Polygon" - glyph-block-import Shared-Symbol-Shapes : TriangleShape HZigzag - - define fineGeometryStroke : AdviceStroke2 4 4 Geom.Size - - create-glyph [MangleName 'straightness'] [MangleUnicode 0x23E4] : glyph-proc - set-width Geom.Width - include : HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke - - create-glyph [MangleName 'symmetry'] [MangleUnicode 0x232F] : glyph-proc - set-width Geom.Width - define yOffset : Geom.Size * 0.4 - define xShrink : Geom.Size * 0.25 - include : HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke - include : HBar.b (Geom.Left + xShrink) (Geom.Right - xShrink) (Geom.MidY + yOffset) GeometryStroke - include : HBar.t (Geom.Left + xShrink) (Geom.Right - xShrink) (Geom.MidY - yOffset) GeometryStroke - - create-glyph [MangleName 'conicalTaper'] [MangleUnicode 0x2332] : glyph-proc - set-width Geom.Width - include : TriangleShape Geom.Left (Geom.MidY - Geom.Size * 0.8) Geom.Left (Geom.MidY + Geom.Size * 0.8) Geom.Right Geom.MidY fineGeometryStroke - include : HBar.m [mix 0 Geom.Left 0.5] [mix Geom.Right Geom.Width 0.5] Geom.MidY GeometryStroke - - create-glyph [MangleName 'slope'] [MangleUnicode 0x2333] : glyph-proc - set-width Geom.Width - include : TriangleShape Geom.Left Geom.Bot Geom.Left Geom.MidY Geom.Right Geom.Bot fineGeometryStroke - - create-glyph [MangleName 'horiZigzag'] [MangleUnicode 0x1CEB0] : glyph-proc - set-width Geom.Width - define left : SB * MosaicWidthScalar - define right : RightSB * MosaicWidthScalar - define amp : (OperTop - OperBot) / 8 - define sgmts : 4 * MosaicWidthScalar + 1 - - define dx : (right - left) / sgmts - define rhs : strokeOffset left (Geom.MidY - amp) dx (2 * amp) (GeometryStroke / 2) HVContrast - define bot : linreg rhs.x rhs.y (rhs.x + dx) (rhs.y + 2 * amp) left - define top : Geom.MidY * 2 - bot - include : union - HZigzag Geom.MidY left right amp sgmts 1 GeometryStroke - dispiro - widths.lhs GeometryStroke - flat left bot - curl (left + dx) (bot + 2 * amp) - dispiro - widths.lhs GeometryStroke - flat right top - curl (right - dx) (top - 2 * amp) diff --git a/packages/font-glyphs/src/symbol/geometric/rotational.ptl b/packages/font-glyphs/src/symbol/geometric/rotational.ptl index 57d0dd0871..1f7da6f158 100644 --- a/packages/font-glyphs/src/symbol/geometric/rotational.ptl +++ b/packages/font-glyphs/src/symbol/geometric/rotational.ptl @@ -17,18 +17,6 @@ glyph-block Symbol-Geometric-Rotational : begin 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 diff --git a/packages/font-glyphs/src/symbol/geometric/technical.ptl b/packages/font-glyphs/src/symbol/geometric/technical.ptl new file mode 100644 index 0000000000..170331881f --- /dev/null +++ b/packages/font-glyphs/src/symbol/geometric/technical.ptl @@ -0,0 +1,85 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" + +glyph-module + +glyph-block Symbol-Geometric-Technical : for-width-kinds WideWidth1 + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes + glyph-block-import Shared-Symbol-Shapes : TriangleShape + + define Geom : GeometricDim MosaicUnitWidth MosaicWidth + define Size : GeometricSizes Geom + + define fineGeometryStroke : AdviceStroke2 4 4 Geom.Size + + do "Dimensions" + create-glyph [MangleName 'straightness'] [MangleUnicode 0x23E4] : glyph-proc + set-width Geom.Width + include : HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke + + create-glyph [MangleName 'symmetry'] [MangleUnicode 0x232F] : glyph-proc + set-width Geom.Width + define yOffset : Geom.Size * 0.4 + define xShrink : Geom.Size * 0.25 + include : HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke + include : HBar.b (Geom.Left + xShrink) (Geom.Right - xShrink) (Geom.MidY + yOffset) GeometryStroke + include : HBar.t (Geom.Left + xShrink) (Geom.Right - xShrink) (Geom.MidY - yOffset) GeometryStroke + + create-glyph [MangleName 'conicalTaper'] [MangleUnicode 0x2332] : glyph-proc + set-width Geom.Width + include : TriangleShape Geom.Left (Geom.MidY - Geom.Size * 0.8) Geom.Left (Geom.MidY + Geom.Size * 0.8) Geom.Right Geom.MidY fineGeometryStroke + include : HBar.m [mix 0 Geom.Left 0.5] [mix Geom.Right Geom.Width 0.5] Geom.MidY GeometryStroke + + create-glyph [MangleName 'slope'] [MangleUnicode 0x2333] : glyph-proc + set-width Geom.Width + include : TriangleShape Geom.Left Geom.Bot Geom.Left Geom.MidY Geom.Right Geom.Bot fineGeometryStroke + + create-glyph [MangleName 'viewdataSquare'] [MangleUnicode 0x2317] : glyph-proc + set-width Geom.Width + define shrink : Geom.Size * 2 * 0.13 + include : HBar.t Geom.Left Geom.Right (Geom.Top - shrink) GeometryStroke + include : HBar.b Geom.Left Geom.Right (Geom.Bot + shrink) GeometryStroke + include : VBar.l (Geom.Left + shrink) Geom.Bot Geom.Top GeometryStroke + include : VBar.r (Geom.Right - shrink) Geom.Bot Geom.Top GeometryStroke + + create-glyph [MangleName 'loopedSquare'] [MangleUnicode 0x2318] : glyph-proc + set-width Geom.Width + + define stroke : AdviceStrokeInSpace (Geom.Size * 2) HVContrast 6 1 + define gap : (Geom.Size * 2 - [HSwToV : stroke * 4]) / 6 + include : lift-@ : dispiro + widths.lhs stroke + flat Geom.MidX @y3 + curl (@x5 = [mix @x4 @x6 0.5]) (@y3 = Geom.MidY + gap) + archv 4 + g4.up.mid (@x6 = Geom.Right) @y2 + arcvh 4 + g4.left.mid @x5 (@y1 = Geom.Top) + archv 4 + flat (@x4 = Geom.MidX + gap) (@y2 = [mix @y1 @y3 0.5]) + curl @x4 @y5 + arcvh 4 + g4.right.mid @x5 @y6 + archv 4 + g4.up.mid @x6 @y5 + arcvh 4 + flat @x5 @y4 + curl (@x2 = [mix @x1 @x3 0.5]) (@y4 = Geom.MidY - gap) + archv 4 + g4.down.mid (@x1 = Geom.Left) @y5 + arcvh 4 + g4.right.mid @x2 (@y6 = Geom.Bot) + archv 4 + flat (@x3 = Geom.MidX - gap) (@y5 = [mix @y4 @y6 0.5]) + curl @x3 @y2 + arcvh 4 + g4.left.mid @x2 @y1 + archv 4 + g4.down.mid @x1 @y2 + arcvh 4 + flat @x2 @y3 + curl Geom.MidX @y3 diff --git a/packages/font-glyphs/src/symbol/letter.ptl b/packages/font-glyphs/src/symbol/letter.ptl index a85f656976..15f4024fde 100644 --- a/packages/font-glyphs/src/symbol/letter.ptl +++ b/packages/font-glyphs/src/symbol/letter.ptl @@ -13,7 +13,7 @@ glyph-module glyph-block Symbol-Currency : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : LetterBarOverlay + glyph-block-import Letter-Shared-Shapes : LetterBarOverlay LetterObliqueBarOverlay SerifFrame create-glyph 'currency' 0xA4 : glyph-proc local sw : AdviceStroke 3.5 @@ -33,7 +33,6 @@ glyph-block Symbol-Currency : begin foreach { suffix { serifGrade } } [Object.entries SterlingConfig] : do define xBarLeft : [mix SB RightSB 0.2] - Stroke * 0.1 define [BaseShape] : glyph-proc - local xBarLeft : [mix SB RightSB 0.2] - Stroke * 0.1 local hookEndX : Math.max (xBarLeft + [HSwToV : 2.25 * Stroke]) [mix SB RightSB 0.95] include : union dispiro @@ -59,18 +58,116 @@ glyph-block Symbol-Currency : begin select-variant 'currency/sterlingSign' 0xA3 select-variant 'currency/liraSymbolSign' 0x20A4 (follow -- 'currency/sterlingSign') + define TurkLiraConfig : object + serifless { 0 } + serifed { 1 } + + foreach { suffix { serifGrade } } [Object.entries TurkLiraConfig] : do + create-glyph "currency/turkishLiraSign.\(suffix)" : glyph-proc + set-width Width + include : MarkSet.capital + include : union + dispiro + widths.lhs Stroke + flat SB 0 [heading Rightward] + curl Middle 0 + archv + straight.up.end RightSB Hook [heading Upward] + VBar.l SB 0 CAP + include : LetterObliqueBarOverlay.l SB (CAP * 0.37) + include : LetterObliqueBarOverlay.l SB (CAP * 0.60 - OverlayStroke * 0.25) + if serifGrade : begin + local sf : SerifFrame.fromDf [DivFrame 1] CAP 0 + include : composite-proc sf.lt.fullSide sf.lb.outer + + select-variant 'currency/turkishLiraSign' 0x20BA + + create-glyph 'currency/sheqelSign' 0x20AA : glyph-proc + local df : include : DivFrame para.diversityM 4 + include : df.markSet.e + + define pX 0.7 + define pY 0.8 + + local vswPlusGap : (df.rightSB - df.leftSB - [HSwToV df.mvs]) / 3 + local barShrink : Math.min (XH * 0.3) (vswPlusGap - [HSwToV df.mvs] + df.mvs * 1.5) + include : VBar.l df.leftSB 0 XH df.mvs + include : VBar.l (df.leftSB + vswPlusGap) 0 (XH - barShrink) df.mvs + include : lift-@ : dispiro + widths.rhs df.mvs + flat df.leftSB XH [heading Rightward] + curl [Math.min (@right - [HSwToV : Stroke * 1.5]) [mix df.leftSB @right pX]] XH + archv + flat @right [Math.min (XH - Stroke * 1.5) [mix 0 XH pY]] + curl (@right = df.rightSB - vswPlusGap) barShrink [heading Downward] + include : lift-@ : dispiro + widths.lhs df.mvs + flat (@left = df.leftSB + vswPlusGap) 0 [heading Rightward] + curl [Math.min (df.rightSB - [HSwToV : Stroke * 1.5]) [mix @left df.rightSB pX]] 0 + archv + flat df.rightSB [Math.max (Stroke * 1.5) [mix XH 0 pY]] + curl df.rightSB XH [heading Upward] + + create-glyph 'currency/manatSign' 0x20BC : glyph-proc + local df : include : DivFrame para.diversityT 3 + include : df.markSet.e + + define pY 0.8 + local archTop : mix 0 XH pY + + local sw : Math.min df.mvs : AdviceStroke2 3 2 archTop df.div + + local ada : df.archDepthAOf SmallArchDepth sw + local adb : df.archDepthBOf SmallArchDepth sw + + include : VBar.m df.middle [if SLAB sw 0] XH sw + include : dispiro + widths.rhs sw + flat df.leftSB 0 [heading Upward] + curl df.leftSB [if (ada + adb < archTop) (archTop - ada) : mix archTop 0 (ada / (ada + adb))] + arch.rhs archTop (sw -- sw) + flat df.rightSB [if (ada + adb < archTop) (archTop - adb) : mix archTop 0 (adb / (ada + adb))] + curl df.rightSB 0 [heading Downward] + + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 (swSerif -- sw) + include : composite-proc sf.lb.full sf.rb.full + + create-glyph 'currency/lariSign' 0x20BE : glyph-proc + local df : include : DivFrame para.diversityM 3 + local gap : df.rightSB - df.leftSB - [HSwToV : 2 * df.mvs] + local fine : Math.min OverlayStroke + AdviceStrokeInSpace gap HVContrast 3 1 1 + local offset : (gap - [HSwToV : 2 * fine]) / 6 + local barBot : Math.max + CAP * 0.5 + CAP - df.mvs + Descender + + include : HBar.b df.leftSB df.rightSB 0 df.mvs + include : dispiro + widths.lhs df.mvs + g4 (df.rightSB - OX) (CAP - Hook) + hookstart CAP (sw -- df.mvs) + flatside.ld df.leftSB 0 CAP df.archDepthA df.archDepthB + arcvh + flat df.middle (df.mvs - df.shoulderFine) [widths.lhs df.shoulderFine] + curl df.rightSB (df.mvs - df.shoulderFine) [heading Rightward] + include : VBar.r (df.middle - offset) barBot (CAP - Descender / 2) fine + include : VBar.l (df.middle + offset) barBot (CAP - Descender / 2) fine + glyph-block Symbol-Currency-Letter-Derived : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : LetterObliqueBarOverlay derive-composites 'currency/colonSign' 0x20A1 'C' 'dblLongSlash' - derive-composites 'currency/millSign' 0x20A5 'm' 'shortSlash' + derive-composites 'currency/millSign' 0x20A5 'm' 'shortSlash' create-glyph 'currency/overlay/NS' : glyph-proc define sw : Math.min OverlayStroke : AdviceStroke2 2 4 CAP define gap : Math.max (CAP / 8) (sw / 2) include : HBar.b [mix 0 SB 0.5] [mix Width RightSB 0.5] (CAP / 2 + gap / 2) sw - include : HBar.t [mix 0 SB 0.5] [mix Width RightSB 0.5] (CAP / 2 - gap / 2) sw + include : HBar.t [mix 0 SB 0.5] [mix Width RightSB 0.5] (CAP / 2 - gap / 2) sw derive-composites 'currency/nairaSign' 0x20A6 'currency/nairaSignBase' 'currency/overlay/NS' derive-composites 'currency/hryvniaSign' 0x20B4 'revS' 'currency/overlay/NS' @@ -79,15 +176,18 @@ glyph-block Symbol-Currency-Letter-Derived : begin derive-composites 'currency/kipSign' 0x20AD 'K' 'hStrike' create-glyph 'currency/tugrikOverride' : glyph-proc - local l : mix (Middle - [HSwToV HalfStroke]) SB 0.75 - local r : mix (Middle + [HSwToV HalfStroke]) RightSB 0.75 - local kSlope 0.05 set-width 0 - set-mark-anchor 'overlay' [mix l r 0.5] (CAP * 0.5) - include : intersection [Rect 0 CAP l r] : union - ExtLineCenter 4 OverlayStroke l (CAP * (0.6 - kSlope)) r (CAP * (0.6 + kSlope)) - ExtLineCenter 4 OverlayStroke l (CAP * (0.35 - kSlope)) r (CAP * (0.35 + kSlope)) - + set-mark-anchor 'overlay' Middle (CAP * 0.5) + include : LetterObliqueBarOverlay.m.in + x -- Middle + bot -- 0 + top -- CAP + py -- 0.35 + include : LetterObliqueBarOverlay.m.in + x -- Middle + bot -- 0 + top -- (CAP - Stroke) + py -- 0.65 derive-composites 'currency/tugrikSign' 0x20AE 'T' 'currency/tugrikOverride' derive-composites 'currency/guaraniSign' 0x20B2 'G' 'longVStrokeOver' @@ -251,7 +351,7 @@ glyph-block Symbol-Letter : begin dispiro widths.rhs g4 (SB + O) (y - O) - g4 Middle (y + O) + g4 Middle (y + O) g4 RightSB (y - O) create-glyph 'tironianEt' 0x204A : glyph-proc @@ -288,7 +388,7 @@ glyph-block Symbol-Cyrl-Thousands : begin create-glyph 'cyrlThousandsSign' 0x482 : glyph-proc define fine : AdviceStroke 3 include : ExtLineCenter (-0.1) fine SB Descender RightSB XH - include : ExtLineCenter (-0.1) fine [mix SB RightSB 0.1] [mix Descender XH 0.8] [mix SB RightSB 1.1] [mix Descender XH 0.5] + include : ExtLineCenter (-0.1) fine [mix SB RightSB (+0.1)] [mix Descender XH 0.8] [mix SB RightSB 1.1] [mix Descender XH 0.5] include : ExtLineCenter (-0.1) fine [mix SB RightSB (-0.1)] [mix Descender XH 0.5] [mix SB RightSB 0.9] [mix Descender XH 0.2] glyph-block Symbol-Letter-Phonetic : begin @@ -317,14 +417,14 @@ glyph-block Symbol-Letter-Phonetic : begin include : BreveShape xMiddle -- Middle - width -- markExtend * 3.0 + width -- (3 * markExtend) top -- XH - bottom -- XH - AccentHeight + bottom -- (XH - AccentHeight) hs -- markHalfStroke include : InvBreveShape xMiddle -- Middle - width -- markExtend * 3.0 + width -- (3 * markExtend) top -- AccentHeight bottom -- 0 hs -- markHalfStroke diff --git a/packages/font-glyphs/src/symbol/math/logicals.ptl b/packages/font-glyphs/src/symbol/math/logicals.ptl index 41dd7647fa..92ec4b047c 100644 --- a/packages/font-glyphs/src/symbol/math/logicals.ptl +++ b/packages/font-glyphs/src/symbol/math/logicals.ptl @@ -20,7 +20,7 @@ glyph-block Symbol-Math-Logicals : begin include : VBar.l SB (SymbolMid - (RightSB - SB) * 0.55) SymbolMid OperatorStroke turned 'turnedNegate' 0x2319 'negate' Middle SymbolMid - turned 'turnedRevNegate' null 'revNegate' Middle SymbolMid + turned 'invNegate' null 'revNegate' Middle SymbolMid local top TackTop local bot TackBot @@ -102,7 +102,7 @@ glyph-block Symbol-Math-Logicals : begin create-glyph 'topring' 0x2355 : glyph-proc define mid : mix bot (top - OperatorStroke / 2) 0.5 define w : (RightSB - SB) * 0.4 - define fine : Math.min (w / 2.5) [AdviceStroke 5] + define fine : Math.min (w / 2.5) : AdviceStroke 5 include : HBar.t SB RightSB top OperatorStroke include : VBar.m Middle top (mid + w) OperatorStroke include : VBar.m Middle (mid - w) bot OperatorStroke @@ -118,7 +118,7 @@ glyph-block Symbol-Math-Logicals : begin create-glyph 'turnedTautologyTautology' 0x27DA : glyph-proc local df : include : DivFrame para.diversityMM 4 local vs : df.mvs * OperatorStroke / Stroke - local innerSB : Math.min (SB * [Math.min (df.div / 1.5) 1]) df.leftSB + local innerSB : Math.min (SB * [Math.min 1 : df.div / 1.5]) df.leftSB local l : Math.max (df.middle - innerSB - vs / 2) : mix df.middle df.leftSB (1 / 3) local r : Math.min (df.middle + innerSB + vs / 2) : mix df.middle df.rightSB (1 / 3) local t : mix SymbolMid top (1 / 3) @@ -133,7 +133,7 @@ glyph-block Symbol-Math-Logicals : begin create-glyph 'dashvvdash' 0x27DB : glyph-proc local df : include : DivFrame para.diversityMM 4 local vs : df.mvs * OperatorStroke / Stroke - local innerSB : Math.min (SB * [Math.min (df.div / 1.5) 1]) df.leftSB + local innerSB : Math.min (SB * [Math.min 1 : df.div / 1.5]) df.leftSB local l : Math.max (df.middle - innerSB - vs / 2) : mix df.middle df.leftSB (1 / 3) local r : Math.min (df.middle + innerSB + vs / 2) : mix df.middle df.rightSB (1 / 3) include : VBar.m l top bot vs diff --git a/packages/font-glyphs/src/symbol/math/relation.ptl b/packages/font-glyphs/src/symbol/math/relation.ptl index c0f12eff6c..1878312b41 100644 --- a/packages/font-glyphs/src/symbol/math/relation.ptl +++ b/packages/font-glyphs/src/symbol/math/relation.ptl @@ -863,7 +863,7 @@ glyph-block Symbol-Math-Relation-Subset : begin create-glyph 'elementStroke' 0x22F2 : glyph-proc include : SubsetShape (SymbolMid + dHElem) (SymbolMid - dHElem) - xShift -- ((RightSB - SB) * 0.2 + [HSwToV : 0.25 * Stroke]) + xShift -- ((RightSB - SB) * 0.2 + [HSwToV QuarterStroke]) include : HBar.m (SB + HalfStroke) RightSB SymbolMid OperatorStroke turned 'turnElementStroke' 0x22FA 'elementStroke' Middle SymbolMid diff --git a/packages/font-glyphs/src/symbol/math/v-and-cup.ptl b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl index 15272f3769..171218d27b 100644 --- a/packages/font-glyphs/src/symbol/math/v-and-cup.ptl +++ b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl @@ -206,7 +206,7 @@ glyph-block Symbol-Math-VAndCup : begin turned 'doubleCap' 0x22D2 'doubleCup' Middle SymbolMid - define pitchForkTop : [mix OperBot OperTop 1.2] + Stroke / 4 + define pitchForkTop : [mix OperBot OperTop 1.2] + QuarterStroke define pitchForkSw : AdviceStroke 3.25 create-glyph 'pitchFork' 0x22D4 : composite-proc diff --git a/packages/font-glyphs/src/symbol/pictograph/heart.ptl b/packages/font-glyphs/src/symbol/pictograph/heart.ptl index cb8448d626..322d57d27b 100644 --- a/packages/font-glyphs/src/symbol/pictograph/heart.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/heart.ptl @@ -47,4 +47,4 @@ glyph-block Symbol-Pictograph-Heart : begin set-width Geom.Width include : difference refer-glyph [MangleName 'blackHeart'] - HeartShapeImpl bound GeometryStroke 1.75 0.8 + HeartShapeImpl bound GeometryStroke (1.75 / HVContrast) 0.8 diff --git a/packages/font-glyphs/src/symbol/pictograph/musical.ptl b/packages/font-glyphs/src/symbol/pictograph/musical.ptl index 84dc508cc8..b6a404a96f 100644 --- a/packages/font-glyphs/src/symbol/pictograph/musical.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/musical.ptl @@ -167,7 +167,7 @@ glyph-block Symbol-Pictograph-Musical : begin include : FlatToneShape create-glyph 'naturalTone' 0x266E : glyph-proc - local k : 0.25 - (Stroke * 0.25 / (nsTop - nsBot)) + local k : 0.25 - (QuarterStroke / (nsTop - nsBot)) local barLeft : VBar.l lNat [mix nsBot nsTop k] nsTop fine local barRight : VBar.r rNat nsBot [mix nsBot nsTop (1 - k)] fine diff --git a/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl b/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl index bfccdf1ccc..5b5c2d6ee7 100644 --- a/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl @@ -13,7 +13,7 @@ glyph-block Symbol-Punctuation-Ampersand : begin define SwAmpersand : AdviceStroke2 2.5 3 CAP define fineAmp : AdviceStroke 3.5 - define pxUpperLoopRight : 0.75 + 0.5 * Stroke / (RightSB - SB) + define pxUpperLoopRight : 0.75 + HalfStroke / (RightSB - SB) define pxUpperLoopLeft 0.05 define pXTerminal 1.1 define pStraightBar 0.4 diff --git a/packages/font-glyphs/src/symbol/punctuation/dashes.ptl b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl index 84e897fce7..425cc8f95f 100644 --- a/packages/font-glyphs/src/symbol/punctuation/dashes.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl @@ -37,10 +37,10 @@ glyph-block Symbol-Punctuation-Dashes : begin HBar.b SB RightSB (yBar - openBoxGap) create-glyph "openBox.\(suffix)" : composite-proc HBar.b SB RightSB yBar - OpenBoxSide (yBar + Stroke / 2) + OpenBoxSide (yBar + HalfStroke) create-glyph "openBoxShoulder.\(suffix)" : composite-proc HBar.b SB RightSB yBar - OpenBoxShoulderSide (yBar + Stroke / 2) + OpenBoxShoulderSide (yBar + HalfStroke) select-variant 'underscore' '_' select-variant 'openBox' 0x2423 (follow -- 'underscore') @@ -84,12 +84,14 @@ glyph-block Symbol-Punctuation-Dashes : begin create-glyph [MangleName 'spear'] [MangleUnicode 0x2E43] : glyph-proc set-width emDashWidth + local yExt : (RightSB - SB) * 0.55 + local adb : SmallArchDepthB * ((yExt * 2) / XH) include : dispiro widths.center - flat (SB + [HSwToV HalfStroke] + OX) (SymbolMid + [Math.max ((RightSB - SB) * 0.55) (XH * 0.5)]) [heading Downward] - curl (SB + [HSwToV HalfStroke] + OX) (SymbolMid + SmallArchDepthB) + flat (SB + [HSwToV HalfStroke] + OX) (SymbolMid + yExt) [heading Downward] + curl (SB + [HSwToV HalfStroke] + OX) (SymbolMid + [Math.min adb : yExt - TINY]) arcvh - flat Middle SymbolMid + flat (Middle + [HSwToV HalfStroke]) SymbolMid curl (emDashWidth - SB - OX) SymbolMid [heading Rightward] derive-multi-part-glyphs 'hyphenDieresis' 0x2E1A { 'figureDash' 'dieresisAbove'} diff --git a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl index f8de4da7d0..32ea83504f 100644 --- a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl @@ -71,7 +71,7 @@ glyph-block Symbol-Punctuation-Percentages : begin set-width Width local l : SB / 2 local r : Width - l - local m : mix l r (1 / 2) + local m : mix l r 0.5 local ada : ArchDepthA * 0.5 local adb : ArchDepthB * 0.5 local swRing : AdviceStroke 3.75 @@ -114,15 +114,15 @@ glyph-block Symbol-Punctuation-Percentages : begin set-width Width local l : SB / 2 local r : Width - l - local m : mix l r (1 / 2) + local m : mix l r 0.5 local ada : ArchDepthA * 0.5 local adb : ArchDepthB * 0.5 local swRing : AdviceStroke 3.5 local swBar : AdviceStroke 3 local fine : AdviceStroke 4 local cor : DiagCorDs CAP (r - l) swBar - local pTerm : (fine / 2) / [Math.hypot CAP (r - l)] - local pFine : 1 / 2 - [Math.max (CAP / 10) (Stroke / 2)] / [Math.hypot CAP (r - l)] + local pTerm : fine / (2 * [Math.hypot CAP (r - l)]) + local pFine : 0.5 - [Math.max (CAP / 10) HalfStroke] / [Math.hypot CAP (r - l)] include : OShape CAP (CAP / 2) l m swRing ada adb include : OShape (CAP / 2) 0 m r swRing ada adb @@ -142,14 +142,14 @@ glyph-block Symbol-Punctuation-Percentages : begin set-width width local l : SB / 2 local r : width - l - local m : mix l r (1 / 2) + local m : mix l r 0.5 local ada : ArchDepthA * 0.5 * para.diversityM 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 : 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)] + local pTerm : fine / (2 * [Math.hypot CAP (r - l)]) + local pFine : 0.5 - HalfStroke / [Math.hypot CAP (r - l)] local otop : CAP / 2 - [Math.max (CAP / 5) (fine * 2)] / 2 local coOtop : CAP - otop diff --git a/packages/font-glyphs/src/symbol/punctuation/pilcrow.ptl b/packages/font-glyphs/src/symbol/punctuation/pilcrow.ptl index 18babaaa4d..03b163204f 100644 --- a/packages/font-glyphs/src/symbol/punctuation/pilcrow.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/pilcrow.ptl @@ -9,32 +9,47 @@ glyph-block Symbol-Punctuation-Pilcrow : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - create-glyph : glyph-proc - set-width Width - local sw : AdviceStroke 3.6 + define [BulletShape top bot left right sw] : glyph-proc + local vsw : HSwToV sw + local midx : [mix left right 0.5] - vsw / 4 include : union - dispiro - widths.center sw - flat (RightSB - sw / 4) (CAP - sw / 2) [heading Leftward] - curl (Middle - sw / 4) (CAP - sw / 2) [heading Leftward] - archv - g4.down.mid (SB + sw / 2) [mix (CAP * 0.5) (CAP - sw / 2) 0.5] [heading Downward] - arcvh - straight.right.end (Middle - sw / 4) (CAP * 0.5) [heading Rightward] spiro-outline - straight.left.start (Middle - sw / 4) (CAP - sw / 2 - TINY) + straight.left.start midx top archv - g4.down.mid (SB + sw / 2 + 0.2) [mix (CAP * 0.5) (CAP - sw / 2) 0.5] + g4.down.mid left [mix top bot 0.5] arcvh - straight.right.end (Middle - sw / 4) (CAP * 0.5 + TINY) + straight.right.end midx bot + HBar.t midx right top sw + + create-glyph : glyph-proc + set-width Width + local sw : AdviceStroke 1.5 0.5 + local vsw : HSwToV sw + + local bulletBot : CAP * 0.5 - sw / 2 + local midbarX : Middle + vsw / 4 + + include : BulletShape CAP bulletBot SB RightSB sw create-forked-glyph 'pilcrow.high' : glyph-proc - include : VBar.m (Middle + sw / 4) 0 CAP sw - include : VBar.m (RightSB - sw / 2) 0 CAP sw + include : VBar.m midbarX 0 CAP sw + include : VBar.r RightSB 0 CAP sw create-forked-glyph 'pilcrow.low' : glyph-proc - include : VBar.m (Middle + sw / 4) Descender CAP sw - include : VBar.m (RightSB - sw / 2) Descender CAP sw + include : VBar.m midbarX Descender CAP sw + include : VBar.r RightSB Descender CAP sw + create-forked-glyph 'pilcrow.curved' : glyph-proc + include : dispiro + widths.rhs sw + flat RightSB CAP [heading Downward] + curl RightSB (0 + SmallArchDepthA) + hookend 0 (sw -- sw) + g4 SB (0 + SHook) + include : VBar.m midbarX bulletBot CAP sw + + create-forked-glyph 'curvedPilcrow' 0x2761 : glyph-proc + include : HBar.t midbarX [mix RightSB Width 0.5] CAP sw + include : HBar.b midbarX RightSB bulletBot sw select-variant 'pilcrow' 0xB6 @@ -45,35 +60,25 @@ glyph-block Symbol-Punctuation-Pilcrow : begin create-forked-glyph 'revPilcrow.low' : glyph-proc include [refer-glyph 'pilcrow.low'] AS_BASE include : FlipAround Middle (CAP / 2) (-1) 1 + create-forked-glyph 'revPilcrow.curved' : glyph-proc + include [refer-glyph 'pilcrow.curved'] AS_BASE + include : FlipAround Middle (CAP / 2) (-1) 1 select-variant 'revPilcrow' 0x204B create-glyph 'leftBullet' 0x204C : glyph-proc set-width Width - local sw : AdviceStroke 3.6 + local sw : AdviceStroke 1.5 0.5 + local vsw : HSwToV sw - include : union - dispiro - widths.center sw - flat (RightSB - sw / 4) (PlusTop - sw / 2) [heading Leftward] - curl (Middle - sw / 4) (PlusTop - sw / 2) [heading Leftward] - archv - g4.down.mid (SB + sw / 2) SymbolMid [heading Downward] - arcvh - flat (Middle - sw / 4) (PlusBot + sw / 2) [heading Rightward] - curl (RightSB - sw / 4) (PlusBot + sw / 2) [heading Rightward] - spiro-outline - straight.left.start (Middle - sw / 4) (PlusTop - sw / 2 - TINY) [heading Leftward] - archv - g4.down.mid (SB + sw / 2 + TINY) SymbolMid [heading Downward] - arcvh - straight.right.end (Middle - sw / 4) (PlusBot + sw / 2 + TINY) [heading Rightward] + local midbarX : Middle + vsw / 4 + + include : BulletShape PlusTop PlusBot SB RightSB sw - include : VBar.m (Middle + sw / 4) PlusBot PlusTop sw - include : VBar.m (RightSB - sw / 2) PlusBot PlusTop sw + include : VBar.m midbarX PlusBot PlusTop sw + include : VBar.r RightSB PlusBot PlusTop sw + include : HBar.b midbarX RightSB PlusBot sw create-glyph 'rightBullet' 0x204D : glyph-proc include [refer-glyph 'leftBullet'] AS_BASE include : FlipAround Middle SymbolMid (-1) 1 - - diff --git a/packages/font-glyphs/src/symbol/punctuation/section.ptl b/packages/font-glyphs/src/symbol/punctuation/section.ptl index 79624e3060..a5c74c8b74 100644 --- a/packages/font-glyphs/src/symbol/punctuation/section.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/section.ptl @@ -14,13 +14,13 @@ glyph-block Symbol-Punctuation-Section : begin local bot ParenBot local ada ArchDepthA local [s sink offset] : begin - local sBot : [mix bot top 0.32] - Stroke * 0.25 + local sBot : [mix bot top 0.32] - QuarterStroke return : sink widths.lhs g4 (RightSB - offset) (top - Hook) hookstart (top - offset) g4 (SB + offset) (top - ada) - alsoThru 0.5 0.5 [widths.center : 2 * HalfStroke] + alsoThru 0.5 0.5 [widths.center Stroke] g4 (RightSB - offset) (sBot + ada) [widths.rhs] arcvh flat [arch.adjust-x.bot Middle] (sBot + offset + O) diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index cba783a844..5cddcd481a 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-kits", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { "./derived-coordinates": "./src/derived-coordinates.mjs", @@ -8,9 +8,9 @@ "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "32.3.1", - "@iosevka/glyph": "32.3.1", - "@iosevka/util": "32.3.1", + "@iosevka/geometry": "32.4.0", + "@iosevka/glyph": "32.4.0", + "@iosevka/util": "32.4.0", "typo-geom": "^0.16.1" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index 324685f481..83a6ffc096 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./lib/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "32.3.1", - "@iosevka/glyph": "32.3.1", + "@iosevka/font-glyphs": "32.4.0", + "@iosevka/glyph": "32.4.0", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index d1910a8e41..7dcbff2be5 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@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", + "@iosevka/font-glyphs": "32.4.0", + "@iosevka/font-otl": "32.4.0", + "@iosevka/geometry": "32.4.0", + "@iosevka/geometry-cache": "32.4.0", + "@iosevka/glyph": "32.4.0", + "@iosevka/param": "32.4.0", + "@iosevka/util": "32.4.0", "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 d29b7fbafe..ae2779f84e 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "32.3.1", + "@iosevka/geometry": "32.4.0", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index e85406a6dd..9ee6c55ecd 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -16,7 +16,7 @@ "./encoding": "./src/encoding.mjs" }, "dependencies": { - "@iosevka/util": "32.3.1", + "@iosevka/util": "32.4.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index effb304540..d08a11de07 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "32.3.1" + "@iosevka/geometry": "32.4.0" } } diff --git a/packages/param/package.json b/packages/param/package.json index cf6e3b44c8..d9ead7655b 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "32.3.1" + "@iosevka/util": "32.4.0" } } diff --git a/packages/util/package.json b/packages/util/package.json index 2b019d2b62..3bc76d24da 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/params/parameters.toml b/params/parameters.toml index 3b810b928f..6950afcca3 100644 --- a/params/parameters.toml +++ b/params/parameters.toml @@ -108,6 +108,10 @@ verbose = true slab = 2 ###### Spacings +# Wide mosaic spacing variant +[spacing-wide-mosaic] +spacing = 4 + # Terminal variant [spacing-term] spacing = 0 diff --git a/params/variants.toml b/params/variants.toml index 670ce191d2..0f0e6fff33 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -774,6 +774,7 @@ descriptionAffix = "standard shape" selectorAffix.D = "standard" selectorAffix."D/sansSerif" = "standard" selectorAffix.Dhookleft = "standard" +selectorAffix.smcpD = "moreRounded" [prime.capital-d.variants-buildup.stages.body.more-rounded] rank = 2 @@ -781,6 +782,7 @@ descriptionAffix = "more rounded shape" selectorAffix.D = "moreRounded" selectorAffix."D/sansSerif" = "moreRounded" selectorAffix.Dhookleft = "moreRounded" +selectorAffix.smcpD = "moreRounded" [prime.capital-d.variants-buildup.stages.serifs.serifless] rank = 1 @@ -789,6 +791,7 @@ descriptionJoiner = "without" selectorAffix.D = "serifless" selectorAffix."D/sansSerif" = "serifless" selectorAffix.Dhookleft = "serifless" +selectorAffix.smcpD = "serifless" [prime.capital-d.variants-buildup.stages.serifs.unilateral-serifed] rank = 2 @@ -796,6 +799,7 @@ descriptionAffix = "serifs at top" selectorAffix.D = "unilateralSerifed" selectorAffix."D/sansSerif" = "serifless" selectorAffix.Dhookleft = "serifless" +selectorAffix.smcpD = "unilateralSerifed" [prime.capital-d.variants-buildup.stages.serifs.bilateral-serifed] rank = 3 @@ -803,6 +807,7 @@ descriptionAffix = "serifs at both top and bottom" selectorAffix.D = "bilateralSerifed" selectorAffix."D/sansSerif" = "serifless" selectorAffix.Dhookleft = "bilateralSerifed" +selectorAffix.smcpD = "bilateralSerifed" @@ -1199,6 +1204,7 @@ description = "Serifless `L`" selector.L = "serifless" selector."L/sansSerif" = "serifless" selector."currency/sterlingSign" = "serifless" +selector."currency/turkishLiraSign" = "serifless" [prime.capital-l.variants.motion-serifed] rank = 2 @@ -1206,6 +1212,7 @@ description = "Standard `L` with motion serif at bottom right" selector.L = "motionSerifed" selector."L/sansSerif" = "serifless" selector."currency/sterlingSign" = "motionSerifed" +selector."currency/turkishLiraSign" = "serifless" [prime.capital-l.variants.serifed] rank = 3 @@ -1213,6 +1220,7 @@ description = "`L` with serifs" selector.L = "serifed" selector."L/sansSerif" = "serifless" selector."currency/sterlingSign" = "motionSerifed" +selector."currency/turkishLiraSign" = "serifed" @@ -2139,8 +2147,8 @@ selectorAffix."a/rtailBase" = "doubleStorey" selectorAffix."a/doubleStorey" = "doubleStorey" selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey" selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey" -selectorAffix."aScript/autoSerifed/slab" = "singleStoreyScriptCut" -selectorAffix."aScript/autoSerifed/sans" = "singleStoreyScriptCut" +selectorAffix."aScript/autoSerifed/slab" = "singleStoreyTopCut" +selectorAffix."aScript/autoSerifed/sans" = "singleStoreyTopCut" [prime.a.variants-buildup.stages.storey.single-storey] rank = 2 @@ -2200,11 +2208,25 @@ selectorAffix."a/rtailBase" = "" selectorAffix."a/doubleStorey" = "" selectorAffix."a/singleStorey/autoSerifed/slab" = "" selectorAffix."a/singleStorey/autoSerifed/sans" = "" -selectorAffix."aScript/autoSerifed/slab" = "scriptCut" -selectorAffix."aScript/autoSerifed/sans" = "scriptCut" +selectorAffix."aScript/autoSerifed/slab" = "topCut" +selectorAffix."aScript/autoSerifed/sans" = "topCut" -[prime.a.variants-buildup.stages.ear.earless-corner] +[prime.a.variants-buildup.stages.ear.top-cut] rank = 2 +nonBreakingVariantAdditionPriority = 100 +descriptionAffix = "a diagonal cut at top" +selectorAffix.a = "topCut" +selectorAffix."ae/a" = "" +selectorAffix."a/sansSerif" = "topCut" +selectorAffix."a/rtailBase" = "topCut" +selectorAffix."a/doubleStorey" = "" +selectorAffix."a/singleStorey/autoSerifed/slab" = "topCut" +selectorAffix."a/singleStorey/autoSerifed/sans" = "topCut" +selectorAffix."aScript/autoSerifed/slab" = "topCut" +selectorAffix."aScript/autoSerifed/sans" = "topCut" + +[prime.a.variants-buildup.stages.ear.earless-corner] +rank = 3 descriptionAffix = "earless (cornered top-right)" selectorAffix.a = "earlessCorner" selectorAffix."ae/a" = "" @@ -2213,11 +2235,11 @@ selectorAffix."a/rtailBase" = "earlessCorner" selectorAffix."a/doubleStorey" = "" selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessCorner" selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessCorner" -selectorAffix."aScript/autoSerifed/slab" = "scriptCut" -selectorAffix."aScript/autoSerifed/sans" = "scriptCut" +selectorAffix."aScript/autoSerifed/slab" = "topCut" +selectorAffix."aScript/autoSerifed/sans" = "topCut" [prime.a.variants-buildup.stages.ear.earless-rounded] -rank = 3 +rank = 4 descriptionAffix = "earless (rounded top-right)" selectorAffix.a = "earlessRounded" selectorAffix."ae/a" = "" @@ -2226,8 +2248,8 @@ selectorAffix."a/rtailBase" = "earlessRounded" selectorAffix."a/doubleStorey" = "" selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessRounded" selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessRounded" -selectorAffix."aScript/autoSerifed/slab" = "scriptCut" -selectorAffix."aScript/autoSerifed/sans" = "scriptCut" +selectorAffix."aScript/autoSerifed/slab" = "topCut" +selectorAffix."aScript/autoSerifed/sans" = "topCut" [prime.a.variants-buildup.stages.bar.serifless] rank = 1 @@ -2345,15 +2367,23 @@ selectorAffix.b = "toothed" selectorAffix."b/sansSerif" = "toothed" selectorAffix.bHookTop = "toothed" -[prime.b.variants-buildup.stages.body.toothless-corner] +[prime.b.variants-buildup.stages.body.bottom-cut] rank = 2 +nonBreakingVariantAdditionPriority = 100 +descriptionAffix = "a diagonal cut at bottom" +selectorAffix.b = "bottomCut" +selectorAffix."b/sansSerif" = "bottomCut" +selectorAffix.bHookTop = "bottomCut" + +[prime.b.variants-buildup.stages.body.toothless-corner] +rank = 3 descriptionAffix = "toothless (cornered) shape" selectorAffix.b = "toothlessCorner" selectorAffix."b/sansSerif" = "toothlessCorner" selectorAffix.bHookTop = "toothlessCorner" [prime.b.variants-buildup.stages.body.toothless-rounded] -rank = 3 +rank = 4 descriptionAffix = "toothless (rounded) shape" selectorAffix.b = "toothlessRounded" selectorAffix."b/sansSerif" = "toothlessRounded" @@ -2768,7 +2798,7 @@ selectorAffix."g/sansSerif" = "doubleStorey" selectorAffix."g/hookTopBase" = "singleStoreyBentHookSerifless" selectorAffix."g/singleStorey/autoSerifed/slab" = "singleStoreyBentHookSerifed" selectorAffix."g/singleStorey/autoSerifed/sans" = "singleStoreyBentHookSerifless" -selectorAffix.gScript = "singleStoreyBentHookScriptCut" +selectorAffix.gScript = "singleStoreyBentHookTopCut" [prime.g.variants-buildup.stages.openness."*"] next = "END" @@ -2834,7 +2864,7 @@ selectorAffix."g/sansSerif" = "serifless" selectorAffix."g/hookTopBase" = "serifless" selectorAffix."g/singleStorey/autoSerifed/slab" = "serifless" selectorAffix."g/singleStorey/autoSerifed/sans" = "serifless" -selectorAffix.gScript = "scriptCut" +selectorAffix.gScript = "topCut" [prime.g.variants-buildup.stages.ear.serifed] rank = 2 @@ -2844,27 +2874,38 @@ selectorAffix."g/sansSerif" = "serifless" selectorAffix."g/hookTopBase" = "serifless" selectorAffix."g/singleStorey/autoSerifed/slab" = "serifed" selectorAffix."g/singleStorey/autoSerifed/sans" = "serifed" -selectorAffix.gScript = "scriptCut" +selectorAffix.gScript = "topCut" -[prime.g.variants-buildup.stages.ear.earless-corner] +[prime.g.variants-buildup.stages.ear.top-cut] rank = 3 +nonBreakingVariantAdditionPriority = 100 +descriptionAffix = "a diagonal cut at top" +selectorAffix.g = "topCut" +selectorAffix."g/sansSerif" = "topCut" +selectorAffix."g/hookTopBase" = "serifless" +selectorAffix."g/singleStorey/autoSerifed/slab" = "topCut" +selectorAffix."g/singleStorey/autoSerifed/sans" = "topCut" +selectorAffix.gScript = "topCut" + +[prime.g.variants-buildup.stages.ear.earless-corner] +rank = 4 descriptionAffix = "earless (cornered top-right)" selectorAffix.g = "earlessCorner" selectorAffix."g/sansSerif" = "earlessCorner" selectorAffix."g/hookTopBase" = "earlessCornerHTB" selectorAffix."g/singleStorey/autoSerifed/slab" = "earlessCorner" selectorAffix."g/singleStorey/autoSerifed/sans" = "earlessCorner" -selectorAffix.gScript = "scriptCut" +selectorAffix.gScript = "topCut" [prime.g.variants-buildup.stages.ear.earless-rounded] -rank = 4 +rank = 5 descriptionAffix = "earless (rounded top-right)" selectorAffix.g = "earlessRounded" selectorAffix."g/sansSerif" = "earlessRounded" selectorAffix."g/hookTopBase" = "serifless" selectorAffix."g/singleStorey/autoSerifed/slab" = "earlessRounded" selectorAffix."g/singleStorey/autoSerifed/sans" = "earlessRounded" -selectorAffix.gScript = "scriptCut" +selectorAffix.gScript = "topCut" @@ -3954,8 +3995,18 @@ selectorAffix."q/hookTopBase" = "" selectorAffix.qRTail = "" selectorAffix.gha = "" -[prime.q.variants-buildup.stages.body.earless-corner] +[prime.q.variants-buildup.stages.body.top-cut] rank = 2 +nonBreakingVariantAdditionPriority = 100 +descriptionAffix = "a diagonal cut at top" +selectorAffix.q = "topCut" +selectorAffix."q/sansSerif" = "topCut" +selectorAffix."q/hookTopBase" = "" +selectorAffix.qRTail = "topCut" +selectorAffix.gha = "" + +[prime.q.variants-buildup.stages.body.earless-corner] +rank = 3 descriptionAffix = "earless (cornered) shape" selectorAffix.q = "earlessCorner" selectorAffix."q/sansSerif" = "earlessCorner" @@ -3964,7 +4015,7 @@ selectorAffix.qRTail = "earlessCorner" selectorAffix.gha = "" [prime.q.variants-buildup.stages.body.earless-rounded] -rank = 3 +rank = 4 descriptionAffix = "earless (rounded) shape" selectorAffix.q = "earlessRounded" selectorAffix."q/sansSerif" = "earlessRounded" @@ -5492,14 +5543,21 @@ keyAffix = "" selectorAffix."grek/alpha" = "" selectorAffix."grek/alpha/sansSerif" = "" -[prime.lower-alpha.variants-buildup.stages.ear.earless-corner] +[prime.lower-alpha.variants-buildup.stages.ear.top-cut] rank = 2 +nonBreakingVariantAdditionPriority = 100 +descriptionAffix = "a diagonal cut at top" +selectorAffix."grek/alpha" = "topCut" +selectorAffix."grek/alpha/sansSerif" = "topCut" + +[prime.lower-alpha.variants-buildup.stages.ear.earless-corner] +rank = 3 descriptionAffix = "earless (cornered top-right)" selectorAffix."grek/alpha" = "earlessCorner" selectorAffix."grek/alpha/sansSerif" = "earlessCorner" [prime.lower-alpha.variants-buildup.stages.ear.earless-rounded] -rank = 3 +rank = 4 descriptionAffix = "earless (rounded top-right)" selectorAffix."grek/alpha" = "earlessRounded" selectorAffix."grek/alpha/sansSerif" = "earlessRounded" @@ -6266,14 +6324,21 @@ keyAffix = "" selectorAffix."cyrl/a" = "" selectorAffix."cyrl/ae/a" = "" -[prime.cyrl-a.variants-buildup.stages.ear.earless-corner] +[prime.cyrl-a.variants-buildup.stages.ear.top-cut] rank = 2 +nonBreakingVariantAdditionPriority = 100 +descriptionAffix = "a diagonal cut at top" +selectorAffix."cyrl/a" = "topCut" +selectorAffix."cyrl/ae/a" = "" + +[prime.cyrl-a.variants-buildup.stages.ear.earless-corner] +rank = 3 descriptionAffix = "earless (cornered top-right)" selectorAffix."cyrl/a" = "earlessCorner" selectorAffix."cyrl/ae/a" = "" [prime.cyrl-a.variants-buildup.stages.ear.earless-rounded] -rank = 3 +rank = 4 descriptionAffix = "earless (rounded top-right)" selectorAffix."cyrl/a" = "earlessRounded" selectorAffix."cyrl/ae/a" = "" @@ -8410,6 +8475,12 @@ description = "Lower pilcrow sign `¶`" selector.pilcrow = "low" selector.revPilcrow = "low" +[prime.pilcrow.variants.curved] +rank = 3 +description = "Curved pilcrow sign `¶`" +selector.pilcrow = "curved" +selector.revPilcrow = "curved" + [prime.partial-derivative] @@ -9196,6 +9267,7 @@ i = "serifed" j = "serifed" k = "symmetric-touching-serifless" l = "serifed" +q = "top-cut-straight-serifless" t = "bent-hook-short-neck" u = "toothed-serifless" y = "straight-turn-serifless" @@ -9232,13 +9304,14 @@ at = "fourfold" dollar = "slanted-through" cent = "slanted-through-cap" percent = "rings-continuous-slash" +pilcrow = "curved" question = "corner-flat-hooked" micro-sign = "tailed-serifless" [composite.ss03.italic] -a = "single-storey-serifless" +a = "single-storey-top-cut-serifless" f = "flat-hook-tailed" -g = "single-storey-serifless" +g = "single-storey-top-cut" i = "tailed-serifed" k = "cursive-serifless" l = "tailed" @@ -9246,7 +9319,7 @@ long-s = "flat-hook-descending" eszet = "longs-s-lig-descending-serifless" lower-beta = "cursive" lower-phi = "cursive" -cyrl-a = "single-storey-serifless" +cyrl-a = "single-storey-top-cut-serifless" cyrl-ve = "cursive-tall" cyrl-zhe = "symmetric-connected" cyrl-ka = "symmetric-connected-serifless" @@ -9263,6 +9336,7 @@ b = "toothless-corner-serifed" d = "toothed-serifed" f = "flat-hook-serifed" k = "symmetric-touching-serifed" +q = "top-cut-straight-serifed" u = "toothed-serifed" x = "straight-serifed" y = "straight-turn-serifed" @@ -9284,7 +9358,7 @@ seven = "straight-serifed" micro-sign = "tailed-serifed" [composite.ss03.slab-override.italic] -a = "single-storey-serifed" +a = "single-storey-top-cut-serifed" f = "flat-hook-tailed" k = "cursive-top-left-and-bottom-right-serifed" l = "tailed-serifed" @@ -9293,7 +9367,7 @@ x = "straight-bilateral-motion-serifed" y = "straight-turn-motion-serifed" long-s = "flat-hook-descending" eszet = "longs-s-lig-descending-serifless" -cyrl-a = "single-storey-serifed" +cyrl-a = "single-storey-top-cut-serifed" cyrl-ve = "cursive-tall" cyrl-ka = "symmetric-connected-top-left-and-bottom-right-serifed" cyrl-u = "straight-turn-motion-serifed" @@ -9969,12 +10043,14 @@ capital-k = "symmetric-touching-serifless" capital-q = "crossing" capital-w = "straight-vertical-sides-serifless" a = "double-storey-toothless-corner" +b = "toothed-serifless" f = "flat-hook-serifless" g = "single-storey-flat-hook-serifless" i = "hooky" j = "flat-hook-serifed" k = "symmetric-connected-serifless" l = "hooky" +q = "straight-serifless" t = "flat-hook" w = "rounded-vertical-sides-serifless" y = "cursive-flat-hook-serifless" @@ -10005,11 +10081,14 @@ micro-sign = "toothless-rounded-serifless" [composite.ss10.italic] capital-a = "straight-serifless" -a = "single-storey-tailed" +a = "single-storey-top-cut-tailed" +b = "bottom-cut-serifless" +g = "single-storey-flat-hook-top-cut" i = "serifed-flat-tailed" j = "serifed" l = "serifed-flat-tailed" -cyrl-a = "single-storey-tailed" +q = "top-cut-straight-serifless" +cyrl-a = "single-storey-top-cut-tailed" cyrl-u = "cursive-flat-hook-serifless" [composite.ss10.slab-override.design] @@ -10017,11 +10096,13 @@ capital-a = "round-top-base-serifed" capital-j = "serifed" capital-k = "symmetric-touching-serifed" capital-w = "straight-vertical-sides-serifed" +b = "toothed-serifed" f = "flat-hook-serifed" g = "single-storey-flat-hook-serifed" i = "serifed" k = "symmetric-connected-serifed" l = "serifed" +q = "straight-serifed" w = "rounded-vertical-sides-serifed" x = "straight-serifed" y = "cursive-flat-hook-serifed" @@ -10037,10 +10118,12 @@ micro-sign = "toothless-rounded-serifed" [composite.ss10.slab-override.italic] capital-a = "straight-base-serifed" -g = "single-storey-flat-hook-serifless" +b = "bottom-cut-serifed" +g = "single-storey-flat-hook-top-cut" i = "serifed-flat-tailed" k = "symmetric-connected-top-left-and-bottom-right-serifed" l = "serifed-flat-tailed" +q = "top-cut-straight-serifed" w = "rounded-vertical-sides-motion-serifed" x = "straight-bilateral-motion-serifed" y = "cursive-flat-hook-motion-serifed" diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index 754038e013..f27d0c899d 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.3.1", + "@iosevka/param": "32.4.0", "@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 4b1439a2ad..2456be7155 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.3.1", + "@iosevka/param": "32.4.0", "@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 2d1e0c1695..536e07d7d5 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "32.3.1", + "version": "32.4.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "32.3.1" + "@iosevka/data-export": "32.4.0" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index ee74d3dd5a..d21e1f9cde 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/misc", - "version": "32.3.1", + "version": "32.4.0", "private": true, "dependencies": { "semver": "^7.6.3", "wawoff2": "^2.0.1", - "@iosevka/util": "32.3.1", + "@iosevka/util": "32.4.0", "@unicode/unicode-16.0.0": "^1.6.4" } }