diff --git a/CHANGELOG.md b/CHANGELOG.md index 8efe4cbe58..64188cb500 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,40 @@ ## Modifications since last major version +### 32.5.0 + +* Add variant selector for decorative angle brackets (U+276C...U+2771) (#2603, #2623). +* Refine shape of the following characters: + - GREEK PHI SYMBOL (`U+03D5`). + - CYRILLIC SMALL LETTER EF (`U+0444`). + - ARMENIAN CAPITAL LETTER KEH (`U+0554`). + - ARMENIAN SMALL LETTER CA (`U+056E`). + - ARMENIAN SMALL LETTER KEH (`U+0584`). + - VERTICAL ZIGZAG LINE (`U+299A`). + - LEFT WIGGLY FENCE (`U+29D8`). + - RIGHT WIGGLY FENCE (`U+29D9`). + - LEFT DOUBLE WIGGLY FENCE (`U+29DA`). + - RIGHT DOUBLE WIGGLY FENCE (`U+29DB`). + - HORIZONTAL RESISTOR SEGMENT (`U+1CC09`). + - VERTICAL RESISTOR SEGMENT (`U+1CC0A`). + - HORIZONTAL ZIGZAG LINE (`U+1CEB0`). +* Add italic form for Cyrillic Small Letter Ghe with Upturn (`ґ`). +* Add characters: + - ELECTRIC ARROW (`U+2301`). + - UP ARROWHEAD (`U+2303`). + - DOWN ARROWHEAD (`U+2304`). + - POSITION INDICATOR (`U+2316`). + - UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS (`U+2324`). + - OPTION KEY (`U+2325`). + - CYLINDRICITY (`U+232D`). + - ALL AROUND-PROFILE (`U+232E`). + - TOTAL RUNOUT (`U+2330`). + - DIMENSION ORIGIN (`U+2331`). + - ENTER SYMBOL (`U+2386`). + - ALTERNATIVE KEY SYMBOL (`U+2387`). + - SQUARE POSITION INDICATOR (`U+2BD0`). + * Descriptions of stylistic sets are added to font files (#2664). + + ### 32.4.0 * Add `curved` variant for `¶` (#2045). diff --git a/changes/32.5.0.md b/changes/32.5.0.md new file mode 100644 index 0000000000..4724f3241e --- /dev/null +++ b/changes/32.5.0.md @@ -0,0 +1,31 @@ +* Add variant selector for decorative angle brackets (U+276C...U+2771) (#2603, #2623). +* Refine shape of the following characters: + - GREEK PHI SYMBOL (`U+03D5`). + - CYRILLIC SMALL LETTER EF (`U+0444`). + - ARMENIAN CAPITAL LETTER KEH (`U+0554`). + - ARMENIAN SMALL LETTER CA (`U+056E`). + - ARMENIAN SMALL LETTER KEH (`U+0584`). + - VERTICAL ZIGZAG LINE (`U+299A`). + - LEFT WIGGLY FENCE (`U+29D8`). + - RIGHT WIGGLY FENCE (`U+29D9`). + - LEFT DOUBLE WIGGLY FENCE (`U+29DA`). + - RIGHT DOUBLE WIGGLY FENCE (`U+29DB`). + - HORIZONTAL RESISTOR SEGMENT (`U+1CC09`). + - VERTICAL RESISTOR SEGMENT (`U+1CC0A`). + - HORIZONTAL ZIGZAG LINE (`U+1CEB0`). +* Add italic form for Cyrillic Small Letter Ghe with Upturn (`ґ`). +* Add characters: + - ELECTRIC ARROW (`U+2301`). + - UP ARROWHEAD (`U+2303`). + - DOWN ARROWHEAD (`U+2304`). + - POSITION INDICATOR (`U+2316`). + - UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS (`U+2324`). + - OPTION KEY (`U+2325`). + - CYLINDRICITY (`U+232D`). + - ALL AROUND-PROFILE (`U+232E`). + - TOTAL RUNOUT (`U+2330`). + - DIMENSION ORIGIN (`U+2331`). + - ENTER SYMBOL (`U+2386`). + - ALTERNATIVE KEY SYMBOL (`U+2387`). + - SQUARE POSITION INDICATOR (`U+2BD0`). + * Descriptions of stylistic sets are added to font files (#2664). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 5dd5cb20da..58f29b4a67 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 32.4.0 +# Package list of Release 32.5.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 a02baaf1d8..3e03f20c99 100644 --- a/doc/character-variants.md +++ b/doc/character-variants.md @@ -3777,6 +3777,19 @@ +VSAU + + + + + + +1 +2 +3 + + + VLAA diff --git a/doc/custom-build.md b/doc/custom-build.md index c2603a8d4f..147997d114 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -3457,6 +3457,16 @@ Subsection `variants` is used to configure character variants in the font. Prope micro-sign = 'toothless-rounded-serifed', VSAT = 13 Micro Sign (µ) with toothless (rounded) shape, and serifs + - Styles for `❮`, `❯` (Decorative angle brackets (U+276C...U+2771)) +
3 variants + + + + + + + +
decorative-angle-brackets = 'tall', VSAU = 1
Tall decorative angle brackets, sharing same height as conventional brackets
decorative-angle-brackets = 'middle', VSAU = 2
Middle-height decorative angle brackets (default)
decorative-angle-brackets = 'short', VSAU = 3
Short decorative angle brackets, sharing same height as guillemts
- Styles for `<=`, `>=` (Less-equal and Greater-equal ligations)
2 variants diff --git a/doc/cv-influences.md b/doc/cv-influences.md index a10464eb3c..7ed88f29cf 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -495,6 +495,10 @@ µ (`U+00B5`) +- `VSAU`: + + ❬ (`U+276C`), ❭ (`U+276D`), ❮ (`U+276E`), ❯ (`U+276F`), ❰ (`U+2770`), ❱ (`U+2771`) + - `VXAA`: Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`) @@ -1026,6 +1030,10 @@ µ (`U+00B5`) +- `VSAU`: + + ❬ (`U+276C`), ❭ (`U+276D`), ❮ (`U+276E`), ❯ (`U+276F`), ❰ (`U+2770`), ❱ (`U+2771`) + - `VXAA`: Њ (`U+040A`), Н (`U+041D`), Ң (`U+04A2`), Ҥ (`U+04A4`), Ӈ (`U+04C7`), Ӊ (`U+04C9`), Ԋ (`U+050A`), Ԣ (`U+0522`), Ԩ (`U+0528`) diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index 7207b76518..a2c64dc94b 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -9,7 +9,7 @@ - + @@ -22,7 +22,7 @@ - + diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 2e50a6fb1f..9cbf372970 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -9,7 +9,7 @@ - + @@ -22,7 +22,7 @@ - + diff --git a/images/cs-block-armenian.dark.svg b/images/cs-block-armenian.dark.svg index 816214fdb6..91cac20c20 100644 --- a/images/cs-block-armenian.dark.svg +++ b/images/cs-block-armenian.dark.svg @@ -55,7 +55,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -100,7 +100,7 @@ - + diff --git a/images/cs-block-armenian.light.svg b/images/cs-block-armenian.light.svg index b6709bf022..6b048449c8 100644 --- a/images/cs-block-armenian.light.svg +++ b/images/cs-block-armenian.light.svg @@ -55,7 +55,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -100,7 +100,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg index 864b84a3b9..1334abb039 100644 --- a/images/cs-block-cyrillic-extended-b.dark.svg +++ b/images/cs-block-cyrillic-extended-b.dark.svg @@ -103,7 +103,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg index 7df950f775..1b575d58f1 100644 --- a/images/cs-block-cyrillic-extended-b.light.svg +++ b/images/cs-block-cyrillic-extended-b.light.svg @@ -103,7 +103,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-d.dark.svg b/images/cs-block-cyrillic-extended-d.dark.svg index 66a6151473..faf4b7d080 100644 --- a/images/cs-block-cyrillic-extended-d.dark.svg +++ b/images/cs-block-cyrillic-extended-d.dark.svg @@ -37,7 +37,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-d.light.svg b/images/cs-block-cyrillic-extended-d.light.svg index d098b3f089..27d505c220 100644 --- a/images/cs-block-cyrillic-extended-d.light.svg +++ b/images/cs-block-cyrillic-extended-d.light.svg @@ -37,7 +37,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/cs-block-cyrillic-supplement.dark.svg b/images/cs-block-cyrillic-supplement.dark.svg index 4eaad73bae..0a5c408973 100644 --- a/images/cs-block-cyrillic-supplement.dark.svg +++ b/images/cs-block-cyrillic-supplement.dark.svg @@ -22,7 +22,7 @@ - + diff --git a/images/cs-block-cyrillic-supplement.light.svg b/images/cs-block-cyrillic-supplement.light.svg index 0e2e358c03..97486925bb 100644 --- a/images/cs-block-cyrillic-supplement.light.svg +++ b/images/cs-block-cyrillic-supplement.light.svg @@ -22,7 +22,7 @@ - + diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg index fd18fc50b5..9c8d79294d 100644 --- a/images/cs-block-cyrillic.dark.svg +++ b/images/cs-block-cyrillic.dark.svg @@ -87,7 +87,7 @@ - + diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg index 5d748e7599..058ff6472d 100644 --- a/images/cs-block-cyrillic.light.svg +++ b/images/cs-block-cyrillic.light.svg @@ -87,7 +87,7 @@ - + diff --git a/images/cs-block-dingbats.dark.svg b/images/cs-block-dingbats.dark.svg index 8652849b6b..d721a8a267 100644 --- a/images/cs-block-dingbats.dark.svg +++ b/images/cs-block-dingbats.dark.svg @@ -71,12 +71,12 @@ - - - - - - + + + + + + diff --git a/images/cs-block-dingbats.light.svg b/images/cs-block-dingbats.light.svg index 51a049bb70..a2cf6f4e22 100644 --- a/images/cs-block-dingbats.light.svg +++ b/images/cs-block-dingbats.light.svg @@ -71,12 +71,12 @@ - - - - - - + + + + + + diff --git a/images/cs-block-greek-and-coptic.dark.svg b/images/cs-block-greek-and-coptic.dark.svg index c5c19573c9..2cf85e3243 100644 --- a/images/cs-block-greek-and-coptic.dark.svg +++ b/images/cs-block-greek-and-coptic.dark.svg @@ -112,7 +112,7 @@ - + diff --git a/images/cs-block-greek-and-coptic.light.svg b/images/cs-block-greek-and-coptic.light.svg index e836f5131a..dfe6323264 100644 --- a/images/cs-block-greek-and-coptic.light.svg +++ b/images/cs-block-greek-and-coptic.light.svg @@ -112,7 +112,7 @@ - + diff --git a/images/cs-block-ipa-extensions.dark.svg b/images/cs-block-ipa-extensions.dark.svg index b77acdfe4a..aaaee75703 100644 --- a/images/cs-block-ipa-extensions.dark.svg +++ b/images/cs-block-ipa-extensions.dark.svg @@ -59,7 +59,7 @@ - + diff --git a/images/cs-block-ipa-extensions.light.svg b/images/cs-block-ipa-extensions.light.svg index e8b20e94ad..1321491054 100644 --- a/images/cs-block-ipa-extensions.light.svg +++ b/images/cs-block-ipa-extensions.light.svg @@ -59,7 +59,7 @@ - + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg index ca72c2108f..bc9b9ab465 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg @@ -432,7 +432,7 @@ - + @@ -474,7 +474,7 @@ - + @@ -517,7 +517,7 @@ - + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.light.svg b/images/cs-block-mathematical-alphanumeric-symbols.light.svg index a26fa1e636..0593103fde 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.light.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.light.svg @@ -432,7 +432,7 @@ - + @@ -474,7 +474,7 @@ - + @@ -517,7 +517,7 @@ - + diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg index b3ea3b8056..c02c8f9be8 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg @@ -30,7 +30,7 @@ - + @@ -66,10 +66,10 @@ - - - - + + + + diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg index d9d6cd885c..acc108edd6 100644 --- a/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg +++ b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg @@ -30,7 +30,7 @@ - + @@ -66,10 +66,10 @@ - - - - + + + + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg index c1982535b5..1e8f37becc 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg @@ -157,21 +157,22 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -1434,8 +1435,8 @@ - - + + @@ -1445,7 +1446,7 @@ - + @@ -1565,42 +1566,42 @@ - + - + - + - + - + - + - + - + @@ -1665,32 +1666,32 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg index 8c2f56de91..9e3ecab028 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg @@ -157,21 +157,22 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -1434,8 +1435,8 @@ - - + + @@ -1445,7 +1446,7 @@ - + @@ -1565,42 +1566,42 @@ - + - + - + - + - + - + - + - + @@ -1665,32 +1666,32 @@ - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index 9ccc9a38da..bec0a0e7cb 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -20,206 +20,218 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -317,7 +329,7 @@ - + @@ -327,68 +339,68 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -403,82 +415,82 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -493,82 +505,82 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - + @@ -582,83 +594,83 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -673,82 +685,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -763,82 +775,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -853,82 +865,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -943,82 +955,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1033,82 +1045,82 @@ - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + @@ -1123,82 +1135,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1213,82 +1225,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1303,82 +1315,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1393,82 +1405,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1483,82 +1495,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1573,82 +1585,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1663,82 +1675,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index b396676bb6..191108a567 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -20,206 +20,218 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -317,7 +329,7 @@ - + @@ -327,68 +339,68 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -403,82 +415,82 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -493,82 +505,82 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - + @@ -582,83 +594,83 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -673,82 +685,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -763,82 +775,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -853,82 +865,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -943,82 +955,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1033,82 +1045,82 @@ - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + @@ -1123,82 +1135,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1213,82 +1225,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1303,82 +1315,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1393,82 +1405,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1483,82 +1495,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1573,82 +1585,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1663,82 +1675,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-phonetic-extensions-supplement.dark.svg b/images/cs-block-phonetic-extensions-supplement.dark.svg index ad1650054d..168c9acd52 100644 --- a/images/cs-block-phonetic-extensions-supplement.dark.svg +++ b/images/cs-block-phonetic-extensions-supplement.dark.svg @@ -69,7 +69,7 @@ - + diff --git a/images/cs-block-phonetic-extensions-supplement.light.svg b/images/cs-block-phonetic-extensions-supplement.light.svg index 68141fb4af..0c348ff995 100644 --- a/images/cs-block-phonetic-extensions-supplement.light.svg +++ b/images/cs-block-phonetic-extensions-supplement.light.svg @@ -69,7 +69,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 fae52325d9..2a586c6cf3 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 @@ - + @@ -28,8 +28,8 @@ - - + + @@ -632,6 +632,7 @@ + @@ -4626,4 +4627,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 087d465b0b..c6c8c7a467 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 @@ - + @@ -28,8 +28,8 @@ - - + + @@ -632,6 +632,7 @@ + @@ -4626,4 +4627,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-cyrl-ef-cursive.dark.svg b/images/cv-cyrl-ef-cursive.dark.svg index afcd7fdf60..cd49fb979d 100644 --- a/images/cv-cyrl-ef-cursive.dark.svg +++ b/images/cv-cyrl-ef-cursive.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ef-cursive.light.svg b/images/cv-cyrl-ef-cursive.light.svg index 85b723b8b0..f7dfc37031 100644 --- a/images/cv-cyrl-ef-cursive.light.svg +++ b/images/cv-cyrl-ef-cursive.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ef-diagonal-tailed-cursive.dark.svg b/images/cv-cyrl-ef-diagonal-tailed-cursive.dark.svg index fd568f8581..56e0a563a5 100644 --- a/images/cv-cyrl-ef-diagonal-tailed-cursive.dark.svg +++ b/images/cv-cyrl-ef-diagonal-tailed-cursive.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ef-diagonal-tailed-cursive.light.svg b/images/cv-cyrl-ef-diagonal-tailed-cursive.light.svg index 9e446b3aee..879de33cf4 100644 --- a/images/cv-cyrl-ef-diagonal-tailed-cursive.light.svg +++ b/images/cv-cyrl-ef-diagonal-tailed-cursive.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ef-serifed.dark.svg b/images/cv-cyrl-ef-serifed.dark.svg index 53ddc7198e..e8d41ec0ee 100644 --- a/images/cv-cyrl-ef-serifed.dark.svg +++ b/images/cv-cyrl-ef-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ef-serifed.light.svg b/images/cv-cyrl-ef-serifed.light.svg index 4231a69e97..a732084896 100644 --- a/images/cv-cyrl-ef-serifed.light.svg +++ b/images/cv-cyrl-ef-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ef-serifless.dark.svg b/images/cv-cyrl-ef-serifless.dark.svg index 002bd69425..e1c8338738 100644 --- a/images/cv-cyrl-ef-serifless.dark.svg +++ b/images/cv-cyrl-ef-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ef-serifless.light.svg b/images/cv-cyrl-ef-serifless.light.svg index 700b88cd07..a7e3fb6ef7 100644 --- a/images/cv-cyrl-ef-serifless.light.svg +++ b/images/cv-cyrl-ef-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ef-top-serifed.dark.svg b/images/cv-cyrl-ef-top-serifed.dark.svg index 03e4896df2..2dd4c012eb 100644 --- a/images/cv-cyrl-ef-top-serifed.dark.svg +++ b/images/cv-cyrl-ef-top-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-ef-top-serifed.light.svg b/images/cv-cyrl-ef-top-serifed.light.svg index 7a19c55419..7a8f65931f 100644 --- a/images/cv-cyrl-ef-top-serifed.light.svg +++ b/images/cv-cyrl-ef-top-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-decorative-angle-brackets-middle.dark.svg b/images/cv-decorative-angle-brackets-middle.dark.svg new file mode 100644 index 0000000000..2af7bab435 --- /dev/null +++ b/images/cv-decorative-angle-brackets-middle.dark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-decorative-angle-brackets-middle.light.svg b/images/cv-decorative-angle-brackets-middle.light.svg new file mode 100644 index 0000000000..7427add603 --- /dev/null +++ b/images/cv-decorative-angle-brackets-middle.light.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-decorative-angle-brackets-short.dark.svg b/images/cv-decorative-angle-brackets-short.dark.svg new file mode 100644 index 0000000000..32afe24ae6 --- /dev/null +++ b/images/cv-decorative-angle-brackets-short.dark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-decorative-angle-brackets-short.light.svg b/images/cv-decorative-angle-brackets-short.light.svg new file mode 100644 index 0000000000..ff7165036a --- /dev/null +++ b/images/cv-decorative-angle-brackets-short.light.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-decorative-angle-brackets-tall.dark.svg b/images/cv-decorative-angle-brackets-tall.dark.svg new file mode 100644 index 0000000000..419f39a01a --- /dev/null +++ b/images/cv-decorative-angle-brackets-tall.dark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-decorative-angle-brackets-tall.light.svg b/images/cv-decorative-angle-brackets-tall.light.svg new file mode 100644 index 0000000000..9da08008f2 --- /dev/null +++ b/images/cv-decorative-angle-brackets-tall.light.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-phi-neo-hellenic.dark.svg b/images/cv-lower-phi-neo-hellenic.dark.svg index ff14162d60..3a80e0a777 100644 --- a/images/cv-lower-phi-neo-hellenic.dark.svg +++ b/images/cv-lower-phi-neo-hellenic.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-phi-neo-hellenic.light.svg b/images/cv-lower-phi-neo-hellenic.light.svg index 5554274c24..b5650276de 100644 --- a/images/cv-lower-phi-neo-hellenic.light.svg +++ b/images/cv-lower-phi-neo-hellenic.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-phi-straight.dark.svg b/images/cv-lower-phi-straight.dark.svg index b5ef24c02e..f18a9a3242 100644 --- a/images/cv-lower-phi-straight.dark.svg +++ b/images/cv-lower-phi-straight.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-phi-straight.light.svg b/images/cv-lower-phi-straight.light.svg index 48ddcca7c4..11a690c379 100644 --- a/images/cv-lower-phi-straight.light.svg +++ b/images/cv-lower-phi-straight.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/languages.dark.svg b/images/languages.dark.svg index c1b4ea408c..7990f4842e 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -99,8 +99,8 @@ - - + + @@ -143,7 +143,7 @@ - + diff --git a/images/languages.light.svg b/images/languages.light.svg index a088c285f0..8748b18c20 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -99,8 +99,8 @@ - - + + @@ -143,7 +143,7 @@ - + diff --git a/images/package-sample-Iosevka.dark.svg b/images/package-sample-Iosevka.dark.svg index e2442b69b7..937a349b00 100644 --- a/images/package-sample-Iosevka.dark.svg +++ b/images/package-sample-Iosevka.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-Iosevka.light.svg b/images/package-sample-Iosevka.light.svg index 5302f8b969..6e6cebe74d 100644 --- a/images/package-sample-Iosevka.light.svg +++ b/images/package-sample-Iosevka.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaAile.dark.svg b/images/package-sample-IosevkaAile.dark.svg index 2a621c20e9..7f705cfd95 100644 --- a/images/package-sample-IosevkaAile.dark.svg +++ b/images/package-sample-IosevkaAile.dark.svg @@ -84,10 +84,10 @@ - + - + diff --git a/images/package-sample-IosevkaAile.light.svg b/images/package-sample-IosevkaAile.light.svg index 2d61cde90d..bac07c69a4 100644 --- a/images/package-sample-IosevkaAile.light.svg +++ b/images/package-sample-IosevkaAile.light.svg @@ -84,10 +84,10 @@ - + - + diff --git a/images/package-sample-IosevkaCurly.dark.svg b/images/package-sample-IosevkaCurly.dark.svg index 1ccdd337d3..28f802a006 100644 --- a/images/package-sample-IosevkaCurly.dark.svg +++ b/images/package-sample-IosevkaCurly.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaCurly.light.svg b/images/package-sample-IosevkaCurly.light.svg index 3eb973ee1a..2c722803b1 100644 --- a/images/package-sample-IosevkaCurly.light.svg +++ b/images/package-sample-IosevkaCurly.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.dark.svg b/images/package-sample-IosevkaCurlySlab.dark.svg index 903d001259..662776cc2c 100644 --- a/images/package-sample-IosevkaCurlySlab.dark.svg +++ b/images/package-sample-IosevkaCurlySlab.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.light.svg b/images/package-sample-IosevkaCurlySlab.light.svg index a8df788421..9bd5047f3e 100644 --- a/images/package-sample-IosevkaCurlySlab.light.svg +++ b/images/package-sample-IosevkaCurlySlab.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixed.dark.svg b/images/package-sample-IosevkaFixed.dark.svg index e2442b69b7..937a349b00 100644 --- a/images/package-sample-IosevkaFixed.dark.svg +++ b/images/package-sample-IosevkaFixed.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixed.light.svg b/images/package-sample-IosevkaFixed.light.svg index 5302f8b969..6e6cebe74d 100644 --- a/images/package-sample-IosevkaFixed.light.svg +++ b/images/package-sample-IosevkaFixed.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.dark.svg b/images/package-sample-IosevkaFixedCurly.dark.svg index 1ccdd337d3..28f802a006 100644 --- a/images/package-sample-IosevkaFixedCurly.dark.svg +++ b/images/package-sample-IosevkaFixedCurly.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.light.svg b/images/package-sample-IosevkaFixedCurly.light.svg index 3eb973ee1a..2c722803b1 100644 --- a/images/package-sample-IosevkaFixedCurly.light.svg +++ b/images/package-sample-IosevkaFixedCurly.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.dark.svg b/images/package-sample-IosevkaFixedCurlySlab.dark.svg index 903d001259..662776cc2c 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.dark.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.light.svg b/images/package-sample-IosevkaFixedCurlySlab.light.svg index a8df788421..9bd5047f3e 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.light.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.dark.svg b/images/package-sample-IosevkaFixedSS01.dark.svg index 1c21d1ac9b..dadcac9b63 100644 --- a/images/package-sample-IosevkaFixedSS01.dark.svg +++ b/images/package-sample-IosevkaFixedSS01.dark.svg @@ -128,7 +128,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.light.svg b/images/package-sample-IosevkaFixedSS01.light.svg index f66880e039..af52419cbb 100644 --- a/images/package-sample-IosevkaFixedSS01.light.svg +++ b/images/package-sample-IosevkaFixedSS01.light.svg @@ -128,7 +128,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.dark.svg b/images/package-sample-IosevkaFixedSS03.dark.svg index 9e5b487be2..84d8b5197b 100644 --- a/images/package-sample-IosevkaFixedSS03.dark.svg +++ b/images/package-sample-IosevkaFixedSS03.dark.svg @@ -129,7 +129,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.light.svg b/images/package-sample-IosevkaFixedSS03.light.svg index 5fad676e93..05dee92f04 100644 --- a/images/package-sample-IosevkaFixedSS03.light.svg +++ b/images/package-sample-IosevkaFixedSS03.light.svg @@ -129,7 +129,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.dark.svg b/images/package-sample-IosevkaFixedSS04.dark.svg index f52746f78b..fbcf17c04b 100644 --- a/images/package-sample-IosevkaFixedSS04.dark.svg +++ b/images/package-sample-IosevkaFixedSS04.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.light.svg b/images/package-sample-IosevkaFixedSS04.light.svg index 871044c9d5..e137225863 100644 --- a/images/package-sample-IosevkaFixedSS04.light.svg +++ b/images/package-sample-IosevkaFixedSS04.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.dark.svg b/images/package-sample-IosevkaFixedSS06.dark.svg index 844def99b8..2e76803e21 100644 --- a/images/package-sample-IosevkaFixedSS06.dark.svg +++ b/images/package-sample-IosevkaFixedSS06.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.light.svg b/images/package-sample-IosevkaFixedSS06.light.svg index 2af6857e95..b149a23078 100644 --- a/images/package-sample-IosevkaFixedSS06.light.svg +++ b/images/package-sample-IosevkaFixedSS06.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.dark.svg b/images/package-sample-IosevkaFixedSS07.dark.svg index 9bb9ac9437..1632fa6671 100644 --- a/images/package-sample-IosevkaFixedSS07.dark.svg +++ b/images/package-sample-IosevkaFixedSS07.dark.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.light.svg b/images/package-sample-IosevkaFixedSS07.light.svg index b772135426..bbb15c6d8d 100644 --- a/images/package-sample-IosevkaFixedSS07.light.svg +++ b/images/package-sample-IosevkaFixedSS07.light.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.dark.svg b/images/package-sample-IosevkaFixedSS08.dark.svg index d6305f48b2..65f768cf48 100644 --- a/images/package-sample-IosevkaFixedSS08.dark.svg +++ b/images/package-sample-IosevkaFixedSS08.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.light.svg b/images/package-sample-IosevkaFixedSS08.light.svg index 759265a898..f931933c1a 100644 --- a/images/package-sample-IosevkaFixedSS08.light.svg +++ b/images/package-sample-IosevkaFixedSS08.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.dark.svg b/images/package-sample-IosevkaFixedSS09.dark.svg index a3e247289a..1033bed3d4 100644 --- a/images/package-sample-IosevkaFixedSS09.dark.svg +++ b/images/package-sample-IosevkaFixedSS09.dark.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.light.svg b/images/package-sample-IosevkaFixedSS09.light.svg index d2e20ebf16..eff7dc5927 100644 --- a/images/package-sample-IosevkaFixedSS09.light.svg +++ b/images/package-sample-IosevkaFixedSS09.light.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg index 2279160d50..3d53342a1a 100644 --- a/images/package-sample-IosevkaFixedSS10.dark.svg +++ b/images/package-sample-IosevkaFixedSS10.dark.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg index d6a274e7a6..c58b676f94 100644 --- a/images/package-sample-IosevkaFixedSS10.light.svg +++ b/images/package-sample-IosevkaFixedSS10.light.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.dark.svg b/images/package-sample-IosevkaFixedSS11.dark.svg index 60d96de88a..a747bbfd43 100644 --- a/images/package-sample-IosevkaFixedSS11.dark.svg +++ b/images/package-sample-IosevkaFixedSS11.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.light.svg b/images/package-sample-IosevkaFixedSS11.light.svg index 425eb1bb28..5c361785da 100644 --- a/images/package-sample-IosevkaFixedSS11.light.svg +++ b/images/package-sample-IosevkaFixedSS11.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.dark.svg b/images/package-sample-IosevkaFixedSS12.dark.svg index 436e03820a..59af9794c1 100644 --- a/images/package-sample-IosevkaFixedSS12.dark.svg +++ b/images/package-sample-IosevkaFixedSS12.dark.svg @@ -128,7 +128,7 @@ - + @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.light.svg b/images/package-sample-IosevkaFixedSS12.light.svg index 0075ac9733..695266cb19 100644 --- a/images/package-sample-IosevkaFixedSS12.light.svg +++ b/images/package-sample-IosevkaFixedSS12.light.svg @@ -128,7 +128,7 @@ - + @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.dark.svg b/images/package-sample-IosevkaFixedSS13.dark.svg index fb29bf6f83..1dbfd877d5 100644 --- a/images/package-sample-IosevkaFixedSS13.dark.svg +++ b/images/package-sample-IosevkaFixedSS13.dark.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.light.svg b/images/package-sample-IosevkaFixedSS13.light.svg index 1ac70f7771..1cb2ab0651 100644 --- a/images/package-sample-IosevkaFixedSS13.light.svg +++ b/images/package-sample-IosevkaFixedSS13.light.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg index 2d839a6277..caba525934 100644 --- a/images/package-sample-IosevkaFixedSS14.dark.svg +++ b/images/package-sample-IosevkaFixedSS14.dark.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg index d635623c73..6d19afbb85 100644 --- a/images/package-sample-IosevkaFixedSS14.light.svg +++ b/images/package-sample-IosevkaFixedSS14.light.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.dark.svg b/images/package-sample-IosevkaFixedSS17.dark.svg index 7870d9fd0a..cec72b48fa 100644 --- a/images/package-sample-IosevkaFixedSS17.dark.svg +++ b/images/package-sample-IosevkaFixedSS17.dark.svg @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.light.svg b/images/package-sample-IosevkaFixedSS17.light.svg index 601bcb385a..f63af36500 100644 --- a/images/package-sample-IosevkaFixedSS17.light.svg +++ b/images/package-sample-IosevkaFixedSS17.light.svg @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.dark.svg b/images/package-sample-IosevkaFixedSS18.dark.svg index 4876faf8c5..2cf496e246 100644 --- a/images/package-sample-IosevkaFixedSS18.dark.svg +++ b/images/package-sample-IosevkaFixedSS18.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.light.svg b/images/package-sample-IosevkaFixedSS18.light.svg index 675207d98c..d9cecd813a 100644 --- a/images/package-sample-IosevkaFixedSS18.light.svg +++ b/images/package-sample-IosevkaFixedSS18.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.dark.svg b/images/package-sample-IosevkaFixedSlab.dark.svg index 724c7c73ce..ec09249e99 100644 --- a/images/package-sample-IosevkaFixedSlab.dark.svg +++ b/images/package-sample-IosevkaFixedSlab.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.light.svg b/images/package-sample-IosevkaFixedSlab.light.svg index 7118a0875b..091bd97513 100644 --- a/images/package-sample-IosevkaFixedSlab.light.svg +++ b/images/package-sample-IosevkaFixedSlab.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.dark.svg b/images/package-sample-IosevkaSS01.dark.svg index 1c21d1ac9b..dadcac9b63 100644 --- a/images/package-sample-IosevkaSS01.dark.svg +++ b/images/package-sample-IosevkaSS01.dark.svg @@ -128,7 +128,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.light.svg b/images/package-sample-IosevkaSS01.light.svg index f66880e039..af52419cbb 100644 --- a/images/package-sample-IosevkaSS01.light.svg +++ b/images/package-sample-IosevkaSS01.light.svg @@ -128,7 +128,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.dark.svg b/images/package-sample-IosevkaSS03.dark.svg index 9e5b487be2..84d8b5197b 100644 --- a/images/package-sample-IosevkaSS03.dark.svg +++ b/images/package-sample-IosevkaSS03.dark.svg @@ -129,7 +129,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.light.svg b/images/package-sample-IosevkaSS03.light.svg index 5fad676e93..05dee92f04 100644 --- a/images/package-sample-IosevkaSS03.light.svg +++ b/images/package-sample-IosevkaSS03.light.svg @@ -129,7 +129,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.dark.svg b/images/package-sample-IosevkaSS04.dark.svg index f52746f78b..fbcf17c04b 100644 --- a/images/package-sample-IosevkaSS04.dark.svg +++ b/images/package-sample-IosevkaSS04.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.light.svg b/images/package-sample-IosevkaSS04.light.svg index 871044c9d5..e137225863 100644 --- a/images/package-sample-IosevkaSS04.light.svg +++ b/images/package-sample-IosevkaSS04.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.dark.svg b/images/package-sample-IosevkaSS06.dark.svg index 844def99b8..2e76803e21 100644 --- a/images/package-sample-IosevkaSS06.dark.svg +++ b/images/package-sample-IosevkaSS06.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.light.svg b/images/package-sample-IosevkaSS06.light.svg index 2af6857e95..b149a23078 100644 --- a/images/package-sample-IosevkaSS06.light.svg +++ b/images/package-sample-IosevkaSS06.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.dark.svg b/images/package-sample-IosevkaSS07.dark.svg index 9bb9ac9437..1632fa6671 100644 --- a/images/package-sample-IosevkaSS07.dark.svg +++ b/images/package-sample-IosevkaSS07.dark.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.light.svg b/images/package-sample-IosevkaSS07.light.svg index b772135426..bbb15c6d8d 100644 --- a/images/package-sample-IosevkaSS07.light.svg +++ b/images/package-sample-IosevkaSS07.light.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.dark.svg b/images/package-sample-IosevkaSS08.dark.svg index d6305f48b2..65f768cf48 100644 --- a/images/package-sample-IosevkaSS08.dark.svg +++ b/images/package-sample-IosevkaSS08.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.light.svg b/images/package-sample-IosevkaSS08.light.svg index 759265a898..f931933c1a 100644 --- a/images/package-sample-IosevkaSS08.light.svg +++ b/images/package-sample-IosevkaSS08.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.dark.svg b/images/package-sample-IosevkaSS09.dark.svg index a3e247289a..1033bed3d4 100644 --- a/images/package-sample-IosevkaSS09.dark.svg +++ b/images/package-sample-IosevkaSS09.dark.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.light.svg b/images/package-sample-IosevkaSS09.light.svg index d2e20ebf16..eff7dc5927 100644 --- a/images/package-sample-IosevkaSS09.light.svg +++ b/images/package-sample-IosevkaSS09.light.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg index 2279160d50..3d53342a1a 100644 --- a/images/package-sample-IosevkaSS10.dark.svg +++ b/images/package-sample-IosevkaSS10.dark.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.light.svg b/images/package-sample-IosevkaSS10.light.svg index d6a274e7a6..c58b676f94 100644 --- a/images/package-sample-IosevkaSS10.light.svg +++ b/images/package-sample-IosevkaSS10.light.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.dark.svg b/images/package-sample-IosevkaSS11.dark.svg index 60d96de88a..a747bbfd43 100644 --- a/images/package-sample-IosevkaSS11.dark.svg +++ b/images/package-sample-IosevkaSS11.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.light.svg b/images/package-sample-IosevkaSS11.light.svg index 425eb1bb28..5c361785da 100644 --- a/images/package-sample-IosevkaSS11.light.svg +++ b/images/package-sample-IosevkaSS11.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.dark.svg b/images/package-sample-IosevkaSS12.dark.svg index 436e03820a..59af9794c1 100644 --- a/images/package-sample-IosevkaSS12.dark.svg +++ b/images/package-sample-IosevkaSS12.dark.svg @@ -128,7 +128,7 @@ - + @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.light.svg b/images/package-sample-IosevkaSS12.light.svg index 0075ac9733..695266cb19 100644 --- a/images/package-sample-IosevkaSS12.light.svg +++ b/images/package-sample-IosevkaSS12.light.svg @@ -128,7 +128,7 @@ - + @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.dark.svg b/images/package-sample-IosevkaSS13.dark.svg index fb29bf6f83..1dbfd877d5 100644 --- a/images/package-sample-IosevkaSS13.dark.svg +++ b/images/package-sample-IosevkaSS13.dark.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.light.svg b/images/package-sample-IosevkaSS13.light.svg index 1ac70f7771..1cb2ab0651 100644 --- a/images/package-sample-IosevkaSS13.light.svg +++ b/images/package-sample-IosevkaSS13.light.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg index 2d839a6277..caba525934 100644 --- a/images/package-sample-IosevkaSS14.dark.svg +++ b/images/package-sample-IosevkaSS14.dark.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.light.svg b/images/package-sample-IosevkaSS14.light.svg index d635623c73..6d19afbb85 100644 --- a/images/package-sample-IosevkaSS14.light.svg +++ b/images/package-sample-IosevkaSS14.light.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.dark.svg b/images/package-sample-IosevkaSS17.dark.svg index 7870d9fd0a..cec72b48fa 100644 --- a/images/package-sample-IosevkaSS17.dark.svg +++ b/images/package-sample-IosevkaSS17.dark.svg @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.light.svg b/images/package-sample-IosevkaSS17.light.svg index 601bcb385a..f63af36500 100644 --- a/images/package-sample-IosevkaSS17.light.svg +++ b/images/package-sample-IosevkaSS17.light.svg @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.dark.svg b/images/package-sample-IosevkaSS18.dark.svg index 4876faf8c5..2cf496e246 100644 --- a/images/package-sample-IosevkaSS18.dark.svg +++ b/images/package-sample-IosevkaSS18.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.light.svg b/images/package-sample-IosevkaSS18.light.svg index 675207d98c..d9cecd813a 100644 --- a/images/package-sample-IosevkaSS18.light.svg +++ b/images/package-sample-IosevkaSS18.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.dark.svg b/images/package-sample-IosevkaSlab.dark.svg index 724c7c73ce..ec09249e99 100644 --- a/images/package-sample-IosevkaSlab.dark.svg +++ b/images/package-sample-IosevkaSlab.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.light.svg b/images/package-sample-IosevkaSlab.light.svg index 7118a0875b..091bd97513 100644 --- a/images/package-sample-IosevkaSlab.light.svg +++ b/images/package-sample-IosevkaSlab.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.dark.svg b/images/package-sample-IosevkaTerm.dark.svg index e2442b69b7..937a349b00 100644 --- a/images/package-sample-IosevkaTerm.dark.svg +++ b/images/package-sample-IosevkaTerm.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.light.svg b/images/package-sample-IosevkaTerm.light.svg index 5302f8b969..6e6cebe74d 100644 --- a/images/package-sample-IosevkaTerm.light.svg +++ b/images/package-sample-IosevkaTerm.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.dark.svg b/images/package-sample-IosevkaTermCurly.dark.svg index 1ccdd337d3..28f802a006 100644 --- a/images/package-sample-IosevkaTermCurly.dark.svg +++ b/images/package-sample-IosevkaTermCurly.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.light.svg b/images/package-sample-IosevkaTermCurly.light.svg index 3eb973ee1a..2c722803b1 100644 --- a/images/package-sample-IosevkaTermCurly.light.svg +++ b/images/package-sample-IosevkaTermCurly.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.dark.svg b/images/package-sample-IosevkaTermCurlySlab.dark.svg index 903d001259..662776cc2c 100644 --- a/images/package-sample-IosevkaTermCurlySlab.dark.svg +++ b/images/package-sample-IosevkaTermCurlySlab.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.light.svg b/images/package-sample-IosevkaTermCurlySlab.light.svg index a8df788421..9bd5047f3e 100644 --- a/images/package-sample-IosevkaTermCurlySlab.light.svg +++ b/images/package-sample-IosevkaTermCurlySlab.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.dark.svg b/images/package-sample-IosevkaTermSS01.dark.svg index 1c21d1ac9b..dadcac9b63 100644 --- a/images/package-sample-IosevkaTermSS01.dark.svg +++ b/images/package-sample-IosevkaTermSS01.dark.svg @@ -128,7 +128,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.light.svg b/images/package-sample-IosevkaTermSS01.light.svg index f66880e039..af52419cbb 100644 --- a/images/package-sample-IosevkaTermSS01.light.svg +++ b/images/package-sample-IosevkaTermSS01.light.svg @@ -128,7 +128,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.dark.svg b/images/package-sample-IosevkaTermSS03.dark.svg index 9e5b487be2..84d8b5197b 100644 --- a/images/package-sample-IosevkaTermSS03.dark.svg +++ b/images/package-sample-IosevkaTermSS03.dark.svg @@ -129,7 +129,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.light.svg b/images/package-sample-IosevkaTermSS03.light.svg index 5fad676e93..05dee92f04 100644 --- a/images/package-sample-IosevkaTermSS03.light.svg +++ b/images/package-sample-IosevkaTermSS03.light.svg @@ -129,7 +129,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.dark.svg b/images/package-sample-IosevkaTermSS04.dark.svg index f52746f78b..fbcf17c04b 100644 --- a/images/package-sample-IosevkaTermSS04.dark.svg +++ b/images/package-sample-IosevkaTermSS04.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.light.svg b/images/package-sample-IosevkaTermSS04.light.svg index 871044c9d5..e137225863 100644 --- a/images/package-sample-IosevkaTermSS04.light.svg +++ b/images/package-sample-IosevkaTermSS04.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.dark.svg b/images/package-sample-IosevkaTermSS06.dark.svg index 844def99b8..2e76803e21 100644 --- a/images/package-sample-IosevkaTermSS06.dark.svg +++ b/images/package-sample-IosevkaTermSS06.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.light.svg b/images/package-sample-IosevkaTermSS06.light.svg index 2af6857e95..b149a23078 100644 --- a/images/package-sample-IosevkaTermSS06.light.svg +++ b/images/package-sample-IosevkaTermSS06.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.dark.svg b/images/package-sample-IosevkaTermSS07.dark.svg index 9bb9ac9437..1632fa6671 100644 --- a/images/package-sample-IosevkaTermSS07.dark.svg +++ b/images/package-sample-IosevkaTermSS07.dark.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.light.svg b/images/package-sample-IosevkaTermSS07.light.svg index b772135426..bbb15c6d8d 100644 --- a/images/package-sample-IosevkaTermSS07.light.svg +++ b/images/package-sample-IosevkaTermSS07.light.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.dark.svg b/images/package-sample-IosevkaTermSS08.dark.svg index d6305f48b2..65f768cf48 100644 --- a/images/package-sample-IosevkaTermSS08.dark.svg +++ b/images/package-sample-IosevkaTermSS08.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.light.svg b/images/package-sample-IosevkaTermSS08.light.svg index 759265a898..f931933c1a 100644 --- a/images/package-sample-IosevkaTermSS08.light.svg +++ b/images/package-sample-IosevkaTermSS08.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.dark.svg b/images/package-sample-IosevkaTermSS09.dark.svg index a3e247289a..1033bed3d4 100644 --- a/images/package-sample-IosevkaTermSS09.dark.svg +++ b/images/package-sample-IosevkaTermSS09.dark.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.light.svg b/images/package-sample-IosevkaTermSS09.light.svg index d2e20ebf16..eff7dc5927 100644 --- a/images/package-sample-IosevkaTermSS09.light.svg +++ b/images/package-sample-IosevkaTermSS09.light.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg index 2279160d50..3d53342a1a 100644 --- a/images/package-sample-IosevkaTermSS10.dark.svg +++ b/images/package-sample-IosevkaTermSS10.dark.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg index d6a274e7a6..c58b676f94 100644 --- a/images/package-sample-IosevkaTermSS10.light.svg +++ b/images/package-sample-IosevkaTermSS10.light.svg @@ -147,7 +147,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.dark.svg b/images/package-sample-IosevkaTermSS11.dark.svg index 60d96de88a..a747bbfd43 100644 --- a/images/package-sample-IosevkaTermSS11.dark.svg +++ b/images/package-sample-IosevkaTermSS11.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.light.svg b/images/package-sample-IosevkaTermSS11.light.svg index 425eb1bb28..5c361785da 100644 --- a/images/package-sample-IosevkaTermSS11.light.svg +++ b/images/package-sample-IosevkaTermSS11.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.dark.svg b/images/package-sample-IosevkaTermSS12.dark.svg index 436e03820a..59af9794c1 100644 --- a/images/package-sample-IosevkaTermSS12.dark.svg +++ b/images/package-sample-IosevkaTermSS12.dark.svg @@ -128,7 +128,7 @@ - + @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.light.svg b/images/package-sample-IosevkaTermSS12.light.svg index 0075ac9733..695266cb19 100644 --- a/images/package-sample-IosevkaTermSS12.light.svg +++ b/images/package-sample-IosevkaTermSS12.light.svg @@ -128,7 +128,7 @@ - + @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.dark.svg b/images/package-sample-IosevkaTermSS13.dark.svg index fb29bf6f83..1dbfd877d5 100644 --- a/images/package-sample-IosevkaTermSS13.dark.svg +++ b/images/package-sample-IosevkaTermSS13.dark.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.light.svg b/images/package-sample-IosevkaTermSS13.light.svg index 1ac70f7771..1cb2ab0651 100644 --- a/images/package-sample-IosevkaTermSS13.light.svg +++ b/images/package-sample-IosevkaTermSS13.light.svg @@ -129,7 +129,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg index 2d839a6277..caba525934 100644 --- a/images/package-sample-IosevkaTermSS14.dark.svg +++ b/images/package-sample-IosevkaTermSS14.dark.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg index d635623c73..6d19afbb85 100644 --- a/images/package-sample-IosevkaTermSS14.light.svg +++ b/images/package-sample-IosevkaTermSS14.light.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.dark.svg b/images/package-sample-IosevkaTermSS17.dark.svg index 7870d9fd0a..cec72b48fa 100644 --- a/images/package-sample-IosevkaTermSS17.dark.svg +++ b/images/package-sample-IosevkaTermSS17.dark.svg @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.light.svg b/images/package-sample-IosevkaTermSS17.light.svg index 601bcb385a..f63af36500 100644 --- a/images/package-sample-IosevkaTermSS17.light.svg +++ b/images/package-sample-IosevkaTermSS17.light.svg @@ -145,7 +145,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.dark.svg b/images/package-sample-IosevkaTermSS18.dark.svg index 4876faf8c5..2cf496e246 100644 --- a/images/package-sample-IosevkaTermSS18.dark.svg +++ b/images/package-sample-IosevkaTermSS18.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.light.svg b/images/package-sample-IosevkaTermSS18.light.svg index 675207d98c..d9cecd813a 100644 --- a/images/package-sample-IosevkaTermSS18.light.svg +++ b/images/package-sample-IosevkaTermSS18.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.dark.svg b/images/package-sample-IosevkaTermSlab.dark.svg index 724c7c73ce..ec09249e99 100644 --- a/images/package-sample-IosevkaTermSlab.dark.svg +++ b/images/package-sample-IosevkaTermSlab.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.light.svg b/images/package-sample-IosevkaTermSlab.light.svg index 7118a0875b..091bd97513 100644 --- a/images/package-sample-IosevkaTermSlab.light.svg +++ b/images/package-sample-IosevkaTermSlab.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/ss-i-off-0.dark.svg b/images/ss-i-off-0.dark.svg index 6f1193fa2f..d379b95cbc 100644 --- a/images/ss-i-off-0.dark.svg +++ b/images/ss-i-off-0.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-i-off-0.light.svg b/images/ss-i-off-0.light.svg index fa3ca5e7b4..2146cb7301 100644 --- a/images/ss-i-off-0.light.svg +++ b/images/ss-i-off-0.light.svg @@ -85,10 +85,10 @@ - + - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index e44430b977..944240bb66 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -128,7 +128,7 @@ - + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index a2e0247a0c..b6077cb39a 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -128,7 +128,7 @@ - + diff --git a/images/ss-i-ss02-1.dark.svg b/images/ss-i-ss02-1.dark.svg index 7c09c9c485..6c14ad8aaa 100644 --- a/images/ss-i-ss02-1.dark.svg +++ b/images/ss-i-ss02-1.dark.svg @@ -85,10 +85,10 @@ - + - + diff --git a/images/ss-i-ss02-1.light.svg b/images/ss-i-ss02-1.light.svg index dd821c5937..043989e4c9 100644 --- a/images/ss-i-ss02-1.light.svg +++ b/images/ss-i-ss02-1.light.svg @@ -85,10 +85,10 @@ - + - + diff --git a/images/ss-i-ss03-1.dark.svg b/images/ss-i-ss03-1.dark.svg index 3c547134f0..86d0d3f30d 100644 --- a/images/ss-i-ss03-1.dark.svg +++ b/images/ss-i-ss03-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -143,7 +143,7 @@ - + diff --git a/images/ss-i-ss03-1.light.svg b/images/ss-i-ss03-1.light.svg index de16b55e32..60662f5bac 100644 --- a/images/ss-i-ss03-1.light.svg +++ b/images/ss-i-ss03-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -143,7 +143,7 @@ - + diff --git a/images/ss-i-ss04-1.dark.svg b/images/ss-i-ss04-1.dark.svg index 43f9f8cc64..42f126f857 100644 --- a/images/ss-i-ss04-1.dark.svg +++ b/images/ss-i-ss04-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -144,7 +144,7 @@ - + diff --git a/images/ss-i-ss04-1.light.svg b/images/ss-i-ss04-1.light.svg index 6db48fb69a..771954d28f 100644 --- a/images/ss-i-ss04-1.light.svg +++ b/images/ss-i-ss04-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -144,7 +144,7 @@ - + diff --git a/images/ss-i-ss05-1.dark.svg b/images/ss-i-ss05-1.dark.svg index feb8cac5c4..6d63936652 100644 --- a/images/ss-i-ss05-1.dark.svg +++ b/images/ss-i-ss05-1.dark.svg @@ -85,10 +85,10 @@ - + - + diff --git a/images/ss-i-ss05-1.light.svg b/images/ss-i-ss05-1.light.svg index 3a32787391..f52101e35f 100644 --- a/images/ss-i-ss05-1.light.svg +++ b/images/ss-i-ss05-1.light.svg @@ -85,10 +85,10 @@ - + - + diff --git a/images/ss-i-ss06-1.dark.svg b/images/ss-i-ss06-1.dark.svg index 004e46a3ce..8b4660623a 100644 --- a/images/ss-i-ss06-1.dark.svg +++ b/images/ss-i-ss06-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -146,7 +146,7 @@ - + diff --git a/images/ss-i-ss06-1.light.svg b/images/ss-i-ss06-1.light.svg index b1af6bf2bc..87797995fe 100644 --- a/images/ss-i-ss06-1.light.svg +++ b/images/ss-i-ss06-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -146,7 +146,7 @@ - + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index a2c2507279..84d8ec0f8f 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -147,7 +147,7 @@ - + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index 3414757f95..6a0e843c3f 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -147,7 +147,7 @@ - + diff --git a/images/ss-i-ss08-1.dark.svg b/images/ss-i-ss08-1.dark.svg index 8cf5664ce7..a64cddc88c 100644 --- a/images/ss-i-ss08-1.dark.svg +++ b/images/ss-i-ss08-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -144,7 +144,7 @@ - + diff --git a/images/ss-i-ss08-1.light.svg b/images/ss-i-ss08-1.light.svg index f768f3965f..4789547d8b 100644 --- a/images/ss-i-ss08-1.light.svg +++ b/images/ss-i-ss08-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -144,7 +144,7 @@ - + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index 681c67c8d0..a3926cf632 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -129,7 +129,7 @@ - + diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index f944c47aa4..cd6287c0ce 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -129,7 +129,7 @@ - + diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index 210b8cf4ed..749448fac9 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -146,7 +146,7 @@ - + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index 46cbc55fe4..a71d0dcd28 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -146,7 +146,7 @@ - + diff --git a/images/ss-i-ss11-1.dark.svg b/images/ss-i-ss11-1.dark.svg index 0c1a3d53af..7e5e0eb2b8 100644 --- a/images/ss-i-ss11-1.dark.svg +++ b/images/ss-i-ss11-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-i-ss11-1.light.svg b/images/ss-i-ss11-1.light.svg index 2837344c6f..f63306af1e 100644 --- a/images/ss-i-ss11-1.light.svg +++ b/images/ss-i-ss11-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index 107a639310..099de46c40 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -127,7 +127,7 @@ - + @@ -143,7 +143,7 @@ - + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index e352da1f59..164cd97c05 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -127,7 +127,7 @@ - + @@ -143,7 +143,7 @@ - + diff --git a/images/ss-i-ss13-1.dark.svg b/images/ss-i-ss13-1.dark.svg index 7104808c88..744a1c8844 100644 --- a/images/ss-i-ss13-1.dark.svg +++ b/images/ss-i-ss13-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -129,7 +129,7 @@ - + diff --git a/images/ss-i-ss13-1.light.svg b/images/ss-i-ss13-1.light.svg index 683f1e1ce5..7179ad07c1 100644 --- a/images/ss-i-ss13-1.light.svg +++ b/images/ss-i-ss13-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -129,7 +129,7 @@ - + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index f271972662..941d846fbc 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -141,7 +141,7 @@ - + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index a3157d0196..c60a38afe0 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -141,7 +141,7 @@ - + diff --git a/images/ss-i-ss15-1.dark.svg b/images/ss-i-ss15-1.dark.svg index aa887974de..42ad96425f 100644 --- a/images/ss-i-ss15-1.dark.svg +++ b/images/ss-i-ss15-1.dark.svg @@ -85,10 +85,10 @@ - + - + diff --git a/images/ss-i-ss15-1.light.svg b/images/ss-i-ss15-1.light.svg index 14d816b492..e33148efee 100644 --- a/images/ss-i-ss15-1.light.svg +++ b/images/ss-i-ss15-1.light.svg @@ -85,10 +85,10 @@ - + - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index 8d5ccfa012..4d08eb92a2 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -85,10 +85,10 @@ - + - + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index 3ccc4fd0cf..4e26842947 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -85,10 +85,10 @@ - + - + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index 542baa908c..c515f48088 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index a5fd8b4433..df46349a1b 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-i-ss18-1.dark.svg b/images/ss-i-ss18-1.dark.svg index 8a14a5526c..2abdc9b45e 100644 --- a/images/ss-i-ss18-1.dark.svg +++ b/images/ss-i-ss18-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -144,7 +144,7 @@ - + diff --git a/images/ss-i-ss18-1.light.svg b/images/ss-i-ss18-1.light.svg index d6341d2d21..13172f908c 100644 --- a/images/ss-i-ss18-1.light.svg +++ b/images/ss-i-ss18-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -144,7 +144,7 @@ - + diff --git a/images/ss-i-ss20-1.dark.svg b/images/ss-i-ss20-1.dark.svg index eeba38e329..6c297e667d 100644 --- a/images/ss-i-ss20-1.dark.svg +++ b/images/ss-i-ss20-1.dark.svg @@ -85,10 +85,10 @@ - + - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-i-ss20-1.light.svg b/images/ss-i-ss20-1.light.svg index a2430555eb..399c1ec079 100644 --- a/images/ss-i-ss20-1.light.svg +++ b/images/ss-i-ss20-1.light.svg @@ -85,10 +85,10 @@ - + - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-u-off-0.dark.svg b/images/ss-u-off-0.dark.svg index 27714a819b..1f51b5fad9 100644 --- a/images/ss-u-off-0.dark.svg +++ b/images/ss-u-off-0.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/ss-u-off-0.light.svg b/images/ss-u-off-0.light.svg index 4e92b13d53..ee258dcb2c 100644 --- a/images/ss-u-off-0.light.svg +++ b/images/ss-u-off-0.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/ss-u-ss01-1.dark.svg b/images/ss-u-ss01-1.dark.svg index df3a71cdab..b113b0edb2 100644 --- a/images/ss-u-ss01-1.dark.svg +++ b/images/ss-u-ss01-1.dark.svg @@ -128,7 +128,7 @@ - + diff --git a/images/ss-u-ss01-1.light.svg b/images/ss-u-ss01-1.light.svg index fe5eeb524f..765ea14981 100644 --- a/images/ss-u-ss01-1.light.svg +++ b/images/ss-u-ss01-1.light.svg @@ -128,7 +128,7 @@ - + diff --git a/images/ss-u-ss03-1.dark.svg b/images/ss-u-ss03-1.dark.svg index 1fd09d97b4..dbbcbd122b 100644 --- a/images/ss-u-ss03-1.dark.svg +++ b/images/ss-u-ss03-1.dark.svg @@ -129,7 +129,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/images/ss-u-ss03-1.light.svg b/images/ss-u-ss03-1.light.svg index 0127ecf42c..4c4ed00f87 100644 --- a/images/ss-u-ss03-1.light.svg +++ b/images/ss-u-ss03-1.light.svg @@ -129,7 +129,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/images/ss-u-ss04-1.dark.svg b/images/ss-u-ss04-1.dark.svg index e9ff6fe591..2ac1a451ad 100644 --- a/images/ss-u-ss04-1.dark.svg +++ b/images/ss-u-ss04-1.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/ss-u-ss04-1.light.svg b/images/ss-u-ss04-1.light.svg index 8970d42ad3..6fd02d9eda 100644 --- a/images/ss-u-ss04-1.light.svg +++ b/images/ss-u-ss04-1.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/ss-u-ss06-1.dark.svg b/images/ss-u-ss06-1.dark.svg index c5c8c4a889..c4d7935e09 100644 --- a/images/ss-u-ss06-1.dark.svg +++ b/images/ss-u-ss06-1.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/ss-u-ss06-1.light.svg b/images/ss-u-ss06-1.light.svg index da2da92d66..b352fbb6aa 100644 --- a/images/ss-u-ss06-1.light.svg +++ b/images/ss-u-ss06-1.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/ss-u-ss07-1.dark.svg b/images/ss-u-ss07-1.dark.svg index e045d6a1e1..88d41a12e9 100644 --- a/images/ss-u-ss07-1.dark.svg +++ b/images/ss-u-ss07-1.dark.svg @@ -147,7 +147,7 @@ - + diff --git a/images/ss-u-ss07-1.light.svg b/images/ss-u-ss07-1.light.svg index 9bfa27b80c..69f5d283e4 100644 --- a/images/ss-u-ss07-1.light.svg +++ b/images/ss-u-ss07-1.light.svg @@ -147,7 +147,7 @@ - + diff --git a/images/ss-u-ss08-1.dark.svg b/images/ss-u-ss08-1.dark.svg index fccc59ee69..e9c9d27d35 100644 --- a/images/ss-u-ss08-1.dark.svg +++ b/images/ss-u-ss08-1.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/ss-u-ss08-1.light.svg b/images/ss-u-ss08-1.light.svg index 77484ec003..a4b8078621 100644 --- a/images/ss-u-ss08-1.light.svg +++ b/images/ss-u-ss08-1.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/ss-u-ss09-1.dark.svg b/images/ss-u-ss09-1.dark.svg index 887f22575f..602adff389 100644 --- a/images/ss-u-ss09-1.dark.svg +++ b/images/ss-u-ss09-1.dark.svg @@ -129,7 +129,7 @@ - + diff --git a/images/ss-u-ss09-1.light.svg b/images/ss-u-ss09-1.light.svg index 2880f94615..6b52582fea 100644 --- a/images/ss-u-ss09-1.light.svg +++ b/images/ss-u-ss09-1.light.svg @@ -129,7 +129,7 @@ - + diff --git a/images/ss-u-ss10-1.dark.svg b/images/ss-u-ss10-1.dark.svg index 9f50009e35..c7d074922a 100644 --- a/images/ss-u-ss10-1.dark.svg +++ b/images/ss-u-ss10-1.dark.svg @@ -147,7 +147,7 @@ - + diff --git a/images/ss-u-ss10-1.light.svg b/images/ss-u-ss10-1.light.svg index ac8a0ba935..163b310e3e 100644 --- a/images/ss-u-ss10-1.light.svg +++ b/images/ss-u-ss10-1.light.svg @@ -147,7 +147,7 @@ - + diff --git a/images/ss-u-ss11-1.dark.svg b/images/ss-u-ss11-1.dark.svg index aad83292c7..eb3e887835 100644 --- a/images/ss-u-ss11-1.dark.svg +++ b/images/ss-u-ss11-1.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/ss-u-ss11-1.light.svg b/images/ss-u-ss11-1.light.svg index a249c8c8e3..a171c88bd6 100644 --- a/images/ss-u-ss11-1.light.svg +++ b/images/ss-u-ss11-1.light.svg @@ -146,7 +146,7 @@ - + diff --git a/images/ss-u-ss12-1.dark.svg b/images/ss-u-ss12-1.dark.svg index 5c019f408d..66bd32e44f 100644 --- a/images/ss-u-ss12-1.dark.svg +++ b/images/ss-u-ss12-1.dark.svg @@ -128,7 +128,7 @@ - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-u-ss12-1.light.svg b/images/ss-u-ss12-1.light.svg index 833a671efe..ac1e0318fb 100644 --- a/images/ss-u-ss12-1.light.svg +++ b/images/ss-u-ss12-1.light.svg @@ -128,7 +128,7 @@ - + @@ -145,7 +145,7 @@ - + diff --git a/images/ss-u-ss13-1.dark.svg b/images/ss-u-ss13-1.dark.svg index 3b304120cf..4d8e426f4f 100644 --- a/images/ss-u-ss13-1.dark.svg +++ b/images/ss-u-ss13-1.dark.svg @@ -129,7 +129,7 @@ - + diff --git a/images/ss-u-ss13-1.light.svg b/images/ss-u-ss13-1.light.svg index 3fb7e48829..ff491c5424 100644 --- a/images/ss-u-ss13-1.light.svg +++ b/images/ss-u-ss13-1.light.svg @@ -129,7 +129,7 @@ - + diff --git a/images/ss-u-ss14-1.dark.svg b/images/ss-u-ss14-1.dark.svg index e7ea8ed035..65ba9155cb 100644 --- a/images/ss-u-ss14-1.dark.svg +++ b/images/ss-u-ss14-1.dark.svg @@ -142,7 +142,7 @@ - + diff --git a/images/ss-u-ss14-1.light.svg b/images/ss-u-ss14-1.light.svg index 47aa6f4bb1..170d2d5cf4 100644 --- a/images/ss-u-ss14-1.light.svg +++ b/images/ss-u-ss14-1.light.svg @@ -142,7 +142,7 @@ - + diff --git a/images/ss-u-ss17-1.dark.svg b/images/ss-u-ss17-1.dark.svg index 52c733baec..6d2e90da5d 100644 --- a/images/ss-u-ss17-1.dark.svg +++ b/images/ss-u-ss17-1.dark.svg @@ -145,7 +145,7 @@ - + diff --git a/images/ss-u-ss17-1.light.svg b/images/ss-u-ss17-1.light.svg index 612590a3fe..4682221b65 100644 --- a/images/ss-u-ss17-1.light.svg +++ b/images/ss-u-ss17-1.light.svg @@ -145,7 +145,7 @@ - + diff --git a/images/ss-u-ss18-1.dark.svg b/images/ss-u-ss18-1.dark.svg index ab677f0cd6..93b1067dfb 100644 --- a/images/ss-u-ss18-1.dark.svg +++ b/images/ss-u-ss18-1.dark.svg @@ -144,7 +144,7 @@ - + diff --git a/images/ss-u-ss18-1.light.svg b/images/ss-u-ss18-1.light.svg index 6d523a962f..e51139c7d6 100644 --- a/images/ss-u-ss18-1.light.svg +++ b/images/ss-u-ss18-1.light.svg @@ -144,7 +144,7 @@ - + diff --git a/images/ss-u-ss20-1.dark.svg b/images/ss-u-ss20-1.dark.svg index 436db46dce..7c4e76457d 100644 --- a/images/ss-u-ss20-1.dark.svg +++ b/images/ss-u-ss20-1.dark.svg @@ -146,7 +146,7 @@ - + diff --git a/images/ss-u-ss20-1.light.svg b/images/ss-u-ss20-1.light.svg index b62ec491f3..181997950f 100644 --- a/images/ss-u-ss20-1.light.svg +++ b/images/ss-u-ss20-1.light.svg @@ -146,7 +146,7 @@ - + diff --git a/package-lock.json b/package-lock.json index dd5f8ac531..2560aafaca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "32.4.0", + "version": "32.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "32.4.0", + "version": "32.5.0", "workspaces": [ "packages/*", "tools/*" @@ -14,20 +14,20 @@ "dependencies": { "@iarna/toml": "^2.2.5", "deep-equal": "^2.2.3", - "otb-ttc-bundle": "^1.7.4", + "otb-ttc-bundle": "^1.7.5", "semver": "^7.6.3", - "uuid": "^11.0.2", + "uuid": "^11.0.5", "verda": "^1.12.3", "which": "^5.0.0" }, "devDependencies": { - "eslint": "^9.14.0", - "eslint-config-prettier": "^9.1.0", + "eslint": "^9.18.0", + "eslint-config-prettier": "^10.0.1", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-prettier": "^5.2.1", - "glob": "^11.0.0", + "eslint-plugin-prettier": "^5.2.3", + "glob": "^11.0.1", "patel": "^0.41.0", - "prettier": "^3.3.3" + "prettier": "^3.4.2" }, "engines": { "node": ">=16.0.0" @@ -91,11 +91,14 @@ } }, "node_modules/@eslint/core": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", - "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -125,9 +128,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", - "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, "license": "MIT", "engines": { @@ -145,12 +148,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", - "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -597,550 +601,550 @@ } }, "node_modules/@ot-builder/bin-composite-types": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.7.4.tgz", - "integrity": "sha512-XaSxfufTFTBG9n7NHBapyqj3m7gy4vO2O6C6F1wvd3lAmTjGrIix1oCTXbKAH6XYdqYbkrcJ637ksRgssOyj0g==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.7.5.tgz", + "integrity": "sha512-6npozl4aUvXD12NsBpXuPJt3vsxJKJ8OaYg22jHrsr9ItVg6fcMvktj0D9juHkFx1r8/S2ASIjM+UQJoPUWSfQ==", "license": "MIT", "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/bin-util": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.7.4.tgz", - "integrity": "sha512-+AMUGJBMdCAQPrSV4yA4QPi1qzS/wb8BaSsFswd6GkhTze4UWMCbiu1yjoLSV7XzMC2toCXlY2YnxT120IScJw==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.7.5.tgz", + "integrity": "sha512-oW0wiTOERw6uFZKYDDtBFhCTnlrZbuAIXzU2UvBog8IM4HGJ1a9AA6axjdIc02dlPWC9CeI7tWRGUnvr7C8TpA==", "license": "MIT", "dependencies": { - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/cli-help-shower": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.7.4.tgz", - "integrity": "sha512-twEW4Iz93apHrvb9ZOmc3Y7K1wYGRhjfT99OvLqgH1M+os8f+f2AQIWibW18e2Vro4GcNTqwvEna+uyIkrNVbQ==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.7.5.tgz", + "integrity": "sha512-DYc2fkhqstLbkvml/0A0Si+6+mT+jS7i3Hq7lPOMVAOrMeo5Aow62Uq2T0F9/ZCjLO7PFHXfWH/RpaTLtoEU9Q==", "license": "MIT", "dependencies": { - "picocolors": "^1.0.1", - "tslib": "^2.6.3" + "picocolors": "^1.1.1", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/cli-proc": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.7.4.tgz", - "integrity": "sha512-tAcIgAEDYGazOTcaErZhQ9SGU4ufRL+pZe7nokce8pbzPGXfu+sQ8puJcpGRgSQ2MAoiW52RCaZOi0t2kdtZCg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.7.5.tgz", + "integrity": "sha512-hlwvOylMtH46q10Kyd1G0FULbLoNabEDhcfqu2w89sY4Txk+WWFZZkS0WWnA/8u5RaWH/naRdxa1ct/mcmFNNQ==", "license": "MIT", "dependencies": { - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/io-bin-font": "1.7.4", - "@ot-builder/ot": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/rectify": "1.7.4", - "@ot-builder/trace": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/io-bin-font": "1.7.5", + "@ot-builder/ot": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/rectify": "1.7.5", + "@ot-builder/trace": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/cli-shared": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.7.4.tgz", - "integrity": "sha512-eZocU2bGwvutOT51X21yV0FNt68JHxEdG0j+gP/vhdqoC/UZTQ06kBAAmzNy+d7yGS5nZ8NYcY/qKTKJpbqzTw==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.7.5.tgz", + "integrity": "sha512-u69n8E50cWQ5bkPtKort8cqRGL52u01g2Lpi6hYOXE8oZUct9yHWXrk7Q8IlERfSBOnHonbfW4greCNbS3DhhA==", "license": "MIT", "dependencies": { - "@ot-builder/io-bin-font": "1.7.4", - "@ot-builder/ot": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/io-bin-font": "1.7.5", + "@ot-builder/ot": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/common-impl": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.7.4.tgz", - "integrity": "sha512-lwcVk8VEKy3i2j9JxZjFJjA7QA8jbZk9ZoYKmEqcLWFEd7p+mGN9qUI0QU8joGp1w2bOfmEFm0MDTNVwz6CNuw==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.7.5.tgz", + "integrity": "sha512-/851a55LkWYoTxZ+Whn/C3e4TCuLXxOg6BnDzIwacZYVcQyzqgy8UiFL4yoh6qK+0xK807n+dsiLtc62rk5exw==", "license": "MIT", "dependencies": { - "@ot-builder/prelude": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/prelude": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/errors": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.7.4.tgz", - "integrity": "sha512-/AKwI0jwi7t02Y3Nqe11mGIQta4hQijFDhIpwu9TcZmM1+S/8CjDRSntMQBIPQ+W2IKTNsuBH5WHWXsYAnxnyg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.7.5.tgz", + "integrity": "sha512-Ejic7L9cLkdLGlk7cIg1IyjZ3oEDKB7/qL6ry/2SlurT/TRcLapdwYdbOQ5VfPrRlrS2wnzTsuN5rBNr1nWZMg==", "license": "MIT", "dependencies": { - "tslib": "^2.6.3" + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-cff": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.7.4.tgz", - "integrity": "sha512-x6LdH3X6dovUaoJtLmfxxaygNrbeyftq8pcKD8eswW5XF7Lc52a8fe7yHKR+x3p7PQAUemX0qXURduTKJIym6A==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.7.5.tgz", + "integrity": "sha512-r7Ky9oLHiUPxIeW9MwrlUAx6htPDc3h9umFBlesCfys1+2ViAGqgQJ6ToM0rFpp7H021PBVIrGUj4CkfhY1RDg==", "license": "MIT", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.4", - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/stat-glyphs": "1.7.4", - "@ot-builder/var-store": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-composite-types": "1.7.5", + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/stat-glyphs": "1.7.5", + "@ot-builder/var-store": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-encoding": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.7.4.tgz", - "integrity": "sha512-67K5TQvtkbGR3LdeHaa0MNZ7FCksssPOQ5BbFw+fsTVw/1Xjo7mFbttEPYdhD3zN+C+vsVcJgKYmFQ0mmAA1ew==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.7.5.tgz", + "integrity": "sha512-/zMMap5nH5UImh+JQN5IICQs3YbotMBw8bd2BMoCdIpMLwA02NFU4AZ7UJ9gHABOg+rOH+BcSbdkuD3Jhq70ng==", "license": "MIT", "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/io-bin-sfnt": "1.7.4", - "@ot-builder/ot-encoding": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/io-bin-sfnt": "1.7.5", + "@ot-builder/ot-encoding": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-ext-private": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.7.4.tgz", - "integrity": "sha512-wnMueaaBhK2OPh8HPqIKbQt1FfRPg3rm4H7MDftgMZ7snxo+P6xCYuM9bQzfn1Lvn1JbsOg8rH93Q/HDVnjw+g==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.7.5.tgz", + "integrity": "sha512-Np7TlLIuEwAIeAt5VAFBobuaYLui79KADiTbg/U64zKUwL6oak55I3XSpQTbPUhEYQs1zVkgJfCEq/xakWXfsg==", "license": "MIT", "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/io-bin-sfnt": "1.7.4", - "@ot-builder/ot-ext-private": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/io-bin-sfnt": "1.7.5", + "@ot-builder/ot-ext-private": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-font": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.7.4.tgz", - "integrity": "sha512-5spp+1WI9uCMk0fdmLPTaEun0N1NxbCcPglsdf/PBEjWAasDaOdZoQueCx9x+xwdKaleQSnmQAFhs1v2JHusqg==", - "license": "MIT", - "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/io-bin-encoding": "1.7.4", - "@ot-builder/io-bin-ext-private": "1.7.4", - "@ot-builder/io-bin-glyph-store": "1.7.4", - "@ot-builder/io-bin-layout": "1.7.4", - "@ot-builder/io-bin-metadata": "1.7.4", - "@ot-builder/io-bin-name": "1.7.4", - "@ot-builder/io-bin-sfnt": "1.7.4", - "@ot-builder/io-bin-vtt-private": "1.7.4", - "@ot-builder/ot": "1.7.4", - "@ot-builder/ot-encoding": "1.7.4", - "@ot-builder/ot-ext-private": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-layout": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/ot-name": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/ot-vtt-private": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "tslib": "^2.6.3" + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.7.5.tgz", + "integrity": "sha512-P38bc2fyKxnfWLItbOeVPMhmu1dF0raEyDlFwGfxHLaAuimBhU7mVmrhR+ujt/8LI2lAmsxdssAORvs98XtHPg==", + "license": "MIT", + "dependencies": { + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/io-bin-encoding": "1.7.5", + "@ot-builder/io-bin-ext-private": "1.7.5", + "@ot-builder/io-bin-glyph-store": "1.7.5", + "@ot-builder/io-bin-layout": "1.7.5", + "@ot-builder/io-bin-metadata": "1.7.5", + "@ot-builder/io-bin-name": "1.7.5", + "@ot-builder/io-bin-sfnt": "1.7.5", + "@ot-builder/io-bin-vtt-private": "1.7.5", + "@ot-builder/ot": "1.7.5", + "@ot-builder/ot-encoding": "1.7.5", + "@ot-builder/ot-ext-private": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-layout": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/ot-name": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/ot-vtt-private": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-glyph-store": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.7.4.tgz", - "integrity": "sha512-KYRXubuiEYdcdkf8mBKyjaDhSqdWn8ryGHAdlTtuk9NdeQZJMqa9dRFPB+eD72Oh6XYm+f4Xrk8xhXL/f6FCeA==", - "license": "MIT", - "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/io-bin-cff": "1.7.4", - "@ot-builder/io-bin-metric": "1.7.4", - "@ot-builder/io-bin-sfnt": "1.7.4", - "@ot-builder/io-bin-ttf": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/stat-glyphs": "1.7.4", - "@ot-builder/var-store": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.7.5.tgz", + "integrity": "sha512-xnJBdTtb+4m+b4bTJuCBYz55bkg71Y2GvqnzzONgUWgHnYzpfEgno11gsreiexUs30G5ZAt7QTScJDS/t+0AzA==", + "license": "MIT", + "dependencies": { + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/io-bin-cff": "1.7.5", + "@ot-builder/io-bin-metric": "1.7.5", + "@ot-builder/io-bin-sfnt": "1.7.5", + "@ot-builder/io-bin-ttf": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/stat-glyphs": "1.7.5", + "@ot-builder/var-store": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-layout": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.7.4.tgz", - "integrity": "sha512-f80FpvrKs93eXg0+EJEr86nz4gIMsN/SqueH0/ulNsrhpwVULqvgSrrpcObveQrBTpybU0vVPb68l8WnzTVsQw==", - "license": "MIT", - "dependencies": { - "@ot-builder/bin-composite-types": "1.7.4", - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/io-bin-sfnt": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-layout": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/var-store": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.7.5.tgz", + "integrity": "sha512-J708VLuygmSKoNHao7YdKrNZoWVFhrXENKihzDccfMJRfqBKv7JnOhv8KHE79gyhR0ZxNsYNcAcrJqN4z2mlaA==", + "license": "MIT", + "dependencies": { + "@ot-builder/bin-composite-types": "1.7.5", + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/io-bin-sfnt": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-layout": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/var-store": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-metadata": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.7.4.tgz", - "integrity": "sha512-2IYM5UPOe0ThcyF2bF4W5eZR8immdAecpE7DDh5ApBxJ8w3kaWpOy5hwtfSNeZ5M8ruB7M9ccFbRQMMtNJCMCQ==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.7.5.tgz", + "integrity": "sha512-ZNyjyIa7TTlKho14S6kJSiDxGAe35i2sp1y2nKRWVUsoXMqWWvlual+/NuSAgajjAQEKr8m5xzqzJ/V9Id6RTQ==", "license": "MIT", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.4", - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/io-bin-sfnt": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/var-store": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-composite-types": "1.7.5", + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/io-bin-sfnt": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/var-store": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-metric": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.7.4.tgz", - "integrity": "sha512-/aUSlKXDRwLjzcAayf+QvLfGQodCVYTlWORoxlHrSjN+uQcRqnKGPc/shgqd1qADeO+3Slv1VNFFyIURyCxfSg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.7.5.tgz", + "integrity": "sha512-IAi5Q4rKRPb1Mx+EwHt23oNhXd9DRaKi+tssWU5QYpBob34kkAqQ2+Wtzwg5/L7q/cEbh2f8ixO7xGDySlNj4Q==", "license": "MIT", "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/var-store": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/var-store": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-name": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.7.4.tgz", - "integrity": "sha512-YCcvHOvdPpgsJHbGnE1WyZOUuUUImfXjKSAKX2PruHaE6tmly0s9rpLkx0FVPg7mIhyS4+UZ3qkk67FcgNHiiQ==", - "license": "MIT", - "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/io-bin-sfnt": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/ot-name": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.7.5.tgz", + "integrity": "sha512-4LbTBmsnxW5Lwk4gopt7G8Kpzo9cYpElNuOLxWoXTb2Ziitr/uqric5ezn3NYRkjZZf52A3hPz/pGXTAmusogg==", + "license": "MIT", + "dependencies": { + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/io-bin-sfnt": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/ot-name": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", "iconv-lite": "^0.6.3", - "tslib": "^2.6.3" + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-sfnt": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.7.4.tgz", - "integrity": "sha512-PB2d04G1SEU4jaO0BHMHGgxLklXGXNRwjENlzQobZ+VtlpgbbXAkwcLSgWUDxeQIso1PoTESALDD9TeodEgFOQ==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.7.5.tgz", + "integrity": "sha512-ltmJfdXHUSfowKaK7STiOCUlTS3lT6WjQUfUq6IS/RSrsRDVsFfN3Ap+Ag+cVKR41tp8F/qqXtEEYTnqLwOoBw==", "license": "MIT", "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-ttf": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.7.4.tgz", - "integrity": "sha512-FG34A/H6jhvLAZy5SnjzWWqaN6KlJYyfGjnJXR5licsSYGhbH7Qqc84fYJIByqWE7M0QnHcihjFQd8awi5ZPnA==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.7.5.tgz", + "integrity": "sha512-iQklaEhPHw7QiHKqlW2owWlYvE13MGnVzrfyib8CHVsYIAj6v2YTmSNsXxctPQvtKo3YLosTZgy42nDG/bL2cw==", "license": "MIT", "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/stat-glyphs": "1.7.4", - "@ot-builder/var-store": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/stat-glyphs": "1.7.5", + "@ot-builder/var-store": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/io-bin-vtt-private": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.7.4.tgz", - "integrity": "sha512-MlxloArXsecQ3VVjCxixdYXVkmZO8S8OGrQIfQawwVlKyO1tmBgDtJ0pwwMXiSf6WNQnh7AuLrVAPg6mZ9Ew0w==", - "license": "MIT", - "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/io-bin-sfnt": "1.7.4", - "@ot-builder/io-bin-ttf": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/ot-vtt-private": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/variance": "1.7.4", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.7.5.tgz", + "integrity": "sha512-DW3Wqc0tLgzBcHcL5pCa5zhSfTsXGd/QfqTjglhpr3SU8VFOwv4PXEOQTIjLHlraiEL4aOO4M8l15pdqiVOxRg==", + "license": "MIT", + "dependencies": { + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/io-bin-sfnt": "1.7.5", + "@ot-builder/io-bin-ttf": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/ot-vtt-private": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/variance": "1.7.5", "iconv-lite": "^0.6.3", - "tslib": "^2.6.3" + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.7.4.tgz", - "integrity": "sha512-TRJrEiFGStlgQB3/eJSAIJd0I5Kza1aNff8jcfmxtgUh2TPYDtHeMtpsNxzIOAVJ5RD8GlKzqTCiDVQerc17UA==", - "license": "MIT", - "dependencies": { - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/ot-encoding": "1.7.4", - "@ot-builder/ot-ext-private": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-layout": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/ot-name": "1.7.4", - "@ot-builder/ot-sfnt": "1.7.4", - "@ot-builder/ot-standard-glyph-namer": "1.7.4", - "@ot-builder/ot-vtt-private": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.7.5.tgz", + "integrity": "sha512-AhtXZn2NlzR6s/IFGmyDtdm+AjY3QN9QzlSJW4OKV1VdwZMbqBIRRLtQtmAcyPAculWJbYalfRwlve2aGzKdaA==", + "license": "MIT", + "dependencies": { + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/ot-encoding": "1.7.5", + "@ot-builder/ot-ext-private": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-layout": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/ot-name": "1.7.5", + "@ot-builder/ot-sfnt": "1.7.5", + "@ot-builder/ot-standard-glyph-namer": "1.7.5", + "@ot-builder/ot-vtt-private": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot-encoding": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.7.4.tgz", - "integrity": "sha512-VCb4yPuEciEoVUcVb5rzBioGvYZtq8del1DgfOFGE1XVpfN2B+5jPqII9VLgFxjsHnjuEf4l7o6XtphVwYw+mA==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.7.5.tgz", + "integrity": "sha512-lfq9QbEzvVxUNmj/NHUeebiw57A048sWEoHURRFCNtlJ2Q9k4xSw3t4GEK4hVDZGzCJvyu8Gsc8n+p8wzXV+sw==", "license": "MIT", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot-ext-private": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.7.4.tgz", - "integrity": "sha512-aPtn3of2pqTwkpS+tbzV76tNjwgwNCNe9M16/8z14r7GxUjwfWyj3rqw8Qbp1eilZJRpkEKLFTvOYguZdvvtYA==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.7.5.tgz", + "integrity": "sha512-Tm675D8yZLBZiDGD6Dr8dVCyTVv7gBLLByxnQ209aYKto14jIho5b74w9L2AMENQ8s8EWjeAzm9uDiMQny2Tyw==", "license": "MIT", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot-glyphs": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.7.4.tgz", - "integrity": "sha512-2LaJzBgZxhE0o7ohrVXYT1LCuK5d79BwXJbv5NEftrMmvmr1ppBLOiwpaVbAT8t2K8QDOr0AwuEcWU4QBGqzrw==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.7.5.tgz", + "integrity": "sha512-DOIB19lAQpQwjjvXUZUNQNWPZ7Bd+zLg8xEXEhTvQMxXSNcDTr/A2BsDMbMPqWj9KFDWuQSuBkZtdcWqKPI1tQ==", "license": "MIT", "dependencies": { - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot-layout": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.7.4.tgz", - "integrity": "sha512-rYgZZRPsrzGHRujAisBOWU1vD5AaPOTWiwnFdlPJGSX+LQu5TJJM+26i63eR/45SS1BrCwUzQFTRr+/m0Xue7Q==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.7.5.tgz", + "integrity": "sha512-jPcfpJKZq3mhY8hlrPxQWvGTKqNO3+lU7jJW5k8RTk7kmWvNXV/LSFohXWRK2WANJBTR2fdxBbPIwJMdVgbCvA==", "license": "MIT", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot-metadata": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.7.4.tgz", - "integrity": "sha512-yMM0xDz7bD8KduIWEezd5m/2sD6W6fGcJGANObBdmekxNcwj1gSKs2+RJL+7BPHZdB348kgWfZ8OAXHCxoO8kQ==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.7.5.tgz", + "integrity": "sha512-dQrmbftpNk53xpaN7NYYSJlEAZoI9pOX0bczVx/oSJbYmN+77CVJRH/UKJb74BduoZEtEoCjK/4+VdGLbkdfTQ==", "license": "MIT", "dependencies": { - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot-name": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.7.4.tgz", - "integrity": "sha512-DCaQt7Cga5oDiq3sbkMLCSWkqL8OIYCcEkbouC86cO84lYwx3OmImMFJwKeFnMLuDFn+oL8IhQuE7ndMsY7mGg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.7.5.tgz", + "integrity": "sha512-NnlGeFeaayj6J600ixJiGkhcJBOLlchYFlYLjY6n6Vqvmi0SfTOU0EtHfJi9/33WoqhAx6kJpDQFqvf7bD55pA==", "license": "MIT", "dependencies": { - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot-sfnt": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.7.4.tgz", - "integrity": "sha512-qgw20yD04OXwn0QlUgrMYAsLjQt++JaivL2hjoQH+UBDRPMwYMYoUDzQL9covU9x/lvU6bESHIUbd/oPUPI12Q==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.7.5.tgz", + "integrity": "sha512-+VfCvcq+oiVj1GTJF+8v4+huARSKx3hOkUi3ZegANRqAvC2oQpAyhd4zZsqozPLAFpeMHbHNFtYOy6pm7oGS8w==", "license": "MIT", "dependencies": { - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot-standard-glyph-namer": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.7.4.tgz", - "integrity": "sha512-o9nB/vTR/NuMSJSkyOKG51jSd7s34m+fb41kZfZd3i9z2SLWRzjo3FwN+LRxwWhDtpR3L/bPOR8Y1KmhJYxtXw==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.7.5.tgz", + "integrity": "sha512-7/woq7GzWtNXehMwpvv9ubXtd9DG8qP/qXLqSw0TMS+0ZPkYf2czmeLNOPW3aBpgN+Xi8gFQxcYgTKoCUyyDpQ==", "license": "MIT", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/prelude": "1.7.4", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/prelude": "1.7.5", "aglfn": "^1.0.2", - "tslib": "^2.6.3" + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/ot-vtt-private": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.7.4.tgz", - "integrity": "sha512-UWgGJOVtboW6B0VKul5eK7HtSskUEZoxHzYQ0/YTKXzLmL8yqsMkIROC+5WFk+9KyzYWE81byWRJj6N46hH2Yg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.7.5.tgz", + "integrity": "sha512-P8lh1tDz3q9BzhG3WzGmChRESIg3O0AFMZbsj451m8+L7HhUowf4Ym7CGCj+KNRVxTfWzaCToLruSXPOlVcYTA==", "license": "MIT", "dependencies": { - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/prelude": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.7.4.tgz", - "integrity": "sha512-cCI/PbHYOpa0kaGeLuDPjjaVzQoSAK8WdrwbaIgbKTEf9e2IwNsgMdPsfvZIQTbKumJuTFQPcIbGMmJNbi2EYg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.7.5.tgz", + "integrity": "sha512-/dJygv9cfKD8Gso6Krli/jmwCORJJgNJFe6/2bFcviOa3LPgdfEeVBj6Au8VqS1DjSg4dymdaje7l1IUxHHfQg==", "license": "MIT", "dependencies": { - "tslib": "^2.6.3" + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/primitive": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.7.4.tgz", - "integrity": "sha512-/FOpU9JozQV4uctZ7NQGHOeDIlgK86AaOrtCNhcp2drDV3vOz7qDrxerzcdKaJMAkYMC2BEENOy5aogd6IzbcQ==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.7.5.tgz", + "integrity": "sha512-U7HaQZuxv7CM0vfuHhFN2WJVIriCGA33ObTOFAZ7AyKqJSWD6JIZei5PDCzcPFXX3kWVqo1D5noh54gKb3Sw+Q==", "license": "MIT", "dependencies": { - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/rectify": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.7.4.tgz", - "integrity": "sha512-gfuQIF35jIcSNAbk3wp6T2Wmyyea/cK0NhLFo2rJ57YCowjAYt8WbwUYSEr4MEEKjYgQOM0TP2brYRpTy/jnbg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.7.5.tgz", + "integrity": "sha512-gRU4WIS/lj0Qt3piB0/P54wb15xqtZY3mxN6SJHnqEnmcsAGTOaG7e1Uy/uX4q/qYe17/iMPi1cshdQRWzSFDw==", "license": "MIT", "dependencies": { - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/ot": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/ot": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/stat-glyphs": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.7.4.tgz", - "integrity": "sha512-RJf4CGhEgRbb1GBBdsx+cMZcUH+QFVp+y0iHq76iP5v9DBMC+A4I9cW9ZxODsdNsdhbtTh0bhQMt1ENQfnY+2Q==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.7.5.tgz", + "integrity": "sha512-MgE0w4U8FbYHtpBwMRzqWf/Q0BItxt80FtF3ZP2NxPjGQLOsZEc3dLqmRTTKTRtpO3oH9NcUmFrhLaAMpab6kg==", "license": "MIT", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-composite-types": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/trace": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.7.4.tgz", - "integrity": "sha512-G2cBpg4uqG1uxG3dnX3isqwDGI0ok+g5ebeMiGh7BbgfSZEB7POU7kMOtKmnJaN889mWgr4e8i3yKgfqo9cX7w==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.7.5.tgz", + "integrity": "sha512-94rj90VQUHeLCkuAXbjDKlUCmPHryxEV5UfOm3paLsogrzEFVcb1GJZ5eLKm3cft3Jru3XHnM9M6PEZsFbGwQQ==", "license": "MIT", "dependencies": { - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/ot": "1.7.4", - "@ot-builder/ot-glyphs": "1.7.4", - "@ot-builder/ot-metadata": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/ot": "1.7.5", + "@ot-builder/ot-glyphs": "1.7.5", + "@ot-builder/ot-metadata": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/var-store": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.7.4.tgz", - "integrity": "sha512-PZByTR7HKA5LPIOnuJjLoMnv1ciAQtt1AEVq8I5JiVAtlq9LFTf6H3zquLLDYT9F9giH8bUf/CD2WuRub8ZM9Q==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.7.5.tgz", + "integrity": "sha512-LYnZ1ddY7Os+gd9K9KscBgxOO9BAahoDU9cQPRRI9LPgvwXQhBWvhEowWrxybeJ7jnAYHa8qGDO6890amAVP7w==", "license": "MIT", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.4", - "@ot-builder/bin-util": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/errors": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/variance": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-composite-types": "1.7.5", + "@ot-builder/bin-util": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/errors": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/variance": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@ot-builder/variance": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.7.4.tgz", - "integrity": "sha512-9DZKjKKE+PbpvUVT4hb3qUHOd3wuKQmoeybs8udcPus2zfHNGF3FjFBnrm/tk81Qyg1/nR03cE7r4pek6xDANA==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.7.5.tgz", + "integrity": "sha512-7OnJyyIr2thT6us5BMYgU08yFhK+E0LvSSW+1+Ay0Nv72khYKEkKzNjEpY11ptpDoC7/ufbnNQZBBlR4qS3/1w==", "license": "MIT", "dependencies": { - "@ot-builder/bin-composite-types": "1.7.4", - "@ot-builder/common-impl": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/bin-composite-types": "1.7.5", + "@ot-builder/common-impl": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/@pkgr/core": { @@ -2196,19 +2200,19 @@ } }, "node_modules/eslint": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", - "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.15.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", @@ -2216,7 +2220,7 @@ "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.5", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.2.0", @@ -2256,13 +2260,13 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", + "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", "dev": true, "license": "MIT", "bin": { - "eslint-config-prettier": "bin/cli.js" + "eslint-config-prettier": "build/bin/cli.js" }, "peerDependencies": { "eslint": ">=7.0.0" @@ -2373,9 +2377,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", + "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", "dev": true, "license": "MIT", "dependencies": { @@ -2723,9 +2727,9 @@ } }, "node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", "dev": true, "license": "ISC", "dependencies": { @@ -2834,9 +2838,9 @@ "license": "ISC" }, "node_modules/harfbuzzjs": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/harfbuzzjs/-/harfbuzzjs-0.4.3.tgz", - "integrity": "sha512-g7yRM1C7/le3PN9GPNufA3T1PEugOVOrG1WbDZKR0Olx0rft+1VKr0dx9nDcdBOT9vDXtXCH2/5fjc16OvRg5Q==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/harfbuzzjs/-/harfbuzzjs-0.4.4.tgz", + "integrity": "sha512-8rRncykQxQsHJaPchDRNLYJqkt9YbQ/dZ/LkF64W3Qxx5tgHYAsjYq+TOH2PVRwrM405AWbLChWk8BKECmTgkA==", "license": "MIT" }, "node_modules/has-bigints": { @@ -3728,31 +3732,31 @@ } }, "node_modules/ot-builder": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/ot-builder/-/ot-builder-1.7.4.tgz", - "integrity": "sha512-HX4wj6p1cZvKzwJA190aWYRLsMbm7CSYhQ9XN4r3HpktaFQ3k0R6DqqYa/yPFFQEXG3PUc67Z5v8W1+qB05g0g==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/ot-builder/-/ot-builder-1.7.5.tgz", + "integrity": "sha512-zh2QrcSWzwWqMZXnoVBsVztC/HUdHM9p5Z5mHfMRj12GG1bnJpjojV84xsnV4WEW9LbPJfMsuBYmDuMXzwfStg==", "license": "MIT", "dependencies": { - "@ot-builder/cli-proc": "1.7.4", - "@ot-builder/io-bin-font": "1.7.4", - "@ot-builder/ot": "1.7.4", - "@ot-builder/prelude": "1.7.4", - "@ot-builder/primitive": "1.7.4", - "@ot-builder/rectify": "1.7.4", - "@ot-builder/trace": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/cli-proc": "1.7.5", + "@ot-builder/io-bin-font": "1.7.5", + "@ot-builder/ot": "1.7.5", + "@ot-builder/prelude": "1.7.5", + "@ot-builder/primitive": "1.7.5", + "@ot-builder/rectify": "1.7.5", + "@ot-builder/trace": "1.7.5", + "tslib": "^2.8.1" } }, "node_modules/otb-ttc-bundle": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.7.4.tgz", - "integrity": "sha512-i2npID5R5QFGqmICy+03D7Qx9X59RzfxiHFKBvTdT8MVBV1uWjNIBYuFJEvQWGKdm7pouml+D9oKrZic+mroBA==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.7.5.tgz", + "integrity": "sha512-bsg2EYMfy0jU+FGYFts/uPJ7DuVSsi15ID7BHzt+voP5lcrzXLwiggDvIdDqv9qWSfZjKzT2Ygm/HuK0LZZSWg==", "license": "MIT", "dependencies": { - "@ot-builder/cli-help-shower": "1.7.4", - "@ot-builder/cli-shared": "1.7.4", - "ot-builder": "1.7.4", - "tslib": "^2.6.3" + "@ot-builder/cli-help-shower": "1.7.5", + "@ot-builder/cli-shared": "1.7.5", + "ot-builder": "1.7.5", + "tslib": "^2.8.1" }, "bin": { "otb-ttc-bundle": "bin/otb-ttc-bundle" @@ -3943,9 +3947,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "license": "MIT", "bin": { @@ -4760,9 +4764,9 @@ } }, "node_modules/uuid": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", - "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", + "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -5153,122 +5157,122 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@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", + "@iosevka/font-glyphs": "32.5.0", + "@iosevka/font-otl": "32.5.0", + "@iosevka/geometry": "32.5.0", + "@iosevka/geometry-cache": "32.5.0", + "@iosevka/glyph": "32.5.0", + "@iosevka/param": "32.5.0", + "@iosevka/util": "32.5.0", "@msgpack/msgpack": "^2.8.0", - "harfbuzzjs": "^0.4.3", - "ot-builder": "^1.7.4", + "harfbuzzjs": "^0.4.4", + "ot-builder": "^1.7.5", "semver": "^7.6.3" } }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { - "@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", + "@iosevka/font-kits": "32.5.0", + "@iosevka/geometry": "32.5.0", + "@iosevka/geometry-cache": "32.5.0", + "@iosevka/glyph": "32.5.0", + "@iosevka/util": "32.5.0", "typo-geom": "^0.16.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { - "@iosevka/geometry": "32.4.0", - "@iosevka/glyph": "32.4.0", - "@iosevka/util": "32.4.0", + "@iosevka/geometry": "32.5.0", + "@iosevka/glyph": "32.5.0", + "@iosevka/util": "32.5.0", "typo-geom": "^0.16.1" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { - "@iosevka/font-glyphs": "32.4.0", - "@iosevka/glyph": "32.4.0", + "@iosevka/font-glyphs": "32.5.0", + "@iosevka/glyph": "32.5.0", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { - "@iosevka/util": "32.4.0", + "@iosevka/util": "32.5.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { - "@iosevka/geometry": "32.4.0", + "@iosevka/geometry": "32.5.0", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { - "@iosevka/geometry": "32.4.0" + "@iosevka/geometry": "32.5.0" } }, "packages/param": { "name": "@iosevka/param", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { - "@iosevka/util": "32.4.0" + "@iosevka/util": "32.5.0" } }, "packages/util": { "name": "@iosevka/util", - "version": "32.4.0" + "version": "32.5.0" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.4.0", - "@unicode/unicode-16.0.0": "^1.6.4", + "@iosevka/param": "32.5.0", + "@unicode/unicode-16.0.0": "^1.6.5", "semver": "^7.6.3" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.4.0", + "@iosevka/param": "32.5.0", "@msgpack/msgpack": "^2.8.0", - "@unicode/unicode-16.0.0": "^1.6.4", + "@unicode/unicode-16.0.0": "^1.6.5", "cldr": "^7.6.0" } }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { - "@iosevka/data-export": "32.4.0" + "@iosevka/data-export": "32.5.0" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "32.4.0", + "version": "32.5.0", "dependencies": { - "@iosevka/util": "32.4.0", - "@unicode/unicode-16.0.0": "^1.6.4", + "@iosevka/util": "32.5.0", + "@unicode/unicode-16.0.0": "^1.6.5", "semver": "^7.6.3", "wawoff2": "^2.0.1" } diff --git a/package.json b/package.json index d90aa7687c..3731d646e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "32.4.0", + "version": "32.5.0", "workspaces": [ "packages/*", "tools/*" @@ -16,20 +16,20 @@ "dependencies": { "@iarna/toml": "^2.2.5", "deep-equal": "^2.2.3", - "otb-ttc-bundle": "^1.7.4", + "otb-ttc-bundle": "^1.7.5", "semver": "^7.6.3", - "uuid": "^11.0.2", + "uuid": "^11.0.5", "verda": "^1.12.3", "which": "^5.0.0" }, "devDependencies": { - "eslint": "^9.14.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", + "eslint": "^9.18.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.3", "eslint-plugin-import": "^2.31.0", - "glob": "^11.0.0", + "glob": "^11.0.1", "patel": "^0.41.0", - "prettier": "^3.3.3" + "prettier": "^3.4.2" }, "engines": { "node": ">=16.0.0" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 8f2f750cfb..146f31002e 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./lib/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./lib/meta/unicode-knowledge.mjs" }, "dependencies": { - "@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", + "@iosevka/font-kits": "32.5.0", + "@iosevka/geometry": "32.5.0", + "@iosevka/geometry-cache": "32.5.0", + "@iosevka/glyph": "32.5.0", + "@iosevka/util": "32.5.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 a2095a84c1..53cf83a97b 100644 --- a/packages/font-glyphs/src/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1348,7 +1348,7 @@ glyph-block Autobuild-Ligatures : begin define [createLigatures prefix _shrink1 _shrinkN wadj1 wadjN kKern demands] : for-width-kinds WideWidth2 local plainLigature : FMosaicWide && para.isQuasiProportional - local ww : if FMosaicWide MosaicWidth (MosaicWidth * para.diversityMM) + local ww : if FMosaicWide MosaicWidth (MosaicWidth * para.advanceScaleMM) local jobs : CollectJobs DECOMPOSABLE NOT-CENTERED ALLOW-PROPORTIONAL prefix MosaicNameSuffix demands local shrink1 : if plainLigature 1 [clamp 0 1 (_shrink1 * [mix Width ww 0.5] / Width)] local shrinkN : if plainLigature 1 [clamp 0 1 (_shrinkN * [mix Width ww 0.5] / Width)] @@ -1439,7 +1439,7 @@ glyph-block Autobuild-Ligatures : begin # Dutch IJ define ijShrink : clamp 0.6 0.75 : StrokeWidthBlend 0.6 0.75 - createLigatures 'compatLigature1' ijShrink ijShrink 1 1 [if (para.diversityI < 1) 0 0.2] : list + createLigatures 'compatLigature1' ijShrink ijShrink 1 1 [if (para.advanceScaleI < 1) 0 0.2] : list list 0x132 { 'I' 'J' } list 0x133 { 'i' 'j' } list 0xEF11 { 'IAcute' 'JAcute' } @@ -1529,8 +1529,8 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin glyph-block-import Autobuild-Enclosure-Shared : CollectJobs CreateDerivedFontFromJobs EnsureComponentGlyphT applyRelations glyph-block-import Autobuild-Transformed-Shared : ToSuperscript ToSubscript - define [createPhoneticLigatures tfm prefix div mockNParts _shrink kKern demands] : begin - local ww0 : Width * div + define [createPhoneticLigatures tfm prefix adws mockNParts _shrink kKern demands] : begin + local ww0 : Width * adws local wwM : ww0 / [fallback tfm.crowdAdjScale 1] local jobs : CollectJobs DECOMPOSABLE NOT-CENTERED ALLOW-PROPORTIONAL prefix "" demands local shrink : clamp 0 1 _shrink @@ -1548,10 +1548,10 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin if [query-glyph gni] : return gni create-glyph gni : glyph-proc set-width aw - if mak : include : [DivFrame div].markSet.(mak) + if mak : include : [DivFrame adws].markSet.(mak) set-base-anchor 'enclosureInner' markPlacement 0 set-base-anchor 'slash' (aw / 2) (Ascender / 2) - include : tfm div + include : tfm adws return gni define [LigaturePartImpl thinFont compress markDist maskPos] : lambda [gidPart] : begin @@ -1566,7 +1566,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin include : Scale compress 1 include : Regizmo set-mark-anchor 'enclosureInner' 0 0 markDist 0 - include : tfm div + include : tfm adws return gni define [LigatureImpl job decomposable] : if [not : query-glyph gn] : begin @@ -1623,7 +1623,7 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0xFB01 { 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB02 { 'f/compLigLeft2' 'l/compLigRight' } null - createPhoneticLigatures ToLetter 'phonetic2' para.diversityMM 2 stdShrink 1 : list + createPhoneticLigatures ToLetter 'phonetic2' para.advanceScaleMM 2 stdShrink 1 : list list 0x02A3 { 'd/phoneticLeft' 'z/phoneticRight' } 'b' list 0x02A4 { 'd/phoneticLeft' 'ezh/phoneticRight' } 'bp' list 0x02A5 { 'd/phoneticLeft' 'zCurlyTail/phoneticRight' } 'b' @@ -1642,11 +1642,11 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin list 0xFB05 { 'longs/compLigLeft' 't/compLigRight' } null list 0xFB06 { 's/compLigLeft' 't/compLigRight' } null - createPhoneticLigatures ToLetter 'phonetic3' para.diversityMM 3 stdShrink 1 : list + createPhoneticLigatures ToLetter 'phonetic3' para.advanceScaleMM 3 stdShrink 1 : list list 0xFB03 { 'f/compLigLeft1' 'f/compLigLeft1' 'dotlessi/compLigRight' } null list 0xFB04 { 'f/compLigLeft3' 'f/compLigLeft2' 'l/compLigRight' } null - createPhoneticLigatures ToLetter 'phoneticSmcp' (para.diversityM * para.diversityMM) 3 1 0.5 : list + createPhoneticLigatures ToLetter 'phoneticSmcp' (para.advanceScaleM * para.advanceScaleMM) 3 1 0.5 : list list 0x2121 { 'smcpT' 'smcpE' 'smcpL' } 'e' list 0x213B { 'smcpF' 'smcpA' 'smcpX' } 'e' @@ -1675,8 +1675,8 @@ glyph-block Autobuild-Double-Emotions : begin glyph-block-import Recursive-Build : Thinner glyph-block-import Autobuild-Enclosure-Shared : CollectJobs CreateDerivedFontFromJobs EnsureComponentGlyphT applyRelations - define [createDoubleEmotions prefix div _shrink1 _shrink2 wadj1 wadj2 demands] : for-width-kinds WideWidth2 - define CWidth : if FMosaicWide MosaicWidth (Width * div) + define [createDoubleEmotions prefix adws _shrink1 _shrink2 wadj1 wadj2 demands] : for-width-kinds WideWidth2 + define CWidth : if FMosaicWide MosaicWidth (Width * adws) define shrink1 : if FMosaicWide 1 _shrink1 define shrink2 : if FMosaicWide 1 _shrink2 define kern : SB * shrink1 + SB * shrink2 + HalfStroke * [mix shrink1 shrink2 0.5] - OX * 2 @@ -1707,7 +1707,7 @@ glyph-block Autobuild-Double-Emotions : begin applyRelations jobs.relApplications define stdShrink : clamp 0.625 0.9 : StrokeWidthBlend 0.625 0.9 - createDoubleEmotions 'doubleemotion' para.diversityM stdShrink stdShrink 1 1 : list + createDoubleEmotions 'doubleemotion' para.advanceScaleM stdShrink stdShrink 1 1 : list list 0x203c { 'exclam' 'zwsp' 'exclam' 'zwsp' } list 0x2047 { 'question/hookPart' 'question/dotPart' 'question/hookPart' 'question/dotPart' } list 0x2048 { 'question/hookPart' 'question/dotPart' 'exclam' 'zwsp' } diff --git a/packages/font-glyphs/src/auto-build/recursive-build.ptl b/packages/font-glyphs/src/auto-build/recursive-build.ptl index 77a2a237f8..ce030aec26 100644 --- a/packages/font-glyphs/src/auto-build/recursive-build.ptl +++ b/packages/font-glyphs/src/auto-build/recursive-build.ptl @@ -23,13 +23,13 @@ glyph-block Recursive-Build : begin if forceUpright : begin forkedPara.slopeAngle = 0 if mono : begin - forkedPara.diversityMM = 1 - forkedPara.diversityM = 1 - forkedPara.diversityT = 1 + forkedPara.advanceScaleMM = 1 + forkedPara.advanceScaleM = 1 + forkedPara.advanceScaleT = 1 if mono2 : begin - forkedPara.diversityF = 1 - forkedPara.diversityI = 1 - forkedPara.diversityII = 1 + forkedPara.advanceScaleF = 1 + forkedPara.advanceScaleI = 1 + forkedPara.advanceScaleII = 1 return forkedPara @@ -49,13 +49,13 @@ glyph-block Recursive-Build : begin forkedPara.accentWidth = AccentWidth * p forkedPara.jut = Jut * p forkedPara.longjut = LongJut * p - forkedPara.diversityMM = 1 - forkedPara.diversityM = 1 - forkedPara.diversityT = 1 + forkedPara.advanceScaleMM = 1 + forkedPara.advanceScaleM = 1 + forkedPara.advanceScaleT = 1 if fMono : begin - forkedPara.diversityF = 1 - forkedPara.diversityI = 1 - forkedPara.diversityII = 1 + forkedPara.advanceScaleF = 1 + forkedPara.advanceScaleI = 1 + forkedPara.advanceScaleII = 1 #forkedPara.hookx = HookX * p return : Fork glyphs forkedPara 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 fbd66a6b3b..33fe81fbc0 100644 --- a/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl +++ b/packages/font-glyphs/src/auto-build/transformed-jobs-data.ptl @@ -98,7 +98,7 @@ export : define Superscript : list list 0x1DB2 'latn/phi' list 0x1DB3 'sRTail' list 0x1DB4 'esh' - list 0x1DB5 'tLTail' + list 0x1DB5 'tPalatalHook' list 0x1DB6 'uBar' list 0x1DB7 'latn/upsilon' list 0x1DB8 'smcpU' diff --git a/packages/font-glyphs/src/auto-build/transformed.ptl b/packages/font-glyphs/src/auto-build/transformed.ptl index 5eff6229a9..c068a905b1 100644 --- a/packages/font-glyphs/src/auto-build/transformed.ptl +++ b/packages/font-glyphs/src/auto-build/transformed.ptl @@ -80,8 +80,8 @@ glyph-block Autobuild-Transformed-Shared : begin [query-glyph origDstName].tryBecomeMirrorOf [query-glyph relDstName] rs glyph-block-export ToSuperscript - define [ToSuperscript div] : glyph-proc - local df : DivFrame div + define [ToSuperscript adws] : glyph-proc + local df : DivFrame adws include [Ungizmo] true include [Translate (-df.middle) (-CAP)] true include [Scale ToSuperscript.crowdAdjScale] true @@ -91,8 +91,8 @@ glyph-block Autobuild-Transformed-Shared : begin set ToSuperscript.crowdAdjScale 0.7 glyph-block-export ToSubscript - define [ToSubscript div] : glyph-proc - local df : DivFrame div + define [ToSubscript adws] : glyph-proc + local df : DivFrame adws include [Ungizmo] true include [Translate (-df.middle) 0] true include [Scale ToSubscript.crowdAdjScale] true @@ -295,13 +295,13 @@ glyph-block Autobuild-Transformed-Texture : begin local forkedPara : Object.assign {.} para if (extL + extR > 0) : then : begin - forkedPara.diversityMM = 1 + extL + extR - forkedPara.diversityM = 1 + extL + extR - forkedPara.diversityT = 1 + extL + extR + forkedPara.advanceScaleMM = 1 + extL + extR + forkedPara.advanceScaleM = 1 + extL + extR + forkedPara.advanceScaleT = 1 + extL + extR : else : begin - forkedPara.diversityF = 1 + extL + extR - forkedPara.diversityI = 1 + extL + extR - forkedPara.diversityII = 1 + extL + extR + forkedPara.advanceScaleF = 1 + extL + extR + forkedPara.advanceScaleI = 1 + extL + extR + forkedPara.advanceScaleII = 1 + extL + extR local forked : Fork pendingGlyphs forkedPara foreach {unicode glyphid} [items-of records] : begin diff --git a/packages/font-glyphs/src/common/shapes.ptl b/packages/font-glyphs/src/common/shapes.ptl index 2a859ec004..7929b29b4e 100644 --- a/packages/font-glyphs/src/common/shapes.ptl +++ b/packages/font-glyphs/src/common/shapes.ptl @@ -2,6 +2,7 @@ $$include '../meta/macros.ptl' import [mix linreg clamp fallback boole boolePn] from "@iosevka/util" import [Transform] from "@iosevka/geometry/transform" +import [Point] from "@iosevka/geometry/point" import [FunctionInterpolator AfCombine] from "@iosevka/geometry/spiro-control" import [RadicalGeometry StrokeGeometry RemoveHolesGeometry] from "@iosevka/geometry" @@ -797,3 +798,41 @@ glyph-block CommonShapes : begin foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do create-glyph "\(name).\(suffix)" : F DrawAt kDotRadius overshoot select-variant name unicode (follow -- 'punctuationDot') + + # Sharp Corner Interpolator + glyph-block-export TangentToNormal VectorDot + define [TangentToNormal offset contrast _tanSlope] : begin + local r : Math.hypot offset.x offset.y + return : new Point Point.Type.Corner + contrast * (-offset.y / r) + (offset.x + offset.y * [fallback _tanSlope TanSlope]) / r + define [VectorDot p1 p2] : p1.x * p2.x + p1.y * p2.y + + define [SharpCornerImpl before after args] : begin + if [not (before.af && before.af.l !== undefined)] : throw : new Error "Unable to infer stroke information for previous knot" + if [not (after.af && after.af.l !== undefined)] : throw : new Error "Unable to infer stroke information for next knot" + + local beforeT : new Point Point.Type.Corner (args.x - before.x) (args.y - before.y) + local afterT : new Point Point.Type.Corner (after.x - args.x) (after.y - args.y) + + local beforeN : fallback before.af.d : TangentToNormal beforeT args.contrast [if args.upright 0] + local afterN : fallback after.af.d : TangentToNormal afterT args.contrast [if args.upright 0] + + local beforeR : beforeN.addScale (-[VectorDot beforeN beforeT] / [VectorDot beforeT beforeT]) beforeT + local afterR : afterN.addScale (-[VectorDot afterN afterT ] / [VectorDot afterT afterT ]) afterT + + local beforeD : afterT.scale ([VectorDot beforeR beforeR] / [VectorDot beforeR afterT ]) + local afterD : beforeT.scale ([VectorDot afterR afterR ] / [VectorDot afterR beforeT]) + + local lOffset : [beforeD.scale before.af.l ].addScale after.af.l afterD + local rOffset : [beforeD.scale (-before.af.r)].addScale (-after.af.r) afterD + + local midPoint : lOffset.mix rOffset 0.5 + local refPoint : Point.translated midPoint args.x args.y + + return : corner refPoint.x refPoint.y [widths.center.heading 1 { .x (lOffset.x - rOffset.x) .y (lOffset.y - rOffset.y) }] + + glyph-block-export sharp-corner + define [sharp-corner] : with-params [x y [contrast HVContrast] [upright 0]] : begin + local args : object x y contrast upright + return : new FunctionInterpolator SharpCornerImpl args diff --git a/packages/font-glyphs/src/letter-like/fraktur/common.ptl b/packages/font-glyphs/src/letter-like/fraktur/common.ptl index 412c37bdb1..22cbcc7ed2 100644 --- a/packages/font-glyphs/src/letter-like/fraktur/common.ptl +++ b/packages/font-glyphs/src/letter-like/fraktur/common.ptl @@ -114,7 +114,7 @@ glyph-block LetterLike-Fraktur-Common : begin define S : new FrakturPen frakThick (0.875 * frakThin) glyph-block-export M - define M : new FrakturPen [AdviceStroke 3 para.diversityM] (0.875 * frakThin) + define M : new FrakturPen [AdviceStroke 3 para.advanceScaleM] (0.875 * frakThin) glyph-block-export F define F : new FrakturPen frakFine (0.875 * frakThin) @@ -188,10 +188,10 @@ glyph-block LetterLike-Fraktur-Common : begin define PHexBot : 1 - PHexTop glyph-block-export UpperDf - define [UpperDf div m] : DivFrame [fallback div 1] [fallback m 2] [Math.max 1 : DecoSizeX / SB] + define [UpperDf adws m] : DivFrame [fallback adws 1] [fallback m 2] [Math.max 1 : DecoSizeX / SB] glyph-block-export LowerDf - define [LowerDf div m] : DivFrame [fallback div 1] [fallback m 2] [Math.max 1 : (1.75 * DecoSizeX - 0.5 * S.thick) / SB] + define [LowerDf adws m] : DivFrame [fallback adws 1] [fallback m 2] [Math.max 1 : (1.75 * DecoSizeX - 0.5 * S.thick) / SB] glyph-block-export RBDecoration define [RBDecoration cx cy limy] : lift-@ : list diff --git a/packages/font-glyphs/src/letter-like/fraktur/lower-bopvw.ptl b/packages/font-glyphs/src/letter-like/fraktur/lower-bopvw.ptl index 43c47aca4f..cbda12b3a1 100644 --- a/packages/font-glyphs/src/letter-like/fraktur/lower-bopvw.ptl +++ b/packages/font-glyphs/src/letter-like/fraktur/lower-bopvw.ptl @@ -67,7 +67,7 @@ glyph-block LetterLike-Fraktur-Lower-BOPVW : begin corner [rightStroke.last].x [rightStroke.last].y create-glyph "frak/w" 0x1D534 : glyph-proc - local df : include : LowerDf para.diversityM 3 + local df : include : LowerDf para.advanceScaleM 3 include : df.markSet.e local wBox : M.box XH 0 df.leftSB df.rightSB diff --git a/packages/font-glyphs/src/letter-like/fraktur/lower-ijl.ptl b/packages/font-glyphs/src/letter-like/fraktur/lower-ijl.ptl index 0df71355f0..a5a0504a0d 100644 --- a/packages/font-glyphs/src/letter-like/fraktur/lower-ijl.ptl +++ b/packages/font-glyphs/src/letter-like/fraktur/lower-ijl.ptl @@ -29,7 +29,7 @@ glyph-block LetterLike-Fraktur-Lower-IJL : begin close create-glyph "frak/dotlessi" : glyph-proc - local df : include : LowerDf para.diversityI + local df : include : LowerDf para.advanceScaleI include : df.markSet.e local box : S.box XH 0 df.leftSB df.rightSB @@ -38,7 +38,7 @@ glyph-block LetterLike-Fraktur-Lower-IJL : begin RBDecoration box.xMid box.bot create-glyph "frak/dotlessj" : glyph-proc - local df : include : LowerDf para.diversityI + local df : include : LowerDf para.advanceScaleI include : df.markSet.p local box : S.box XH Descender df.leftSB df.rightSB @@ -51,7 +51,7 @@ glyph-block LetterLike-Fraktur-Lower-IJL : begin CreateAccentedComposition 'frak/j' 0x1D527 'frak/dotlessj' 'frak/tittleAbove' create-glyph "frak/l" 0x1D529 : glyph-proc - local df : include : LowerDf para.diversityI + local df : include : LowerDf para.advanceScaleI include : df.markSet.b local box : S.box Ascender 0 df.leftSB df.rightSB diff --git a/packages/font-glyphs/src/letter-like/fraktur/lower-mnu.ptl b/packages/font-glyphs/src/letter-like/fraktur/lower-mnu.ptl index a54fe49b58..9dd332ee58 100644 --- a/packages/font-glyphs/src/letter-like/fraktur/lower-mnu.ptl +++ b/packages/font-glyphs/src/letter-like/fraktur/lower-mnu.ptl @@ -14,7 +14,7 @@ glyph-block LetterLike-Fraktur-Lower-MNU : begin glyph-block-import LetterLike-Fraktur-Common : Wave PHexTop PHexBot LTDecoration RBDecoration create-glyph "frak/m" 0x1D52A : glyph-proc - local df : include : LowerDf para.diversityM 3 + local df : include : LowerDf para.advanceScaleM 3 include : df.markSet.e local box : M.box XH 0 df.leftSB df.rightSB diff --git a/packages/font-glyphs/src/letter-like/fraktur/upper-bpvw.ptl b/packages/font-glyphs/src/letter-like/fraktur/upper-bpvw.ptl index 74508181a6..e94dd2cca4 100644 --- a/packages/font-glyphs/src/letter-like/fraktur/upper-bpvw.ptl +++ b/packages/font-glyphs/src/letter-like/fraktur/upper-bpvw.ptl @@ -95,7 +95,7 @@ glyph-block LetterLike-Fraktur-Upper-BVW : begin corner (body.left - S.thick) (@yT - ArchDepthA) create-glyph 'frak/W' 0x1D51A : glyph-proc - local df : include : UpperDf para.diversityM 3 + local df : include : UpperDf para.advanceScaleM 3 include : df.markSet.capital local box : M.box CAP 0 df.leftSB df.rightSB diff --git a/packages/font-glyphs/src/letter-like/fraktur/upper-mn.ptl b/packages/font-glyphs/src/letter-like/fraktur/upper-mn.ptl index feb1096522..9e338d3b78 100644 --- a/packages/font-glyphs/src/letter-like/fraktur/upper-mn.ptl +++ b/packages/font-glyphs/src/letter-like/fraktur/upper-mn.ptl @@ -36,7 +36,7 @@ glyph-block LetterLike-Fraktur-Upper-MNP : begin create-glyph 'frak/M' 0x1D510 : glyph-proc - local df : include : UpperDf para.diversityM 3 + local df : include : UpperDf para.advanceScaleM 3 include : df.markSet.capital local box : M.box CAP 0 df.leftSB df.rightSB diff --git a/packages/font-glyphs/src/letter/armenian.ptl b/packages/font-glyphs/src/letter/armenian.ptl index b6e83b6c8b..d7f6bcb0e5 100644 --- a/packages/font-glyphs/src/letter/armenian.ptl +++ b/packages/font-glyphs/src/letter/armenian.ptl @@ -11,8 +11,10 @@ export : define [apply] : begin run-glyph-module "./armenian/upper-za-group.mjs" run-glyph-module "./armenian/eh-liun-hiun.mjs" run-glyph-module "./armenian/to.mjs" + run-glyph-module "./armenian/upper-ini.mjs" run-glyph-module "./armenian/upper-xeh.mjs" run-glyph-module "./armenian/ca.mjs" + run-glyph-module "./armenian/upper-ken-vew.mjs" run-glyph-module "./armenian/upper-ho.mjs" run-glyph-module "./armenian/upper-dza-group.mjs" run-glyph-module "./armenian/lower-dza-cheh.mjs" diff --git a/packages/font-glyphs/src/letter/armenian/ca.ptl b/packages/font-glyphs/src/letter/armenian/ca.ptl index 7b70b710d8..38dd51617d 100644 --- a/packages/font-glyphs/src/letter/armenian/ca.ptl +++ b/packages/font-glyphs/src/letter/armenian/ca.ptl @@ -41,25 +41,19 @@ glyph-block Letter-Armenian-Ca : begin local x1 : mix df.leftSB df.rightSB 0.45 local x2 : mix df.leftSB df.rightSB 0.3 - local xOffset : HSwToV : 0.5 * df.mvs local y2 : mix XH Ascender 0.5 - include : dispiro - widths.rhs df.mvs - flat (x1 + xOffset) Ascender [heading Downward] - curl (x2 + xOffset) y2 [heading Downward] - local x3 : mix df.leftSB df.rightSB 0.1 local x4 : mix df.leftSB df.rightSB 0.6 local rExt : Math.max df.rightSB : Math.min x4 + [HSwToV : 1.5 * df.mvs] + jut df.rightSB + jut - [HSwToV : 0.5 * df.mvs] - include : intersection [MaskBelowLine (x1 - xOffset) Ascender (x2 - xOffset) y2 100] : dispiro - widths.rhs df.mvs - flat (x3 + xOffset) Ascender - curl (x4 + xOffset) XH - flat (df.rightSB - OX) (XH - SmallArchDepthB) + include : dispiro + flat x1 Ascender [widths.center.heading df.mvs Downward] + sharp-corner x2 y2 + curl x4 XH [widths.center df.mvs] + flat (df.rightSB - OX) (XH - SmallArchDepthB) [widths.rhs df.mvs] curl (df.rightSB - OX) (0 + SmallArchDepthA) arch.rhs 0 (sw -- df.mvs) flat (df.leftSB + OX) (0 + SmallArchDepthB) diff --git a/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl b/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl index 074c62a367..fbb6b810b5 100644 --- a/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl +++ b/packages/font-glyphs/src/letter/armenian/eh-liun-hiun.ptl @@ -28,7 +28,7 @@ glyph-block Letter-Armenian-Eh-Liun-Hiun : begin include : composite-proc sf.lt.full sf.lb.outer create-glyph 'armn/eh' 0x567 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : df.markSet.b include : VBar.l df.leftSB 0 Ascender df.mvs include : [ArmHBar.short df].base @@ -49,10 +49,10 @@ glyph-block Letter-Armenian-Eh-Liun-Hiun : begin include : composite-proc sf.lt.full sf.lb.outer create-glyph 'armn/liun' 0x56C : glyph-proc - local df : include : DivFrame : if SLAB para.diversityI para.diversityII + local df : include : DivFrame : if SLAB para.advanceScaleI para.advanceScaleII include : df.markSet.p local xMiddle : df.middle - [IBalance2 df] - local longJut : if (df.div < 1) (jut * [if SLAB 1.5 1]) LongJut + local longJut : if (df.adws < 1) (jut * [if SLAB 1.5 1]) LongJut include : VBar.m xMiddle Descender XH df.mvs include : HBar.b xMiddle (xMiddle + longJut) Descender df.mvs if SLAB : include : HSerif.lt xMiddle XH Jut df.mvs @@ -68,7 +68,7 @@ glyph-block Letter-Armenian-Eh-Liun-Hiun : begin include : composite-proc sf.lt.full sf.lb.full create-glyph 'armn/hiun' 0x582 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : VBar.l df.leftSB 0 XH df.mvs include : [ArmHBar.normal df].base if SLAB : begin diff --git a/packages/font-glyphs/src/letter/armenian/feh.ptl b/packages/font-glyphs/src/letter/armenian/feh.ptl index 79debcafab..835a4c7cfc 100644 --- a/packages/font-glyphs/src/letter/armenian/feh.ptl +++ b/packages/font-glyphs/src/letter/armenian/feh.ptl @@ -30,9 +30,9 @@ glyph-block Letter-Armenian-Feh : begin g4 (df.leftSB + OX) (0 + hook) create-glyph 'armn/Feh' 0x556 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital - local sw : Math.min df.mvs : AdviceStroke2 3 3 CAP df.div + local sw : Math.min df.mvs : AdviceStroke2 3 3 CAP df.adws local ada : df.archDepthAOf ArchDepth sw local adb : df.archDepthBOf ArchDepth sw include : FehBody df CAP 0 sw Hook ada adb @@ -42,9 +42,9 @@ glyph-block Letter-Armenian-Feh : begin include sf.mt.right create-glyph 'armn/feh' 0x586 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.bp - local sw : Math.min df.mvs : AdviceStroke2 3 3 Ascender df.div + local sw : Math.min df.mvs : AdviceStroke2 3 3 Ascender df.adws local ada : df.archDepthAOf SmallArchDepth sw local adb : df.archDepthBOf SmallArchDepth sw include : FehBody df Ascender 0 sw Hook ada adb diff --git a/packages/font-glyphs/src/letter/armenian/hook-group.ptl b/packages/font-glyphs/src/letter/armenian/hook-group.ptl index d5c68848c2..ecb0bdb9e4 100644 --- a/packages/font-glyphs/src/letter/armenian/hook-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/hook-group.ptl @@ -8,7 +8,7 @@ glyph-module glyph-block Letter-Armenian-Hook-Group : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : nShoulder uBowl SerifFrame + glyph-block-import Letter-Shared-Shapes : SerifFrame glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar define [RightHook df top bot _sw _hook _ada _adb] : glyph-proc @@ -16,12 +16,12 @@ glyph-block Letter-Armenian-Hook-Group : begin local hook : fallback _hook Hook local ada : fallback _ada ArchDepthA local adb : fallback _adb ArchDepthB - local yMid : if (top - bot > ada + adb) (top - ada) : mix top bot (ada / (ada + adb)) + local yMidLeft : if (top - bot > ada + adb) (top - ada) : mix top bot (ada / (ada + adb)) include : dispiro widths.lhs sw g4 df.rightSB (top - hook) hookstart top (sw -- sw) - flat df.leftSB yMid + flat df.leftSB yMidLeft curl df.leftSB bot [heading Downward] define [LeftHook df top bot _sw _hook _ada _adb] : glyph-proc @@ -29,12 +29,12 @@ glyph-block Letter-Armenian-Hook-Group : begin local hook : fallback _hook Hook local ada : fallback _ada ArchDepthA local adb : fallback _adb ArchDepthB - local yMid : if (top - bot > ada + adb) (top - adb) : mix top bot (adb / (ada + adb)) + local yMidRight : if (top - bot > ada + adb) (top - adb) : mix top bot (adb / (ada + adb)) include : dispiro widths.rhs sw g4 df.leftSB (top - hook) hookstart top (sw -- sw) - flat df.rightSB yMid + flat df.rightSB yMidRight curl df.rightSB bot [heading Downward] do "Ben" @@ -78,43 +78,6 @@ glyph-block Letter-Armenian-Hook-Group : begin local sf : SerifFrame.fromDf df CAP 0 include sf.lb.outer - do "Ini" - create-glyph 'armn/Ini' 0x53B : glyph-proc - local df : include : DivFrame 1 - include : df.markSet.capital - include : nShoulder.shape - left -- (df.leftSB + [HSwToV df.mvs]) - right -- df.rightSB - top -- XH - bottom -- (XH / 2) - ada -- ArchDepthA - adb -- ArchDepthB - stroke -- df.mvs - include : VBar.l df.leftSB 0 CAP - if SLAB : begin - local sf : SerifFrame.fromDf df CAP 0 - include : composite-proc sf.lt.full sf.lb.full - - do "Ken" - create-glyph 'armn/Ken' 0x53F : glyph-proc - local df : include : DivFrame 1 - include : df.markSet.capital - local midy : XH / 2 - df.mvs / 2 - include : uBowl.shape - left -- df.leftSB - right -- (df.rightSB - [HSwToV df.mvs]) - top -- CAP - bottom -- midy - ada -- ArchDepthA - adb -- ArchDepthB - stroke -- df.mvs - include : VBar.r df.rightSB 0 XH - - if SLAB : begin - local sf : SerifFrame.fromDf df CAP 0 - local sf2 : SerifFrame.fromDf df XH 0 - include : composite-proc sf.lt.full sf2.rt.full sf.rb.full - do "Ghat" create-glyph 'armn/Ghat' 0x542 : glyph-proc local df : include : DivFrame 1 @@ -138,7 +101,7 @@ glyph-block Letter-Armenian-Hook-Group : begin do "Peh" create-glyph 'armn/Peh' 0x54A : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital 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 @@ -146,26 +109,6 @@ glyph-block Letter-Armenian-Hook-Group : begin local sf : SerifFrame.fromDf df CAP 0 include sf.rb.full - do "Vew" - create-glyph 'armn/Vew' 0x54E : glyph-proc - local df : include : DivFrame 1 - include : df.markSet.capital - local midy : XH / 2 - df.mvs / 2 - include : uBowl.shape - left -- df.leftSB - right -- (df.rightSB - [HSwToV df.mvs]) - top -- XH - bottom -- midy - ada -- ArchDepthA - adb -- ArchDepthB - stroke -- df.mvs - include : VBar.r df.rightSB 0 CAP df.mvs - include : [ArmHBar.right df].base - if SLAB : begin - local sf : SerifFrame.fromDf df XH 0 - local sf2 : SerifFrame.fromDf df CAP 0 - include : composite-proc sf.lt.full sf2.rt.full sf.rb.full - do "Reh" create-glyph 'armn/Reh' 0x550 : glyph-proc local df : include : DivFrame 1 diff --git a/packages/font-glyphs/src/letter/armenian/keh.ptl b/packages/font-glyphs/src/letter/armenian/keh.ptl index 802e45ae84..984d32efad 100644 --- a/packages/font-glyphs/src/letter/armenian/keh.ptl +++ b/packages/font-glyphs/src/letter/armenian/keh.ptl @@ -19,15 +19,23 @@ glyph-block Letter-Armenian-Keh : begin create-glyph 'armn/Keh' 0x554 : glyph-proc local df : include : DivFrame 1 include : df.markSet.capital - local bot : Math.max (XH - (CAP - XH)) (2.2 * df.mvs) + local ostroke : OverlayStroke * (df.mvs / Stroke) + local bot : CAP * HBarPos - df.mvs / 2 include : OBarLeft.roundedTop - top -- CAP - bot -- bot - left -- df.leftSB + top -- CAP + bot -- bot + left -- df.leftSB right -- df.rightSB + sw -- df.mvs + fine -- df.shoulderFine + ada -- ArchDepthA + adb -- ArchDepthB yTerminal -- 0 - sw -- df.mvs - include : HBar.m (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) (df.rightSB) [mix [if SLAB df.mvs 0] bot 0.5] df.mvs + include : HBar.m + df.leftSB - jut + [HSwToV : 0.5 * df.mvs] + df.rightSB + 0 + mix [if SLAB df.mvs 0] bot 0.5 + Math.min ostroke : 0.5 * (bot - [if SLAB df.mvs 0]) if SLAB : begin local sf : SerifFrame.fromDf df CAP 0 include sf.lb.full @@ -35,16 +43,23 @@ glyph-block Letter-Armenian-Keh : begin create-glyph 'armn/keh' 0x584 : glyph-proc local df : include : DivFrame 1 include : df.markSet.p - local ostroke : df.adviceStroke 3.75 - local bot : Math.max (0.1 * XH) (1 * ostroke) + local ostroke : OverlayStroke * (df.mvs / Stroke) + local bot : Math.max (0.1 * XH) (1.5 * ostroke) include : OBarLeft.shape + top -- XH + bot -- bot left -- df.leftSB right -- df.rightSB - bot -- bot sw -- df.mvs fine -- df.shoulderFine + ada -- SmallArchDepthA + adb -- SmallArchDepthB include : VBar.l df.leftSB Descender XH df.mvs - include : HCrossBar (df.leftSB - jut + [HSwToV : 0.5 * df.mvs]) df.rightSB 0 ostroke + include : HBar.b + df.leftSB - jut + [HSwToV : 0.5 * df.mvs] + df.rightSB + 0 + XH - highBarPos + 1 * ostroke if SLAB : begin local sf : SerifFrame.fromDf df XH Descender include : composite-proc sf.lt.outer sf.lb.fullSide 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 b04dbc542d..24493fb75d 100644 --- a/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl +++ b/packages/font-glyphs/src/letter/armenian/lower-u-group.ptl @@ -20,7 +20,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Turned Ayb" create-glyph 'armn/aybTurned' 0x560 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : SmallMArches df XH 0 0 0 if SLAB : begin @@ -33,7 +33,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Ayb" create-glyph 'armn/ayb' 0x561 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : SmallMArches df XH 0 0 0 include : FlipAround df.middle (XH / 2) @@ -131,7 +131,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Xeh" create-glyph 'armn/xeh' 0x56D : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.bp include : uBowl.shape top -- (XH / 2) @@ -261,7 +261,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Peh" create-glyph 'armn/peh' 0x57A : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.p include : SmallMArches df XH 0 0 0 include : FlipAround df.middle (XH / 2) @@ -341,7 +341,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Tiun" create-glyph 'armn/tiun' 0x57F : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : uBowl.shape top -- XH @@ -381,7 +381,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "P'iur" create-glyph 'armn/piur' 0x583 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.bp include : uBowl.shape top -- XH @@ -406,7 +406,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin do "Ew" create-glyph 'armn/ew' 0x587 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.b include : uBowl.shape top -- Ascender diff --git a/packages/font-glyphs/src/letter/armenian/shared.ptl b/packages/font-glyphs/src/letter/armenian/shared.ptl index e29479bdf3..4e7bb5a9e2 100644 --- a/packages/font-glyphs/src/letter/armenian/shared.ptl +++ b/packages/font-glyphs/src/letter/armenian/shared.ptl @@ -28,7 +28,7 @@ glyph-block Letter-Armenian-Shared-Shapes : begin -- df.leftSB define right : match hPos [Just JUT.RIGHT] (df.rightSB + (jut * [if SLAB 1.5 1]) - [HSwToV : 0.5 * df.mvs]) - [Just JUT.SHORT] (df.rightSB - (jut - [HSwToV : 0.5 * df.mvs]) * df.div) + [Just JUT.SHORT] (df.rightSB - (jut - [HSwToV : 0.5 * df.mvs]) * df.adws) [Just JUT.LEFT] df.leftSB -- df.rightSB diff --git a/packages/font-glyphs/src/letter/armenian/upper-ini.ptl b/packages/font-glyphs/src/letter/armenian/upper-ini.ptl new file mode 100644 index 0000000000..87290341b8 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-ini.ptl @@ -0,0 +1,28 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Ini : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : nShoulder SerifFrame + + do "Ini" + create-glyph 'armn/Ini' 0x53B : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : nShoulder.shape + top -- XH + bottom -- (XH / 2) + left -- (df.leftSB + [HSwToV df.mvs]) + right -- df.rightSB + ada -- ArchDepthA + adb -- ArchDepthB + stroke -- df.mvs + include : VBar.l df.leftSB 0 CAP df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + include : composite-proc sf.lt.full sf.lb.full diff --git a/packages/font-glyphs/src/letter/armenian/upper-ken-vew.ptl b/packages/font-glyphs/src/letter/armenian/upper-ken-vew.ptl new file mode 100644 index 0000000000..714cbb9b75 --- /dev/null +++ b/packages/font-glyphs/src/letter/armenian/upper-ken-vew.ptl @@ -0,0 +1,49 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Armenian-Upper-Ken-Vew : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared-Shapes : uBowl SerifFrame + glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar + + do "Ken" + create-glyph 'armn/Ken' 0x53F : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : uBowl.shape + top -- CAP + bottom -- (XH / 2 - df.mvs / 2) + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) + ada -- ArchDepthA + adb -- ArchDepthB + stroke -- df.mvs + include : VBar.r df.rightSB 0 XH df.mvs + if SLAB : begin + local sf : SerifFrame.fromDf df CAP 0 + local sf2 : SerifFrame.fromDf df XH 0 + include : composite-proc sf.lt.full sf2.rt.full sf.rb.full + + do "Vew" + create-glyph 'armn/Vew' 0x54E : glyph-proc + local df : include : DivFrame 1 + include : df.markSet.capital + include : uBowl.shape + top -- XH + bottom -- (XH / 2 - df.mvs / 2) + left -- df.leftSB + right -- (df.rightSB - [HSwToV df.mvs]) + ada -- ArchDepthA + adb -- ArchDepthB + stroke -- df.mvs + include : VBar.r df.rightSB 0 CAP df.mvs + include : [ArmHBar.right df].base + if SLAB : begin + local sf : SerifFrame.fromDf df XH 0 + local sf2 : SerifFrame.fromDf df CAP 0 + include : composite-proc sf.lt.full sf2.rt.full sf.rb.full diff --git a/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl b/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl index 3fdb2ed67e..7c2d5d8667 100644 --- a/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl +++ b/packages/font-glyphs/src/letter/armenian/upper-xeh.ptl @@ -14,7 +14,7 @@ glyph-block Letter-Armenian-Upper-Xeh : begin do "Xeh" create-glyph 'armn/Xeh' 0x53D : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 local { subDf shift } : SubDfAndShift 1 df include : df.markSet.capital include : VBar.l df.leftSB 0 CAP df.mvs diff --git a/packages/font-glyphs/src/letter/cyrillic/abk-ha.ptl b/packages/font-glyphs/src/letter/cyrillic/abk-ha.ptl index 9968772963..ffb4fb6d63 100644 --- a/packages/font-glyphs/src/letter/cyrillic/abk-ha.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/abk-ha.ptl @@ -29,11 +29,11 @@ glyph-block Letter-Cyrillic-Abkhasian-Ha : begin create-glyph 'cyrl/abk/Ha' 0x4A8 : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : CyrlAbkHaShape df CAP ArchDepth create-glyph 'cyrl/abk/ha' 0x4A9 : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : CyrlAbkHaShape df XH SmallArchDepth diff --git a/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl b/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl index 1be44f591b..d8329f618c 100644 --- a/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Cyrillic-BigYus : begin glyph-block-import Letter-Cyrillic-Iotified-A : Iotified define [BigYusLegMaskShape df top yp _fine] : begin - local fine : fallback _fine : AdviceStroke 3.3 df.div + local fine : fallback _fine : AdviceStroke 3.3 df.adws local midx : mix df.leftSB df.middle 0.3 local yb : top * yp return : spiro-outline @@ -21,7 +21,7 @@ glyph-block Letter-Cyrillic-BigYus : begin corner midx yb define [CyrBigYusShape df top yp _fine] : glyph-proc - local fine : fallback _fine : AdviceStroke 3.3 df.div + local fine : fallback _fine : AdviceStroke 3.3 df.adws local cor HVContrast local midx : mix df.leftSB df.middle 0.3 local midx2 : Math.min (df.middle - fine * cor) [mix df.leftSB df.middle 0.75] @@ -65,7 +65,7 @@ glyph-block Letter-Cyrillic-BigYus : begin include : tagged 'serifMB' sf.mb.full define [CyrBlendedYusShape df top yp yp2 _fine] : glyph-proc - local fine : fallback _fine : AdviceStroke 3.3 df.div + local fine : fallback _fine : AdviceStroke 3.3 df.adws include : CyrBigYusShape df top yp fine eject-contour 'barM' @@ -76,7 +76,7 @@ glyph-block Letter-Cyrillic-BigYus : begin BigYusLegMaskShape df top yp fine create-glyph 'cyrl/BigYus' 0x46A : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : CyrBigYusShape df CAP 0.575 @@ -86,7 +86,7 @@ glyph-block Letter-Cyrillic-BigYus : begin include : CyrBigYusShape df XH 0.55 create-glyph 'cyrl/BlendedYus' 0xA65A : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : CyrBlendedYusShape df CAP 0.65 (0.65 * 0.65) @@ -101,7 +101,7 @@ glyph-block Letter-Cyrillic-BigYus : begin define dfSub : DivFrame divSub 3 include : CyrBigYusShape dfSub top yp df.mvs eject-contour 'serifRB' - include : Translate (Width * (df.div - divSub)) 0 + include : Translate (Width * (df.adws - divSub)) 0 include : Iotified.outer df top hBarRight -- [mix df.leftSB df.rightSB (2 / 3)] @@ -113,11 +113,11 @@ glyph-block Letter-Cyrillic-BigYus : begin include sf.rb.outer create-glyph 'cyrl/BigYusIotified' 0x46C : glyph-proc - local df : include : DivFrame (para.diversityM ** 2) 4.25 + local df : include : DivFrame (para.advanceScaleM ** 2) 4.25 include : df.markSet.capital include : CyrIotifiedBigYusShape true df CAP 0.575 create-glyph 'cyrl/bigYusIotified' 0x46D : glyph-proc - local df : include : DivFrame para.diversityM 4.25 + local df : include : DivFrame para.advanceScaleM 4.25 include : df.markSet.e include : CyrIotifiedBigYusShape false df XH 0.55 diff --git a/packages/font-glyphs/src/letter/cyrillic/che.ptl b/packages/font-glyphs/src/letter/cyrillic/che.ptl index 48645d2be2..2aed85012f 100644 --- a/packages/font-glyphs/src/letter/cyrillic/che.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/che.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Cyrillic-Che : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared : CreateSelectorVariants DefineSelectorGlyph CreateTurnedLetter - glyph-block-import Letter-Shared-Shapes : cheBowl SerifFrame RightwardTailedBar DToothlessRise + glyph-block-import Letter-Shared-Shapes : cheBowl SerifFrame RightwardTailedBar glyph-block-import Letter-Shared-Shapes : TopHook CyrDescender BottomExtension glyph-block-import Letter-Latin-Lower-M : EarlessCornerDoubleArchSmallMShape @@ -102,7 +102,7 @@ glyph-block Letter-Cyrillic-Che : begin define [CyrTcheShape] : with-params [df top pyBar bodyType slabType [teSerifs SLAB] [sw : AdviceStroke 2.75] [yBarOffset DToothlessRise]] : glyph-proc local bar : top * [fallback pyBar 0.5] + yBarOffset - local left : [mix df.leftSB df.rightSB : if (df.div > 1) 0.25 0.2] - [HSwToV : 0.25 * sw] + OX + local left : [mix df.leftSB df.rightSB : if (df.adws > 1) 0.25 0.2] - [HSwToV : 0.25 * sw] + OX local right : df.rightSB - OX include : tagged 'strokeR' : match bodyType @@ -155,7 +155,7 @@ glyph-block Letter-Cyrillic-Che : begin CyrDescender.lSideJut (RightSB - [HSwToV Stroke]) 0 (jut -- MidJutSide) create-glyph 'cyrl/Cche' 0xA686 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : LeaningAnchor.Below.VBar.r df.rightSB include : CyrCcheShape df CAP [if SLAB 0.45 0.35] BODY.STRAIGHT @@ -167,7 +167,7 @@ glyph-block Letter-Cyrillic-Che : begin foreach { suffix { doST doSB } } [Object.entries TcheConfig] : do create-glyph "cyrl/Tche.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.capital include : LeaningAnchor.Below.VBar.r df.rightSB include : CyrTcheShape df CAP [if SLAB 0.45 0.35] BODY.STRAIGHT @@ -195,13 +195,13 @@ glyph-block Letter-Cyrillic-Che : begin if SLAB [if para.isItalic slabItalic slabUprightBGR] SERIFS.NONE create-glyph "cyrl/cche.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : LeaningAnchor.Below.VBar.r df.rightSB include : CyrCcheShape df XH [if SLAB 0.45 0.4] body if SLAB [if para.isItalic slabItalic slabUpright] SERIFS.NONE - define cyrTcheDf : DivFrame para.diversityT + define cyrTcheDf : DivFrame para.advanceScaleT DefineSelectorGlyph "cyrl/tche" suffix cyrTcheDf 'e' diff --git a/packages/font-glyphs/src/letter/cyrillic/dche.ptl b/packages/font-glyphs/src/letter/cyrillic/dche.ptl index fefc1b2805..ac89dab940 100644 --- a/packages/font-glyphs/src/letter/cyrillic/dche.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dche.ptl @@ -37,7 +37,7 @@ glyph-block Letter-Cyrillic-Dche : begin foreach { suffix { body slabUpright slabUprightBGR slabItalic } } [pairs-of ItalicConfig] : do create-glyph "cyrl/dche.italic.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] diff --git a/packages/font-glyphs/src/letter/cyrillic/de.ptl b/packages/font-glyphs/src/letter/cyrillic/de.ptl index 1e9cb732a1..c3cce58104 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 : QuarterStroke - LongVJut + local BottomExtension : (-LongVJut) + QuarterStroke glyph-block-export CyrDeBottom define [CyrDeBottom left right _sw _desc] : glyph-proc @@ -30,7 +30,7 @@ glyph-block Letter-Cyrillic-De : begin VBar.r (right + descenderOverflow) desc 0.1 swOuter glyph-block-export CyrDeShape - define [CyrDeShape top left right _sw _desc] : glyph-proc + define [CyrDeShape top left right _sw _desc fLower] : glyph-proc local descenderOverflow : if SLAB SideJut ((right - left) * 0.075) local xTopLeft : mix left right : StrokeWidthBlend 0.15 0.1 local xTopRight : mix left right : StrokeWidthBlend 0.95 0.96 @@ -50,24 +50,26 @@ glyph-block Letter-Cyrillic-De : begin include : if SLAB then : dispiro widths.rhs swOuter - flat (xTopLeft - descenderOverflow) top - curl (xTopRight + descenderOverflow) top + flat (xTopLeft - descenderOverflow) top + if (fLower && para.isItalic) + then : list : curl xTopRight top [heading Rightward] + else : list : curl (xTopRight + descenderOverflow) top else : HBar.t xTopLeft xTopRight top swOuter return : object desc xTopLeft xTopRight - define [CyrSoftDeShape df top _sw vSlab] : glyph-proc + define [CyrSoftDeShape df top _sw _desc fLower vSlab] : glyph-proc local descenderOverflow : if SLAB SideJut ((df.rightSB - df.leftSB) * 0.075) local sw : fallback _sw Stroke local xm : if SLAB [mix df.leftSB df.rightSB 0.625] + [HSwToV : 0.25 * sw] - mix df.leftSB df.rightSB : if (df.div > 1) (2 / 3) (3 / 4) + mix df.leftSB df.rightSB : if (df.adws > 1) (2 / 3) (3 / 4) local xTopRight : mix df.leftSB xm : StrokeWidthBlend 0.95 0.96 local xTopBarRightEnd : mix df.width df.rightSB : if vSlab 0.25 0.375 - include : CyrDeShape top df.leftSB xm sw + include : CyrDeShape top df.leftSB xm sw _desc fLower - include : if SLAB + include : if (SLAB && !(fLower && para.isItalic)) then : HBar.t (xTopRight + descenderOverflow) xTopBarRightEnd top sw else : HBar.t xTopRight xTopBarRightEnd top sw @@ -85,33 +87,33 @@ glyph-block Letter-Cyrillic-De : begin create-glyph 'cyrl/deLongLeg' 0x1C81 : glyph-proc include : MarkSet.p - include : CyrDeShape XH SB RightSB Stroke Descender + include : CyrDeShape XH SB RightSB nothing Descender true create-glyph 'cyrl/DeSoft.serifless' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : ExtendBelowBaseAnchors BottomExtension - include : CyrSoftDeShape df CAP df.mvs false + include : CyrSoftDeShape df CAP df.mvs nothing false false create-glyph 'cyrl/DeSoft.topRightSerifed' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : ExtendBelowBaseAnchors BottomExtension - include : CyrSoftDeShape df CAP df.mvs true + include : CyrSoftDeShape df CAP df.mvs nothing false true select-variant 'cyrl/DeSoft' 0xA662 (follow -- 'cyrl/EnGhe/GhePart') create-glyph 'cyrl/deSoft.serifless' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : ExtendBelowBaseAnchors BottomExtension - include : CyrSoftDeShape df XH df.mvs false + include : CyrSoftDeShape df XH df.mvs nothing true false create-glyph 'cyrl/deSoft.topRightSerifed' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : ExtendBelowBaseAnchors BottomExtension - include : CyrSoftDeShape df XH df.mvs true + include : CyrSoftDeShape df XH df.mvs nothing true true select-variant 'cyrl/deSoft' 0xA663 (follow -- 'cyrl/enghe/ghePart') @@ -170,12 +172,13 @@ glyph-block Letter-Cyrillic-De : begin g4 (left + sw * 1.1) Ascender create-glyph 'cyrl/de.italic' : glyph-proc - include : MarkSet.b - include : CyrDeItalicShapeT dispiro [DivFrame 1] + local df : include : DivFrame 1 + include : df.markSet.b + include : CyrDeItalicShapeT dispiro df foreach { suffix { st sb }} [Object.entries EpsilonConfig] : do create-glyph "cyrl/dzze.italic.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.bp local dfLeft : df.slice 3 2 OX @@ -192,6 +195,6 @@ glyph-block Letter-Cyrillic-De : begin stroke -- df.mvs include : union [ze.Shape] [ze.AutoEndSerifL] - select-variant 'cyrl/Dzze' 0xA688 (follow -- 'cyrl/ZeBottomSerifOnly') + select-variant 'cyrl/Dzze' 0xA688 (follow -- 'cyrl/ZeBottomSerifOnly') select-variant 'cyrl/dzze.upright' (follow -- 'cyrl/zeBottomSerifOnly') - select-variant 'cyrl/dzze.italic' (follow -- 'cyrl/zeBottomSerifOnly') + select-variant 'cyrl/dzze.italic' (follow -- 'cyrl/zeBottomSerifOnly') diff --git a/packages/font-glyphs/src/letter/cyrillic/dje.ptl b/packages/font-glyphs/src/letter/cyrillic/dje.ptl index b14479dae5..824b3af4b5 100644 --- a/packages/font-glyphs/src/letter/cyrillic/dje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dje.ptl @@ -10,11 +10,11 @@ glyph-block Letter-Cyrillic-Dje : begin glyph-block-import Letter-Shared-Shapes : MidHook create-glyph 'cyrl/Dje' 0x402 : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.capital local sw : AdviceStroke 2.75 - local left : [mix df.leftSB df.rightSB : if (df.div <= 1) 0.2 : if SLAB 0.3 0.25] + OX + local left : [mix df.leftSB df.rightSB : if (df.adws <= 1) 0.2 : if SLAB 0.3 0.25] + OX local right : df.rightSB - OX local xTopBarLeft : df.leftSB - SideJut diff --git a/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl b/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl index 9a573765d7..81cbeefadc 100644 --- a/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl @@ -14,7 +14,7 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin local subDf : df.slice 4 keeps _o local subDfFullShift : (df.rightSB - subDf.rightSB) / (4 - keeps) local shift : pShift * subDfFullShift - local sw : AdviceStroke 3.3 [df.slice 4 3 _o].div + local sw : AdviceStroke 3.3 [df.slice 4 3 _o].adws return : object subDf shift sw do "de subglyph" @@ -31,21 +31,21 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin include : CyrDeItalicShapeT dispiro subDf sw create-glyph "cyrl/Dzzhe/left" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.capital include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) set-base-anchor 'cvDecompose' 0 0 include : CyrDzzheDeShape df CAP create-glyph "cyrl/dzzhe.upright/left" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.e include : ExtendBelowBaseAnchors (-LongVJut + HalfStroke) set-base-anchor 'cvDecompose' 0 0 include : CyrDzzheDeShape df XH create-glyph "cyrl/dzzhe.italic/left" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.b set-base-anchor 'cvDecompose' 0 0 include : CyrDzzheDeItalicShape df @@ -65,13 +65,13 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin foreach { suffix { slabTop slabBot } } [Object.entries EpsilonConfig] : do create-glyph "cyrl/Zhwe/left.\(suffix)" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 include : CyrZhweZeShape slabTop slabBot df CAP Hook create-glyph "cyrl/zhwe/left.\(suffix)" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : CyrZhweZeShape slabTop slabBot df XH SHook @@ -115,28 +115,28 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin foreach { suffix { legShape fSlab fMidSlab } } [Object.entries ZheConfig] : do create-glyph "cyrl/Dzzhe/right.\(suffix)" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.capital include : CyrRightZheShape legShape fSlab fMidSlab df CAP : DzzheLeft df create-glyph "cyrl/dzzhe.upright/right.\(suffix)" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.e include : CyrRightZheShape legShape fSlab fMidSlab df XH : DzzheLeft df create-glyph "cyrl/dzzhe.italic/right.\(suffix)" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.e include : DzzheZheItalicShape legShape fSlab fMidSlab df XH create-glyph "cyrl/Zhwe/right.\(suffix)" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 include : ZhweZheShape legShape fSlab fMidSlab df CAP Hook create-glyph "cyrl/zhwe/right.\(suffix)" : glyph-proc - define df : include : DivFrame (para.diversityM ** 2) 3.5 + define df : include : DivFrame (para.advanceScaleM ** 2) 3.5 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : ZhweZheShape legShape fSlab fMidSlab df XH SHook diff --git a/packages/font-glyphs/src/letter/cyrillic/e.ptl b/packages/font-glyphs/src/letter/cyrillic/e.ptl index f5d2a0bbe0..035f7a7cd7 100644 --- a/packages/font-glyphs/src/letter/cyrillic/e.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/e.ptl @@ -47,10 +47,10 @@ glyph-block Letter-Cyrillic-E : begin define dfSub : DivFrame divSub 2 local lf : CLetterForm dfSub sty styBot top 0 - ada -- (ada * 0.7 * df.div) - adb -- (adb * 0.7 * df.div) + ada -- (ada * 0.7 * df.adws) + adb -- (adb * 0.7 * df.adws) sw -- df.mvs - include : with-transform [ApparentTranslate (Width * (df.div - divSub)) 0] : lf.full + include : with-transform [ApparentTranslate (Width * (df.adws - divSub)) 0] : lf.full include : Iotified.full df top hBarRight -- [mix df.leftSB df.rightSB (3 / 4)] @@ -58,12 +58,12 @@ glyph-block Letter-Cyrillic-E : begin fCapital -- fCapital create-glyph "cyrl/EIotified.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : IotifiedEShape true df CAP ArchDepthA ArchDepthB create-glyph "cyrl/eIotified.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : IotifiedEShape false df XH SmallArchDepthA SmallArchDepthB diff --git a/packages/font-glyphs/src/letter/cyrillic/el.ptl b/packages/font-glyphs/src/letter/cyrillic/el.ptl index e80d9db4df..7a53ef671f 100644 --- a/packages/font-glyphs/src/letter/cyrillic/el.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/el.ptl @@ -59,7 +59,7 @@ glyph-block Letter-Cyrillic-El : begin local sw : fallback _sw Stroke local xm : if SLAB [mix df.leftSB df.rightSB 0.625] + [HSwToV : 0.25 * sw] - mix df.leftSB df.rightSB : if (df.div > 1) (2 / 3) (3 / 4) + mix df.leftSB df.rightSB : if (df.adws > 1) (2 / 3) (3 / 4) local xTopBarRightEnd : mix df.width df.rightSB : if vSlab 0.25 0.375 include : CyrElShape df.leftSB xm top bodyType slabType sw @@ -75,7 +75,7 @@ glyph-block Letter-Cyrillic-El : begin include : CyrElShape SB RightSB XH BODY-STRAIGHT : if SLAB SLAB-ALL SLAB-NONE create-glyph 'cyrl/ElMidHook' 0x520 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capDesc local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -87,12 +87,12 @@ glyph-block Letter-Cyrillic-El : begin include : MidHook.m df CAP create-glyph 'cyrl/ElSoft.serifless' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : CyrSoftElShape df CAP BODY-STRAIGHT [if SLAB SLAB-ALL SLAB-NONE] df.mvs false create-glyph 'cyrl/ElSoft.topRightSerifed' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : CyrSoftElShape df CAP BODY-STRAIGHT [if SLAB SLAB-ALL SLAB-NONE] df.mvs true @@ -112,7 +112,7 @@ glyph-block Letter-Cyrillic-El : begin include : CyrElShape SB RightSB XH body : if SLAB [if para.isItalic slabItalic slabUpright] SLAB-NONE create-glyph "cyrl/elMidHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.p local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -123,7 +123,7 @@ glyph-block Letter-Cyrillic-El : begin MaskRight [mix xm (df.rightSB - [HSwToV df.mvs]) 0.625] include : MidHook.m df XH - define cyrSoftElDf : DivFrame para.diversityM 3 + define cyrSoftElDf : DivFrame para.advanceScaleM 3 DefineSelectorGlyph "cyrl/elSoft" suffix cyrSoftElDf 'e' @@ -150,35 +150,35 @@ glyph-block Letter-Cyrillic-El : begin derive-composites 'cyrl/elHook' 0x513 'cyrl/el.straight' [PalatalHook.rSideJut RightSB 0] create-glyph 'cyrl/LjeKomi' 0x508 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital local xm : df.middle + [HSwToV : 0.5 * df.mvs] include : CyrElShape df.leftSB xm CAP BODY-NONE [if SLAB SLAB-ALL SLAB-NONE] 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.adws) + adb -- (SmallArchDepthB * 0.6 * df.adws) + sw -- df.mvs local sf2 : [SerifFrame.fromDf df (CAP / 2) 0].slice 1 2 if SLAB : include sf2.rt.full create-glyph 'cyrl/ljeKomi' 0x509 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e local xm : df.middle + [HSwToV : 0.5 * df.mvs] include : CyrElShape df.leftSB xm XH BODY-NONE [if SLAB [if para.isItalic SLAB-LOWER SLAB-ALL] SLAB-NONE] 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 -- XH - yend -- (XH / 2) - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) - sw -- df.mvs + yend -- (XH / 2) + ada -- (SmallArchDepthA * 0.6 * df.adws) + adb -- (SmallArchDepthB * 0.6 * df.adws) + sw -- df.mvs local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2 if SLAB : include sf2.rt.full diff --git a/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl b/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl index 3111faa33a..dbe80a50b2 100644 --- a/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl @@ -104,14 +104,14 @@ glyph-block Letter-Cyrillic-Iotified-A : begin foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do create-glyph "cyrl/AIotified.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 + define df : include : DivFrame para.advanceScaleM 3.5 include : df.markSet.capital local gap : (df.width - 2 * df.leftSB - 3 * df.mvs) / 3 local divSub : (df.width - gap - df.mvs) / Width local subDf : DivFrame divSub 2 (df.leftSB / SB) df.mvs 0 - local shift : Width * (df.div - divSub) + local shift : Width * (df.adws - divSub) local xIotifiedBarRight : df.leftSB + [HSwToV df.mvs] local botGap : Math.max ((df.rightSB - df.leftSB) * 0.08) [AdviceStroke 6] include : difference @@ -130,14 +130,14 @@ glyph-block Letter-Cyrillic-Iotified-A : begin foreach { suffix { body xTrailing hookStyle } } [Object.entries DoubleStoreyConfig] : do create-glyph "cyrl/aIotified.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] local divSub : (df.width - gap - df.mvs) / Width local subDf : DivFrame divSub 2 - local shift : Width * (df.div - divSub) + local shift : Width * (df.adws - divSub) include : with-transform [ApparentTranslate shift 0] body subDf hookStyle df.mvs @@ -148,14 +148,14 @@ glyph-block Letter-Cyrillic-Iotified-A : begin foreach { suffix { body bar } } [Object.entries SingleStoreyConfig] : do create-glyph "cyrl/aIotified.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] local divSub : (df.width - gap - df.mvs) / Width local subDf : DivFrame divSub 2 - local shift : Width * (df.div - divSub) + local shift : Width * (df.adws - divSub) include : with-transform [ApparentTranslate shift 0] body subDf XH bar df.mvs @@ -172,19 +172,19 @@ glyph-block Letter-Cyrillic-Iotified-A : begin foreach { suffix { body } } [Object.entries Config] : do create-glyph "latn/eIotified.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e local gap : 0.375 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) - [HSwToV : 0.25 * df.mvs] local divSub : (df.width - gap - df.mvs) / Width local subDf : DivFrame divSub 2 - local shift : Width * (df.div - divSub) + local shift : Width * (df.adws - divSub) include : with-transform [ApparentTranslate shift 0] body subDf XH stroke -- df.mvs - ada -- (SmallArchDepthA * 0.7 * df.div) - adb -- (SmallArchDepthB * 0.7 * df.div) + ada -- (SmallArchDepthA * 0.7 * df.adws) + adb -- (SmallArchDepthB * 0.7 * df.adws) include : Iotified.full df XH (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (XH / 2) diff --git a/packages/font-glyphs/src/letter/cyrillic/lje.ptl b/packages/font-glyphs/src/letter/cyrillic/lje.ptl index e8bd2e8415..c653feac0e 100644 --- a/packages/font-glyphs/src/letter/cyrillic/lje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/lje.ptl @@ -17,7 +17,7 @@ glyph-block Letter-Cyrillic-Lje : begin local r : rightSB - 0 local middle : df.width / 2 local xTopLeft : mix l r 0.025 - local jut : Math.min Jut : Jut * 0.75 * df.div + local jut : Math.min Jut : Jut * 0.75 * df.adws include : LegShape ztop -- [Point.fromXY Point.Type.Corner xTopLeft top] zbot -- [Point.fromXY Point.Type.Corner [mix l 0 [if SLAB 1 0.75]] 0] @@ -34,12 +34,12 @@ glyph-block Letter-Cyrillic-Lje : begin foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do create-glyph "cyrl/Lje.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : CyrLjeShape Uc df CAP create-glyph "cyrl/lje.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : CyrLjeShape Lc df XH diff --git a/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl b/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl index 48d03a1ff0..9c08cdc4fa 100644 --- a/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Cyrillic-Multiocular-O : begin foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do create-glyph "cyrl/multiocularO.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 6 + local df : include : DivFrame para.advanceScaleMM 6 include : df.markSet.bp local subDf : df.slice 5 2 diff --git a/packages/font-glyphs/src/letter/cyrillic/nje.ptl b/packages/font-glyphs/src/letter/cyrillic/nje.ptl index 4c74a63ba4..421afb01d4 100644 --- a/packages/font-glyphs/src/letter/cyrillic/nje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/nje.ptl @@ -55,24 +55,24 @@ glyph-block Letter-Cyrillic-Nje : begin foreach { suffix { slabType } } [Object.entries LeftHalfConfig] : do create-glyph "cyrl/Nje/leftHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : LeftHalf slabType df CAP create-glyph "cyrl/nje/leftHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : LeftHalf slabType df XH foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do create-glyph "cyrl/Nje/rightHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : RightHalf Uc df CAP DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' create-glyph "cyrl/nje/rightHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : RightHalf Lc df XH DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' diff --git a/packages/font-glyphs/src/letter/cyrillic/omega.ptl b/packages/font-glyphs/src/letter/cyrillic/omega.ptl index f6e9d59f7c..64a726811f 100644 --- a/packages/font-glyphs/src/letter/cyrillic/omega.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/omega.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Cyrillic-Omega : begin glyph-block-import Letter-Cyrillic-Te-Comb define [CyrlOmegaShape df top p1 p2] : glyph-proc - local fine : AdviceStroke 3 df.div + local fine : AdviceStroke 3 df.adws local mfine : fine * CThin local minHookDepth : Math.min (0.625 * (df.middle - df.leftSB - [HSwToV fine])) ((1 / 3) * (df.rightSB - df.leftSB)) @@ -49,11 +49,11 @@ glyph-block Letter-Cyrillic-Omega : begin curl xMidBarCoLeft y4 [heading Upward] create-glyph 'cyrl/BroadOmega' 0xA64C : glyph-proc - define df : include : DivFrame para.diversityMM 3 - include : [DivFrame df.div].markSet.capital + define df : include : DivFrame para.advanceScaleMM 3 + include : [DivFrame df.adws].markSet.capital include : CyrlOmegaShape df CAP 0.30 0.31 create-glyph 'cyrl/broadOmega' 0xA64D : glyph-proc - define df : include : DivFrame para.diversityM 3 - include : [DivFrame df.div].markSet.e + define df : include : DivFrame para.advanceScaleM 3 + include : [DivFrame df.adws].markSet.e include : CyrlOmegaShape df XH 0.30 0.31 diff --git a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl index f42bf54208..cfe834438a 100644 --- a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl @@ -22,6 +22,7 @@ glyph-block Letter-Cyrillic-Orthography : begin orthographic-italic 'cyrl/dzhe' 0x45F orthographic-italic 'cyrl/yat' 0x463 orthographic-italic 'cyrl/iShortTail' 0x48B + orthographic-italic 'cyrl/ge' 0x491 orthographic-italic 'cyrl/ghayn' 0x493 orthographic-italic 'cyrl/peMidHook' 0x4A7 orthographic-italic 'cyrl/teDescender' 0x4AD diff --git a/packages/font-glyphs/src/letter/cyrillic/sha.ptl b/packages/font-glyphs/src/letter/cyrillic/sha.ptl index d2f3e970d4..223ebd0e6c 100644 --- a/packages/font-glyphs/src/letter/cyrillic/sha.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/sha.ptl @@ -33,24 +33,24 @@ glyph-block Letter-Cyrillic-Sha : begin composite-proc sf.lt.outer sf.rt.outer create-glyph 'cyrl/Sha' 0x428 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : CyrShaShape df CAP 0 (doSerif -- SLAB) create-glyph 'cyrl/sha.upright' : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : CyrShaShape df XH 0 (doSerif -- SLAB) alias 'cyrl/sha/reduced.upright' null 'cyrl/sha.upright' create-glyph 'cyrl/teThreeLeg.upright' : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : CyrShaShape df XH 0 (doSerif -- SLAB) (fInv -- true) create-glyph 'smcpMTurned' 0xA7FA : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : CyrShaShape df XH 0 (doSerif -- SLAB) @@ -61,12 +61,12 @@ glyph-block Letter-Cyrillic-Sha : begin include : CyrDescender.rSideJut df.rightSB bot (refSw -- cofine) create-glyph 'cyrl/Shcha' 0x429 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : CyrShchaShape df CAP 0 (doSerif -- SLAB) create-glyph 'cyrl/shcha.upright' : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : CyrShchaShape df XH 0 (doSerif -- SLAB) diff --git a/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl b/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl index 1d0823958f..8693b69861 100644 --- a/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin glyph-block-import Letter-Cyrillic-Iotified-A : Iotified define [CyrSmallYusShape df top straightBar _fine] : glyph-proc - local fine : fallback _fine : AdviceStroke 3.3 df.div + local fine : fallback _fine : AdviceStroke 3.3 df.adws include : LambdaShape df -- df fBarStraight -- straightBar @@ -33,7 +33,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin include : tagged 'serifMB' sf.mb.full define [CyrClosedSmallYusShape df top straightBar _fine] : glyph-proc - local fine : fallback _fine : AdviceStroke 2.75 df.div + local fine : fallback _fine : AdviceStroke 2.75 df.adws include : DeltaShape df -- df top -- top @@ -50,7 +50,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin include : tagged 'serifRB' sf.rb.outer create-glyph : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital create-forked-glyph 'cyrl/SmallYus.straight' : CyrSmallYusShape df CAP true create-forked-glyph 'cyrl/SmallYus.curly' : CyrSmallYusShape df CAP false @@ -86,7 +86,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin include : CyrClosedSmallYusShape dfSub top straightBar df.mvs include : CyrSmallYusShape dfSub top straightBar df.mvs eject-contour 'serifRB' - include : Translate (Width * (df.div - divSub)) 0 + include : Translate (Width * (df.adws - divSub)) 0 include : Iotified.A df top hBarRight -- [mix df.leftSB df.rightSB (2 / 3)] @@ -98,7 +98,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin include sf.rb.outer create-glyph : glyph-proc - local df : include : DivFrame (para.diversityM ** 2) 4.25 + local df : include : DivFrame (para.advanceScaleM ** 2) 4.25 include : df.markSet.capital create-forked-glyph 'cyrl/SmallYusIotified.straight' CyrIotifiedSmallYusShape false true df CAP true @@ -106,7 +106,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin CyrIotifiedSmallYusShape false true df CAP false create-glyph : glyph-proc - local df : include : DivFrame para.diversityM 4.25 + local df : include : DivFrame para.advanceScaleM 4.25 include : df.markSet.e create-forked-glyph 'cyrl/smallYusIotified.straight' CyrIotifiedSmallYusShape false false df XH true @@ -114,7 +114,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin CyrIotifiedSmallYusShape false false df XH false create-glyph : glyph-proc - local df : include : DivFrame para.diversityM 4.25 + local df : include : DivFrame para.advanceScaleM 4.25 include : df.markSet.capital create-forked-glyph 'cyrl/SmallYusClosedIotified.straight' CyrIotifiedSmallYusShape true true df CAP true @@ -122,7 +122,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin CyrIotifiedSmallYusShape true true df CAP false create-glyph : glyph-proc - local df : include : DivFrame para.diversityM 4.25 + local df : include : DivFrame para.advanceScaleM 4.25 include : df.markSet.e create-forked-glyph 'cyrl/smallYusClosedIotified.straight' CyrIotifiedSmallYusShape true false df XH true diff --git a/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl b/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl index 187b4feb47..eb362c4400 100644 --- a/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl @@ -37,14 +37,14 @@ glyph-block Letter-Cyrillic-Te-MidHook : begin MaskLeft : mix (left + [HSwToV sw]) (df.rightSB - [HSwToV sw]) 0.625 HSerif.mb (left + [HSwToV : 0.5 * sw]) 0 Jut - foreach { suffix { div doST doSB } } [Object.entries TConfig] : do + foreach { suffix { adws doST doSB } } [Object.entries TConfig] : do create-glyph "cyrl/TeMidHook.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.capDesc include : Shape df CAP 1 doST doSB create-glyph "cyrl/teMidHook.upright.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.p include : Shape df XH (HBarPos ** 0.3) doST doSB diff --git a/packages/font-glyphs/src/letter/cyrillic/tje.ptl b/packages/font-glyphs/src/letter/cyrillic/tje.ptl index ba65376190..ce556041f3 100644 --- a/packages/font-glyphs/src/letter/cyrillic/tje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/tje.ptl @@ -41,26 +41,26 @@ glyph-block Letter-Cyrillic-Tje : begin eject-contour 'serifYeriLT' eject-contour 'serifYeriLB' - foreach { suffix { div doST doSB } } [Object.entries TConfig] : do + foreach { suffix { adws doST doSB } } [Object.entries TConfig] : do create-glyph "cyrl/Tje/leftHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.advanceScaleT 3 include : df.markSet.capital include : LeftHalf df CAP doST doSB create-glyph "cyrl/tje.upright/leftHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.advanceScaleT 3 include : df.markSet.e include : LeftHalf df XH doST doSB foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do create-glyph "cyrl/Tje/rightHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.advanceScaleT 3 include : df.markSet.capital include : RightHalf Uc df CAP DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' create-glyph "cyrl/tje.upright/rightHalf.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.advanceScaleT 3 include : df.markSet.e include : RightHalf Lc df XH DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' diff --git a/packages/font-glyphs/src/letter/cyrillic/tse.ptl b/packages/font-glyphs/src/letter/cyrillic/tse.ptl index bb4bf98d73..63ac39dfd2 100644 --- a/packages/font-glyphs/src/letter/cyrillic/tse.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/tse.ptl @@ -44,7 +44,7 @@ glyph-block Letter-Cyrillic-Tse : begin define [CyrTeTseShape df top teSerifs] : glyph-proc local sw : AdviceStroke 2.75 - local left : [mix df.leftSB df.rightSB : if (df.div > 1) 0.25 0.2] - [HSwToV : 0.25 * sw] + OX + local left : [mix df.leftSB df.rightSB : if (df.adws > 1) 0.25 0.2] - [HSwToV : 0.25 * sw] + OX local right : df.rightSB - OX local xTopBarLeft : df.leftSB - SideJut @@ -73,12 +73,12 @@ glyph-block Letter-Cyrillic-Tse : begin foreach { suffix { doST doSB } } [Object.entries TeTseConfig] : do create-glyph "cyrl/TeTse.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.capital include : CyrTeTseShape df CAP doST create-glyph "cyrl/tetse.upright.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.e include : CyrTeTseShape df XH doST diff --git a/packages/font-glyphs/src/letter/cyrillic/tshe.ptl b/packages/font-glyphs/src/letter/cyrillic/tshe.ptl index 2048ba899e..6cc39902b5 100644 --- a/packages/font-glyphs/src/letter/cyrillic/tshe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/tshe.ptl @@ -10,11 +10,11 @@ glyph-block Letter-Cyrillic-Tshe : begin glyph-block-import Letter-Shared-Shapes : nShoulder create-glyph 'cyrl/Tshe' 0x40B : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.capital local sw : AdviceStroke 2.75 - local left : [mix df.leftSB df.rightSB : if (df.div <= 1) 0.2 : if SLAB 0.3 0.25] + OX + local left : [mix df.leftSB df.rightSB : if (df.adws <= 1) 0.2 : if SLAB 0.3 0.25] + OX local right : df.rightSB - OX local xTopBarLeft : SB - SideJut diff --git a/packages/font-glyphs/src/letter/cyrillic/yat.ptl b/packages/font-glyphs/src/letter/cyrillic/yat.ptl index 6f3c328581..8169891882 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yat.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yat.ptl @@ -51,7 +51,7 @@ glyph-block Letter-Cyrillic-Yat : begin define divSub : (df.width - gap - sw) / Width define dfSub : DivFrame divSub 2 - local shift : Width * (df.div - divSub) + local shift : Width * (df.adws - divSub) include : with-transform [ApparentTranslate shift 0] YatShape dfSub Yeri top pBar -- pBar @@ -65,20 +65,20 @@ glyph-block Letter-Cyrillic-Yat : begin foreach { suffix { Uc Lc } } [pairs-of YeriConfig] : do create-glyph "cyrl/Yat.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.capital include : YatShape df Uc CAP pBar -- 0.5 create-glyph "cyrl/yat.upright.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.b include : YatShape df Lc Ascender pBar -- (YeriBarPos * XH / Ascender) fLowerCase -- true create-glyph "cyrl/yatTall.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.b local asc : Ascender + 0.5 * AccentStackOffset include : ExtendAboveBaseAnchors asc @@ -88,13 +88,13 @@ glyph-block Letter-Cyrillic-Yat : begin yCrossbarOverride -- (Ascender - [if SLAB (0.25 * df.mvs) 0]) create-glyph "cyrl/YatIotified.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : IotifiedYatShape df Uc CAP pBar -- 0.5 create-glyph "cyrl/yatIotified.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.b include : IotifiedYatShape df Lc Ascender pBar -- 0.375 @@ -102,7 +102,7 @@ glyph-block Letter-Cyrillic-Yat : begin # Italic Yat create-glyph "cyrl/yat.italic/yeri.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e local xMidBarLeft : df.middle - [HSwToV : 0.5 * df.mvs] @@ -116,7 +116,7 @@ glyph-block Letter-Cyrillic-Yat : begin DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' create-glyph "cyrl/tje.italic/yeri.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityMM 2] 4 + local df : include : DivFrame [mix 1 para.advanceScaleMM 2] 4 include : df.markSet.e local dfSub : df.slice 4 3 0 diff --git a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl index 976e53e08d..7548749767 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl @@ -213,10 +213,10 @@ glyph-block Letter-Cyrillic-Yeri : begin include : VerticalHook.l xLeftBarLeftEdge (top - TailY - 0.5 * stroke) (xTopBarLeftEnd - xLeftBarLeftEdge - 0.5 * stroke) (-TailY) stroke define [CyrYeryShape LeftHalf df top fBackYer fTail] : glyph-proc - local sw : if fBackYer [AdviceStroke 3.25 df.div] df.mvs + local sw : if fBackYer [AdviceStroke 3.25 df.adws] df.mvs local jut : [Math.min 1 : Math.sqrt : sw / Stroke] * Jut - local xm : mix (df.rightSB - [HSwToV sw]) (df.middle + [HSwToV : 0.5 * sw]) : if (fBackYer && df.div > 1) 0.625 0.75 + local xm : mix (df.rightSB - [HSwToV sw]) (df.middle + [HSwToV : 0.5 * sw]) : if (fBackYer && df.adws > 1) 0.625 0.75 include : if fBackYer CyrBackYerShape LeftHalf @@ -303,32 +303,32 @@ glyph-block Letter-Cyrillic-Yeri : begin right -- df.rightSB include : YeriOverlayBar df XH create-glyph "cyrl/Yer.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.capital include : CyrBackYerShape Uc CAP left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yer.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.e include : CyrBackYerShape Lc XH left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yerTall.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.b include : CyrBackYerShape Lc Ascender left -- df.leftSB right -- df.rightSB pBar -- (YeriBarPos * XH / Ascender) create-glyph "cyrl/YerNeutral.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.capital include : CyrNeutralYerShape Uc CAP left -- df.leftSB right -- df.rightSB create-glyph "cyrl/yerNeutral.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT + local df : include : DivFrame para.advanceScaleT include : df.markSet.e include : CyrNeutralYerShape Lc XH left -- df.leftSB @@ -342,19 +342,19 @@ glyph-block Letter-Cyrillic-Yeri : begin foreach { suffix { Uc Lc fTail } } [Object.entries YeryConfig] : do if [not fTail] : create-glyph "cyrl/Yery.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : CyrYeryShape Uc df CAP false fTail create-glyph "cyrl/yery.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : CyrYeryShape Lc df XH false fTail if [not fTail] : create-glyph "cyrl/YeryBack.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : CyrYeryShape Uc df CAP true fTail create-glyph "cyrl/yeryBack.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : CyrYeryShape Lc df XH true fTail @@ -399,7 +399,7 @@ glyph-block Letter-Cyrillic-Yeri : begin include : RevYeri.Shape CAP create-glyph 'cyrl/DjeKomi' 0x502 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -409,8 +409,8 @@ glyph-block Letter-Cyrillic-Yeri : begin right -- df.rightSB ybegin -- CAP yend -- (CAP / 2) - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) + ada -- (SmallArchDepthA * 0.6 * df.adws) + adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- df.mvs if SLAB : begin include : HSerif.mt df.middle CAP Jut df.mvs diff --git a/packages/font-glyphs/src/letter/cyrillic/yu.ptl b/packages/font-glyphs/src/letter/cyrillic/yu.ptl index b991812084..12959c919c 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yu.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yu.ptl @@ -22,9 +22,9 @@ glyph-block Letter-Cyrillic-Yu : begin local divSub : (df.width - gap - df.mvs) / Width local subDf : DivFrame divSub 2 - local shift : Width * (df.div - divSub) + local shift : Width * (df.adws - divSub) include : with-transform [ApparentTranslate shift 0] - OShape top 0 subDf.leftSB subDf.rightSB df.mvs (ada * 0.7 * df.div) (adb * 0.7 * df.div) + OShape top 0 subDf.leftSB subDf.rightSB df.mvs (ada * 0.7 * df.adws) (adb * 0.7 * df.adws) include : if (slabType === SLAB-BULGARIAN) Iotified.ascender df xtop (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (top / 2) @@ -36,7 +36,7 @@ glyph-block Letter-Cyrillic-Yu : begin local divSub : (df.width - gap - df.mvs) / Width local subDf : DivFrame divSub 2 - include : OShape top 0 subDf.leftSB subDf.rightSB df.mvs (ada * 0.7 * df.div) (adb * 0.7 * df.div) + include : OShape top 0 subDf.leftSB subDf.rightSB df.mvs (ada * 0.7 * df.adws) (adb * 0.7 * df.adws) local useItalicShape : slabType !== SLAB-ALL && para.isItalic local slabTop : if useItalicShape SLAB-NONE SLAB-FULL @@ -50,17 +50,17 @@ glyph-block Letter-Cyrillic-Yu : begin fTail -- fTail create-glyph 'cyrl/Yu' 0x42E : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : CyrYuShape df SLAB-ALL CAP CAP ArchDepthA ArchDepthB create-glyph 'cyrl/yu' 0x44E : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : CyrYuShape df SLAB-LOWER XH XH SmallArchDepthA SmallArchDepthB create-glyph 'cyrl/yu.BGR' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.b include : CyrYuShape df SLAB-BULGARIAN XH Ascender SmallArchDepthA SmallArchDepthB @@ -70,11 +70,11 @@ glyph-block Letter-Cyrillic-Yu : begin foreach { suffix fTail } [Object.entries YuRevConfig] : do if [not fTail] : create-glyph "cyrl/YuRev.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : CyrRevYuShape df SLAB-ALL CAP CAP ArchDepthA ArchDepthB fTail create-glyph "cyrl/yuRev.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : CyrRevYuShape df SLAB-LOWER XH XH SmallArchDepthA SmallArchDepthB fTail diff --git a/packages/font-glyphs/src/letter/cyrillic/zhe.ptl b/packages/font-glyphs/src/letter/cyrillic/zhe.ptl index 0f13a2032e..e1188fd766 100644 --- a/packages/font-glyphs/src/letter/cyrillic/zhe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/zhe.ptl @@ -11,10 +11,10 @@ glyph-block Letter-Cyrillic-Zhe : begin glyph-block-export Zhe define Zhe : namespace - define [ZheSw df] : AdviceStroke 3.3 df.div - define [ZheSw2 df] : AdviceStroke 4.0 df.div - define [ZheSw3 df] : AdviceStroke 3.7 df.div - define [Overshoot fSlab df] : if fSlab 0 : O * 3 * df.div + define [ZheSw df] : AdviceStroke 3.3 df.adws + define [ZheSw2 df] : AdviceStroke 4.0 df.adws + define [ZheSw3 df] : AdviceStroke 3.7 df.adws + define [Overshoot fSlab df] : if fSlab 0 : O * 3 * df.adws define [CenterBar fSlab df bot top midTop] : glyph-proc define fine : ZheSw df @@ -80,7 +80,7 @@ glyph-block Letter-Cyrillic-Zhe : begin export : define [CurlyLegs fSlab fHalf df bot top] : begin define fine : ZheSw df define fine2 : ZheSw3 df - define overshoot : if fSlab 0 : 2 * O * df.div + define overshoot : if fSlab 0 : 2 * O * df.adws define attach1X : df.middle - [HSwToV : 0.5 * fine] define attach1Y : mix bot top : if fSlab 0.325 0.375 @@ -152,7 +152,7 @@ glyph-block Letter-Cyrillic-Zhe : begin export : define [CursiveLegs fSlab fHalf df bot top] : begin define fine : ZheSw df - define fine2 : AdviceStroke 4.2 df.div + define fine2 : AdviceStroke 4.2 df.adws define midX : mix df.leftSB (df.middle - [HSwToV : 0.5 * fine]) 0.4 define midY : mix bot top 0.5 define overshoot : Overshoot fSlab df @@ -189,27 +189,27 @@ glyph-block Letter-Cyrillic-Zhe : begin foreach { suffix { legShape fSlab fMidSlab } } [Object.entries ZheConfig] : do create-glyph "cyrl/Zhe.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : Zhe.Shape legShape fSlab fMidSlab df 0 CAP CAP create-glyph "cyrl/ZheDescender.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3 + local df : DivFrame para.advanceScaleM 3 include [refer-glyph "cyrl/Zhe.\(suffix)"] AS_BASE ALSO_METRICS include : Zhe.Descender fSlab df create-glyph "cyrl/zhe.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : Zhe.Shape legShape fSlab fMidSlab df 0 XH XH create-glyph "cyrl/zheDescender.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3 + local df : DivFrame para.advanceScaleM 3 include [refer-glyph "cyrl/zhe.\(suffix)"] AS_BASE ALSO_METRICS include : Zhe.Descender fSlab df create-glyph "cyrl/zhe.BGR.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.b include : Zhe.Shape legShape fSlab fMidSlab df 0 XH Ascender diff --git a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl index d8ecc960d8..1b9fbd50e9 100644 --- a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl @@ -16,7 +16,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin 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 + glyph-block-import Letter-Shared-Shapes : RetroflexHook CyrDescender glyph-block-import Letter-Shared-Shapes : UpwardHookShape RhoticHookShape define SLAB-NONE 0 @@ -265,9 +265,9 @@ glyph-block Letter-Greek-Lower-Epsilon : begin zeNoO.ShapeMask create-glyph "cyrl/zeRhoticHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 1 + local df : include : DivFrame para.advanceScaleM 1 include : df.markSet.e - local divSub : Math.min 1 : 0.85 * para.diversityM + local divSub : Math.min 1 : 0.85 * para.advanceScaleM local dfSub : DivFrame divSub 2 local stroke : AdviceStroke2 2 3 XH divSub local ze : CyrZe slabTop slabBot XH 0 @@ -293,7 +293,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin include : CyrDescender.rSideJut (RightSB - OX * 2) 0 create-glyph "cyrl/ZjeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -309,15 +309,15 @@ glyph-block Letter-Greek-Lower-Epsilon : begin right -- df.rightSB ybegin -- [YSmoothMidR (midy + stroke / 2) 0] yend -- (CAP / 2) - ada -- (ArchDepthA * 0.6 * df.div) - adb -- (ArchDepthB * 0.6 * df.div) + ada -- (ArchDepthA * 0.6 * df.adws) + adb -- (ArchDepthB * 0.6 * df.adws) sw -- stroke include : ze.AutoStartSerifL local sf2 : [SerifFrame.fromDf df (CAP / 2) 0].slice 1 2 if SLAB : include sf2.rt.full create-glyph "cyrl/zjeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -333,8 +333,8 @@ glyph-block Letter-Greek-Lower-Epsilon : begin right -- df.rightSB ybegin -- [YSmoothMidR (midy + stroke / 2) 0] yend -- (XH / 2) - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) + ada -- (SmallArchDepthA * 0.6 * df.adws) + adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- stroke include : ze.AutoStartSerifL local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2 diff --git a/packages/font-glyphs/src/letter/greek/lower-gamma.ptl b/packages/font-glyphs/src/letter/greek/lower-gamma.ptl index f1c8b10fec..e4cb7fb921 100644 --- a/packages/font-glyphs/src/letter/greek/lower-gamma.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-gamma.ptl @@ -40,8 +40,8 @@ glyph-block Letter-Greek-Lower-Gamma : begin local xMid : [mix SB RightSB 0.46] + [HSwToV : 0.46 * swEqv] local xStart : SB + [HSwToV : 0.4 * swEqv] - include : HBar.t (xStart - BBD) (xStart + (cor - 1) * BBD) XH BBS - include : HBar.b (xMid - BBD) (xMid) Descender BBS + include : HBar.t (xStart - BBD) (xStart + (cor - 1) * BBD) XH BBS + include : HBar.b (xMid - BBD) (xMid) Descender BBS foreach {ob ot} [items-of {{ 0 (cor - 1) } { (-1) (-1) }}] : include : dispiro g4 (xStart + ot * BBD) XH [widths.rhs.heading BBS Downward] diff --git a/packages/font-glyphs/src/letter/greek/lower-omega.ptl b/packages/font-glyphs/src/letter/greek/lower-omega.ptl index 47b292cda8..61de64f0da 100644 --- a/packages/font-glyphs/src/letter/greek/lower-omega.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-omega.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Greek-Lower-Omega : begin glyph-block-import Common-Derivatives define [LowerOmegaShape df top p1 p2] : glyph-proc - local fine : AdviceStroke 3 df.div + local fine : AdviceStroke 3 df.adws local mfine : fine * CThin local x0 : mix df.leftSB df.rightSB 0.1 local y0 : top - O @@ -34,12 +34,12 @@ glyph-block Letter-Greek-Lower-Omega : begin curl (df.middle - [HSwToV : mfine - fine / 2]) y4 [heading Upward] create-glyph 'grek/omega' 0x3C9 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : LowerOmegaShape df XH 0.5 0.65 create-glyph 'grek/pomega' 0x3D6 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : union @@ -49,7 +49,7 @@ glyph-block Letter-Greek-Lower-Omega : begin MaskAbove XH create-glyph 'closeomega' 0x277 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e local fine : AdviceStroke 3 local mfine : fine * CThin @@ -71,7 +71,7 @@ glyph-block Letter-Greek-Lower-Omega : begin curl (df.middle - [HSwToV : mfine - fine / 2]) y4 [heading Upward] create-glyph 'latn/Omega' 0xA7B6 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : LowerOmegaShape df CAP 0.5 0.65 diff --git a/packages/font-glyphs/src/letter/greek/phi.ptl b/packages/font-glyphs/src/letter/greek/phi.ptl index b20354dbbb..1c9f4e3981 100644 --- a/packages/font-glyphs/src/letter/greek/phi.ptl +++ b/packages/font-glyphs/src/letter/greek/phi.ptl @@ -11,17 +11,16 @@ glyph-block Letter-Greek-Phi : begin glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors ExtendBelowBaseAnchors glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagTail OBarLeft OBarRight - define [VarPhiRing fFlatTB df y2 y3] : glyph-proc + define [VarPhiRing fFlatTB df y2 y3 ada adb] : glyph-proc include : VBar.m df.middle y2 y3 df.mvs include : if fFlatTB - OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs df.archDepthA df.archDepthB + OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs ada adb Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV df.mvs - OShape y3 y2 df.leftSB df.rightSB df.mvs df.archDepthA df.archDepthB + OShape y3 y2 df.leftSB df.rightSB df.mvs ada adb - define [CyrlEfSplitRing fFlatTB df y2 y3] : glyph-proc - local subDf : df.slice 3 2 OX + define [CyrlEfSplitRing fFlatTB df y2 y3 ada adb] : glyph-proc include : VBar.m df.middle y2 y3 df.mvs - include : union + include : let [subDf : df.slice 3 2 OX] : union OBarRight.shape top -- y3 bot -- y2 @@ -39,7 +38,7 @@ glyph-block Letter-Greek-Phi : begin ada -- subDf.smallArchDepthA adb -- subDf.smallArchDepthB - define [GrekLowerPhiCursiveRing fFlatTB df y2 y3] : glyph-proc + define [GrekLowerPhiCursiveRing fFlatTB df y2 y3 ada adb] : glyph-proc local l : df.leftSB + OX * 2 local r : df.width - l include : dispiro @@ -61,8 +60,8 @@ glyph-block Letter-Greek-Phi : begin define [CursiveBar df y1 y2 y3 y4 sw] : glyph-proc local hd : FlatHookDepth df - local xCrossLeft : mix 0 df.leftSB : mix 1 df.div 2 - local xCrossRight : mix df.width df.rightSB : mix 1 df.div 2 + local xCrossLeft : mix 0 df.leftSB : mix 1 df.adws 2 + local xCrossRight : mix df.width df.rightSB : mix 1 df.adws 2 local xBarLeft : df.middle - [HSwToV : 0.5 * sw] local xBarRight : df.middle + [HSwToV : 0.5 * sw] @@ -84,7 +83,7 @@ glyph-block Letter-Greek-Phi : begin define [DiagonalTailCursiveBar df y1 y2 y3 y4 sw] : glyph-proc local hd : FlatHookDepth df - local xCrossRight : mix df.width df.rightSB : mix 1 df.div 2 + local xCrossRight : mix df.width df.rightSB : mix 1 df.adws 2 local xBarLeft : df.middle - [HSwToV : 0.5 * sw] include : dispiro @@ -96,7 +95,7 @@ glyph-block Letter-Greek-Phi : begin include : dispiro flat df.middle (y2 - O) [widths.center.heading sw Downward] - DiagTail.L df.middle y1 [DiagTail.StdDepth [DivFrame para.diversityF] sw] sw + DiagTail.L df.middle y1 [DiagTail.StdDepth [DivFrame para.advanceScaleF] sw] sw define [MtSerif df y sw] : tagged 'serifMT' : HSerif.lt df.middle y Jut sw define [MbSerif df y sw] : tagged 'serifMB' : HSerif.mb df.middle y Jut sw @@ -104,7 +103,7 @@ glyph-block Letter-Greek-Phi : begin define [GrekCapitalPhiImpl fFlatTB df] : glyph-proc local y2 : mix [if SLAB Stroke 0] [if SLAB (CAP - Stroke) CAP] 0.125 local y3 : mix [if SLAB Stroke 0] [if SLAB (CAP - Stroke) CAP] 0.875 - include : VarPhiRing fFlatTB df y2 y3 + include : VarPhiRing fFlatTB df y2 y3 df.archDepthA df.archDepthB include : StraightBar df 0 y2 y3 CAP if SLAB : begin @@ -112,17 +111,17 @@ glyph-block Letter-Greek-Phi : begin include : tagged 'serifMB' : HSerif.mb df.middle 0 MidJutSide create-glyph 'grek/Phi' 0x3A6 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : GrekCapitalPhiImpl false df create-glyph 'cyrl/Ef' 0x424 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : GrekCapitalPhiImpl true df create-glyph 'cyrl/Ef.BGR' : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital local yExt : Math.max (LongVJut - QuarterStroke) : if SLAB (1.5 * Stroke) 0 @@ -133,7 +132,7 @@ glyph-block Letter-Greek-Phi : begin include : ExtendAboveBaseAnchors top include : ExtendBelowBaseAnchors bot - include : VarPhiRing true df 0 CAP + include : VarPhiRing true df 0 CAP df.archDepthA df.archDepthB include : StraightBar df bot 0 CAP top if SLAB : begin @@ -141,33 +140,33 @@ glyph-block Letter-Greek-Phi : begin include : tagged 'serifMB' : HSerif.mb df.middle bot MidJutSide create-glyph 'taillessphi' 0x2C77 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e - include : GrekLowerPhiCursiveRing false df 0 XH + include : GrekLowerPhiCursiveRing false df 0 XH df.smallArchDepthA df.smallArchDepthB create-glyph 'grek/phi.cursive' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.p - include : GrekLowerPhiCursiveRing false df 0 XH + include : GrekLowerPhiCursiveRing false df 0 XH df.smallArchDepthA df.smallArchDepthB include : VBar.m df.middle Descender (0.2 * df.mvs) create-glyph 'grek/phi.straight' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.bp - include : VarPhiRing false df 0 XH + include : VarPhiRing false df 0 XH df.smallArchDepthA df.smallArchDepthB include : StraightBar df Descender 0 XH Ascender create-glyph 'grek/phi.neohellenic' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.p - include : VarPhiRing false df 0 XH + include : VarPhiRing false df 0 XH df.smallArchDepthA df.smallArchDepthB include : VBar.m df.middle Descender (0.2 * df.mvs) select-variant 'grek/phi' 0x3C6 alias 'grek/varphi' 0x3D5 'grek/phi.straight' create-glyph 'latn/phi' 0x278 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include [refer-glyph 'grek/varphi'] AS_BASE ALSO_METRICS if SLAB : begin @@ -176,8 +175,8 @@ glyph-block Letter-Greek-Phi : begin define CyrlLowerEfConfig : SuffixCfg.weave object # bowl - "" { VarPhiRing Stroke para.diversityM } - splitBowl { CyrlEfSplitRing nothing para.diversityMM } + "" { VarPhiRing Stroke para.advanceScaleM } + splitBowl { CyrlEfSplitRing nothing para.advanceScaleMM } object # bar serifless { StraightBar nothing nothing } topSerifed { StraightBar MtSerif nothing } @@ -185,11 +184,11 @@ glyph-block Letter-Greek-Phi : begin cursive { CursiveBar nothing nothing } diagonalTailedCursive { DiagonalTailCursiveBar nothing nothing } - foreach { suffix { { Bowl barSw div } { Bar sMT sMB } } } [Object.entries CyrlLowerEfConfig] : do + foreach { suffix { { Bowl barSw adws } { Bar sMT sMB } } } [Object.entries CyrlLowerEfConfig] : do create-glyph "cyrl/ef.\(suffix)" : glyph-proc - local df : include : DivFrame div 3 + local df : include : DivFrame adws 3 include : df.markSet.bp - include : Bowl true df 0 XH + include : Bowl true df 0 XH df.smallArchDepthA df.smallArchDepthB local vs : fallback barSw df.mvs include : Bar df Descender 0 XH Ascender vs if sMT : include : sMT df Ascender vs diff --git a/packages/font-glyphs/src/letter/greek/pi.ptl b/packages/font-glyphs/src/letter/greek/pi.ptl index 928043cb4f..32831dbeed 100644 --- a/packages/font-glyphs/src/letter/greek/pi.ptl +++ b/packages/font-glyphs/src/letter/greek/pi.ptl @@ -26,26 +26,16 @@ glyph-block Letter-Greek-Pi : begin local sf : SerifFrame top bottom (df.leftSB + shrink) (df.rightSB - shrink) (swRef -- fine) include : composite-proc sf.lt.outer sf.rt.outer sf.lb.full sf.rb.full - 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 - 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 - create-glyph 'grek/Pi' 0x3A0 : glyph-proc include : MarkSet.capital include : PiShape [DivFrame 1] CAP 0 (shrinkRate -- 0) (doSerif -- SLAB) + alias 'cyrl/Pe' 0x41F 'grek/Pi' create-glyph 'grek/smcpPi' 0x1D28 : glyph-proc include : MarkSet.e include : PiShape [DivFrame 1] XH 0 (shrinkRate -- 0) (doSerif -- SLAB) - create-glyph 'mathbb/grek/Pi' 0x213F : glyph-proc - include : MarkSet.capital - include : MathBBPiShape [DivFrame 1] CAP 0 (shrinkRate -- 0) - create-glyph 'cyrl/pe.upright' : glyph-proc include : MarkSet.e include : PiShape [DivFrame 1] XH 0 (shrinkRate -- 0) (doSerif -- SLAB) @@ -68,10 +58,6 @@ glyph-block Letter-Greek-Pi : begin select-variant 'grek/pi' 0x3C0 - create-glyph 'mathbb/grek/pi' 0x213C : glyph-proc - include : MarkSet.e - include : MathBBPiShape [DivFrame 1] XH 0 (shrinkRate -- 0.06) - define [CyrlPeHookShape df top] : glyph-proc local xm : df.middle + [HSwToV : 0.5 * df.mvs] include : HBar.t df.leftSB xm top df.mvs @@ -94,11 +80,26 @@ glyph-block Letter-Greek-Pi : begin include sf.rb.outer create-glyph 'cyrl/PeMidHook' 0x4A6 : glyph-proc - define df : include : DivFrame para.diversityMM 3 + define df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capDesc include : CyrlPeHookShape df CAP create-glyph 'cyrl/peMidHook.upright' : glyph-proc - define df : include : DivFrame para.diversityMM 3 + define df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.p include : CyrlPeHookShape df XH + + 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 + 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 + + create-glyph 'mathbb/grek/Pi' 0x213F : glyph-proc + include : MarkSet.capital + include : MathBBPiShape [DivFrame 1] CAP 0 (shrinkRate -- 0) + + create-glyph 'mathbb/grek/pi' 0x213C : glyph-proc + include : MarkSet.e + include : MathBBPiShape [DivFrame 1] XH 0 (shrinkRate -- 0.06) diff --git a/packages/font-glyphs/src/letter/greek/psi.ptl b/packages/font-glyphs/src/letter/greek/psi.ptl index 1abf070f66..7a93ad40bf 100644 --- a/packages/font-glyphs/src/letter/greek/psi.ptl +++ b/packages/font-glyphs/src/letter/greek/psi.ptl @@ -14,11 +14,11 @@ glyph-block Letter-Greek-Psi : begin include : dispiro widths.lhs df.mvs flat df.leftSB y3 [heading Downward] - curl df.leftSB (y2 + (ArchDepthB * df.div)) + curl df.leftSB (y2 + (ArchDepthB * df.adws)) arcvh g4 df.middle y2 [heading Rightward] archv - flat df.rightSB (y2 + (ArchDepthA * df.div)) + flat df.rightSB (y2 + (ArchDepthA * df.adws)) curl df.rightSB y3 [heading Upward] include : VBar.m df.middle y2 y4 df.mvs include : VBar.m df.middle y1 (y2 + HalfStroke) @@ -29,14 +29,14 @@ glyph-block Letter-Greek-Psi : begin if doBotSerif : include : tagged 'serifMB' : HSerif.mb df.middle 0 MidJutSide create-glyph 'grek/Psi' 0x3A8 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : PsiBaseShape df 0 (CAP * 0.3) CAP CAP SLAB (SLAB && (df.width > para.refJut * 7)) SLAB SLAB alias 'cyrl/Psi' 0x470 'grek/Psi' create-glyph 'smcpPsi' 0x1D2A : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.advanceScaleT 3 include : df.markSet.e include : PsiBaseShape df 0 (XH * 0.3) XH XH SLAB false SLAB SLAB @@ -50,7 +50,7 @@ glyph-block Letter-Greek-Psi : begin foreach { suffix { top slab } } [Object.entries GrekLowerPsiConfig] : do create-glyph "grek/psi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.[if (top > XH) 'bp' 'p'] include : PsiBaseShape df Descender 0 XH top false false slab false diff --git a/packages/font-glyphs/src/letter/greek/sampi.ptl b/packages/font-glyphs/src/letter/greek/sampi.ptl index f72c46a086..319e0518f3 100644 --- a/packages/font-glyphs/src/letter/greek/sampi.ptl +++ b/packages/font-glyphs/src/letter/greek/sampi.ptl @@ -17,12 +17,12 @@ glyph-block Letter-Greek-Arachaic-Sampi : begin if (fDoSerifs && SLAB) : include : HSerif.mb df.middle 0 MidJutSide create-glyph 'grek/SampiArchaic' 0x372 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : SampiShape df CAP 0 true create-glyph 'grek/sampiArchaic' 0x373 : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.p include : SampiShape df XH Descender false diff --git a/packages/font-glyphs/src/letter/greek/upper-gamma.ptl b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl index 5bfd02a54c..02f4892090 100644 --- a/packages/font-glyphs/src/letter/greek/upper-gamma.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl @@ -1,6 +1,7 @@ $$include '../../meta/macros.ptl' import [mix linreg clamp fallback] from "@iosevka/util" +import [Point] from "@iosevka/geometry/point" import [MathSansSerif] from "@iosevka/glyph/relation" import [DesignParameters] from "../../meta/aesthetics.mjs" @@ -9,7 +10,7 @@ glyph-module glyph-block Letter-Greek-Upper-Gamma: begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : CyrDescender MidHook + glyph-block-import Letter-Shared-Shapes : CyrDescender MidHook LegShape glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook glyph-block-import Letter-Blackboard : BBS BBD BBBarLeft glyph-block-import Letter-Latin-Upper-F : xMidBarShrink @@ -23,8 +24,8 @@ glyph-block Letter-Greek-Upper-Gamma: begin define GammaBarLeft : SB * 1.5 define [GammaShape top bot slabType] : glyph-proc include : LeaningAnchor.Below.VBar.l GammaBarLeft - include : VBar.l GammaBarLeft bot top - include : HBar.t (GammaBarLeft - O) (RightSB - OX) top + include : tagged 'strokeV' : VBar.l GammaBarLeft bot top + include : tagged 'strokeH' : HBar.t (GammaBarLeft - O) (RightSB - OX) top match slabType [Just SLAB-ALL] : begin include : HSerif.lt GammaBarLeft top SideJut @@ -95,13 +96,21 @@ glyph-block Letter-Greek-Upper-Gamma: begin eject-contour 'serifRT' include : VBar.r (RightSB - OX) CAP (CAP + LongVJut - QuarterStroke) VJutStroke - create-glyph "cyrl/ge.\(suffix)" : glyph-proc + create-glyph "cyrl/ge.upright.\(suffix)" : glyph-proc include : MarkSet.e include : ExtendAboveBaseAnchors (XH + LongVJut - QuarterStroke) include : GammaShape XH 0 slabType eject-contour 'serifRT' include : VBar.r (RightSB - OX) XH (XH + LongVJut - QuarterStroke) VJutStroke - if para.isItalic : eject-contour 'serifLB' + + create-glyph "cyrl/ge.italic.\(suffix)" : glyph-proc + include [refer-glyph "cyrl/ge.upright.\(suffix)"] AS_BASE ALSO_METRICS + eject-contour 'serifLB' + eject-contour 'strokeV' + include : LegShape + ztop -- [Point.fromXY Point.Type.Corner GammaBarLeft XH] + zbot -- [Point.fromXY Point.Type.Corner [mix SB 0 : if doST 1 0.75] 0] + xb -- GammaBarLeft create-glyph "cyrl/GheMidHook.\(suffix)" : glyph-proc include [refer-glyph "grek/Gamma.\(suffix)"] AS_BASE ALSO_METRICS @@ -135,9 +144,10 @@ glyph-block Letter-Greek-Upper-Gamma: begin select-variant 'cyrl/ghe.upright' select-variant 'cyrl/gheDescender.upright' (follow -- 'cyrl/ghe.upright') select-variant 'cyrl/gheDHook.upright' (follow -- 'cyrl/ghe.upright') - select-variant 'grek/smcpGamma' 0x1D26 (shapeFrom -- 'cyrl/ghe.upright') (follow -- 'grek/Gamma') - select-variant 'cyrl/ge' 0x491 + select-variant 'cyrl/ge.upright' (follow -- 'cyrl/ge') + select-variant 'cyrl/ge.italic' (follow -- 'cyrl/ge') select-variant 'cyrl/gheMidHook' 0x495 (follow -- 'cyrl/ghe.upright') + select-variant 'grek/smcpGamma' 0x1D26 (shapeFrom -- 'cyrl/ghe.upright') (follow -- 'grek/Gamma') select-variant 'grek/Digamma' 0x3DC (follow -- 'grek/Gamma') diff --git a/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl b/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl index a676fedda3..e3767e373a 100644 --- a/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/archaic-m.ptl @@ -37,6 +37,6 @@ glyph-block Letter-Latin-Archaic-M : begin include : difference sf.rt.full [MaskLeft : mix cl cr 0.7] create-glyph "ArchaicM" 0xA7FF : glyph-proc - local df : include : DivFrame [mix 1 para.diversityMM 1.5] 4.5 + local df : include : DivFrame [mix 1 para.advanceScaleMM 1.5] 4.5 include : df.markSet.capital include : ArchaicMShape df CAP 0 diff --git a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl index a957440410..0fc4f52765 100644 --- a/packages/font-glyphs/src/letter/latin-ext/ezh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl @@ -185,9 +185,9 @@ glyph-block Letter-Latin-Ezh : begin yAttach -- SHook create-glyph "ezhPalatalHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 1 + local df : include : DivFrame para.advanceScaleM 1 include : df.markSet.p - local dfSub : DivFrame (0.75 * para.diversityM) 2 + local dfSub : DivFrame (0.75 * para.advanceScaleM) 2 local [object yMidBar] : include : EzhShape dfSub XH Descender isCursive -- isCursive isSerifed -- isSerifed 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 688a21a1e0..7a0abc14e0 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 @@ -10,7 +10,7 @@ glyph-block Letter-Latin-Flattened-Open-A : begin glyph-block-import Common-Derivatives create-glyph 'flattenedOpena' : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e local top : 0.5 * XH diff --git a/packages/font-glyphs/src/letter/latin-ext/gha.ptl b/packages/font-glyphs/src/letter/latin-ext/gha.ptl index f90f0c469f..62ce15b0b3 100644 --- a/packages/font-glyphs/src/letter/latin-ext/gha.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/gha.ptl @@ -21,8 +21,8 @@ glyph-block Letter-Latin-Gha : begin local divSub : (df.width - gap - df.mvs) / Width local subDf : DivFrame divSub 2 - local ada : _ada * 0.7 * df.div - local adb : _adb * 0.7 * df.div + local ada : _ada * 0.7 * df.adws + local adb : _adb * 0.7 * df.adws include : OShape top 0 subDf.leftSB subDf.rightSB df.mvs ada adb include : match terminal [Just TERMINAL-NORMAL] : VBar.r (df.rightSB - O) bot top df.mvs @@ -47,13 +47,13 @@ glyph-block Letter-Latin-Gha : begin foreach { suffix { terminal doSerif } } [Object.entries GhaConfig] : do create-glyph "Gha.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capDesc include : GhaShape df terminal CAP Descender ArchDepthA ArchDepthB doSerif include : LeaningAnchor.Below.VBar.r (df.rightSB - O) create-glyph "gha.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.p include : GhaShape df terminal XH Descender SmallArchDepthA SmallArchDepthB doSerif include : LeaningAnchor.Below.VBar.r (df.rightSB - O) diff --git a/packages/font-glyphs/src/letter/latin-ext/hwair.ptl b/packages/font-glyphs/src/letter/latin-ext/hwair.ptl index 9916c13962..6246bf205a 100644 --- a/packages/font-glyphs/src/letter/latin-ext/hwair.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/hwair.ptl @@ -18,18 +18,18 @@ glyph-block Letter-Latin-Hwair : begin foreach { suffix { serifLT serifLB } } [pairs-of Variants] : do create-glyph "hwair.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.b include : LeaningAnchor.Above.VBar.l df.leftSB include : VBar.l df.leftSB 0 Ascender df.mvs include : dispiro - nShoulder.knots (df.leftSB + [HSwToV df.mvs]) (df.middle + [HSwToV : 0.5 * df.mvs]) (df.mvs * 0.4) nothing (XH * 0.51) (SmallArchDepthA * 0.6 * df.div) (SmallArchDepthB * 0.6 * df.div) df.mvs + nShoulder.knots (df.leftSB + [HSwToV df.mvs]) (df.middle + [HSwToV : 0.5 * df.mvs]) (df.mvs * 0.4) nothing (XH * 0.51) (SmallArchDepthA * 0.6 * df.adws) (SmallArchDepthB * 0.6 * df.adws) df.mvs flat (df.middle + [HSwToV : 0.5 * df.mvs]) (XH * 0.5) [heading Downward] - curl (df.middle + [HSwToV : 0.5 * df.mvs]) (SmallArchDepthB * 0.6 * df.div) + curl (df.middle + [HSwToV : 0.5 * df.mvs]) (SmallArchDepthB * 0.6 * df.adws) arcvh g4 [mix (df.middle - [HSwToV : 0.5 * df.mvs]) df.rightSB 0.5] O [widths.heading df.mvs 0 Rightward] archv - flat df.rightSB (SmallArchDepthA * 0.6 * df.div) + flat df.rightSB (SmallArchDepthA * 0.6 * df.adws) curl df.rightSB XH [heading Upward] do "slabs" 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 e063e1496a..e9781ea3b0 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 @@ -49,13 +49,13 @@ glyph-block Letter-Latin-Lower-AE-OE : begin foreach { suffix { bodyR hookStyle } } [Object.entries DoubleStoreyConfig] : do create-glyph "ae/a.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : AAShape DoubleStorey.ToothlessRounded hookStyle 0 df 0 create-glyph "aa.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e local [left] : AAShape DoubleStorey.ToothlessRounded hookStyle 0 df @@ -85,24 +85,24 @@ glyph-block Letter-Latin-Lower-AE-OE : begin subDf.archDepthBOf ad df.mvs create-glyph 'oe/o' : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : oeOPart 0 df XH SmallArchDepth create-glyph 'ao/o' : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 set-mark-anchor 'cvDecompose' 0 0 include : oeOPart 1 df XH SmallArchDepth create-glyph 'OO/left' : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 include : oeOPart 0 df CAP ArchDepth create-glyph 'OO/right' : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 set-mark-anchor 'cvDecompose' 0 0 include : oeOPart 1 df CAP ArchDepth @@ -132,13 +132,13 @@ glyph-block Letter-Latin-Lower-AE-OE : begin foreach { suffix { body revbody } } [Object.entries Config] : do create-glyph "ae/e.\(suffix)" : glyph-proc - local df : DivFrame para.diversityMM 3 + local df : DivFrame para.advanceScaleMM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : EShape 1 df body create-glyph "aeInvE/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityMM 3 + local df : DivFrame para.advanceScaleMM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : InvEShape 1 df revbody @@ -146,7 +146,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin do "u subglyphs" glyph-block-import Letter-Latin-U : UShapeGroup SmallUConfigT - define df : DivFrame para.diversityMM 3 + define df : DivFrame para.advanceScaleMM 3 define { subDf shift } : SubDfAndShift 1 df 0 define sg : UShapeGroup subDf.smallArchDepthA subDf.smallArchDepthB @@ -194,20 +194,20 @@ glyph-block Letter-Latin-Lower-AE-OE : begin foreach { suffix { sty styBot } } [Object.entries CConfig] : do create-glyph "oeOpenO/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : openOShape df sty styBot create-glyph "cyrl/este.upright/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3.5 + local df : include : DivFrame para.advanceScaleMM 3.5 local subDfLeft : df.slice 3.25 1.875 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : EsTeLeftShape subDfLeft styBot create-glyph "cyrl/este.italic/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 4.75 + local df : include : DivFrame para.advanceScaleMM 4.75 local subDfLeft : df.slice 4.5 2 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 @@ -223,7 +223,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin if [not fTailed] : begin create-glyph "cyrl/yae/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 @@ -247,7 +247,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin glyph-block-import Letter-Latin-Lower-P : PConfig foreach { suffix { Body {Serifs doTS doBS} }} [Object.entries PConfig] : do create-glyph "cyrl/rha/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.p local subDf : df.slice 3 2 set-base-anchor 'cvDecompose' 0 0 @@ -279,7 +279,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin local stroke1f : if (stroke1 == 3) 4 stroke1 local lf : XLetterForm df top bot stroke1f stroke2 turn tension sw -- df.mvs - swCursiveEnd -- [AdviceStroke 3 df.div] + swCursiveEnd -- [AdviceStroke 3 df.adws] swCursiveCoEnd -- df.mvs swCursiveMid -- df.mvs include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.base fMaskBase @@ -292,13 +292,13 @@ glyph-block Letter-Latin-Lower-AE-OE : begin __ : glyph-proc create-glyph "cyrl/rha/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3 + local df : DivFrame para.advanceScaleM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : halfLetterShape df XH 0 0.1 0.20 create-glyph "cyrl/lha/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3.2 + local df : DivFrame para.advanceScaleM 3.2 set-width 0 set-mark-anchor 'cvDecompose' 0 0 @@ -306,7 +306,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : with-transform [ApparentTranslate shift 0] : LhaRightLetterShape subDf XH 0 0.1 0.20 create-glyph "cyrl/Lha/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3.2 + local df : DivFrame para.advanceScaleM 3.2 set-width 0 set-mark-anchor 'cvDecompose' 0 0 @@ -332,7 +332,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin foreach { suffix { doST doSB } } [Object.entries TConfig] : do create-glyph "cyrl/este.upright/right.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3.5 + local df : include : DivFrame para.advanceScaleMM 3.5 local subDfLeft : df.slice 3.25 1.875 local subdfRight : df.restCompact 1 subDfLeft 2 @@ -345,7 +345,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin glyph-block-import Letter-Latin-Lower-M : mShapeBodyImpl SmallMConfig foreach { suffix { {Body earless} {shortLeg} {tailed} {Serifs} } } [pairs-of SmallMConfig] : do create-glyph "cyrl/este.italic/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityMM 4.75 + local df : DivFrame para.advanceScaleMM 4.75 local subDfLeft : df.slice 4.5 2 local subdfRight : df.restCompact 0.5 subDfLeft 3 set-width 0 @@ -356,14 +356,14 @@ glyph-block Letter-Latin-Lower-AE-OE : begin do "El subglyphs" glyph-block-import Letter-Cyrillic-El : CyrElShape create-glyph 'cyrl/Lha/left' : glyph-proc - local df : include : DivFrame para.diversityM 3.2 + local df : include : DivFrame para.advanceScaleM 3.2 include : df.markSet.capital local { subDf } : SubDfAndShiftEx 6 3 0 df set-base-anchor 'cvDecompose' 0 0 include : CyrElShape subDf.leftSB (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) CAP 0 [if SLAB 4 0] df.mvs create-glyph 'cyrl/lha/left' : glyph-proc - local df : include : DivFrame para.diversityM 3.2 + local df : include : DivFrame para.advanceScaleM 3.2 include : df.markSet.e local { subDf } : SubDfAndShiftEx 6 3 0 df set-base-anchor 'cvDecompose' 0 0 @@ -374,14 +374,14 @@ glyph-block Letter-Latin-Lower-AE-OE : begin create-glyph "rightHalfSlashOverlay" : glyph-proc local fine : 0.375 * OverlayStroke - local df : DivFrame para.diversityMM 3 + local df : DivFrame para.advanceScaleMM 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] curl (shift + subDf.rightSB - OX - fine) [mix 0 XH 1.05] create-glyph "rightHalfBarOverlay" : glyph-proc - local df : DivFrame para.diversityMM 3 + local df : DivFrame para.advanceScaleMM 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 @@ -397,12 +397,12 @@ glyph-block Letter-Latin-Lower-AE-OE : begin create-glyph "OODots.\(suffix)" : glyph-proc set-width 0 set-mark-anchor 'slash' 0 0 0 0 - local df : DivFrame para.diversityMM 3 + local df : DivFrame para.advanceScaleMM 3 include : OODots df 2 (DrawAt === DotAt) kdr create-glyph "ooDots.\(suffix)" : glyph-proc set-width 0 set-mark-anchor 'slash' 0 0 0 0 - local df : DivFrame para.diversityMM 3 + local df : DivFrame para.advanceScaleMM 3 include : OODots df 1.5 (DrawAt === DotAt) kdr select-variant "aa" 0xA733 (follow -- 'a/doubleStorey') @@ -437,8 +437,8 @@ glyph-block Letter-Latin-Lower-AE-OE : begin alias 'cyrl/oo' 0xA699 'oo' - CreateTurnedLetter 'turnae' 0x1D02 'ae' HalfAdvance (XH / 2) [DivFrame para.diversityMM 3] - CreateTurnedLetter 'turnoe' 0x1D14 'oe' HalfAdvance (XH / 2) [DivFrame para.diversityMM 3] + CreateTurnedLetter 'turnae' 0x1D02 'ae' HalfAdvance (XH / 2) [DivFrame para.advanceScaleMM 3] + CreateTurnedLetter 'turnoe' 0x1D14 'oe' HalfAdvance (XH / 2) [DivFrame para.advanceScaleMM 3] derive-composites 'turnoeSlashO' 0xAB41 'turnoe' 'rightHalfSlashOverlay' derive-composites 'turnoeBarO' 0xAB42 'turnoe' 'rightHalfBarOverlay' @@ -462,7 +462,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin glyph-block-export BuildRha define [BuildRha srcs] : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.p local {ra ha} srcs 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 0f85c48771..f985e15329 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 @@ -28,7 +28,7 @@ glyph-block Letter-Latin-Lower-DB-QP : begin adb -- subDf.smallArchDepthB create-glyph 'db' 0x238 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.b include : DbCenterShape df include : VBar.m df.middle XH Ascender df.mvs @@ -36,7 +36,7 @@ glyph-block Letter-Latin-Lower-DB-QP : begin include : HSerif.lt (df.middle - [HSwToV : 0.5 * df.mvs]) Ascender SideJut create-glyph 'qp' 0x239 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.p include : DbCenterShape df include : FlipAround df.middle (XH / 2) 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 a18dbc1cb2..dd7b9e4e92 100644 --- a/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl @@ -15,7 +15,7 @@ glyph-block Letter-Latin-Sakha-Yat : begin 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.adws] local fEnoughSpaceForFullSerifs : df.width > 7 * para.refJut if [not fEnoughSpaceForFullSerifs] : eject-contour 'serifYeriLB' @@ -23,7 +23,7 @@ glyph-block Letter-Latin-Sakha-Yat : begin foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do create-glyph "latn/yatSakha.upright.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : SakhaYatShape Lc df XH 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 32de987cea..dc2aee9a35 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 @@ -30,46 +30,46 @@ glyph-block Letter-Latin-Upper-AA-AO : begin define SLAB-RIGHT 4 define ALetters : object - AA { 0xA732 para.diversityMM 'capital' CAP } - smcpAA { null para.diversityM 'e' XH } + AA { 0xA732 para.advanceScaleMM 'capital' CAP } + smcpAA { null para.advanceScaleM 'e' XH } - foreach { prefix { code div mk height } } [Object.entries ALetters] : do + foreach { prefix { code adws mk height } } [Object.entries ALetters] : do foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do define skLeft : maskOffBits slabKind SLAB-RIGHT define skRight : maskOffBits slabKind SLAB-LEFT create-glyph "\(prefix)/Left.\(suffix)" : glyph-proc - define df : include : DivFrame div 3.5 + define df : include : DivFrame adws 3.5 include : df.markSet.(mk) set-base-anchor 'cvDecompose' 0 0 include : AHalfShape 0 df height bodyShape skLeft create-glyph "\(prefix)/LeftMask.\(suffix)" : glyph-proc - define df : include : DivFrame div 3.5 + define df : include : DivFrame adws 3.5 include : df.markSet.(mk) set-base-anchor 'cvDecompose' 0 0 include : AHalfShapeMask 0 df height bodyShape skLeft create-glyph "\(prefix)/Right.\(suffix)" : glyph-proc - define df : DivFrame div 3.5 + define df : DivFrame adws 3.5 set-width 0 include : df.markSet.(mk) set-mark-anchor 'cvDecompose' 0 0 0 0 include : AHalfShape 1 df height bodyShape skRight create-glyph "\(prefix)/RightMask.\(suffix)" : glyph-proc - define df : DivFrame div 3.5 + define df : DivFrame adws 3.5 set-width 0 include : df.markSet.(mk) set-mark-anchor 'cvDecompose' 0 0 0 0 include : AHalfShapeMask 1 df height bodyShape skRight create-glyph "\(prefix)/AU/Left.\(suffix)" : glyph-proc - define df : include : DivFrame div 3.5 + define df : include : DivFrame adws 3.5 local { subDf shift } : SubDfAndShift 1 df include : AShape.LetterBottomRightRemoved subDf bodyShape slabKind CAP df.mvs create-glyph "\(prefix)/AU/LeftMask.\(suffix)" : glyph-proc - define df : include : DivFrame div 3.5 + define df : include : DivFrame adws 3.5 local { subDf shift } : SubDfAndShift 1 df include : union MaskAbove : [AShape.BarPos bodyShape slabKind CAP] - df.mvs @@ -84,7 +84,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin derive-multi-part-glyphs prefix code list "\(prefix)/Left" "\(prefix)/LeftMask" "\(prefix)/Right" "\(prefix)/RightMask" function [srcs gr] : glyph-proc - define df : DivFrame div 3.5 + define df : DivFrame adws 3.5 define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) : AdviceStroke 6 define { left leftMask right rightMask } srcs @@ -101,7 +101,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin do "AO" 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 df : DivFrame para.advanceScaleMM 3.5 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 @@ -111,7 +111,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin glyph-block-import Letter-Latin-U : CapitalUConfig foreach { suffix { Base {Slabs fLTSlab} } } [Object.entries CapitalUConfig] : do create-glyph "AU/Right.\(suffix)" : glyph-proc - define df : DivFrame para.diversityMM 3.5 + define df : DivFrame para.advanceScaleMM 3.5 local { subDf shift } : SubDfAndShift 1 df include : with-transform [ApparentTranslate shift 0] union [Base subDf CAP df.mvs] [Slabs subDf CAP] @@ -123,7 +123,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin select-variant 'AA/AU/LeftMask' (follow -- 'A') derive-multi-part-glyphs 'AU' 0xA736 {'AA/AU/Left' 'AA/AU/LeftMask' 'AU/Right'} function [srcs gr] : glyph-proc - define df : include : DivFrame para.diversityMM 3.5 + define df : include : DivFrame para.advanceScaleMM 3.5 local { subDf shift } : SubDfAndShift 1 df include : df.markSet.capital define { left mask right } srcs @@ -142,7 +142,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin local fSlabBot : slabs && slabs !== PShape.SlabMotion create-glyph "cyrl/Rha/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 local subDf : df.sliceFine 3 2 0.575 @@ -163,7 +163,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin __ : glyph-proc create-glyph "cyrl/Rha/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3 + local df : DivFrame para.advanceScaleM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : letterShape df CAP 0 0.1 0.28 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 32dcfad518..64f61d9139 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 @@ -19,10 +19,10 @@ glyph-block Letter-Latin-Upper-AE-OE : begin define SLAB-E-ALL 2 define SLAB-E-CAPPED 3 - define [AESW df top] : Math.min df.mvs : AdviceStroke2 3 3 top df.div + define [AESW df top] : Math.min df.mvs : AdviceStroke2 3 3 top df.adws define [AEAHalfCurly df top eleft sw] : glyph-proc - define fine : AdviceStroke2 3 4 top df.div + define fine : AdviceStroke2 3 4 top df.adws # A half include : dispiro @@ -55,7 +55,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin define vxStartL : df.leftSB * StraightSbShrink define vxEndL : df.middle - [HSwToV : 0.75 * sw] define dgCor : DiagCor top (df.width / 2) 0 (sw * 2) - define midSW : dgCor * [Math.min [mix sw fine pInktrap] [AdviceStroke 3 df.div]] + define midSW : dgCor * [Math.min [mix sw fine pInktrap] [AdviceStroke 3 df.adws]] include : dispiro widths.rhs (sw * dgCor) @@ -87,7 +87,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin straight.right.end eleft top [heading Rightward] define [AEAHalfSerifs df top slabKind] : glyph-proc - define sw : Math.min df.mvs : AdviceStroke2 3 3 top df.div + define sw : Math.min df.mvs : AdviceStroke2 3 3 top df.adws define eleft : df.middle - [HSwToV : 0.25 * sw] match slabKind ([Just SLAB-A-BASE] || [Just SLAB-A-TRI]) : begin @@ -141,7 +141,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin if [not fTailed] : begin create-glyph "cyrl/Yae/left.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital local sw : AESW df CAP local bp : RBarPos CAP fSlabBot @@ -178,24 +178,24 @@ glyph-block Letter-Latin-Upper-AE-OE : begin foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do create-glyph "AE/AHalf.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityMM 3 + define df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 include : AEAHalf df bodyShape CAP slabKind create-glyph "smcpAE/AHalf.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e set-base-anchor 'cvDecompose' 0 0 include : AEAHalf df bodyShape XH slabKind foreach { suffix { slabKind } } [Object.entries EConfig] : do create-glyph "AE/EHalf.\(suffix)" : glyph-proc - define df : DivFrame para.diversityMM 3 + define df : DivFrame para.advanceScaleMM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : AEEHalf df CAP slabKind create-glyph "smcpAE/EHalf.\(suffix)" : glyph-proc - define df : DivFrame para.diversityM 3 + define df : DivFrame para.advanceScaleM 3 set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : AEEHalf df XH slabKind @@ -213,7 +213,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin define [OEShape top df slabKind] : glyph-proc define eBarPos DesignParameters.upperEBarPos - define sw : Math.min df.mvs : AdviceStroke2 3 3 top df.div + define sw : Math.min df.mvs : AdviceStroke2 3 3 top df.adws define eleft : df.middle - [HSwToV : sw * [if SLAB (1 / 3) (1 / 4)]] define swVJut : Math.min sw : (df.rightSB - eleft - [HSwToV sw]) * (4 / 5) @@ -250,11 +250,11 @@ glyph-block Letter-Latin-Upper-AE-OE : begin foreach { suffix { slabKind } } [Object.entries EConfig] : do create-glyph "OE.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityMM 3 + define df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : OEShape CAP df slabKind create-glyph "smcpOE.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3 + define df : include : DivFrame para.advanceScaleM 3 include : df.markSet.e include : OEShape XH df slabKind diff --git a/packages/font-glyphs/src/letter/latin/c.ptl b/packages/font-glyphs/src/letter/latin/c.ptl index e0a6ee0a96..ee94e6d386 100644 --- a/packages/font-glyphs/src/letter/latin/c.ptl +++ b/packages/font-glyphs/src/letter/latin/c.ptl @@ -10,8 +10,7 @@ glyph-block Letter-Latin-C : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors ExtendBelowBaseAnchors LeaningAnchor glyph-block-import Letter-Shared : CreateAccentedComposition CreateDependentComposite CreateTurnedLetter - glyph-block-import Letter-Shared-Shapes : SerifFrame CurlyTail DToothlessRise - glyph-block-import Letter-Shared-Shapes : SerifedArcStart SerifedArcEnd + glyph-block-import Letter-Shared-Shapes : SerifFrame CurlyTail SerifedArcStart SerifedArcEnd glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart InwardSlabArcEnd glyph-block-import Letter-Shared-Shapes : ArcStartSerif ArcEndSerif glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook RetroflexHook TopHook @@ -211,7 +210,7 @@ glyph-block Letter-Latin-C : begin include : Translate 0 (SB / 2) create-glyph "cyrl/esWide.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.advanceScaleT 3 include : df.markSet.e local desc : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors desc @@ -300,10 +299,13 @@ glyph-block Letter-Latin-C : begin link-reduced-variant 'c/sansSerif' 'c' MathSansSerif link-reduced-variant 'c/turnDescBase' 'c' (follow -- 'cHookTop') select-variant 'revc' 0x2184 (follow -- 'c') + select-variant 'c/centKernelStd' (follow -- 'c') select-variant 'c/centKernelCap' (follow -- 'c') + alias 'cyrl/es' 0x441 'c' alias 'grek/lunateSmallSigma' 0x3F2 'c.serifless' + select-variant 'turncSideways' 0x1D12 (follow -- 'c') select-variant 'cyrl/esWide' 0x1C83 (follow -- 'c') @@ -323,6 +325,7 @@ glyph-block Letter-Latin-C : begin CreateTurnedLetter 'turnC' 0x186 'C' HalfAdvance (CAP / 2) CreateTurnedLetter 'turnc' 0x254 'c' HalfAdvance (XH / 2) CreateTurnedLetter 'turnSmcpC' 0x1D10 'smcpC' HalfAdvance (XH / 2) + alias 'grek/revLunateSigma' 0x3FD 'revC' alias 'grek/revLunateSmallSigma' 0x37B 'revc.serifless' diff --git a/packages/font-glyphs/src/letter/latin/k.ptl b/packages/font-glyphs/src/letter/latin/k.ptl index 1fd1e40f57..91799a28a8 100644 --- a/packages/font-glyphs/src/letter/latin/k.ptl +++ b/packages/font-glyphs/src/letter/latin/k.ptl @@ -450,7 +450,7 @@ glyph-block Letter-Latin-K : begin define [BashkirKaShape df top] : glyph-proc local left : if SLAB [mix df.leftSB df.rightSB 0.35] - [HSwToV : 0.5 * df.mvs] - mix df.leftSB df.rightSB : if (df.div > 1) 0.25 0.2 + mix df.leftSB df.rightSB : if (df.adws > 1) 0.25 0.2 local leftNB : left - [KBalance SLAB straightBar] local xTopBarLeftEnd : mix 0 df.leftSB : if SLAB 0.25 0.375 local sw : AdviceStroke 3 @@ -465,12 +465,12 @@ glyph-block Letter-Latin-K : begin if slabLB : include : UpperKLBSerif top sw left slabLB create-glyph "cyrl/KaBashkir.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityT + define df : include : DivFrame para.advanceScaleT include : df.markSet.capital include : BashkirKaShape df CAP create-glyph "cyrl/kaBashkir.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityT + define df : include : DivFrame para.advanceScaleT include : df.markSet.e include : BashkirKaShape df XH diff --git a/packages/font-glyphs/src/letter/latin/lower-a.ptl b/packages/font-glyphs/src/letter/latin/lower-a.ptl index 8ed62f22f5..8c0b63cd69 100644 --- a/packages/font-glyphs/src/letter/latin/lower-a.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-a.ptl @@ -11,12 +11,12 @@ glyph-block Letter-Latin-Lower-A : begin glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Letter-Shared : CreateAccentedComposition CreateTurnedLetter glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight ArcStartSerif - glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend - glyph-block-import Letter-Shared-Shapes : RetroflexHook InwardSlabArcStart + glyph-block-import Letter-Shared-Shapes : RightwardTailedBar RetroflexHook + glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart glyph-block-export DoubleStorey define DoubleStorey : namespace - define [ADoubleStoreyStroke df] : AdviceStroke2 2 3 XH df.div + define [ADoubleStoreyStroke df] : AdviceStroke2 2 3 XH df.adws define [ADoubleStoreySmoothA df] : begin local sw : ADoubleStoreyStroke df return : df.archDepthAOf (ArchDepth * [StrokeWidthBlend 0.9 0.81 sw]) sw diff --git a/packages/font-glyphs/src/letter/latin/lower-b.ptl b/packages/font-glyphs/src/letter/latin/lower-b.ptl index b28a55e8ee..c1862fa703 100644 --- a/packages/font-glyphs/src/letter/latin/lower-b.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-b.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-B : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : LeaningAnchor - glyph-block-import Letter-Shared-Shapes : OBarLeft DToothlessRise DMBlend TopHook + glyph-block-import Letter-Shared-Shapes : OBarLeft TopHook glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook define [ToothedBody yTop] : union diff --git a/packages/font-glyphs/src/letter/latin/lower-d.ptl b/packages/font-glyphs/src/letter/latin/lower-d.ptl index 03004d1d00..b2132da0bf 100644 --- a/packages/font-glyphs/src/letter/latin/lower-d.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-d.ptl @@ -11,9 +11,9 @@ glyph-block Letter-Latin-Lower-D : begin glyph-block-import Mark-Shared-Metrics : markExtend glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared : CreateCommaCaronComposition - glyph-block-import Letter-Shared-Shapes : OBarRight RightwardTailedBar DToothlessRise DMBlend - glyph-block-import Letter-Shared-Shapes : CurlyTail LetterBarOverlay SerifFrame - glyph-block-import Letter-Shared-Shapes : UpwardHookShape PalatalHook RetroflexHook TopHook + glyph-block-import Letter-Shared-Shapes : OBarRight RightwardTailedBar CurlyTail + glyph-block-import Letter-Shared-Shapes : LetterBarOverlay SerifFrame UpwardHookShape + glyph-block-import Letter-Shared-Shapes : PalatalHook RetroflexHook TopHook define [ToothedBody df yTop] : union OBarRight.shape @@ -124,7 +124,7 @@ glyph-block Letter-Latin-Lower-D : begin include : LeaningAnchor.Above.VBar.r df.rightSB if [not bottomSerif] : create-glyph "cyrl/djeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.b local dfHalf : df.slice 3 2 @@ -136,8 +136,8 @@ glyph-block Letter-Latin-Lower-D : begin right -- dfHalf.rightSB ybegin -- Ascender yend -- (XH / 2) - ada -- [dfHalf.archDepthAOf SmallArchDepth df.mvs] - adb -- [dfHalf.archDepthBOf SmallArchDepth df.mvs] + ada -- (SmallArchDepthA * 0.6 * df.adws) + adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- df.mvs if topSerif : include : topSerif dfHalf Ascender @@ -146,17 +146,15 @@ glyph-block Letter-Latin-Lower-D : begin include sf2.rt.full select-variant 'd' 'd' - select-variant 'dCaronBase' (follow -- 'd') - select-variant 'dStroke' 0x111 (follow -- 'd') - select-variant 'latn/de' 0x18C (follow -- 'd') - alias 'cyrl/deKomi' 0x501 'd' link-reduced-variant 'd/sansSerif' 'd' MathSansSerif link-reduced-variant 'd/phoneticLeft' 'd' - link-reduced-variant 'd/hookBottomBase' 'd' + select-variant 'dCaronBase' (follow -- 'd') + select-variant 'dStroke' 0x111 (follow -- 'd') + select-variant 'latn/de' 0x18C (follow -- 'd') select-variant 'dHookTop' 0x257 - link-reduced-variant 'dHookTop/hookBottomBase' 'dHookTop' + alias 'cyrl/deKomi' 0x501 'd' select-variant 'cyrl/djeKomi' 0x503 link-reduced-variant 'd/descBase' 'd' @@ -165,11 +163,13 @@ glyph-block Letter-Latin-Lower-D : begin x -- (RightSB + SideJut) y -- 0 + link-reduced-variant 'd/hookBottomBase' 'd' derive-glyphs 'dHookBottom' 0x256 "d/hookBottomBase" : function [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS include : RetroflexHook.rExt RightSB 0 include : LeaningAnchor.Below.VBar.r RightSB + link-reduced-variant 'dHookTop/hookBottomBase' 'dHookTop' derive-glyphs 'dHookTopBottom' 0x1D91 "dHookTop/hookBottomBase" : function [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS include : RetroflexHook.rExt RightSB 0 @@ -215,7 +215,6 @@ glyph-block Letter-Latin-Lower-D : begin select-variant 'dCurlyTail' 0x221 - glyph-block-import Letter-Blackboard : BBS BBD BBBarRight create-glyph 'mathbb/d' 0x1D555 : glyph-proc include : MarkSet.b diff --git a/packages/font-glyphs/src/letter/latin/lower-e.ptl b/packages/font-glyphs/src/letter/latin/lower-e.ptl index 1585090e47..6e30981175 100644 --- a/packages/font-glyphs/src/letter/latin/lower-e.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-e.ptl @@ -130,10 +130,10 @@ glyph-block Letter-Latin-Lower-E : begin include : Body subDf top stroke -- stroke barpos -- barpos - ada -- (ada * 0.7 * df.div) - adb -- (adb * 0.7 * df.div) + ada -- (ada * 0.7 * df.adws) + adb -- (adb * 0.7 * df.adws) tailSlab -- tailSlab - define shift : Width * (df.div - divSub) + define shift : Width * (df.adws - divSub) if fDesc : begin local desc : (-LongVJut) + QuarterStroke include : ExtendBelowBaseAnchors desc @@ -222,7 +222,7 @@ glyph-block Letter-Latin-Lower-E : begin include : RetroflexHook.r x -- RightSB y -- 0 - yAttach -- AHook + yAttach -- DToothlessRise create-glyph "Schwa.\(suffix)" : glyph-proc include : MarkSet.capital @@ -236,9 +236,9 @@ glyph-block Letter-Latin-Lower-E : begin include : FlipAround Middle (XH / 2) create-glyph "schwaRhoticHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 1 + local df : include : DivFrame para.advanceScaleM 1 include : df.markSet.e - local divSub : Math.min 1 : 0.85 * para.diversityM + local divSub : Math.min 1 : 0.85 * para.advanceScaleM local dfSub : DivFrame divSub 2 local stroke : AdviceStroke2 2 3 XH divSub include : Body dfSub XH @@ -249,9 +249,9 @@ glyph-block Letter-Latin-Lower-E : begin 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 + local df : include : DivFrame para.advanceScaleM 1 include : df.markSet.e - local divSub : Math.min 1 : 0.85 * para.diversityM + local divSub : Math.min 1 : 0.85 * para.advanceScaleM local dfSub : DivFrame divSub 2 local stroke : AdviceStroke2 2 3 XH divSub include : Body dfSub XH @@ -280,7 +280,7 @@ glyph-block Letter-Latin-Lower-E : begin DefineSelectorGlyph "cyrl/Schwa" suffix [DivFrame 1] 'capital' DefineSelectorGlyph "cyrl/schwa" suffix [DivFrame 1] 'e' - define abkCheDf : DivFrame para.diversityM 3 + define abkCheDf : DivFrame para.advanceScaleM 3 DefineSelectorGlyph "cyrl/abk/Che" suffix abkCheDf 'capital' DefineSelectorGlyph "cyrl/abk/che" suffix abkCheDf 'e' diff --git a/packages/font-glyphs/src/letter/latin/lower-f.ptl b/packages/font-glyphs/src/letter/latin/lower-f.ptl index 4dce418aeb..02a9dd4721 100644 --- a/packages/font-glyphs/src/letter/latin/lower-f.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-f.ptl @@ -24,8 +24,8 @@ glyph-block Letter-Latin-Lower-F : begin set-base-anchor 'palatalHookPos' r 0 define [NarrowBottomSerif df] : glyph-proc - include : HSerif.mb df.middle 0 (LongJut * df.div) - set-base-anchor 'palatalHookPos' (df.middle + LongJut * df.div + HalfStroke * TanSlope) 0 + include : HSerif.mb df.middle 0 (LongJut * df.adws) + set-base-anchor 'palatalHookPos' (df.middle + LongJut * df.adws + HalfStroke * TanSlope) 0 define [StdFShapeT sink df offset barleft sw] : sink widths.lhs sw @@ -134,8 +134,8 @@ glyph-block Letter-Latin-Lower-F : begin define CH-HOOK 3 define CH-DIAGONAL-HOOK 4 - define dfNarrowF : DivFrame para.diversityF - define pNarrowSide : mix 1 para.diversityF 1.5 + define dfNarrowF : DivFrame para.advanceScaleF + define pNarrowSide : mix 1 para.advanceScaleF 1.5 define SmallFConfig : SuffixCfg.weave object # body diff --git a/packages/font-glyphs/src/letter/latin/lower-g.ptl b/packages/font-glyphs/src/letter/latin/lower-g.ptl index 2ae6c43f5e..a5360eb6eb 100644 --- a/packages/font-glyphs/src/letter/latin/lower-g.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-g.ptl @@ -10,8 +10,8 @@ glyph-block Letter-Latin-Lower-G : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors LeaningAnchor glyph-block-import Letter-Shared : CreateTurnedLetter - glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight DToothlessRise DMBlend - glyph-block-import Letter-Shared-Shapes : FlatHookDepth CurlyTail PalatalHook TopHook + glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight FlatHookDepth + glyph-block-import Letter-Shared-Shapes : CurlyTail PalatalHook TopHook define [OverlayW bw] : glyph-proc define l : mix 0 SB 0.3 @@ -104,7 +104,7 @@ glyph-block Letter-Latin-Lower-G : begin flat (df.rightSB - hd.x) Descender curl xTerminal Descender export : define [CrossedHook df y0] : begin - local fine : AdviceStroke 3.5 df.div + local fine : AdviceStroke 3.5 df.adws return : dispiro widths.rhs df.mvs flat df.rightSB y0 [heading Downward] @@ -178,10 +178,10 @@ glyph-block Letter-Latin-Lower-G : begin include : hookShape df (CAP - hookStart) create-glyph "gPalatalHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 1 + local df : include : DivFrame para.advanceScaleM 1 include : df.markSet.p set-base-anchor 'overlay' Middle (XH / 2) - local dfSub : DivFrame (0.75 * para.diversityM) 2 + local dfSub : DivFrame (0.75 * para.advanceScaleM) 2 include : bodyShape dfSub XH include : hookShape dfSub (XH - hookStart) include : PalatalHook.r diff --git a/packages/font-glyphs/src/letter/latin/lower-il.ptl b/packages/font-glyphs/src/letter/latin/lower-il.ptl index dce165c77f..eec830214f 100644 --- a/packages/font-glyphs/src/letter/latin/lower-il.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-il.ptl @@ -18,7 +18,7 @@ glyph-block Letter-Latin-Lower-I : begin ########################################################################################### # Implementations - define [TailedDotlessIShift df] : (1 - df.div) * 0.2 + define [TailedDotlessIShift df] : (1 - df.adws) * 0.2 define XMiddle : namespace define [FlatTailedImpl df addTopSerif] : df.middle - [if addTopSerif 0 : IBalance2 df] @@ -51,14 +51,14 @@ glyph-block Letter-Latin-Lower-I : begin export : define [HookyBottom df top xMiddle] : glyph-proc include : VBar.m xMiddle 0 top df.mvs - include : tagged 'serifRB' : HSerif.rb xMiddle 0 (LongJut * df.div) Stroke df.mvs - set-base-anchor 'trailing' (xMiddle + LongJut * df.div) 0 + include : tagged 'serifRB' : HSerif.rb xMiddle 0 (LongJut * df.adws) Stroke df.mvs + set-base-anchor 'trailing' (xMiddle + LongJut * df.adws) 0 export : define [Serifed df top xMiddle] : glyph-proc include : VBar.m xMiddle 0 top df.mvs include : tagged 'serifB' - HSerif.mb df.middle 0 (LongJut * df.div) - set-base-anchor 'trailing' (df.middle + LongJut * df.div) 0 + HSerif.mb df.middle 0 (LongJut * df.adws) + set-base-anchor 'trailing' (df.middle + LongJut * df.adws) 0 export : define [Tailed df top xMiddle] : glyph-proc local fine : AdviceStroke 3 @@ -66,8 +66,8 @@ glyph-block Letter-Latin-Lower-I : begin local left : xMiddle - [HSwToV : 0.5 * df.mvs] local right : mix df.leftSB df.rightSB (1.1 - shift) local rightTerm : Math.max right (left + [HSwToV : df.mvs + 1.1 * fine]) (left + [HSwToV df.mvs] + HookX) - local middle : mix left right (0.55 * df.div) - local hookDepth : Math.max (df.mvs * 0.9) (Hook * [StrokeWidthBlend 0.85 1] * df.div) + local middle : mix left right (0.55 * df.adws) + local hookDepth : Math.max (df.mvs * 0.9) (Hook * [StrokeWidthBlend 0.85 1] * df.adws) include : dispiro widths.lhs df.mvs flat left top [heading Downward] @@ -80,7 +80,7 @@ glyph-block Letter-Latin-Lower-I : begin set-base-anchor 'palatalHookMask' [mix left rightTerm 0.5] (HalfStroke + O) export : define [FlatTailed df top xMiddle] : glyph-proc - local tailLength : LongJut * 1.05 * [mix 1 df.div 0.75] + local tailLength : LongJut * 1.05 * [mix 1 df.adws 0.75] local hd : FlatHookDepth df define xFinal : xMiddle + [Math.max tailLength : hd.x - [HSwToV : 0.5 * df.mvs] + 1] + 0.5 * df.mvs * TanSlope @@ -95,10 +95,10 @@ glyph-block Letter-Latin-Lower-I : begin set-base-anchor 'trailing' xFinal 0 export : define [SemiTailed df top xMiddle] : glyph-proc - local tailLength : LongJut * 1.05 * [mix 1 df.div 0.75] - 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 tailLength : LongJut * 1.05 * [mix 1 df.adws 0.75] + local hookScaleX : mix 1 df.adws 0.5 + local hookScaleY : mix 1 df.adws 1.25 + local x0 : mix (0.5 * df.mvs) (0.5 * df.mvs + (Hook - df.mvs + 1) * 0.85 * df.adws + [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 @@ -132,13 +132,13 @@ 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.adws]] (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 - export : define [HookyShort df top xMiddle] : HSerif.lt xMiddle top [mix Jut (LongJut * df.div) 0.5] Stroke df.mvs - export : define [Serifed df top xMiddle] : HSerif.lt xMiddle top ((LongJut * df.div) - (xMiddle - df.middle)) Stroke df.mvs - export : define [SerifedShort df top xMiddle] : HSerif.lt xMiddle top [mix Jut ((LongJut * df.div) - (xMiddle - df.middle)) 0.5] Stroke df.mvs + export : define [Hooky df top xMiddle] : HSerif.lt xMiddle top (LongJut * df.adws) Stroke df.mvs + export : define [HookyShort df top xMiddle] : HSerif.lt xMiddle top [mix Jut (LongJut * df.adws) 0.5] Stroke df.mvs + export : define [Serifed df top xMiddle] : HSerif.lt xMiddle top ((LongJut * df.adws) - (xMiddle - df.middle)) Stroke df.mvs + export : define [SerifedShort df top xMiddle] : HSerif.lt xMiddle top [mix Jut ((LongJut * df.adws) - (xMiddle - df.middle)) 0.5] Stroke df.mvs define [calcPhoneticHookPos g] : begin local attach : if g.baseAnchors.trailing @@ -155,35 +155,35 @@ glyph-block Letter-Latin-Lower-I : begin define SmallILConfig : object # Normal - 'serifless' { Body.Serifless null Marks.Serifless XMiddle.Center para.diversityII 0 } - 'hooky' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Hooky para.diversityI 0 } - 'hookyBottom' { Body.HookyBottom null Marks.Serifless XMiddle.HookyBottom para.diversityI Stroke } - 'zshaped' { Body.HookyBottom Serifs.Hooky Marks.Serifed XMiddle.Center para.diversityI Stroke } - 'zshapedAsymmetric' { Body.HookyBottom Serifs.HookyShort Marks.Serifed XMiddle.Center para.diversityI Stroke } - 'serifed' { Body.Serifed Serifs.Serifed Marks.Serifed XMiddle.Serifed para.diversityI Stroke } - 'serifedAsymmetric' { Body.Serifed Serifs.SerifedShort Marks.Serifed XMiddle.Serifed para.diversityI Stroke } - 'tailed' { Body.Tailed null Marks.Serifless XMiddle.Tailed para.diversityI Stroke } - 'tailedSerifed' { Body.Tailed Serifs.Hooky Marks.Serifed XMiddle.TailedSerifed para.diversityI Stroke } - 'flatTailed' { Body.FlatTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } - 'serifedFlatTailed' { Body.FlatTailed Serifs.Hooky Marks.Serifed XMiddle.SerifedFlatTailed para.diversityI Stroke } - 'diagonalTailed' { Body.DiagTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } - 'serifedDiagonalTailed' { Body.DiagTailed Serifs.Hooky Marks.Serifed XMiddle.SerifedFlatTailed para.diversityI Stroke } - 'semiTailed' { Body.SemiTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } - 'serifedSemiTailed' { Body.SemiTailed Serifs.Hooky Marks.Serifed XMiddle.SerifedFlatTailed para.diversityI Stroke } + 'serifless' { Body.Serifless null Marks.Serifless XMiddle.Center para.advanceScaleII 0 } + 'hooky' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Hooky para.advanceScaleI 0 } + 'hookyBottom' { Body.HookyBottom null Marks.Serifless XMiddle.HookyBottom para.advanceScaleI Stroke } + 'zshaped' { Body.HookyBottom Serifs.Hooky Marks.Serifed XMiddle.Center para.advanceScaleI Stroke } + 'zshapedAsymmetric' { Body.HookyBottom Serifs.HookyShort Marks.Serifed XMiddle.Center para.advanceScaleI Stroke } + 'serifed' { Body.Serifed Serifs.Serifed Marks.Serifed XMiddle.Serifed para.advanceScaleI Stroke } + 'serifedAsymmetric' { Body.Serifed Serifs.SerifedShort Marks.Serifed XMiddle.Serifed para.advanceScaleI Stroke } + 'tailed' { Body.Tailed null Marks.Serifless XMiddle.Tailed para.advanceScaleI Stroke } + 'tailedSerifed' { Body.Tailed Serifs.Hooky Marks.Serifed XMiddle.TailedSerifed para.advanceScaleI Stroke } + 'flatTailed' { Body.FlatTailed null Marks.Serifless XMiddle.FlatTailed para.advanceScaleI Stroke } + 'serifedFlatTailed' { Body.FlatTailed Serifs.Hooky Marks.Serifed XMiddle.SerifedFlatTailed para.advanceScaleI Stroke } + 'diagonalTailed' { Body.DiagTailed null Marks.Serifless XMiddle.FlatTailed para.advanceScaleI Stroke } + 'serifedDiagonalTailed' { Body.DiagTailed Serifs.Hooky Marks.Serifed XMiddle.SerifedFlatTailed para.advanceScaleI Stroke } + 'semiTailed' { Body.SemiTailed null Marks.Serifless XMiddle.FlatTailed para.advanceScaleI Stroke } + 'serifedSemiTailed' { Body.SemiTailed Serifs.Hooky Marks.Serifed XMiddle.SerifedFlatTailed para.advanceScaleI Stroke } # Decompressed - 'hookyDec' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Hooky para.diversityI 0 } - 'seriflessDec' { Body.Serifless null Marks.Serifless XMiddle.Center para.diversityI 0 } - 'tailedDec' { Body.Tailed null Marks.Serifless XMiddle.Tailed para.diversityI Stroke } - 'flatTailedDec' { Body.FlatTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } - 'diagonalTailedDec' { Body.DiagTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } - 'semiTailedDec' { Body.SemiTailed null Marks.Serifless XMiddle.FlatTailed para.diversityI Stroke } - 'hookyBottomDec' { Body.HookyBottom null Marks.Serifless XMiddle.HookyBottom para.diversityI Stroke } + 'hookyDec' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Hooky para.advanceScaleI 0 } + 'seriflessDec' { Body.Serifless null Marks.Serifless XMiddle.Center para.advanceScaleI 0 } + 'tailedDec' { Body.Tailed null Marks.Serifless XMiddle.Tailed para.advanceScaleI Stroke } + 'flatTailedDec' { Body.FlatTailed null Marks.Serifless XMiddle.FlatTailed para.advanceScaleI Stroke } + 'diagonalTailedDec' { Body.DiagTailed null Marks.Serifless XMiddle.FlatTailed para.advanceScaleI Stroke } + 'semiTailedDec' { Body.SemiTailed null Marks.Serifless XMiddle.FlatTailed para.advanceScaleI Stroke } + 'hookyBottomDec' { Body.HookyBottom null Marks.Serifless XMiddle.HookyBottom para.advanceScaleI Stroke } # R Tail - 'hookyRTail' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Center para.diversityI 0 } - 'seriflessRTail' { Body.Serifless null Marks.Serifless XMiddle.HookyBottom para.diversityI 0 } + 'hookyRTail' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Center para.advanceScaleI 0 } + 'seriflessRTail' { Body.Serifless null Marks.Serifless XMiddle.HookyBottom para.advanceScaleI 0 } # R Tail + Decompress - 'hookyRTailDec' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Center para.diversityI 0 } - 'seriflessRTailDec' { Body.Serifless null Marks.Serifless XMiddle.HookyBottom para.diversityI 0 } + 'hookyRTailDec' { Body.Serifless Serifs.Hooky Marks.Serifed XMiddle.Center para.advanceScaleI 0 } + 'seriflessRTailDec' { Body.Serifless null Marks.Serifless XMiddle.HookyBottom para.advanceScaleI 0 } # 'hookyPL' { Body.PhoneticLeft Serifs.Hooky Marks.Serifed XMiddle.PhoneticLeft 1 0 } 'seriflessPL' { Body.PhoneticLeft null Marks.Serifless XMiddle.PhoneticLeft 1 0 } @@ -195,11 +195,11 @@ glyph-block Letter-Latin-Lower-I : begin 'tau/semiTailed' { Body.SemiTailed null Marks.Serifless XMiddle.FlatTailed 1 Stroke } 'tau/shortTailed' { Body.ShortTailed null Marks.Serifless XMiddle.Center 1 Stroke } - do : foreach { suffix { Body Serif Marks xMiddleTMono div y0R } } [Object.entries SmallILConfig] : begin + do : foreach { suffix { Body Serif Marks xMiddleTMono adws y0R } } [Object.entries SmallILConfig] : begin define xMiddleT : if para.isQuasiProportional XMiddle.Center xMiddleTMono create-glyph "dotlessi.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.e local xMiddle : xMiddleT df include : Body df XH xMiddle @@ -207,7 +207,7 @@ glyph-block Letter-Latin-Lower-I : begin if Serif : include : tagged 'serifLT' : Serif df XH xMiddle create-glyph "latn/Iota.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.capital local xMiddle : xMiddleT df include : Body df CAP xMiddle @@ -215,7 +215,7 @@ glyph-block Letter-Latin-Lower-I : begin if Serif : include : tagged 'serifLT' : Serif df CAP xMiddle create-glyph "l.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.b local xMiddle : xMiddleT df include : Body df Ascender xMiddle @@ -223,13 +223,13 @@ glyph-block Letter-Latin-Lower-I : begin if Serif : include : tagged 'serifLT' : Serif df Ascender xMiddle create-glyph "lDotBase.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include [refer-glyph "l.\(suffix)"] AS_BASE include : Translate (-DotRadius / 2) 0 set-base-anchor 'cvDecompose' [Math.max (df.middle + HalfStroke + DotRadius) (df.rightSB - DotRadius)] [mix y0R Ascender 0.5] create-glyph "lRTail.\(suffix)" : glyph-proc - local df : DivFrame div + local df : DivFrame adws include [refer-glyph "l.\(suffix)"] AS_BASE ALSO_METRICS include : RetroflexHook.mExt [xMiddleT df] 0 @@ -266,12 +266,12 @@ glyph-block Letter-Latin-Lower-I : begin maskOut -- [MaskAbove maskY] create-glyph "lHighBar.\(suffix)" : glyph-proc - local df : DivFrame div + local df : DivFrame adws include [refer-glyph "l.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.m.in [xMiddleT df] XH (Ascender - [if Serif Stroke 0]) create-glyph "grek/tau.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.e local xMiddle : xMiddleT df include : Body df XH xMiddle @@ -280,14 +280,14 @@ glyph-block Letter-Latin-Lower-I : begin currentGlyph.deleteBaseAnchor 'trailing' create-glyph "cyrl/Twe/middle.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : Body df CAP [XMiddle.Center df] include : Marks df CAP [XMiddle.Center df] currentGlyph.deleteBaseAnchor 'trailing' set-mark-anchor 'cvDecompose' (df.width / 2) CAP create-glyph "cyrl/twe/middle.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : Body df XH [XMiddle.Center df] include : Marks df XH [XMiddle.Center df] currentGlyph.deleteBaseAnchor 'trailing' @@ -384,19 +384,19 @@ glyph-block Letter-Latin-Lower-I : begin CurlyTail.n fine 0 (m + LongJut) SB 0 create-glyph 'lCurlyTail.serifless' : glyph-proc - local df : include : DivFrame para.diversityI + local df : include : DivFrame para.advanceScaleI include : df.markSet.b include : CurlyTailShape df false create-glyph 'lCurlyTail.hooky' : glyph-proc - local df : include : DivFrame para.diversityI + local df : include : DivFrame para.advanceScaleI include : df.markSet.b include : CurlyTailShape df true select-variant 'lCurlyTail' 0x234 create-glyph 'looprevesh' 0x1AA : glyph-proc - local df : include : DivFrame para.diversityI + local df : include : DivFrame para.advanceScaleI include : df.markSet.bp local fine : AdviceStroke 4 include : dispiro diff --git a/packages/font-glyphs/src/letter/latin/lower-j.ptl b/packages/font-glyphs/src/letter/latin/lower-j.ptl index db72990f19..5c1e301b89 100644 --- a/packages/font-glyphs/src/letter/latin/lower-j.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-j.ptl @@ -22,7 +22,7 @@ glyph-block Letter-Latin-Lower-J : begin bar - hd.x - [Math.max (Stroke / 3) (df.width / 6)] crossLeft - OX * 2 - if serif : include : HSerif.lt barCenter top (LongJut * df.div) + if serif : include : HSerif.lt barCenter top (LongJut * df.adws) include : dispiro widths.lhs flat terminal Descender @@ -38,8 +38,8 @@ glyph-block Letter-Latin-Lower-J : begin export : define [StraightSerifless df] : begin df.middle export : define [StraightSerifed df] : df.middle + [IBalance2 df] export : define [BentHook df] : df.middle + JBalance - export : define [FlatHookSerifless df] : df.middle + 0.25 * JBalance * df.div * [mix 1 df.div 2] - export : define [FlatHookSerifed df] : df.middle + JBalance * df.div + export : define [FlatHookSerifless df] : df.middle + 0.25 * JBalance * df.adws * [mix 1 df.adws 2] + export : define [FlatHookSerifed df] : df.middle + JBalance * df.adws define Body : namespace export : define [BentHook df top xMiddle] : glyph-proc @@ -58,15 +58,15 @@ glyph-block Letter-Latin-Lower-J : begin set-base-anchor "trailing" (xMiddle + [HSwToV HalfStroke]) Descender export : define [FlatHook df top xMiddle] : glyph-proc - local dfHook : DivFrame para.diversityI - local crossLeft : df.middle - (dfHook.middle - [mix 0 dfHook.leftSB : mix 1 dfHook.div 2]) + local dfHook : DivFrame para.advanceScaleI + local crossLeft : df.middle - (dfHook.middle - [mix 0 dfHook.leftSB : mix 1 dfHook.adws 2]) include : FlatHookDotlessJShape df dfHook top crossLeft -- crossLeft barCenter -- xMiddle serif -- false export : define [DiagonalTailed df top xMiddle] : glyph-proc - local dfHook : DivFrame para.diversityI + local dfHook : DivFrame para.advanceScaleI include : dispiro widths.center flat xMiddle top [heading Downward] @@ -75,7 +75,7 @@ glyph-block Letter-Latin-Lower-J : begin define Serifs : namespace export : define [None df top xMiddle] : no-shape - export : define [Long df top xMiddle] : HSerif.lt xMiddle top (LongJut * df.div) + export : define [Long df top xMiddle] : HSerif.lt xMiddle top (LongJut * df.adws) export : define [Short df top xMiddle] : HSerif.lt xMiddle top Jut define Marks : namespace @@ -89,10 +89,10 @@ glyph-block Letter-Latin-Lower-J : begin define Div : namespace export : define BentHook 1 - export : define StraightSerifless para.diversityII - export : define StraightSerifed para.diversityI - export : define FlatHookSerifless para.diversityII - export : define FlatHookSerifed para.diversityI + export : define StraightSerifless para.advanceScaleII + export : define StraightSerifed para.advanceScaleI + export : define FlatHookSerifless para.advanceScaleII + export : define FlatHookSerifed para.advanceScaleI define JConfig : object 'bentHookSerifless' { "BentHook" Serifs.None XMiddle.BentHook Marks.Serifless Div.BentHook } @@ -108,8 +108,8 @@ glyph-block Letter-Latin-Lower-J : begin 'diagonalTailedSerifed' { "DiagonalTailed" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed } 'diagonalTailedShortSerifed' { "DiagonalTailed" Serifs.Short XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed } - foreach { suffix { shapeId Serif xMiddleT Marks div } } [Object.entries JConfig] : do - local df : DivFrame div + foreach { suffix { shapeId Serif xMiddleT Marks adws } } [Object.entries JConfig] : do + local df : DivFrame adws local xMiddle : xMiddleT df create-glyph "dotlessj.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/lower-m.ptl b/packages/font-glyphs/src/letter/latin/lower-m.ptl index 25d3b482ff..02ee7af5e8 100644 --- a/packages/font-glyphs/src/letter/latin/lower-m.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-m.ptl @@ -9,12 +9,11 @@ glyph-block Letter-Latin-Lower-M : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : LeaningAnchor - glyph-block-import Letter-Shared-Shapes : CurlyTail nShoulder - glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend MidHook - glyph-block-import Letter-Shared-Shapes : CyrDescender PalatalHook EngHook UpwardHookShape - glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Shared-Shapes : CurlyTail nShoulder RightwardTailedBar + glyph-block-import Letter-Shared-Shapes : MidHook CyrDescender PalatalHook EngHook + glyph-block-import Letter-Shared-Shapes : UpwardHookShape SerifFrame - define [SmallMSmooth df] : df.div * (0.5 * SmallArchDepth + 0.375 * Stroke) + define [SmallMSmooth df] : df.adws * (0.5 * SmallArchDepth + 0.375 * Stroke) define [SmallMShoulderSpiro] : with-params [left right top bottom width fine df coBottom] : glyph-proc local fix : TanSlope * [HSwToV Stroke] * width / Stroke local sm : [SmallMSmooth df] + fix / 2 @@ -89,7 +88,7 @@ glyph-block Letter-Latin-Lower-M : begin local sf : SerifFrame.fromDf df top rbot return sf.rb.outer - define [dfM] : DivFrame para.diversityMM 3 + define [dfM] : DivFrame para.advanceScaleMM 3 glyph-block-export MEnoughSpaceForFullSerifs define [MEnoughSpaceForFullSerifs _df _mid] : begin @@ -262,10 +261,10 @@ glyph-block Letter-Latin-Lower-M : begin include : EngHook df.rightSB 0 Descender (sw -- df.mvs) create-glyph "mCrossedTail.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3.25 + local df : include : DivFrame para.advanceScaleMM 3.25 include : df.markSet.e - local fine : AdviceStroke 4.5 df.div + local fine : AdviceStroke 4.5 df.adws local rinner : XH * 0.15 - fine * 0.75 local gap : (df.rightSB - df.leftSB - 3 * [HSwToV df.mvs] - [HSwToV fine]) / 3 local m1 : df.rightSB - [HSwToV df.mvs] @@ -282,7 +281,7 @@ glyph-block Letter-Latin-Lower-M : begin if (Body === SmallMArches && !shortLeg) : begin if (!tailed) : begin create-glyph "cyrl/tjeKomi.italic.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityMM 2] 4 + local df : include : DivFrame [mix 1 para.advanceScaleMM 2] 4 include : df.markSet.e local subDf : df.slice 4 3 0 include : Body subDf XH 0 0 (XH / 2) @@ -291,8 +290,8 @@ glyph-block Letter-Latin-Lower-M : begin right -- df.rightSB ybegin -- (XH / 2) yend -- (XH / 2) - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) + ada -- (SmallArchDepthA * 0.5 * df.adws) + adb -- (SmallArchDepthB * 0.5 * df.adws) sw -- subDf.mvs include : Serifs subDf XH 0 0 (XH / 2) true false if SLAB : begin @@ -300,7 +299,7 @@ glyph-block Letter-Latin-Lower-M : begin include sf2.rt.full create-glyph "cyrl/tje.italic/base/corner.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityMM 2] 4 + local df : include : DivFrame [mix 1 para.advanceScaleMM 2] 4 include : df.markSet.e local subDf : df.slice 4 3 0 include : Body subDf XH 0 0 (XH - SmallArchDepthB - TINY) @@ -311,7 +310,7 @@ glyph-block Letter-Latin-Lower-M : begin eject-contour 'serifRB' create-glyph "cyrl/teMidHook.italic.\(suffix)" : glyph-proc - local df : include : DivFrame [mix 1 para.diversityMM 2] 4 + local df : include : DivFrame [mix 1 para.advanceScaleMM 2] 4 include : df.markSet.e local subDf : df.slice 4 3 0 include : mShapeBody subDf XH @@ -403,7 +402,7 @@ glyph-block Letter-Latin-Lower-M : begin include : LeaningAnchor.Below.VBar.r df.rightSB create-glyph "turnmSideways.\(suffix)" : glyph-proc - local realHeight : XH * para.diversityMM + local realHeight : XH * para.advanceScaleMM local realTop : XH / 2 + realHeight / 2 local realBot : XH / 2 - realHeight / 2 local df : DivFrame (realHeight / Width) 3 (XH * 0.1 / SB) diff --git a/packages/font-glyphs/src/letter/latin/lower-n.ptl b/packages/font-glyphs/src/letter/latin/lower-n.ptl index de88c9602d..6da73c0534 100644 --- a/packages/font-glyphs/src/letter/latin/lower-n.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-n.ptl @@ -11,10 +11,9 @@ glyph-block Letter-Latin-Lower-N : begin glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared : CreateAccentedComposition - glyph-block-import Letter-Shared-Shapes : CurlyTail nShoulder - glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend MidHook - glyph-block-import Letter-Shared-Shapes : CyrDescender PalatalHook RetroflexHook EngHook - glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Shared-Shapes : CurlyTail nShoulder RightwardTailedBar + glyph-block-import Letter-Shared-Shapes : MidHook CyrDescender PalatalHook RetroflexHook + glyph-block-import Letter-Shared-Shapes : EngHook SerifFrame define [AdjustTrailingAnchor] : glyph-proc define trAnchor currentGlyph.baseAnchors.trailing @@ -216,7 +215,7 @@ glyph-block Letter-Latin-Lower-N : begin include : MarkSet.p include : Body XH SB RightSB 0 Stroke local fine : AdviceStroke 3.5 - local rinner : (-Descender - 2 * fine) / 3 + local rinner : ((-Descender) - 2 * fine) / 3 local m1 : RightSB - [HSwToV Stroke] local x2 : mix RightSB m1 0.25 local y2 : Descender + O @@ -230,9 +229,9 @@ glyph-block Letter-Latin-Lower-N : begin if sLB : include : sLB [DivFrame 1] 0 if (!tailed) : create-glyph "engPalatalHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 1 + local df : include : DivFrame para.advanceScaleM 1 include : df.markSet.p - local dfSub : DivFrame (0.75 * para.diversityM) 2 + local dfSub : DivFrame (0.75 * para.advanceScaleM) 2 include : Body XH dfSub.leftSB dfSub.rightSB 0 dfSub.mvs include : EngHook dfSub.rightSB 0 Descender (sw -- dfSub.mvs) if sLT : include : sLT dfSub XH @@ -261,7 +260,7 @@ glyph-block Letter-Latin-Lower-N : begin if sLT : include : sLT [DivFrame 1] XH create-glyph "cyrl/peMidHook.italic.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.p local dfHalf : df.slice 3 2 @@ -274,7 +273,7 @@ glyph-block Letter-Latin-Lower-N : begin include : MidHook.m df XH if (!tailed) : create-glyph "cyrl/yat.italic/base.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e local dfSub : df.slice 3 2 diff --git a/packages/font-glyphs/src/letter/latin/lower-p.ptl b/packages/font-glyphs/src/letter/latin/lower-p.ptl index 12fb6222b1..322a120408 100644 --- a/packages/font-glyphs/src/letter/latin/lower-p.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-p.ptl @@ -10,7 +10,6 @@ glyph-block Letter-Latin-Lower-P : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors LeaningAnchor glyph-block-import Letter-Shared-Shapes : OBarLeft LetterBarOverlay - glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend glyph-block-import Letter-Shared-Shapes : TopHook PalatalHook SerifFrame diff --git a/packages/font-glyphs/src/letter/latin/lower-q.ptl b/packages/font-glyphs/src/letter/latin/lower-q.ptl index 11cb4a3cfe..543f0412b2 100644 --- a/packages/font-glyphs/src/letter/latin/lower-q.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-q.ptl @@ -10,9 +10,8 @@ glyph-block Letter-Latin-Lower-Q : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Mark-Adjustment : LeaningAnchor - glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight RightwardTailedBar DToothlessRise - glyph-block-import Letter-Shared-Shapes : DMBlend DiagTail - glyph-block-import Letter-Shared-Shapes : TopHook RetroflexHook + glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight RightwardTailedBar + glyph-block-import Letter-Shared-Shapes : DiagTail TopHook RetroflexHook define TERMINAL-NORMAL 0 define TERMINAL-TAILED 1 diff --git a/packages/font-glyphs/src/letter/latin/lower-r.ptl b/packages/font-glyphs/src/letter/latin/lower-r.ptl index 2e778b8437..ca31abe62d 100644 --- a/packages/font-glyphs/src/letter/latin/lower-r.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-r.ptl @@ -10,11 +10,11 @@ glyph-block Letter-Latin-Lower-R : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared : CreateAccentedComposition - glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend PalatalHook RetroflexHook + glyph-block-import Letter-Shared-Shapes : PalatalHook RetroflexHook glyph-block-import Letter-Blackboard : BBS BBD BBBarRight local dfN : DivFrame 1 - local dfR : DivFrame para.diversityF + local dfR : DivFrame para.advanceScaleF # Modes local rStraight 0 @@ -32,8 +32,8 @@ glyph-block Letter-Latin-Lower-R : begin local { rBalanceMultiplier rHookMultiplier rHookSwMultiplier rSerifLeftExtender hookSuperness } : match mode [Just rStraight] { 1 1 0 0 2.35 } [Just rSerifed] { (4 / 3) (2 / 3) (1 / 4) (1 / 3) 2.35 } - [Just rNarrow] { (2 * (df.div - 0.5)) 1 0 0 2.35 } - [Just rNarrowSerifed] { (2 * (df.div - 0.5)) 1 0 0 2.35 } + [Just rNarrow] { (2 * (df.adws - 0.5)) 1 0 0 2.35 } + [Just rNarrowSerifed] { (2 * (df.adws - 0.5)) 1 0 0 2.35 } [Just rCornerHooked] { (5 / 8) 1 0 0 2.35 } [Just rCornerHookedSerifed] { (4 / 3) (2 / 3) (1 / 4) (1 / 3) 2.35 } [Just rEarless] { 1 1 0 0 2.35 } @@ -57,7 +57,7 @@ glyph-block Letter-Latin-Lower-R : begin export : local xArchMiddle : match mode [Just rStraight] : mix (xBar - fine) rHookX (0.54 + 2 * TanSlope * strokeBar / Width) [Just rSerifed] : mix (xBar - fine) rHookX (0.59 + 2 * TanSlope * strokeBar / Width) - ([Just rNarrow] || [Just rNarrowSerifed]) : mix df.width rHookX : Math.max 1.01 (5 / 4 * [mix 1 dfR.div 2]) + ([Just rNarrow] || [Just rNarrowSerifed]) : mix df.width rHookX : Math.max 1.01 (5 / 4 * [mix 1 dfR.adws 2]) ([Just rCornerHooked] || [Just rCornerHookedSerifed]) : rHookX - [HSwToV : 0.5 * strokeBar] [Just rEarless] : mix (xBar - [HSwToV strokeBar]) rHookX 0.5 local mixpin : match mode @@ -68,7 +68,7 @@ glyph-block Letter-Latin-Lower-R : begin export : local skew : Math.max 0 : (xArchMiddle - rmiddlein) / stroke - TanSlope export : local rHookY : RHook * rHookMultiplier + stroke * rHookSwMultiplier export : local rHookXN : match mode - [Just rNarrowSerifed] : mix df.width rHookX df.div + [Just rNarrowSerifed] : mix df.width rHookX df.adws [Just rNarrow] : xArchMiddle + TINY __ rHookX diff --git a/packages/font-glyphs/src/letter/latin/lower-t.ptl b/packages/font-glyphs/src/letter/latin/lower-t.ptl index a042f6bd05..98263fe358 100644 --- a/packages/font-glyphs/src/letter/latin/lower-t.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-t.ptl @@ -10,8 +10,7 @@ glyph-block Letter-Latin-Lower-T : begin glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared : CreateAccentedComposition CreateCommaCaronComposition CreateTurnedLetter glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth ConnectedCedilla SerifedArcEnd - glyph-block-import Letter-Shared-Shapes : DiagTail DToothlessRise - glyph-block-import Letter-Shared-Shapes : TopHook PalatalHook + glyph-block-import Letter-Shared-Shapes : DiagTail TopHook PalatalHook glyph-block-import Letter-Latin-S : SAutoSlabEnd AdviceSArchDepth glyph-block-import Letter-Blackboard : BBS BBD @@ -20,9 +19,9 @@ glyph-block Letter-Latin-Lower-T : begin define SYM-PR-LEFT 2 define SYM-PR-BALANCED 3 - define dfNarrowT : DivFrame para.diversityF - define [xSmallTBarLeftT df] : df.middle - (df.div ** 2) * TBalance - [HSwToV HalfStroke] - define [xSmallTCrossRefT df] : [xSmallTBarLeftT df] + df.div * TBalance2 + [HSwToV HalfStroke] + define dfNarrowT : DivFrame para.advanceScaleF + define [xSmallTBarLeftT df] : df.middle - (df.adws ** 2) * TBalance - [HSwToV HalfStroke] + define [xSmallTCrossRefT df] : [xSmallTBarLeftT df] + df.adws * TBalance2 + [HSwToV HalfStroke] define yCrossBar XH define yShortNeck1 : Math.max [mix XH Ascender 0.5] ([mix XH Ascender 0.875] - Stroke * 0.125) @@ -35,8 +34,8 @@ glyph-block Letter-Latin-Lower-T : begin ([Just SYM-PR-LEFT] || [Just SYM-PR-BALANCED]) : df.middle - [HSwToV HalfStroke] define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} - __ {([xSmallTCrossRefT df] - LongJut * [Math.sqrt df.div]) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.adws])} + __ {([xSmallTCrossRefT df] - LongJut * [Math.sqrt df.adws]) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.adws])} define [XHookTerminal df sym] : match sym [Just SYM-LEFT] df.rightSB @@ -81,7 +80,7 @@ glyph-block Letter-Latin-Lower-T : begin define DiagonalTailed : namespace define [HookShape df sym top bot sw] : begin local xMid : [BarLeftPos df sym] + [HSwToV HalfStroke] - local hookDepth : [if (sym === SYM-LEFT) 1.375 1] * [DiagTail.StdDepth [DivFrame : Math.sqrt df.div] sw] - [HSwToV HalfStroke] + local hookDepth : [if (sym === SYM-LEFT) 1.375 1] * [DiagTail.StdDepth [DivFrame : Math.sqrt df.adws] sw] - [HSwToV HalfStroke] return : dispiro flat xMid top [widths.center.heading sw Downward] DiagTail.R xMid bot hookDepth sw @@ -107,12 +106,12 @@ glyph-block Letter-Latin-Lower-T : begin define Flat : namespace export : define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) [mix df.width df.rightSB : mix 1 df.div 2]} - __ {[mix 0 df.leftSB [mix 1 df.div 2]] [mix df.width df.rightSB : mix 1 df.div 2]} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) [mix df.width df.rightSB : mix 1 df.adws 2]} + __ {[mix 0 df.leftSB [mix 1 df.adws 2]] [mix df.width df.rightSB : mix 1 df.adws 2]} - define [CrossLeft df] : mix 0 df.leftSB [mix 1 df.div 2] - define [CrossRight df] : mix df.width df.rightSB [mix 1 df.div 2] + define [CrossLeft df] : mix 0 df.leftSB [mix 1 df.adws 2] + define [CrossRight df] : mix df.width df.rightSB [mix 1 df.adws 2] define NORMAL 0 define RETROFLEX 1 @@ -179,8 +178,8 @@ glyph-block Letter-Latin-Lower-T : begin __ : df.middle - [HSwToV HalfStroke] define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) (df.middle + LongJut * [Math.sqrt df.div])} - __ {(df.middle - LongJut * [Math.sqrt df.div]) (df.middle + LongJut * [Math.sqrt df.div])} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) (df.middle + LongJut * [Math.sqrt df.adws])} + __ {(df.middle - LongJut * [Math.sqrt df.adws]) (df.middle + LongJut * [Math.sqrt df.adws])} export : define [Body df sym top bot] : glyph-proc local xLeft : BarLeftPos df sym @@ -252,7 +251,7 @@ glyph-block Letter-Latin-Lower-T : begin difference [Style.Body df sym top 0] [MaskAbove XH] TopHook.toRight.mBarInner attach.x XH Ascender - create-glyph "tLTail.\(suffix)" : glyph-proc + create-glyph "tPalatalHook.\(suffix)" : glyph-proc set-width df.width include : df.markSet.bp include : Style.Body df sym top 0 @@ -304,7 +303,7 @@ glyph-block Letter-Latin-Lower-T : begin CreateAccentedComposition 'tComma' 0x21B 't' 'commaBelow' select-variant "tHookTop" 0x1AD - select-variant 'tLTail' 0x1AB + select-variant 'tPalatalHook' 0x1AB (follow -- 't') select-variant 'tRTail' 0x288 select-variant 'tCurlyTail' 0x236 diff --git a/packages/font-glyphs/src/letter/latin/o.ptl b/packages/font-glyphs/src/letter/latin/o.ptl index d566e4974d..11c5ad0b8d 100644 --- a/packages/font-glyphs/src/letter/latin/o.ptl +++ b/packages/font-glyphs/src/letter/latin/o.ptl @@ -38,17 +38,17 @@ glyph-block Letter-Latin-O : begin alias 'cyrl/o' 0x43E 'o' create-glyph 'cyrl/Uk/O' : glyph-proc - local df : include : DivFrame para.diversityF 2 + local df : include : DivFrame para.advanceScaleF 2 include : df.markSet.capital 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 + local df : include : DivFrame para.advanceScaleF 2 include : df.markSet.e 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 + local df : include : DivFrame para.advanceScaleF 2 include : df.markSet.e local subDf : DivFrame (5 / 6) 2 include : with-transform [ApparentTranslate (0.5 * (df.width - subDf.width)) 0] @@ -56,7 +56,7 @@ glyph-block Letter-Latin-O : begin define rBroadOn : DotRadius * [StrokeWidthBlend 1.625 1] create-glyph 'cyrl/BroadOn' 0x47A : glyph-proc - define df : include : DivFrame para.diversityT 3 + define df : include : DivFrame para.advanceScaleT 3 include : df.markSet.capital local dist : df.rightSB - df.leftSB local gap : Math.min @@ -67,7 +67,7 @@ glyph-block Letter-Latin-O : begin include : DotAt df.middle (CAP - df.mvs / 2 - O) rBroadOn create-glyph 'cyrl/broadOn' 0x47B : glyph-proc - define df : include : DivFrame para.diversityT 3 + define df : include : DivFrame para.advanceScaleT 3 include : df.markSet.e local dist : df.rightSB - df.leftSB local gap : Math.min @@ -176,45 +176,45 @@ glyph-block Letter-Latin-O : begin 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 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital local dist : df.rightSB - df.leftSB local gap : Math.max (dist / 4) : HSwToV df.mvs - local ada : ArchDepthA * df.div - local adb : ArchDepthB * df.div + local ada : ArchDepthA * df.adws + local adb : ArchDepthB * df.adws include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs ada adb gap include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs set-base-anchor 'trailing' Middle 0 create-glyph 'romanTenThousand' 0x2182 : glyph-proc - local df : include : DivFrame para.diversityMM 5 + local df : include : DivFrame para.advanceScaleMM 5 include : df.markSet.capital local dist : df.rightSB - df.leftSB local gap : Math.max (dist / 4) : HSwToV df.mvs local gapInner : Math.max (dist / 8) : HSwToV df.mvs - local ada : ArchDepthA * df.div - local adb : ArchDepthB * df.div + local ada : ArchDepthA * df.adws + local adb : ArchDepthB * df.adws local innerDist : dist - [HSwToV : 5 * df.mvs] local arcXL : df.leftSB + innerDist * (1 / 4) + [HSwToV : 1 * df.mvs] local arcXR : df.leftSB + innerDist * (3 / 4) + [HSwToV : 4 * df.mvs] local heightGap : Math.min (df.mvs + (CAP - df.mvs * 4) / 5) (innerDist / 4 + df.mvs) local heightInner : CAP - 2 * heightGap local smInner : clamp (df.mvs * 1.5) (heightInner / 2 - TINY) (ArchDepth * heightInner / CAP) - local adaInner : [ArchDepthAOf smInner : arcXR - arcXL + df.leftSB * 2] * df.div - local adbInner : [ArchDepthBOf smInner : arcXR - arcXL + df.leftSB * 2] * df.div + local adaInner : [ArchDepthAOf smInner : arcXR - arcXL + df.leftSB * 2] * df.adws + local adbInner : [ArchDepthBOf smInner : arcXR - arcXL + df.leftSB * 2] * df.adws include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs ada adb gap include : OShapeFlatTB (CAP - heightGap) (0 + heightGap) arcXL arcXR df.mvs adaInner adbInner gapInner include : VBar.m df.middle (df.mvs / 2) (CAP - df.mvs / 2) df.mvs create-glyph 'romanHundredThousand' 0x2188 : glyph-proc - local df : include : DivFrame para.diversityMM 7 + local df : include : DivFrame para.advanceScaleMM 7 include : df.markSet.capital local dist : df.rightSB - df.leftSB local gap : Math.max (dist / 4) : HSwToV df.mvs local gapInner1 : Math.max (dist / 6) : HSwToV df.mvs local gapInner2 : Math.max (dist / 12) : HSwToV df.mvs - local ada : ArchDepthA * df.div - local adb : ArchDepthB * df.div + local ada : ArchDepthA * df.adws + local adb : ArchDepthB * df.adws local innerDist : dist - [HSwToV : 7 * df.mvs] local arcXL1 : df.leftSB + innerDist * (1 / 6) + [HSwToV : 1 * df.mvs] local arcXR1 : df.leftSB + innerDist * (5 / 6) + [HSwToV : 6 * df.mvs] @@ -224,11 +224,11 @@ glyph-block Letter-Latin-O : begin local heightInner1 : CAP - 2 * heightGap local heightInner2 : CAP - 4 * heightGap local smInner1 : clamp (df.mvs * 1.5) (heightInner1 / 2 - TINY) (ArchDepth * heightInner1 / CAP) - local adaInner1 : [ArchDepthAOf smInner1 : arcXR1 - arcXL1 + df.leftSB * 2] * df.div - local adbInner1 : [ArchDepthBOf smInner1 : arcXR1 - arcXL1 + df.leftSB * 2] * df.div + local adaInner1 : [ArchDepthAOf smInner1 : arcXR1 - arcXL1 + df.leftSB * 2] * df.adws + local adbInner1 : [ArchDepthBOf smInner1 : arcXR1 - arcXL1 + df.leftSB * 2] * df.adws local smInner2 : clamp (df.mvs * 1.5) (heightInner2 / 2 - TINY) (ArchDepth * heightInner2 / CAP) - local adaInner2 : [ArchDepthAOf smInner2 : arcXR2 - arcXL2 + df.leftSB * 2] * df.div - local adbInner2 : [ArchDepthBOf smInner2 : arcXR2 - arcXL2 + df.leftSB * 2] * df.div + local adaInner2 : [ArchDepthAOf smInner2 : arcXR2 - arcXL2 + df.leftSB * 2] * df.adws + local adbInner2 : [ArchDepthBOf smInner2 : arcXR2 - arcXL2 + df.leftSB * 2] * df.adws include : OShapeFlatTB CAP 0 df.leftSB df.rightSB df.mvs ada adb gap include : OShapeFlatTB (CAP - heightGap) (0 + heightGap) arcXL1 arcXR1 df.mvs adaInner1 adbInner1 gapInner1 include : OShapeFlatTB (CAP - 2 * heightGap) (0 + 2 * heightGap) arcXL2 arcXR2 df.mvs adaInner2 adbInner2 gapInner2 diff --git a/packages/font-glyphs/src/letter/latin/s.ptl b/packages/font-glyphs/src/letter/latin/s.ptl index 68a86327f6..b21c505fd5 100644 --- a/packages/font-glyphs/src/letter/latin/s.ptl +++ b/packages/font-glyphs/src/letter/latin/s.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Latin-S : begin glyph-block-import Common-Derivatives glyph-block-import Letter-Shared : CreateAccentedComposition CreateDependentComposite glyph-block-import Letter-Blackboard : BBS BBD - glyph-block-import Letter-Shared-Shapes : DToothlessRise FlatHookDepth + glyph-block-import Letter-Shared-Shapes : FlatHookDepth glyph-block-import Letter-Shared-Shapes : ArcStartSerifWidth ArcStartSerifDepth glyph-block-import Letter-Shared-Shapes : SerifedArcStart SerifedArcEnd glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart InwardSlabArcEnd @@ -246,7 +246,7 @@ glyph-block Letter-Latin-S : begin create-glyph "s.\(suffix)" : glyph-proc local df : include DfLower include : df.markSet.e - local sw : AdviceStroke2 2 3 XH df.div + local sw : AdviceStroke2 2 3 XH df.adws include : SmallSStrokeImpl df doTS doBS sw EssLower include : SAutoSlabStart df doTS XH sw Hook include : SAutoSlabEnd df doBS 0 sw Hook @@ -313,7 +313,7 @@ glyph-block Letter-Latin-S : begin if [not doBS] : create-glyph "sCurlyTail.\(suffix)" : glyph-proc local df : include DfLower include : df.markSet.e - local sw : AdviceStroke2 2 3 XH df.div + local sw : AdviceStroke2 2 3 XH df.adws include : SmallSStrokeImpl df doTS CURLY-TAIL sw EssLower include : SAutoSlabStart df doTS XH sw Hook @@ -326,10 +326,10 @@ glyph-block Letter-Latin-S : begin include : SAutoSlabEnd df doBS Descender sw Hook create-glyph "cyrl/dzwe.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF 2 + local df : include : DivFrame para.advanceScaleF 2 include : df.markSet.bp local subDf : DivFrame (5 / 6) 2 - local sw : AdviceStroke2 2 3 (Ascender - Descender) subDf.div + local sw : AdviceStroke2 2 3 (Ascender - Descender) subDf.adws local shift : 0.5 * (df.width - subDf.width) include : with-transform [ApparentTranslate shift 0] SStrokeImpl subDf Ascender Descender doTS doBS sw EssLower diff --git a/packages/font-glyphs/src/letter/latin/u.ptl b/packages/font-glyphs/src/letter/latin/u.ptl index 08990a7345..57d96961ee 100644 --- a/packages/font-glyphs/src/letter/latin/u.ptl +++ b/packages/font-glyphs/src/letter/latin/u.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Latin-U : begin glyph-block-import Common-Derivatives 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 : uBowl RightwardTailedBar SerifFrame 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 @@ -296,12 +296,12 @@ glyph-block Letter-Latin-U : begin create-glyph "uDieresisSidewaysBase.\(suffix)" : glyph-proc local df : DivFrame (XH / Width) 2 (XH * 0.1 / SB) include : df.markSet.e - local ww : Width * para.diversityT + local ww : Width * para.advanceScaleT set-width ww set-base-anchor 'cvDecompose' 0 0 include : PointingTo ww XH ww 0 : function [] : glyph-proc - include : Base df (ww - SB - 0.75 * para.diversityT * AccentHeight) Stroke - include : Slabs df (ww - SB - 0.75 * para.diversityT * AccentHeight) + include : Base df (ww - SB - 0.75 * para.advanceScaleT * AccentHeight) Stroke + include : Slabs df (ww - SB - 0.75 * para.advanceScaleT * AccentHeight) include : Translate 0 (SB / 2) select-variant 'U' 'U' @@ -385,7 +385,7 @@ glyph-block Letter-Latin-U : begin # Sideways dieresis for U+1D1E derive-glyphs "uDieresisSidewaysMark" null "dieresisAboveAlwaysUpright" : function [gns] : glyph-proc - local ww : Width * para.diversityT + local ww : Width * para.advanceScaleT set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : PointingTo ww XH ww 0 : function [] : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/upper-g.ptl b/packages/font-glyphs/src/letter/latin/upper-g.ptl index ee579e13b3..d71d6cf1a4 100644 --- a/packages/font-glyphs/src/letter/latin/upper-g.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-g.ptl @@ -10,7 +10,6 @@ glyph-block Letter-Latin-Upper-G : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors LeaningAnchor glyph-block-import Letter-Shared : CreateTurnedLetter - glyph-block-import Letter-Shared-Shapes : DToothlessRise glyph-block-import Letter-Shared-Shapes : SerifedArcStart InwardSlabArcStart TopHook glyph-block-import Letter-Shared-Shapes : ArcStartSerif LetterBarOverlay SerifFrame @@ -27,8 +26,8 @@ glyph-block Letter-Latin-Upper-G : begin define SLAB-INWARD 2 define SLAB-HOOK-TOP 10 - define [GShape toothShape slabShape crossBarShape top ada adb _yBarOverride] : glyph-proc - local yBar : fallback _yBarOverride (top * 0.52 + QuarterStroke) + define [GShape toothShape slabShape crossBarShape top ada adb yBarOverride] : glyph-proc + 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-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl index d518604aa0..578e714f93 100644 --- a/packages/font-glyphs/src/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -76,7 +76,7 @@ glyph-block Letter-Latin-Upper-H : begin local sw : AdviceStroke 2.75 local xm : Math.min (Width - df.leftSB) : if SLAB [mix df.leftSB df.rightSB 0.625] + [HSwToV : 0.25 * df.mvs] - mix df.leftSB df.rightSB : if (df.div > 1) (2 / 3) (3 / 4) + mix df.leftSB df.rightSB : if (df.adws > 1) (2 / 3) (3 / 4) local xTopBarRightEnd : mix df.width df.rightSB : if vSlab 0.25 0.375 include : Body df.leftSB xm top sw @@ -95,8 +95,8 @@ glyph-block Letter-Latin-Upper-H : begin right -- df.rightSB ybegin -- top yend -- yend - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) + ada -- (SmallArchDepthA * 0.6 * df.adws) + adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- df.mvs include : HSerifs slabType top 0 df.leftSB (df.middle + [HSwToV : 0.5 * df.mvs]) df.mvs @@ -148,7 +148,7 @@ glyph-block Letter-Latin-Upper-H : begin include : HSerifs slabType XH 0 SB RightSB create-glyph "leftHalfH.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : df.markSet.capital include : LeftHalfBody df.leftSB df.rightSB CAP include : HSerifs slabType CAP 0 df.leftSB df.rightSB @@ -156,7 +156,7 @@ glyph-block Letter-Latin-Upper-H : begin eject-contour 'serifRB' create-glyph "rightHalfH.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : df.markSet.capital include : RightHalfBody df.leftSB df.rightSB CAP include : HSerifs slabType CAP 0 df.leftSB df.rightSB @@ -164,7 +164,7 @@ glyph-block Letter-Latin-Upper-H : begin eject-contour 'serifLB' create-glyph "leftHalfSmcpH.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : df.markSet.e include : LeftHalfBody df.leftSB df.rightSB XH include : HSerifs slabType XH 0 df.leftSB df.rightSB @@ -172,14 +172,14 @@ glyph-block Letter-Latin-Upper-H : begin eject-contour 'serifRB' create-glyph "rightHalfSmcpH.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : df.markSet.e include : RightHalfBody df.leftSB df.rightSB XH include : HSerifs slabType XH 0 df.leftSB df.rightSB eject-contour 'serifLT' eject-contour 'serifLB' - define enGheDf : DivFrame para.diversityM 3 + define enGheDf : DivFrame para.advanceScaleM 3 DefineSelectorGlyph "cyrl/EnGhe" suffix enGheDf 'capital' DefineSelectorGlyph "cyrl/enghe" suffix enGheDf 'e' @@ -199,17 +199,17 @@ glyph-block Letter-Latin-Upper-H : begin select-variant "cyrl/enghe.\(suffix)" (follow -- 'cyrl/enghe/ghePart') create-glyph "Hwair.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : HwairShape df CAP XH slabType create-glyph "cyrl/NjeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capital include : HwairShape df CAP (CAP / 2) slabType create-glyph "cyrl/njeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.e include : HwairShape df XH (XH / 2) slabType @@ -227,7 +227,7 @@ glyph-block Letter-Latin-Upper-H : begin include : OverlayStrokeShape XH slabType create-glyph "cyrl/EnMidHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.capDesc local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -240,7 +240,7 @@ glyph-block Letter-Latin-Upper-H : begin include : MidHook.m df CAP create-glyph "cyrl/enMidHook.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : df.markSet.p local xm : df.middle + [HSwToV : 0.5 * df.mvs] @@ -273,7 +273,7 @@ glyph-block Letter-Latin-Upper-H : begin alias 'grek/Heta' 0x370 'leftHalfH' create-glyph 'grek/heta' 0x371 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : df.markSet.e include : LeftHalfBody df.leftSB df.rightSB XH include : HSerifs SLAB-SMALL-HETA XH 0 df.leftSB df.rightSB diff --git a/packages/font-glyphs/src/letter/latin/upper-i.ptl b/packages/font-glyphs/src/letter/latin/upper-i.ptl index 73be3e8a7e..bceeaa441e 100644 --- a/packages/font-glyphs/src/letter/latin/upper-i.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-i.ptl @@ -20,17 +20,17 @@ glyph-block Letter-Latin-Upper-I : begin include : HSerif.mt df.middle top jut set-base-anchor 'trailing' (df.middle + jut) bot - define [ISerifShape df top bot jut] : ISerifShapeImpl df top bot (jut * df.div) + define [ISerifShape df top bot jut] : ISerifShapeImpl df top bot (jut * df.adws) define UpperIConfig : object - 'straight' { para.diversityI ISeriflessShape LongJut } - 'serifless' { para.diversityII ISeriflessShape LongJut } - 'serifed' { para.diversityI ISerifShape LongJut } - 'shortSerifed' { para.diversityI ISerifShape MidJutCenter } + 'straight' { para.advanceScaleI ISeriflessShape LongJut } + 'serifless' { para.advanceScaleII ISeriflessShape LongJut } + 'serifed' { para.advanceScaleI ISerifShape LongJut } + 'shortSerifed' { para.advanceScaleI ISerifShape MidJutCenter } - foreach { suffix { div Body jut } } [Object.entries UpperIConfig] : do + foreach { suffix { adws Body jut } } [Object.entries UpperIConfig] : do create-glyph "I.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.capital include : Body df CAP 0 jut @@ -45,7 +45,7 @@ glyph-block Letter-Latin-Upper-I : begin include : ApparentTranslate 0 (0.5 * SB) create-glyph "ILonga.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.capital local top : CAP + Ascender - XH include : ExtendAboveBaseAnchors top @@ -65,7 +65,7 @@ glyph-block Letter-Latin-Upper-I : begin CreateAccentedComposition 'IAcute' 0xCD 'I' 'acuteAbove' create-glyph 'smcpI' 0x26A : glyph-proc - local df : include : DivFrame para.diversityI + local df : include : DivFrame para.advanceScaleI include : df.markSet.e include : ISerifShapeImpl df XH 0 MidJutCenter diff --git a/packages/font-glyphs/src/letter/latin/upper-j.ptl b/packages/font-glyphs/src/letter/latin/upper-j.ptl index f39711bcf1..6fd572e4ca 100644 --- a/packages/font-glyphs/src/letter/latin/upper-j.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-j.ptl @@ -94,16 +94,16 @@ glyph-block Letter-Latin-Upper-J : begin set-width df.width include : df.markSet.[if (top > XH) 'capDesc' 'p'] include : FlatHookDotlessJShape df dfHook top - crossLeft -- (df.middle - (dfHook.middle - [mix 0 dfHook.leftSB : mix 1 dfHook.div 2])) - barCenter -- (df.middle + 0.25 * JBalance * df.div * [mix 1 df.div 2]) + crossLeft -- (df.middle - (dfHook.middle - [mix 0 dfHook.leftSB : mix 1 dfHook.adws 2])) + barCenter -- (df.middle + 0.25 * JBalance * df.adws * [mix 1 df.adws 2]) serif -- false define [JDescendingFlatHookSerifedBase df dfHook top] : glyph-proc set-width df.width include : df.markSet.[if (top > XH) 'capDesc' 'p'] include : FlatHookDotlessJShape df df top - crossLeft -- [mix 0 SB : mix 1 df.div 2] - barCenter -- (df.middle + JBalance * df.div) + crossLeft -- [mix 0 SB : mix 1 df.adws 2] + barCenter -- (df.middle + JBalance * df.adws) serif -- true define [JLeftwardSerif df x top] : HSerif.lt x top LongJut @@ -115,8 +115,8 @@ glyph-block Letter-Latin-Upper-J : begin bentHook { JBentHookBase [DivFrame 1] [DivFrame 1] } flatHook { JFlatHookBase [DivFrame 1] [DivFrame 1] } descendingBentHook { JDescendingBentHookBase [DivFrame 1] [DivFrame 1] } - descendingFlatHookSerifless { JDescendingFlatHookSeriflessBase [DivFrame para.diversityI] [DivFrame para.diversityI] } - descendingFlatHookSerifed { JDescendingFlatHookSerifedBase [DivFrame para.diversityI] [DivFrame para.diversityI] } + descendingFlatHookSerifless { JDescendingFlatHookSeriflessBase [DivFrame para.advanceScaleI] [DivFrame para.advanceScaleI] } + descendingFlatHookSerifed { JDescendingFlatHookSerifedBase [DivFrame para.advanceScaleI] [DivFrame para.advanceScaleI] } function [body] : if (body == 'descendingFlatHookSerifless' || body == 'descendingFlatHookSerifed') {."" null} : object serifless null serifed JLeftwardSerif diff --git a/packages/font-glyphs/src/letter/latin/upper-m.ptl b/packages/font-glyphs/src/letter/latin/upper-m.ptl index ec35e1c19c..19763e5db1 100644 --- a/packages/font-glyphs/src/letter/latin/upper-m.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-m.ptl @@ -26,7 +26,7 @@ glyph-block Letter-Latin-Upper-M : begin define SLAB-FULL 4 glyph-block-export MShape - define [MShape] : with-params [top df form slabType slanted [kMidHang df.div]] : glyph-proc + define [MShape] : with-params [top df form slabType slanted [kMidHang df.adws]] : glyph-proc local sidesSlope : if slanted 0.04 0 local xLeftTop : df.leftSB + top * sidesSlope local xRightTop : df.rightSB - top * sidesSlope @@ -37,17 +37,17 @@ glyph-block Letter-Latin-Upper-M : begin __ false local swSideBot : match form - [Just FORM-SAN-SMALL] : AdviceStroke 2.5 df.div - [Just FORM-SAN] : AdviceStroke 2.5 df.div - [Just FORM-TURN-W] : AdviceStroke 2.5 df.div - [Just FORM-HANGING] : AdviceStroke 2.5 df.div - __ : AdviceStroke 2.75 df.div + [Just FORM-SAN-SMALL] : AdviceStroke 2.5 df.adws + [Just FORM-SAN] : AdviceStroke 2.5 df.adws + [Just FORM-TURN-W] : AdviceStroke 2.5 df.adws + [Just FORM-HANGING] : AdviceStroke 2.5 df.adws + __ : AdviceStroke 2.75 df.adws local swSideTop : match form - [Just FORM-SAN-SMALL] : AdviceStroke 3 df.div - [Just FORM-SAN] : AdviceStroke 3 df.div - [Just FORM-TURN-W] : AdviceStroke 3 df.div - __ : AdviceStroke 4 df.div - local swMiddle : AdviceStroke 4.5 df.div + [Just FORM-SAN-SMALL] : AdviceStroke 3 df.adws + [Just FORM-SAN] : AdviceStroke 3 df.adws + [Just FORM-TURN-W] : AdviceStroke 3 df.adws + __ : AdviceStroke 4 df.adws + local swMiddle : AdviceStroke 4.5 df.adws local middleY : match form [Just FORM-SAN-SMALL] : top * 0.55 [Just FORM-SAN] : top * 0.55 @@ -58,7 +58,7 @@ glyph-block Letter-Latin-Upper-M : begin [Just FORM-FLAT] 0.75 __ 0.5 local kMidBotStrokeShrink : match form - [Just FORM-FLAT] : mix 1 df.div (-0.5) + [Just FORM-FLAT] : mix 1 df.adws (-0.5) __ 1 local swMiddleShrunk (kMidBotStrokeShrink * swMiddle) @@ -99,13 +99,13 @@ glyph-block Letter-Latin-Upper-M : begin local xTopBarRightEnd : mix df.width df.rightSB : if vSlab 0.25 0.375 local swSideBot : match form - [Just FORM-SAN-SMALL] : AdviceStroke 2.5 subDf.div - [Just FORM-SAN] : AdviceStroke 2.5 subDf.div - [Just FORM-TURN-W] : AdviceStroke 2.5 subDf.div - [Just FORM-HANGING] : AdviceStroke 2.5 subDf.div - __ : AdviceStroke 2.75 subDf.div + [Just FORM-SAN-SMALL] : AdviceStroke 2.5 subDf.adws + [Just FORM-SAN] : AdviceStroke 2.5 subDf.adws + [Just FORM-TURN-W] : AdviceStroke 2.5 subDf.adws + [Just FORM-HANGING] : AdviceStroke 2.5 subDf.adws + __ : AdviceStroke 2.75 subDf.adws - include : MShape top subDf form slabType slanted (kMidHang -- df.div) + include : MShape top subDf form slabType slanted (kMidHang -- df.adws) include : HBar.t xTopRight xTopBarRightEnd top swSideBot if vSlab : include : VSerif.dr xTopBarRightEnd top VJut (VJutStroke * swSideBot / Stroke) @@ -133,30 +133,30 @@ glyph-block Letter-Latin-Upper-M : begin foreach { suffix { slanted form slab } } [Object.entries MConfig] : do create-glyph "M.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capital include : MShape CAP df form slab slanted create-glyph "Meng.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 include : df.markSet.capDesc local ret_M : include : MShape CAP df form slab slanted eject-contour 'serifRB' include : EngHook df.rightSB 0 Descender (sw -- ret_M.swSideBot) create-glyph "smcpM.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.advanceScaleT 3 include : df.markSet.e include : MShape XH df form slab slanted create-glyph "smcpMWithDescender.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.advanceScaleT 3 include : df.markSet.p include : LeaningAnchor.Below.VBar.l df.leftSB include : MShape XH df form slab slanted - define cyrSoftEmDf : DivFrame (para.diversityM * para.diversityM) 4 - define cyrSoftemDf : DivFrame (para.diversityT * para.diversityM) 4 + define cyrSoftEmDf : DivFrame (para.advanceScaleM * para.advanceScaleM) 4 + define cyrSoftemDf : DivFrame (para.advanceScaleT * para.advanceScaleM) 4 DefineSelectorGlyph "cyrl/EmSoft" suffix cyrSoftEmDf 'capital' DefineSelectorGlyph "cyrl/emSoft" suffix cyrSoftemDf 'e' @@ -188,10 +188,10 @@ glyph-block Letter-Latin-Upper-M : begin CreateSelectorVariants 'cyrl/emSoft' 0xA667 [Object.keys MConfig] (follow -- 'cyrl/em') derive-composites 'cyrl/EmTail' 0x4CD 'cyrl/Em' : do - local df : DivFrame para.diversityM 3 + local df : DivFrame para.advanceScaleM 3 CyrTailDescender.rSideJut df.rightSB 0 (sw -- df.mvs) derive-composites 'cyrl/emTail' 0x4CE 'cyrl/em' : do - local df : DivFrame para.diversityT 3 + local df : DivFrame para.advanceScaleT 3 CyrTailDescender.rSideJut df.rightSB 0 (sw -- df.mvs) alias 'grek/San' 0x3FA 'M.grekCapitalSan' diff --git a/packages/font-glyphs/src/letter/latin/upper-t.ptl b/packages/font-glyphs/src/letter/latin/upper-t.ptl index e56443e138..f5824c14c0 100644 --- a/packages/font-glyphs/src/letter/latin/upper-t.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-t.ptl @@ -46,8 +46,8 @@ glyph-block Letter-Latin-Upper-T : begin right -- df.rightSB ybegin -- top yend -- (top / 2) - ada -- (SmallArchDepthA * 0.6 * df.div) - adb -- (SmallArchDepthB * 0.6 * df.div) + ada -- (SmallArchDepthA * 0.6 * df.adws) + adb -- (SmallArchDepthB * 0.6 * df.adws) sw -- df.mvs if doTopSerifs : begin @@ -83,18 +83,18 @@ glyph-block Letter-Latin-Upper-T : begin glyph-block-export TConfig define TConfig : object serifless { 1 false false } - motionSerifed { para.diversityT true false } - serifed { para.diversityT true true } + motionSerifed { para.advanceScaleT true false } + serifed { para.advanceScaleT true true } - foreach { suffix { div doST doSB } } [Object.entries TConfig] : do + foreach { suffix { adws doST doSB } } [Object.entries TConfig] : do create-glyph "T.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.capital set-base-anchor 'bottomRight' (df.middle + [HSwToV HalfStroke]) 0 include : TShape df CAP doST doSB create-glyph "cyrl/TeDescender.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.capital set-base-anchor 'bottomRight' (df.middle + [HSwToV HalfStroke]) 0 include : TShape df CAP doST doSB @@ -104,44 +104,44 @@ glyph-block Letter-Latin-Upper-T : begin jut -- [if doSB MidJutCenter Jut] create-glyph "TStroke.\(suffix)" : glyph-proc - local df : DivFrame div + local df : DivFrame adws include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.m.in df.middle 0 CAP 0.45 create-glyph "Thookleft.\(suffix)" : glyph-proc - local df : DivFrame div + local df : DivFrame adws include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS eject-contour 'serifLT' eject-contour 'strokeLT' include : LeftHook (df.leftSB + LeftHook.extension) CAP df.middle create-glyph "smcpT.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.e set-base-anchor 'bottomRight' (df.middle + [HSwToV HalfStroke]) 0 include : TShape df XH doST doSB create-glyph "cyrl/Twe/upper.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.capital include : TweUpperShape df CAP doST doSB set-base-anchor 'cvDecompose' (df.width / 2) CAP create-glyph "cyrl/twe/upper.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.e include : TweUpperShape df XH doST doSB set-base-anchor 'cvDecompose' (df.width / 2) XH create-glyph "currency/tengeSign.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.capital local gap : Math.max (CAP * 0.1) : AdviceStroke2 2 6 CAP include : HBar.t [TLeftX df] [TRightX df] CAP OverlayStroke include : TShape df (CAP - gap - OverlayStroke) doST doSB create-glyph "cyrl/teDescender.upright.\(suffix)" : glyph-proc - local df : include : DivFrame div + local df : include : DivFrame adws include : df.markSet.e include : TShape df XH doST doSB include : CyrDescender.rSideJut @@ -150,18 +150,18 @@ glyph-block Letter-Latin-Upper-T : begin jut -- [if doSB MidJutCenter Jut] create-glyph "TRTailBR.\(suffix)" : glyph-proc - local df : DivFrame div + local df : DivFrame adws include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS include : df.markSet.capital include : RetroflexHook.mExt df.middle 0 create-glyph "cyrl/TjeKomi.\(suffix)" : glyph-proc - local df : include : DivFrame div 3 + local df : include : DivFrame adws 3 include : df.markSet.capital include : TjeShape df CAP doST create-glyph "cyrl/tjeKomi.upright.\(suffix)" : glyph-proc - local df : include : DivFrame div 3 + local df : include : DivFrame adws 3 include : df.markSet.e include : TjeShape df XH doST @@ -203,7 +203,7 @@ glyph-block Letter-Latin-Upper-T : begin CreateAccentedComposition 'TComma' 0x021A 'T' 'commaBelow' create-glyph 'capitalSmcpI' 0xA7AE : glyph-proc - local df : include : DivFrame : if SLAB para.diversityT 1 + local df : include : DivFrame : if SLAB para.advanceScaleT 1 include : df.markSet.capital local l : TLeftX df local r : TRightX df diff --git a/packages/font-glyphs/src/letter/latin/w.ptl b/packages/font-glyphs/src/letter/latin/w.ptl index f7601c277e..71c7a9a19d 100644 --- a/packages/font-glyphs/src/letter/latin/w.ptl +++ b/packages/font-glyphs/src/letter/latin/w.ptl @@ -49,37 +49,37 @@ glyph-block Letter-Latin-W : begin define [WDim df top bodyType] : begin local strokeOuter : match bodyType - [Just FORM-CURLY] : AdviceStroke CwOuterStrokeCurly : Math.sqrt df.div - [Just FORM-STRAIGHT] : AdviceStroke CwOuterStrokeStraight1 : Math.sqrt df.div - [Just FORM-FLAT-TOP] : AdviceStroke CwOuterStrokeStraight2 : Math.sqrt df.div - [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.div - [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.div - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.div + [Just FORM-CURLY] : AdviceStroke CwOuterStrokeCurly : Math.sqrt df.adws + [Just FORM-STRAIGHT] : AdviceStroke CwOuterStrokeStraight1 : Math.sqrt df.adws + [Just FORM-FLAT-TOP] : AdviceStroke CwOuterStrokeStraight2 : Math.sqrt df.adws + [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.adws local fineOuter : match bodyType - [Just FORM-CURLY] : AdviceStroke CwFineOuter df.div - [Just FORM-STRAIGHT] : AdviceStroke CwFineOuterStraight : Math.sqrt df.div - [Just FORM-FLAT-TOP] : AdviceStroke CwFineOuterStraight : Math.sqrt df.div - [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.div - [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.div - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.div + [Just FORM-CURLY] : AdviceStroke CwFineOuter df.adws + [Just FORM-STRAIGHT] : AdviceStroke CwFineOuterStraight : Math.sqrt df.adws + [Just FORM-FLAT-TOP] : AdviceStroke CwFineOuterStraight : Math.sqrt df.adws + [Just FORM-DOUBLE-V] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.adws local fineInner : match bodyType - [Just FORM-CURLY] : AdviceStroke CwFineInner df.div - [Just FORM-STRAIGHT] : AdviceStroke CwFineInnerStraight : Math.sqrt df.div - [Just FORM-FLAT-TOP] : AdviceStroke CwFineInnerStraight : Math.sqrt df.div - [Just FORM-DOUBLE-V] : AdviceStroke CwFineInnerDoubleV : Math.sqrt df.div - [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.div - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.div + [Just FORM-CURLY] : AdviceStroke CwFineInner df.adws + [Just FORM-STRAIGHT] : AdviceStroke CwFineInnerStraight : Math.sqrt df.adws + [Just FORM-FLAT-TOP] : AdviceStroke CwFineInnerStraight : Math.sqrt df.adws + [Just FORM-DOUBLE-V] : AdviceStroke CwFineInnerDoubleV : Math.sqrt df.adws + [Just FORM-ASYMMETRIC] : AdviceStroke CwDoubleV : Math.sqrt df.adws + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega : Math.sqrt df.adws local fineHeight : (fineOuter + fineInner) / 2 local wCo : match bodyType - [Just FORM-CURLY] : AdviceStroke CwWCoCurly df.div - [Just FORM-STRAIGHT] : AdviceStroke CwWCoStraight df.div - [Just FORM-FLAT-TOP] : AdviceStroke CwWCoStraight df.div - [Just FORM-DOUBLE-V] : AdviceStroke CwWCoDoubleV df.div - [Just FORM-ASYMMETRIC] : AdviceStroke CwWCoDoubleV df.div - [Just FORM-CYRL-OMEGA] : AdviceStroke CwWCoDoubleV df.div + [Just FORM-CURLY] : AdviceStroke CwWCoCurly df.adws + [Just FORM-STRAIGHT] : AdviceStroke CwWCoStraight df.adws + [Just FORM-FLAT-TOP] : AdviceStroke CwWCoStraight df.adws + [Just FORM-DOUBLE-V] : AdviceStroke CwWCoDoubleV df.adws + [Just FORM-ASYMMETRIC] : AdviceStroke CwWCoDoubleV df.adws + [Just FORM-CYRL-OMEGA] : AdviceStroke CwWCoDoubleV df.adws local wCo2 : match bodyType - [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega df.div + [Just FORM-CYRL-OMEGA] : AdviceStroke CwCyrlOmega df.adws _ wCo local kWCoShrink CThin @@ -266,7 +266,7 @@ glyph-block Letter-Latin-W : begin widths.rhs flat df.rightSB (top - TailY - HalfStroke - O) [heading Downward] curl df.rightSB [Math.min (0.8 * top) (top - TailY - HalfStroke - TINY)] [heading Downward] - straight.down.end df.rightSB 0 [widths.rhs.heading [AdviceStroke 4 df.div] Downward] + straight.down.end df.rightSB 0 [widths.rhs.heading [AdviceStroke 4 df.adws] Downward] include : VerticalHook.r df.rightSB (top - TailY - HalfStroke - O) TailX (-TailY) @@ -297,7 +297,7 @@ glyph-block Letter-Latin-W : begin include : VerticalHook.r df.rightSB (top - TailY - HalfStroke - O) TailX (-TailY) (sw -- df.mvs) define [WCursiveImplImpl fHookTop df top bodyType slabType] : glyph-proc - define fine : AdviceStroke 3.25 df.div + define fine : AdviceStroke 3.25 df.adws define mfine : fine * CThin define x0 : mix df.leftSB df.rightSB 0.1 define y0 : top - O @@ -348,15 +348,15 @@ glyph-block Letter-Latin-W : begin define WConfig : SuffixCfg.weave # Body object - straight { WShapeImpl WHooktopShape FORM-STRAIGHT para.diversityM para.diversityM } - straightAsymmetric { WShapeImpl WHooktopShape FORM-ASYMMETRIC para.diversityM para.diversityM } - straightDoubleV { WShapeImpl WHooktopShape FORM-DOUBLE-V para.diversityM para.diversityM } - straightFlatTop { WShapeImpl WHooktopShape FORM-FLAT-TOP para.diversityMM para.diversityM } - straightVerticalSides { WVertSides WVSHookTopShape FORM-STRAIGHT para.diversityM para.diversityT } - roundedVerticalSides { WRounded WHookTopRounded FORM-CURLY para.diversityMM para.diversityM } - curly { WShapeImpl WHooktopShape FORM-CURLY para.diversityM para.diversityM } - cursive { WCursiveImpl WHookTopCursive FORM-CURLY para.diversityM para.diversityM } - cyrlOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA para.diversityMM para.diversityM } + straight { WShapeImpl WHooktopShape FORM-STRAIGHT para.advanceScaleM para.advanceScaleM } + straightAsymmetric { WShapeImpl WHooktopShape FORM-ASYMMETRIC para.advanceScaleM para.advanceScaleM } + straightDoubleV { WShapeImpl WHooktopShape FORM-DOUBLE-V para.advanceScaleM para.advanceScaleM } + straightFlatTop { WShapeImpl WHooktopShape FORM-FLAT-TOP para.advanceScaleMM para.advanceScaleM } + straightVerticalSides { WVertSides WVSHookTopShape FORM-STRAIGHT para.advanceScaleM para.advanceScaleT } + roundedVerticalSides { WRounded WHookTopRounded FORM-CURLY para.advanceScaleMM para.advanceScaleM } + curly { WShapeImpl WHooktopShape FORM-CURLY para.advanceScaleM para.advanceScaleM } + cursive { WCursiveImpl WHookTopCursive FORM-CURLY para.advanceScaleM para.advanceScaleM } + cyrlOmega { WShapeImpl WHooktopShape FORM-CYRL-OMEGA para.advanceScaleMM para.advanceScaleM } # Serifs function [body] : if (body == 'cyrlOmega') @@ -382,7 +382,7 @@ glyph-block Letter-Latin-W : begin include : implT df XH bodyType slabType create-glyph "ww.\(suffix)": glyph-proc - local df : include : DivFrame [if (Ldiv < para.diversityM) para.diversityF 1] 3 + local df : include : DivFrame [if (Ldiv < para.advanceScaleM) para.advanceScaleF 1] 3 include : df.markSet.capital local gap : CAP * 0.05 diff --git a/packages/font-glyphs/src/letter/latin/x.ptl b/packages/font-glyphs/src/letter/latin/x.ptl index cac967a578..aa9db5bc02 100644 --- a/packages/font-glyphs/src/letter/latin/x.ptl +++ b/packages/font-glyphs/src/letter/latin/x.ptl @@ -87,8 +87,8 @@ glyph-block Letter-Latin-X : begin ] : glyph-proc local ada : ArchDepthAOf (ArchDepth * 0.8) (Width / 2) local adb : ArchDepthBOf (ArchDepth * 0.8) (Width / 2) - local div : (right - left) / (RightSB - Middle) - local divHook : Math.min div 1 + local adws : (right - left) / (RightSB - Middle) + local divHook : Math.min adws 1 local fineMid : 0.55 * swMid local xMidBarRightEdge : left + [HSwToV swMid] / 2 @@ -111,7 +111,7 @@ glyph-block Letter-Latin-X : begin flat (xMidBarRightEdge - [HSwToV fineMid]) ([mix bottom top 0.5] - O) [widths.lhs fineMid] curl (xMidBarRightEdge - [HSwToV fineMid]) (bottom + [Math.min adb (swMid + rIn)]) arcvh - flat (xMidBarRightEdge + div * (0.5 * swMid + rIn) + 0.25 * TanSlope * (0.5 * swMid + rIn)) bottom [widths.lhs.heading swCoEnd Rightward] + flat (xMidBarRightEdge + adws * (0.5 * swMid + rIn) + 0.25 * TanSlope * (0.5 * swMid + rIn)) bottom [widths.lhs.heading swCoEnd Rightward] curl right bottom dispiro flat (xMidBarRightEdge - [HSwToV : 0.5 * fineMid]) ([mix bottom top 0.5] - O) [widths.center fineMid] diff --git a/packages/font-glyphs/src/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl index ea0751e329..fe6047d5c3 100644 --- a/packages/font-glyphs/src/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -160,10 +160,6 @@ glyph-block Letter-Shared-Shapes : begin flat (x + hookTurn) (high - overshoot) [heading Rightward] curl (x + hookDepth + sw * TanSlope) (high - overshoot) - glyph-block-export DToothlessRise DMBlend - define DToothlessRise : Hook * 0.25 + Stroke / 16 - define DMBlend 0.80 - glyph-block-export CurlyTail define CurlyTail : namespace define [normalBlender before _after args] : begin @@ -477,8 +473,8 @@ glyph-block Letter-Shared-Shapes : begin glyph-block-export FlatHookDepth define [FlatHookDepth df s] : object - x : [fallback s 1] * [FlatHookDepthImpl [Math.min 1 : Math.sqrt df.div] HVContrast] - y : [fallback s 1] * [FlatHookDepthImpl [Math.min 1 : Math.sqrt df.div] 1] + x : [fallback s 1] * [FlatHookDepthImpl [Math.min 1 : Math.sqrt df.adws] HVContrast] + y : [fallback s 1] * [FlatHookDepthImpl [Math.min 1 : Math.sqrt df.adws] 1] define [FlatHookDepthImpl sHook sStroke] : begin define kFlathook : 15 / 16 return : Math.max @@ -620,7 +616,7 @@ glyph-block Letter-Shared-Shapes : begin export : define DefaultAngle 40 export : define [StdDepth df sw] : Math.max (0.5 * sw) - df.div * para.unitWidthScalar * [Math.hypot HookX Hook] - 0.25 * sw + df.adws * para.unitWidthScalar * [Math.hypot HookX Hook] - 0.25 * sw export : define [DefaultInnerRadius] : Math.max (XH / 32) (0.5 * [AdviceStroke2 24 32 XH]) @@ -690,14 +686,14 @@ glyph-block Letter-Shared-Shapes : begin 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 + public [new top bot left right swRef swSerif adws hSplit fForceSymmetric] : begin set this.top top set this.bot bot set this.left left set this.right right set this.swRef swRef set this.swSerif swSerif - set this.div div + set this.adws adws set this.hSplit hSplit set this.fForceSymmetric fForceSymmetric @@ -706,7 +702,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 : adws * 2.25 / hSplit local sideJut : jut - 0.5 * ink local jutIn : if fForceSymmetric jut : JutIn left right jut swRef hSplit @@ -767,7 +763,7 @@ glyph-block Letter-Shared-Shapes : begin local gap : (this.right - this.left - this.hSplit * ink) / (this.hSplit - 1) local l1 : this.left + (ink + gap) * l local r1 : this.left + (ink + gap) * r + ink - return : new CSerifFrame this.top this.bot l1 r1 this.swRef this.swSerif this.div (r - l + 1) + return : new CSerifFrame this.top this.bot l1 r1 this.swRef this.swSerif this.adws (r - l + 1) glyph-block-export SerifFrame define flex-params [SerifFrame] : begin @@ -777,15 +773,15 @@ glyph-block Letter-Shared-Shapes : begin local-parameter : right local-parameter : swRef -- Stroke local-parameter : swSerif -- swRef - local-parameter : div -- 1 + local-parameter : adws -- 1 local-parameter : hSplit -- 2 local-parameter : fForceSymmetric -- false - return : new CSerifFrame top bot left right swRef swSerif div hSplit fForceSymmetric + return : new CSerifFrame top bot left right swRef swSerif adws hSplit fForceSymmetric define SerifFrame.fromDf : function [] : with-params [df top bot [swSerif df.mvs] [fForceSymmetric false]] : begin return : SerifFrame top bot df.leftSB df.rightSB swRef -- df.mvs - div -- df.div + adws -- df.adws hSplit -- [Math.max 2 df.hPack] swSerif -- swSerif fForceSymmetric -- fForceSymmetric diff --git a/packages/font-glyphs/src/marks/above.ptl b/packages/font-glyphs/src/marks/above.ptl index 8d951b746f..5eeea6afd4 100644 --- a/packages/font-glyphs/src/marks/above.ptl +++ b/packages/font-glyphs/src/marks/above.ptl @@ -156,10 +156,10 @@ glyph-block Mark-Above : begin curl (markMiddle - 0.875 * markExtend) aboveMarkTop [widths.center : 2 * markStress] create-glyph 'asciiGrave/body/straight' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : dispiro - flat (df.middle + HalfStroke * 1.1 * asciiMarkZoomX * [Math.sqrt df.div]) [mix aboveMarkMid aboveMarkBot asciiMarkZoomY] [widths.center : Stroke * 0.9] - curl (df.middle - markExtend * asciiMarkZoomX * [Math.sqrt df.div]) [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] [widths.center : Stroke * 1.1] + flat (df.middle + HalfStroke * 1.1 * asciiMarkZoomX * [Math.sqrt df.adws]) [mix aboveMarkMid aboveMarkBot asciiMarkZoomY] [widths.center : Stroke * 0.9] + curl (df.middle - markExtend * asciiMarkZoomX * [Math.sqrt df.adws]) [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] [widths.center : Stroke * 1.1] create-glyph 'acuteAbove' 0x301 : glyph-proc set-width 0 @@ -169,10 +169,10 @@ glyph-block Mark-Above : begin curl (markMiddle + 0.875 * markExtend) aboveMarkTop [widths.center : 2 * markStress] create-glyph 'latin1acute' 0xB4 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : dispiro - flat (df.middle - HalfStroke * 1.1 * asciiMarkZoomX * [Math.sqrt df.div]) [mix aboveMarkMid aboveMarkBot asciiMarkZoomY] [widths.center : Stroke * 0.9] - curl (df.middle + markExtend * asciiMarkZoomX * [Math.sqrt df.div]) [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] [widths.center : Stroke * 1.1] + flat (df.middle - HalfStroke * 1.1 * asciiMarkZoomX * [Math.sqrt df.adws]) [mix aboveMarkMid aboveMarkBot asciiMarkZoomY] [widths.center : Stroke * 0.9] + curl (df.middle + markExtend * asciiMarkZoomX * [Math.sqrt df.adws]) [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] [widths.center : Stroke * 1.1] glyph-block-export CaretCaronWidth CaretCaronMidSw CaretCaronTerminalSw define CaretCaronWidth : 2 * markExtend + markStress @@ -492,7 +492,7 @@ glyph-block Mark-Above : begin curl (RightSB - Width) aboveMarkMid create-glyph 'cyrl/ghe.SRB/overlineAbove' : glyph-proc - local df : DivFrame para.diversityI + local df : DivFrame para.advanceScaleI set-width 0 set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack @@ -522,7 +522,7 @@ glyph-block Mark-Above : begin curl rightEnd aboveMarkMid create-glyph 'cyrl/te.SRB/overlineAbove' : glyph-proc - local df : DivFrame para.diversityMM 3 + local df : DivFrame para.advanceScaleMM 3 set-width 0 set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack diff --git a/packages/font-glyphs/src/marks/overlay.ptl b/packages/font-glyphs/src/marks/overlay.ptl index e705fb71d2..0fba85b111 100644 --- a/packages/font-glyphs/src/marks/overlay.ptl +++ b/packages/font-glyphs/src/marks/overlay.ptl @@ -172,8 +172,8 @@ glyph-block Mark-Overlay : begin include : TildeShape ttop -- XH / 2 + tildeHeight / 2 tbot -- XH / 2 - tildeHeight / 2 - leftEnd -- markMiddle - Width / 2 * para.diversityMM - rightEnd -- markMiddle + Width / 2 * para.diversityMM + leftEnd -- markMiddle - Width / 2 * para.advanceScaleMM + rightEnd -- markMiddle + Width / 2 * para.advanceScaleMM hs -- OverlayStroke / 2 do "Slashes" @@ -425,10 +425,10 @@ glyph-block Mark-Overlay : begin do "Inner dots" glyph-block-export InnerDot - define [InnerDot x y kHeight fRound kdr _space _div] : begin + define [InnerDot x y kHeight fRound kdr _space _adws] : begin local space : fallback _space : InnerDot.spaceOfDf [DivFrame 1] - local div : fallback _div 4 - local halfDotWidth : kdr * [Math.max (DotRadius / 8) : Math.min DotRadius (space / div)] + local adws : fallback _adws 4 + local halfDotWidth : kdr * [Math.max (DotRadius / 8) : Math.min DotRadius (space / adws)] local halfDotHeight : kdr * [Math.max (DotRadius / 8) : Math.min DotRadius (halfDotWidth * kHeight)] if fRound @@ -450,12 +450,12 @@ glyph-block Mark-Overlay : begin define [InnerDot2 kHeight fRound kdr] : glyph-proc local space : InnerDot.spaceOfDf [DivFrame 1] - local div : StrokeWidthBlend 7 5 - local halfDotWidth : kdr * [Math.min DotRadius (space / div)] - local kHeight2 : div / 4 * kHeight + local adws : StrokeWidthBlend 7 5 + local halfDotWidth : kdr * [Math.min DotRadius (space / adws)] + local kHeight2 : adws / 4 * kHeight local offset : (0.5 * space - 2 * halfDotWidth) / 3 + halfDotWidth - include : InnerDot (-offset) 0 kHeight2 fRound kdr space div - include : InnerDot offset 0 kHeight2 fRound kdr space div + include : InnerDot (-offset) 0 kHeight2 fRound kdr space adws + include : InnerDot offset 0 kHeight2 fRound kdr space adws foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do create-glyph "innerDot.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/meta/aesthetics.ptl b/packages/font-glyphs/src/meta/aesthetics.ptl index 673d26bd58..92f9ed557e 100644 --- a/packages/font-glyphs/src/meta/aesthetics.ptl +++ b/packages/font-glyphs/src/meta/aesthetics.ptl @@ -86,11 +86,11 @@ export : define [calculateMetrics para] : begin local adjustedFillRate : StrokeWeightControlSigmoid nonAdjustedFillRate local strokeWidthScalar : Math.min 1 : mul * adjustedFillRate / nonAdjustedFillRate return : para.stroke * strokeWidthScalar - define [AdviceStroke crowdedness div mul] : begin - local spaceH : Width * [fallback div 1] - SB * 2 + define [AdviceStroke crowdedness adws mul] : begin + local spaceH : Width * [fallback adws 1] - SB * 2 return : AdviceStrokeInSpace spaceH HVContrast crowdedness [fallback mul 1] - define [AdviceStroke2 crwX crwY refH div] : begin - local spaceH : Width * [fallback div 1] - SB * 2 + define [AdviceStroke2 crwX crwY refH adws] : begin + local spaceH : Width * [fallback adws 1] - SB * 2 local spaceV refH return : Math.min AdviceStrokeInSpace spaceH HVContrast crwX 1 @@ -119,8 +119,8 @@ 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 [IBalance df] : df.adws * df.adws * [fallback para.ibalance (LongJut * 0.04)] # Serifed + define [IBalance2 df] : df.adws * [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 @@ -150,6 +150,9 @@ export : define [calculateMetrics para] : begin define SideJut : Jut - [HSwToV HalfStroke] define VJutStroke : AdviceStroke 3.5 + define DToothlessRise : Hook * 0.25 + Stroke / 16 + define DMBlend 0.80 + define [StrokeWidthBlend min max sw] : linreg para.canonicalStrokeWidthMin min para.canonicalStrokeWidthMax max [fallback sw Stroke] define SmoothAdjust : StrokeWidthBlend 80 144 @@ -179,7 +182,6 @@ export : define [calculateMetrics para] : begin define SmallArchDepthA : SmallArchDepth - TanSlope * SmoothAdjust define SmallArchDepthB : SmallArchDepth + TanSlope * SmoothAdjust - define CorrectionOMidX : TanSlope * 0.9 * [StrokeWidthBlend 1.3 0.9] define CorrectionOMidS : Stroke * CorrectionOMidX @@ -208,7 +210,8 @@ export : define [calculateMetrics para] : begin 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] + YSmoothMidR YSmoothMidL DToothlessRise DMBlend HSwToV VSwToH NarrowUnicodeT WideUnicodeT + VERY-FAR TINY] export : define [setFontMetrics para metrics fm] : begin define [object CAP Descender XH Width SymbolMid] metrics @@ -416,25 +419,33 @@ export : define DesignParameters : object squareDotScalar 0.95 export : define [GenDivFrame metrics] : begin + # Implementation class of a division frame, used to model a letter's core X-direction structure class CDivFrame - public [new _div _hPack _sbMul _mvs _ox] : begin - local ox : fallback _ox 0 - local div : fallback _div 1 + # _adws: scale factor of advance width + # _hPack: number of horizontal divisions + # _sbMul: scale factor of sidebearings + # _mvs: desired stroke width + # _ox: overshoot correction + public [new _adws _hPack _sbMul _mvs _ox] : begin + local ox : fallback _ox 0 + local adws : fallback _adws 1 local hPack : Math.max 1 [fallback _hPack 0] - local mvs : fallback _mvs : if _hPack [metrics.AdviceStroke _hPack div] metrics.Stroke - local sbMul : fallback _sbMul : Math.min 1 : (metrics.Width * div - hPack * mvs) / (2 * hPack * metrics.SB) + local mvs : fallback _mvs + if _hPack [metrics.AdviceStroke _hPack adws] metrics.Stroke + local sbMul : fallback _sbMul + Math.min 1 : (metrics.Width * adws - hPack * mvs) / (2 * hPack * metrics.SB) - set this.params : object div hPack sbMul mvs ox - set this.div div + set this.params : object adws hPack sbMul mvs ox + set this.adws adws set this.hPack hPack - set this.width : metrics.Width * div - set this.middle : metrics.Middle * div + set this.width : metrics.Width * adws + set this.middle : metrics.Middle * adws set this.sb : metrics.SB * sbMul set this.leftSB : metrics.SB * sbMul - set this.rightSB : metrics.Width * div - metrics.SB * sbMul + set this.rightSB : metrics.Width * adws - metrics.SB * sbMul set this.mvs mvs set this.shoulderFine : metrics.ShoulderFine * (mvs / metrics.Stroke) - set this.markSet : MarksetDiv div sbMul metrics + set this.markSet : MarksetDiv adws sbMul metrics # No-overshoot metrics -- used for arch depth calculation set this.ox ox @@ -486,11 +497,12 @@ export : define [GenDivFrame metrics] : begin set g.divFrameParams this.params return this - public [adviceStroke c] : metrics.AdviceStroke c this.div - public [adviceStroke2 c d h] : metrics.AdviceStroke2 c d h this.div + public [adviceStroke c] : metrics.AdviceStroke c this.adws + public [adviceStroke2 c d h] : metrics.AdviceStroke2 c d h this.adws - define [F _div _hPack _sbMul _mvs _ox] : begin - return : new CDivFrame _div _hPack _sbMul _mvs _ox + # Factory function for CDivFrame + define [F _adws _hPack _sbMul _mvs _ox] : begin + return : new CDivFrame _adws _hPack _sbMul _mvs _ox set F.fromParams : lambda [params] : begin - return : new CDivFrame params.div params.hPack params.sbMul params.mvs params.ox + return : new CDivFrame params.adws params.hPack params.sbMul params.mvs params.ox return F diff --git a/packages/font-glyphs/src/meta/macros.ptl b/packages/font-glyphs/src/meta/macros.ptl index d790bd5b30..15fee27fe5 100644 --- a/packages/font-glyphs/src/meta/macros.ptl +++ b/packages/font-glyphs/src/meta/macros.ptl @@ -312,7 +312,7 @@ define-macro glyph-block-import : syntax-rules 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] + MaskLeftLine MaskRightLine DotVariants WithDotVariants TangentToNormal VectorDot sharp-corner] define vartiableFilter : if externEnv.$glyphBlockVariableUsage$ lambda [x] externEnv.$glyphBlockVariableUsage$.(x) @@ -389,8 +389,8 @@ define-macro glyph-block : syntax-rules 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] + MidJutCenter YSmoothMidR YSmoothMidL DToothlessRise DMBlend 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/space/index.ptl b/packages/font-glyphs/src/space/index.ptl index aa82d60d0f..c554f5f5aa 100644 --- a/packages/font-glyphs/src/space/index.ptl +++ b/packages/font-glyphs/src/space/index.ptl @@ -14,7 +14,7 @@ glyph-block Spaces : begin set currentGlyph.glyphRank (9998) create-glyph 'space' ' ' : glyph-proc - local df : include : DivFrame para.diversityI + local df : include : DivFrame para.advanceScaleI alias 'nbsp' 0xA0 'space' @@ -23,7 +23,7 @@ glyph-block Spaces : begin include : df.markSet.plus create-glyph 'markBaseSpace' 0xEF0D : glyph-proc - local df : include : DivFrame para.diversityI + local df : include : DivFrame para.advanceScaleI include : df.markSet.e create-glyph 'sp1' : glyph-proc @@ -35,7 +35,7 @@ glyph-block Spaces : begin alias 'figureSpace' 0x2007 'sp1' create-glyph 'punctuationSpace' 0x2008 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF create-glyph 'zwsp' 0x200B : glyph-proc set-width 0 @@ -57,7 +57,7 @@ glyph-block Spaces : begin # The following spaces has explicit em-number. They will follow the em-number # in quasiproportional, and identical to SPACE in monospace define [FractionEmSp name code d] : create-glyph name code : glyph-proc - local df : include : DivFrame : if (para.diversityII < 1) (2 / d) 1 + local df : include : DivFrame : if (para.advanceScaleII < 1) (2 / d) 1 FractionEmSp 'threePerEmSp' 0x2004 3 FractionEmSp 'fourPerEmsp' 0x2005 4 diff --git a/packages/font-glyphs/src/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl index a25b8c509b..9623b9bfb0 100644 --- a/packages/font-glyphs/src/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -1588,6 +1588,14 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 curl [mix x2 x3 pLastSeg] [mix y2 y3 pLastSeg] include : ArrowHead x2 y2 x3 y3 arrowHeadSize + do "Arrow Heads" + create-glyph [MangleName 'arrowHeadUp'] [MangleUnicode 0x2303] : glyph-proc + set-width MosaicWidth + include : ArrowHead arrowMidX arrowBot arrowMidX arrowTop + create-glyph [MangleName 'arrowHeadDown'] [MangleUnicode 0x2304] : glyph-proc + set-width MosaicWidth + include : ArrowHead arrowMidX arrowTop arrowMidX arrowBot + do "Legacy computing arrows" define bodyWidth : Math.min arrowWidth (arrowHeight * 0.6) create-glyph [MangleName 'arrowUpThenNW'] [MangleUnicode 0x1F8B0] : glyph-proc @@ -1660,4 +1668,4 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : FlipAround arrowMidX SymbolMid if (MosaicWidthScalar == 1) : begin - glyph-block-export ArrowShape ArrowHead ArrowBar TrigArrowShape + glyph-block-export ArrowShape ArrowHead ArrowBar TrigArrowShape TriangleArrowHead diff --git a/packages/font-glyphs/src/symbol/counting-rod.ptl b/packages/font-glyphs/src/symbol/counting-rod.ptl index f465ca68d0..02c934a6a7 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 3 + define rodDiv : Math.min 2 : mix 1 para.advanceScaleMM 3 define rodDf : DivFrame rodDiv 5 define rodSw rodDf.mvs define hRodSw : AdviceStroke 3 rodDiv @@ -88,10 +88,10 @@ glyph-block Symbol-Counting-Rod : begin include : rodTens 4 1 do "Tally Marks" - define rodDiv : Math.min 2 : mix 1 para.diversityMM 2 + define rodDiv : Math.min 2 : mix 1 para.advanceScaleMM 2 create-glyph 'tallyMarkOne' 0x1D377 : glyph-proc - local df : include : DivFrame : if (para.diversityII < 1) (rodDiv / 4) 1 + local df : include : DivFrame : if (para.advanceScaleII < 1) (rodDiv / 4) 1 include : df.markSet.capital include : VBar.m df.middle 0 CAP df.mvs diff --git a/packages/font-glyphs/src/symbol/geometric/masked.ptl b/packages/font-glyphs/src/symbol/geometric/masked.ptl index 6b805bf29e..17f49150af 100644 --- a/packages/font-glyphs/src/symbol/geometric/masked.ptl +++ b/packages/font-glyphs/src/symbol/geometric/masked.ptl @@ -329,6 +329,90 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 dispiro [widths.rhs GeometryStroke] [corner Geom.MidX Geom.MidY] [corner Geom.Left Geom.Top] do "Miscellaneous" + glyph-block-import Symbol-Arrow : TrigArrowShape + + define fineGeometryStroke : AdviceStroke2 4 4 Geom.Size + create-glyph [MangleName 'positionIndicator'] [MangleUnicode 0x2316] : glyph-proc + set-width Geom.Width + include : refer-glyph : MangleName 'whiteMediumCircle' + include : difference + union + HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke + VBar.m Geom.MidX Geom.Bot Geom.Top GeometryStroke + refer-glyph : MangleName 'blackMediumCircle' + include : intersection + union + HBar.m Geom.Left Geom.Right Geom.MidY fineGeometryStroke + VBar.m Geom.MidX Geom.Bot Geom.Top fineGeometryStroke + refer-glyph : MangleName 'blackMediumCircle' + + create-glyph [MangleName 'positionIndicatorSquare'] [MangleUnicode 0x2BD0] : glyph-proc + set-width Geom.Width + include : refer-glyph : MangleName 'whiteMediumSquare' + include : difference + union + HBar.m Geom.Left Geom.Right Geom.MidY GeometryStroke + VBar.m Geom.MidX Geom.Bot Geom.Top GeometryStroke + refer-glyph : MangleName 'blackMediumSquare' + include : intersection + union + HBar.m Geom.Left Geom.Right Geom.MidY fineGeometryStroke + VBar.m Geom.MidX Geom.Bot Geom.Top fineGeometryStroke + refer-glyph : MangleName 'blackMediumSquare' + + create-glyph [MangleName 'cylindricity'] [MangleUnicode 0x232D] : glyph-proc + set-width Geom.Width + local radius : Geom.Size * Size.Medium.size + local x1 Geom.Left + local y1 : Geom.Bot + 0.15 * GeometryStroke + local y2 Geom.Top + local dist : Math.hypot (Geom.MidX - x1) (Geom.MidY - y1) + local tan1 : radius / [Math.sqrt : dist ** 2 - radius ** 2] + local tan2 : (Geom.MidY - y1) / (Geom.MidX - x1) + local tan3 : (tan1 + tan2) / (1 - tan1 * tan2) + local x2 : x1 + (y2 - y1) / tan3 + include : difference + union + dispiro + widths.rhs GeometryStroke + flat x1 y1 + curl x2 y2 + dispiro + widths.rhs GeometryStroke + flat [mix x1 Geom.MidX 2] [mix y1 Geom.MidY 2] + curl [mix x2 Geom.MidX 2] [mix y2 Geom.MidY 2] + refer-glyph : MangleName 'blackMediumCircle' + include : refer-glyph : MangleName 'whiteMediumCircle' + + create-glyph [MangleName 'allRoundProfile'] [MangleUnicode 0x232E] : glyph-proc + set-width Geom.Width + include : refer-glyph : MangleName 'whiteMediumCircle' + local mx : Geom.MidX - Geom.Size * 0.5 + local my : Geom.MidY - Geom.Size * 0.5 + include : dispiro + disable-contrast + flat Geom.Right Geom.MidY [widths.center.heading GeometryStroke Leftward] + sharp-corner Geom.MidX Geom.MidY (contrast -- 1) + curl mx my [widths.center GeometryStroke] + include : TrigArrowShape mx my Geom.Left Geom.Bot (Geom.Size * 0.375 / Math.SQRT1_2) (GeometryStroke / 2) + + create-glyph [MangleName 'dimensionOrigin'] [MangleUnicode 0x2331] : glyph-proc + set-width Geom.Width + include : refer-glyph : MangleName 'whiteMediumCircle' + local offset : Geom.Size * (1 - Size.Medium.size) + include : difference + union + TrigArrowShape Geom.MidX Geom.MidY (Geom.Right + offset) Geom.MidY (Geom.Size * 0.375 / Math.SQRT1_2) (GeometryStroke / 2) + VBar.m Geom.MidX Geom.Bot Geom.Top GeometryStroke + refer-glyph : MangleName 'blackMediumCircle' + include : intersection + union + HBar.m Geom.MidX Geom.Right Geom.MidY fineGeometryStroke + VBar.m Geom.MidX Geom.Bot Geom.Top fineGeometryStroke + refer-glyph : MangleName 'blackMediumCircle' + + include : Translate (-offset) 0 + create-glyph [MangleName 'uni2389'] [MangleUnicode 0x2389] : glyph-proc define shiftUp : ApparentTranslate 0 Math.max @@ -354,6 +438,18 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 refer-glyph : MangleName 'blackCircleO' refer-glyph : MangleName 'whiteEqualTriangleDown' + create-glyph [MangleName 'enterSymbol'] [MangleUnicode 0x2386] : glyph-proc + set-width Geom.Width + include : difference + refer-glyph : MangleName 'whiteDiamond' + intersection [MaskLeftLine Geom.MidX (Geom.MidY - Geom.Size / 3) Geom.MidX (Geom.MidY + Geom.Size / 3)] + include : HBar.m Geom.Left Geom.MidX Geom.MidY GeometryStroke + local size : Geom.Size * 0.375 / Math.SQRT1_2 + include : spiro-outline + corner Geom.MidX (Geom.MidY + size) + corner (Geom.MidX + size) Geom.MidY + corner Geom.MidX (Geom.MidY - size) + create-glyph [MangleName 'uni238B'] [MangleUnicode 0x238B] : glyph-proc set-width Geom.Width include : difference @@ -441,6 +537,7 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 refer-glyph : MangleName 'blackLozenge' HBar.m 0 MosaicWidth Geom.MidY GeometryStroke + # Mathematical Triangle Symbols define triangleSideRadius : Geom.Size * 2.1 / [Math.sqrt 3] derive-multi-part-glyphs [MangleName 'whiteTriangleUpDotAbove'] [MangleUnicode 0x29CA] { [MangleName 'whiteTriangleUp'] 'dotAbove' } : lambda [srcs gr] : glyph-proc local { base mark } srcs @@ -458,6 +555,7 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 include : HSerif.lb (Geom.MidX - triangleSideRadius) Geom.Bot jut GeometryStroke include : HSerif.rb (Geom.MidX + triangleSideRadius) Geom.Bot jut GeometryStroke + # Genealogy Symbols create-glyph [MangleName 'marriageSymbol'] [MangleUnicode 0x26AD] : glyph-proc set-width Geom.Width local radius : Geom.Size * Size.SlightlySmall.size diff --git a/packages/font-glyphs/src/symbol/geometric/technical.ptl b/packages/font-glyphs/src/symbol/geometric/technical.ptl index 170331881f..c81ccd1535 100644 --- a/packages/font-glyphs/src/symbol/geometric/technical.ptl +++ b/packages/font-glyphs/src/symbol/geometric/technical.ptl @@ -9,7 +9,8 @@ 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 + glyph-block-import Shared-Symbol-Shapes : TriangleShape Polyline + glyph-block-import Symbol-Arrow : ArrowShape ArrowHead TrigArrowShape define Geom : GeometricDim MosaicUnitWidth MosaicWidth define Size : GeometricSizes Geom @@ -29,6 +30,25 @@ glyph-block Symbol-Geometric-Technical : for-width-kinds WideWidth1 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 'totalRunoff'] [MangleUnicode 0x2330] : glyph-proc + set-width Geom.Width + local headSize : Geom.Size * 0.375 / Math.SQRT1_2 + local offset : Geom.Size * 0.4 + local x0 Geom.Left + local x1 : Geom.Left + offset + local x2 : Geom.Right - offset - headSize * 0.35 + local x3 : Geom.Right - headSize * 0.35 + local vsw : HSwToV : 0.5 * GeometryStroke + include : dispiro + disable-contrast + flat ([mix x0 x1 0.75] + vsw) [mix Geom.Bot Geom.Top 0.75] [widths.center GeometryStroke] + sharp-corner (x0 + vsw) Geom.Bot (contrast -- 1) + corner Geom.MidX Geom.Bot [widths.lhs GeometryStroke] + sharp-corner (x2 - vsw) Geom.Bot (contrast -- 1) + curl ([mix x2 x3 0.75] - vsw) [mix Geom.Bot Geom.Top 0.75] [widths.center GeometryStroke] + include : TrigArrowShape ([mix x0 x1 0.5] + vsw) Geom.MidY (x1 + vsw) Geom.Top headSize (GeometryStroke / 2) + include : TrigArrowShape ([mix x2 x3 0.5] - vsw) Geom.MidY (x3 - vsw) Geom.Top headSize (GeometryStroke / 2) + 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 @@ -38,6 +58,17 @@ glyph-block Symbol-Geometric-Technical : for-width-kinds WideWidth1 set-width Geom.Width include : TriangleShape Geom.Left Geom.Bot Geom.Left Geom.MidY Geom.Right Geom.Bot fineGeometryStroke + create-glyph [MangleName 'electricArrow'] [MangleUnicode 0x2301] : glyph-proc + set-width Geom.Width + define amp : Geom.Size / 2 + define amp2 : Geom.Size / 4 + include : intersection [MaskRight Geom.Left] [MaskLeft Geom.Right] : dispiro + corner (Geom.MidX - Geom.Size * 2) (Geom.MidY + amp2 * 4) [widths.center GeometryStroke] + sharp-corner Geom.MidX (Geom.MidY - amp) + corner Geom.MidX Geom.MidY [widths.center.heading GeometryStroke Upward] + sharp-corner Geom.MidX (Geom.MidY + amp) + corner (Geom.MidX + Geom.Size * 2) (Geom.MidY - amp2 * 4) [widths.center GeometryStroke] + create-glyph [MangleName 'viewdataSquare'] [MangleUnicode 0x2317] : glyph-proc set-width Geom.Width define shrink : Geom.Size * 2 * 0.13 @@ -83,3 +114,44 @@ glyph-block Symbol-Geometric-Technical : for-width-kinds WideWidth1 arcvh 4 flat @x2 @y3 curl Geom.MidX @y3 + + do "Keyboard Symbols" + define topLine : Geom.MidY + Geom.Size / 1.5 + define botLine : Geom.MidY - Geom.Size / 1.5 + define topLineC : topLine - GeometryStroke / 2 + define botLineC : botLine + GeometryStroke / 2 + + create-glyph [MangleName 'arrowHeadUpBetweenBars'] [MangleUnicode 0x2324] : glyph-proc + set-width MosaicWidth + include : ArrowHead Geom.MidX Geom.Bot Geom.MidX topLine + include : HBar.t Geom.Left (Geom.MidX - Geom.Size / 3) topLine GeometryStroke + include : HBar.t (Geom.MidX + Geom.Size / 3) Geom.Right topLine GeometryStroke + + create-glyph [MangleName 'optionKey'] [MangleUnicode 0x2325] : glyph-proc + set-width Geom.Width + include : dispiro + Polyline [widths.center GeometryStroke] + points -- { + { Geom.Left topLineC } + { (Geom.MidX - Geom.Size / 3) topLineC } + { (Geom.MidX + Geom.Size / 3) botLineC } + { Geom.Right botLineC } + } + startAf -- [widths.center.heading GeometryStroke Rightward] + endAf -- [widths.center.heading GeometryStroke Rightward] + include : HBar.t (Geom.MidX + Geom.Size / 3) Geom.Right topLine GeometryStroke + + create-glyph [MangleName 'alternateKey'] [MangleUnicode 0x2387] : glyph-proc + set-width Geom.Width + include : dispiro + Polyline [widths.center GeometryStroke] + points -- { + { Geom.Left botLineC } + { (Geom.MidX - Geom.Size / 3) botLineC } + { (Geom.MidX + Geom.Size / 3) topLineC } + { (Geom.Right - Geom.Size / 6) topLineC } + } + startAf -- [widths.center.heading GeometryStroke Rightward] + endAf -- [widths.center.heading GeometryStroke Rightward] + include : ArrowShape (Geom.Right - Geom.Size / 6) topLineC (Geom.Right + GeometryStroke / 2) topLineC (GeometryStroke / 2 + Geom.Size / 3) + include : HBar.b (Geom.MidX + Geom.Size / 3) Geom.Right botLine GeometryStroke diff --git a/packages/font-glyphs/src/symbol/letter.ptl b/packages/font-glyphs/src/symbol/letter.ptl index 15f4024fde..61170d65a8 100644 --- a/packages/font-glyphs/src/symbol/letter.ptl +++ b/packages/font-glyphs/src/symbol/letter.ptl @@ -83,7 +83,7 @@ glyph-block Symbol-Currency : begin select-variant 'currency/turkishLiraSign' 0x20BA create-glyph 'currency/sheqelSign' 0x20AA : glyph-proc - local df : include : DivFrame para.diversityM 4 + local df : include : DivFrame para.advanceScaleM 4 include : df.markSet.e define pX 0.7 @@ -109,13 +109,13 @@ glyph-block Symbol-Currency : begin curl df.rightSB XH [heading Upward] create-glyph 'currency/manatSign' 0x20BC : glyph-proc - local df : include : DivFrame para.diversityT 3 + local df : include : DivFrame para.advanceScaleT 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 sw : Math.min df.mvs : AdviceStroke2 3 2 archTop df.adws local ada : df.archDepthAOf SmallArchDepth sw local adb : df.archDepthBOf SmallArchDepth sw @@ -134,7 +134,7 @@ glyph-block Symbol-Currency : begin include : composite-proc sf.lb.full sf.rb.full create-glyph 'currency/lariSign' 0x20BE : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.advanceScaleM 3 local gap : df.rightSB - df.leftSB - [HSwToV : 2 * df.mvs] local fine : Math.min OverlayStroke AdviceStrokeInSpace gap HVContrast 3 1 1 @@ -307,7 +307,7 @@ glyph-block Symbol-Letter : begin include : HBar.b SB RightSB 0 create-glyph 'mathGimel' 0x2137 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF local hd : FlatHookDepth df local xStart : mix df.leftSB df.rightSB 0.1 diff --git a/packages/font-glyphs/src/symbol/math/geometry.ptl b/packages/font-glyphs/src/symbol/math/geometry.ptl index 2117937a5b..2c9ffb09cd 100644 --- a/packages/font-glyphs/src/symbol/math/geometry.ptl +++ b/packages/font-glyphs/src/symbol/math/geometry.ptl @@ -163,9 +163,12 @@ glyph-block Symbol-Math-Geometry : begin straight.right.end right top do 'Zigzags' - create-glyph 'vertZigzag' 0x299A : VZigzag Middle ParenBot ParenTop (radiusBox / 4) 9 0 GeometryStroke - create-glyph 'wigglyFenceLeft' 0x29D8 : VZigzag Middle ParenBot ParenTop (radiusBox / 4) 10 1 GeometryStroke - create-glyph 'wigglyFenceRight' 0x29D9 : VZigzag Middle ParenBot ParenTop (radiusBox / 4) 10 0 GeometryStroke + create-glyph 'vertZigzag' 0x299A : intersection [MaskAbove ParenBot] [MaskBelow ParenTop] + VZigzag.fromSide Middle ParenBot ParenTop (radiusBox / 4) 9 0 GeometryStroke + create-glyph 'wigglyFenceLeft' 0x29D8 : intersection [MaskAbove ParenBot] [MaskBelow ParenTop] + VZigzag.fromSide Middle ParenBot ParenTop (radiusBox / 4) 10 1 GeometryStroke + create-glyph 'wigglyFenceRight' 0x29D9 : intersection [MaskAbove ParenBot] [MaskBelow ParenTop] + VZigzag.fromSide Middle ParenBot ParenTop (radiusBox / 4) 10 0 GeometryStroke define space : (rightBox - leftBox - [HSwToV GeometryStroke] * 2) / 3 create-glyph 'doubleWigglyFenceLeft' 0x29DA : glyph-proc diff --git a/packages/font-glyphs/src/symbol/math/large-operators.ptl b/packages/font-glyphs/src/symbol/math/large-operators.ptl index fb12357854..2fa4de5e76 100644 --- a/packages/font-glyphs/src/symbol/math/large-operators.ptl +++ b/packages/font-glyphs/src/symbol/math/large-operators.ptl @@ -18,8 +18,8 @@ glyph-block Symbol-Math-Large-Operators : for-width-kinds WideWidth1 define MosaicBottom fontMetrics.os2.sTypoDescender define MosaicHeight : MosaicTop - MosaicBottom - define diversityLargeOperators : Math.max para.diversityM (MosaicWidth / Width) - define df : DivFrame diversityLargeOperators 0 [if FMosaicWide diversityLargeOperators 1] + define advanceScaleLargeOperators : Math.max para.advanceScaleM (MosaicWidth / Width) + define df : DivFrame advanceScaleLargeOperators 0 [if FMosaicWide advanceScaleLargeOperators 1] create-glyph [MangleName 'sum'] [MangleUnicode 0x2211] : glyph-proc set-width df.width @@ -66,8 +66,8 @@ glyph-block Symbol-Math-Large-Operators : for-width-kinds WideWidth1 set-width df.width include : UShape df BgOpTop BgOpBot stroke -- OperatorStroke - ada -- [ArchDepthAOf (ArchDepth * [Math.sqrt df.div]) (df.width)] - adb -- [ArchDepthBOf (ArchDepth * [Math.sqrt df.div]) (df.width)] + ada -- [ArchDepthAOf (ArchDepth * [Math.sqrt df.adws]) (df.width)] + adb -- [ArchDepthBOf (ArchDepth * [Math.sqrt df.adws]) (df.width)] turned [MangleName 'Cap'] [MangleUnicode 0x22C2] [MangleName 'Cup'] df.middle SymbolMid diff --git a/packages/font-glyphs/src/symbol/math/logicals.ptl b/packages/font-glyphs/src/symbol/math/logicals.ptl index 92ec4b047c..90d0df93a0 100644 --- a/packages/font-glyphs/src/symbol/math/logicals.ptl +++ b/packages/font-glyphs/src/symbol/math/logicals.ptl @@ -116,9 +116,9 @@ glyph-block Symbol-Math-Logicals : begin include : VBar.m Middle (SymbolMid * 2) 0 OperatorStroke create-glyph 'turnedTautologyTautology' 0x27DA : glyph-proc - local df : include : DivFrame para.diversityMM 4 + local df : include : DivFrame para.advanceScaleMM 4 local vs : df.mvs * OperatorStroke / Stroke - local innerSB : Math.min (SB * [Math.min 1 : df.div / 1.5]) df.leftSB + local innerSB : Math.min (SB * [Math.min 1 : df.adws / 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) @@ -131,9 +131,9 @@ glyph-block Symbol-Math-Logicals : begin include : HBar.m r df.rightSB b OperatorStroke create-glyph 'dashvvdash' 0x27DB : glyph-proc - local df : include : DivFrame para.diversityMM 4 + local df : include : DivFrame para.advanceScaleMM 4 local vs : df.mvs * OperatorStroke / Stroke - local innerSB : Math.min (SB * [Math.min 1 : df.div / 1.5]) df.leftSB + local innerSB : Math.min (SB * [Math.min 1 : df.adws / 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 1878312b41..4307a6a3c2 100644 --- a/packages/font-glyphs/src/symbol/math/relation.ptl +++ b/packages/font-glyphs/src/symbol/math/relation.ptl @@ -230,7 +230,7 @@ glyph-block Symbol-Math-Relation-Addons : begin glyph-block-export lesslessSW muchLessSW lesslessSWO llggHeight define lesslessSW : AdviceStroke 3.5 - define muchLessSW : AdviceStroke 4.5 para.diversityMM + define muchLessSW : AdviceStroke 4.5 para.advanceScaleMM define lesslessSWO : Math.max lesslessSW lessEqDist define llggHeight : dH * 2 + lessEqDist * 2 @@ -637,12 +637,12 @@ glyph-block Symbol-Math-Relation-Inequality : begin include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) (SB + lessEqDist * 2) (RightSB + lessEqDist / 2) lesslessSW create-glyph 'muchLess' 0x22D8 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : LessShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (0/3)] [mix df.leftSB df.rightSB (1/3)] muchLessSW include : LessShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (1/3)] [mix df.leftSB df.rightSB (2/3)] muchLessSW include : LessShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (2/3)] [mix df.leftSB df.rightSB (3/3)] muchLessSW create-glyph 'muchGreater' 0x22D9 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (0/3)] [mix df.leftSB df.rightSB (1/3)] muchLessSW include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (1/3)] [mix df.leftSB df.rightSB (2/3)] muchLessSW include : GreaterShape (SymbolMid + dH) (SymbolMid - dH) [mix df.leftSB df.rightSB (2/3)] [mix df.leftSB df.rightSB (3/3)] muchLessSW 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 171218d27b..3631913546 100644 --- a/packages/font-glyphs/src/symbol/math/v-and-cup.ptl +++ b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl @@ -271,7 +271,7 @@ glyph-block Symbol-Math-VAndCup : begin turned 'squareCup' 0x2294 'squareCap' Middle SymbolMid create-glyph 'shuffleProduct' 0x29E2 : glyph-proc - local df : include : DivFrame para.diversityMM 3 + local df : include : DivFrame para.advanceScaleMM 3 include : CyrShaShape df OperTop OperBot (fine -- OperatorStroke) (doSerif -- false) create-glyph 'doubleSquareCap' 0x2A4E : glyph-proc diff --git a/packages/font-glyphs/src/symbol/pictograph.ptl b/packages/font-glyphs/src/symbol/pictograph.ptl index a435857879..71d121bd7e 100644 --- a/packages/font-glyphs/src/symbol/pictograph.ptl +++ b/packages/font-glyphs/src/symbol/pictograph.ptl @@ -13,6 +13,7 @@ export : define [apply] : begin run-glyph-module "./pictograph/faces.mjs" run-glyph-module "./pictograph/flags.mjs" run-glyph-module "./pictograph/game-sprite.mjs" + run-glyph-module "./pictograph/geometric.mjs" run-glyph-module "./pictograph/heart.mjs" run-glyph-module "./pictograph/hourglass.mjs" run-glyph-module "./pictograph/i-ching.mjs" diff --git a/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl b/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl index 1438e54b62..e441cc34d2 100644 --- a/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl @@ -68,26 +68,41 @@ glyph-block Symbol-Pictograph-Checking-Marks : begin alsoThru 0.47 0.5 g4 ptRSB [mix ptBot ptTop 0.42] - do "Ext angle brackets" + do "Decorative angular brackets" define Geom : GeometricDim Width Width define mediumSw : UnicodeWeightGrade 5 Geom.Scalar define heavySw : UnicodeWeightGrade 9 Geom.Scalar define xHeavySw : UnicodeWeightGrade 11 Geom.Scalar - define ExtBracketConfig : list - list 0x276C mediumSw 1 SB PictTop - list 0x276D mediumSw 0 SB PictTop - list 0x276E heavySw 1 [mix SB Middle 0.45] [mix SymbolMid ParenTop 0.5] - list 0x276F heavySw 0 [mix SB Middle 0.45] [mix SymbolMid ParenTop 0.5] - list 0x2770 xHeavySw 1 SB PictTop - list 0x2771 xHeavySw 0 SB PictTop - foreach {unicode sw op left top} [items-of ExtBracketConfig] : begin - create-glyph [NameUni unicode] unicode : glyph-proc - local bot : 2 * SymbolMid - top - local right : 2 * Middle - left - local cor : DiagCor (top - bot) (2 * (right - left)) - include : dispiro - widths.center (sw * cor) - corner [mix (left + sw / 2) (right - sw / 2) op] top [heading Downward] - corner [mix (left + sw / 2) (right - sw / 2) (1 - op)] SymbolMid [heading Downward] - corner [mix (left + sw / 2) (right - sw / 2) op] bot [heading Downward] + define HeightConfig : object + # suffix width scale height scale + tall { 1.00 1.00 } + middle { 0.80 0.75 } + short { 0.55 0.50 } + + define CharConfig : list + # unicode sw side + list 0x276C mediumSw 1 + list 0x276D mediumSw 0 + list 0x276E heavySw 1 + list 0x276F heavySw 0 + list 0x2770 xHeavySw 1 + list 0x2771 xHeavySw 0 + + foreach { unicode sw side } [items-of CharConfig] : begin + foreach { suffix { widthScale heightScale } } [pairs-of HeightConfig] : begin + create-glyph "\[NameUni unicode].\(suffix)" : glyph-proc + local top : mix SymbolMid ParenTop heightScale + local bot : mix SymbolMid ParenBot heightScale + local left : mix Middle SB widthScale + local right : mix Middle RightSB widthScale + local cor : DiagCor (top - bot) (2 * (right - left)) + local swC : sw * cor + local shift : 0.5 * swC + OX + include : dispiro + widths.center swC + corner [mix (left + shift) (right - shift) side] top [heading Downward] + corner [mix (left + shift) (right - shift) (1 - side)] SymbolMid [heading Downward] + corner [mix (left + shift) (right - shift) side] bot [heading Downward] + + select-variant [NameUni unicode] unicode (follow -- 'decorativeAngleBracket') diff --git a/packages/font-glyphs/src/symbol/pictograph/faces.ptl b/packages/font-glyphs/src/symbol/pictograph/faces.ptl index 65b247fa56..c9dea000f0 100644 --- a/packages/font-glyphs/src/symbol/pictograph/faces.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/faces.ptl @@ -17,7 +17,7 @@ glyph-block Symbol-Pictograph-Faces : begin width : Math.min (right - left) (top - bottom) midX : mix left right 0.5 - local div : (scaffold.width + SB * 2) / Width + local adws : (scaffold.width + SB * 2) / Width set scaffold.left : scaffold.midX - scaffold.width / 2 set scaffold.right : scaffold.midX + scaffold.width / 2 @@ -25,8 +25,8 @@ glyph-block Symbol-Pictograph-Faces : begin set scaffold.smb : ArchDepthBOf (SmallArchDepth * mosaicWidthScalar * scale) (mosaicWidth * scale) set scaffold.rda : ArchDepthAOf ((top - bottom) / 2) (mosaicWidth * scale) set scaffold.rdb : ArchDepthBOf ((top - bottom) / 2) (mosaicWidth * scale) - set scaffold.stroke : AdviceStroke 5 div - set scaffold.fine : AdviceStroke (6 * [Math.sqrt (mosaicWidthScalar * scale)]) div + set scaffold.stroke : AdviceStroke 5 adws + set scaffold.fine : AdviceStroke (6 * [Math.sqrt (mosaicWidthScalar * scale)]) adws define eyeYPos 0.625 define noseYPos 0.5 diff --git a/packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl b/packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl index 34a7182f0d..684423a2e3 100644 --- a/packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl @@ -12,7 +12,6 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4 glyph-block-import Shared-Symbol-Shapes : TriangleShape glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit WithD4Transform D4Transform glyph-block-import Symbol-Geometric-Shared : GeometricDim - glyph-block-import Symbol-Mosaic-Block : HShade VShade define top fontMetrics.os2.sTypoAscender define bottom fontMetrics.os2.sTypoDescender @@ -365,7 +364,7 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4 set scaffold.tipHeight : 1 / 4 define [RightRocket box] : glyph-proc - local rocketLeft : box.mixY (0.5 + scaffold.width / 2) + local rocketLeft : box.mixY (0.5 + scaffold.width / 2) local rocketRight : box.mixY (0.5 - scaffold.width / 2) local rocketBase : box.mixX scaffold.baseHeight local rocketTip : box.mixX (1 - scaffold.tipHeight) @@ -483,91 +482,6 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4 include : UpFrog squareBox : D4Transform midX 2 0 - do "Square Spiral" - define directions : list - * {.dx 1 .dy 0 .heading Rightward} - * {.dx 0 .dy 1 .heading Upward} - * {.dx (-1) .dy 0 .heading Leftward} - * {.dx 0 .dy (-1) .heading Downward} - - define spiralSw : AdviceStroke 4 : Math.sqrt (MosaicWidthScalar / 2) - define oneStep : Geom.Size / 4.5 - define stepsPerTurn { 9 9 9 7 7 5 5 3 3 } - define [SquareSpiral startx starty startidx] : glyph-proc - local x1 startx - local y1 starty - foreach [idx : range 0 stepsPerTurn.length] : begin - local {.dx dx .dy dy .heading dir} directions.((startidx + idx) % 4) - local x2 : x1 + dx * oneStep * stepsPerTurn.(idx) - local y2 : y1 + dy * oneStep * stepsPerTurn.(idx) - include : dispiro - widths.lhs spiralSw - disable-contrast - flat x1 y1 [heading dir] - curl x2 y2 [heading dir] - set x1 x2 - set y1 y2 - - create-glyph [MangleName "squareSpiralFromTopLeft"] [MangleUnicode 0x1CC7C] : glyph-proc - set-width MosaicWidth - include : SquareSpiral Geom.Left Geom.Top 3 - create-glyph [MangleName "squareSpiralFromTopRight"] [MangleUnicode 0x1CC7D] : glyph-proc - set-width MosaicWidth - include : SquareSpiral Geom.Right Geom.Top 2 - create-glyph [MangleName "squareSpiralFromBottomRight"] [MangleUnicode 0x1CC7E] : glyph-proc - set-width MosaicWidth - include : SquareSpiral Geom.Right Geom.Bot 1 - create-glyph [MangleName "squareSpiralFromBottomLeft"] [MangleUnicode 0x1CC7F] : glyph-proc - set-width MosaicWidth - include : SquareSpiral Geom.Left Geom.Bot 0 - - - do "Ladder" - create-glyph [MangleName "vertLadder"] [MangleUnicode 0x1CC84] : glyph-proc - set-width MosaicWidth - include : HShade 8 top bottom Geom.Left Geom.Right - include : VBar.l Geom.Left bottom top GeometryStroke - include : VBar.r Geom.Right bottom top GeometryStroke - - create-glyph [MangleName "horiLadder"] [MangleUnicode 0x1CC85] : glyph-proc - set-width MosaicWidth - include : VShade (4 * MosaicWidthScalar) Geom.Top Geom.Bot left right - include : HBar.b left right Geom.Bot GeometryStroke - include : HBar.t left right Geom.Top GeometryStroke - - - do "Striped Triangles" - define stripes : 2 + 2 * MosaicWidthScalar - define coTop : mix Geom.Top Geom.Bot (0 - 1 / (2 * stripes)) - define coBot : mix Geom.Top Geom.Bot (1 + 1 / (2 * stripes)) - define coLeft : mix Geom.Left Geom.Right (0 - 1 / (2 * stripes)) - define coRight : mix Geom.Left Geom.Right (1 + 1 / (2 * stripes)) - - create-glyph [MangleName "stripedTriangleLeft"] [MangleUnicode 0x1CC80] : glyph-proc - set-width MosaicWidth - include : intersection - refer-glyph : MangleName "blackTriangleLeft" - VShade stripes top bottom coLeft coRight - - create-glyph [MangleName "stripedTriangleUp"] [MangleUnicode 0x1CC81] : glyph-proc - set-width MosaicWidth - include : intersection - refer-glyph : MangleName "blackTriangleUp" - HShade stripes coTop coBot left right - - create-glyph [MangleName "stripedTriangleRight"] [MangleUnicode 0x1CC82] : glyph-proc - set-width MosaicWidth - include : intersection - refer-glyph : MangleName "blackTriangleRight" - VShade stripes top bottom coLeft coRight - - create-glyph [MangleName "stripedTriangleDown"] [MangleUnicode 0x1CC83] : glyph-proc - set-width MosaicWidth - include : intersection - refer-glyph : MangleName "blackTriangleDown" - HShade stripes coTop coBot left right - - do "Moon Lander" define scaffold : object set scaffold.tipSize 0.2 diff --git a/packages/font-glyphs/src/symbol/pictograph/geometric.ptl b/packages/font-glyphs/src/symbol/pictograph/geometric.ptl new file mode 100644 index 0000000000..62e91714b1 --- /dev/null +++ b/packages/font-glyphs/src/symbol/pictograph/geometric.ptl @@ -0,0 +1,118 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback strokeOffset] from "@iosevka/util" +import [Box] from "@iosevka/geometry/box" +import [Transform] from "@iosevka/geometry/transform" + +glyph-module + +glyph-block Symbol-Pictograph-Geometric : for-width-kinds WideWidth4 + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Symbol-Geometric-Shared : GeometricDim + glyph-block-import Symbol-Mosaic-Block : HShade VShade + + define top fontMetrics.os2.sTypoAscender + define bottom fontMetrics.os2.sTypoDescender + define left 0 + define right MosaicWidth + + define midX : mix left right 0.5 + define midY : mix top bottom 0.5 + + define Geom : GeometricDim MosaicUnitWidth MosaicWidth + + do "Square Spiral" + define directions : list + * {.dx 1 .dy 0 .heading Rightward} + * {.dx 0 .dy 1 .heading Upward} + * {.dx (-1) .dy 0 .heading Leftward} + * {.dx 0 .dy (-1) .heading Downward} + + define spiralSw : AdviceStroke 4 : Math.sqrt (MosaicWidthScalar / 2) + define oneStep : Geom.Size / 4.5 + define stepsPerTurn { 9 9 9 7 7 5 5 3 3 } + define [SquareSpiral startx starty startidx] : glyph-proc + local x1 startx + local y1 starty + foreach [idx : range 0 stepsPerTurn.length] : begin + local {.dx dx .dy dy .heading dir} directions.((startidx + idx) % 4) + local x2 : x1 + dx * oneStep * stepsPerTurn.(idx) + local y2 : y1 + dy * oneStep * stepsPerTurn.(idx) + include : dispiro + widths.lhs spiralSw + disable-contrast + flat x1 y1 [heading dir] + curl x2 y2 [heading dir] + set x1 x2 + set y1 y2 + + create-glyph [MangleName "squareSpiralFromTopLeft"] [MangleUnicode 0x1CC7C] : glyph-proc + set-width MosaicWidth + include : SquareSpiral Geom.Left Geom.Top 3 + create-glyph [MangleName "squareSpiralFromTopRight"] [MangleUnicode 0x1CC7D] : glyph-proc + set-width MosaicWidth + include : SquareSpiral Geom.Right Geom.Top 2 + create-glyph [MangleName "squareSpiralFromBottomRight"] [MangleUnicode 0x1CC7E] : glyph-proc + set-width MosaicWidth + include : SquareSpiral Geom.Right Geom.Bot 1 + create-glyph [MangleName "squareSpiralFromBottomLeft"] [MangleUnicode 0x1CC7F] : glyph-proc + set-width MosaicWidth + include : SquareSpiral Geom.Left Geom.Bot 0 + + do "Ladder" + create-glyph [MangleName "vertLadder"] [MangleUnicode 0x1CC84] : glyph-proc + set-width MosaicWidth + include : HShade 8 top bottom Geom.Left Geom.Right + include : VBar.l Geom.Left bottom top GeometryStroke + include : VBar.r Geom.Right bottom top GeometryStroke + + create-glyph [MangleName "horiLadder"] [MangleUnicode 0x1CC85] : glyph-proc + set-width MosaicWidth + include : VShade (4 * MosaicWidthScalar) Geom.Top Geom.Bot left right + include : HBar.b left right Geom.Bot GeometryStroke + include : HBar.t left right Geom.Top GeometryStroke + + + do "Striped Triangles" + define stripes : 2 + 2 * MosaicWidthScalar + define coTop : mix Geom.Top Geom.Bot (0 - 1 / (2 * stripes)) + define coBot : mix Geom.Top Geom.Bot (1 + 1 / (2 * stripes)) + define coLeft : mix Geom.Left Geom.Right (0 - 1 / (2 * stripes)) + define coRight : mix Geom.Left Geom.Right (1 + 1 / (2 * stripes)) + + create-glyph [MangleName "stripedTriangleLeft"] [MangleUnicode 0x1CC80] : glyph-proc + set-width MosaicWidth + include : intersection + refer-glyph : MangleName "blackTriangleLeft" + VShade stripes top bottom coLeft coRight + + create-glyph [MangleName "stripedTriangleUp"] [MangleUnicode 0x1CC81] : glyph-proc + set-width MosaicWidth + include : intersection + refer-glyph : MangleName "blackTriangleUp" + HShade stripes coTop coBot left right + + create-glyph [MangleName "stripedTriangleRight"] [MangleUnicode 0x1CC82] : glyph-proc + set-width MosaicWidth + include : intersection + refer-glyph : MangleName "blackTriangleRight" + VShade stripes top bottom coLeft coRight + + create-glyph [MangleName "stripedTriangleDown"] [MangleUnicode 0x1CC83] : glyph-proc + set-width MosaicWidth + include : intersection + refer-glyph : MangleName "blackTriangleDown" + HShade stripes coTop coBot left right + + do "Horizontal Zigzag" + glyph-block-import Shared-Symbol-Shapes : HZigzag + + 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 + + include : HZigzag.fromSide Geom.MidY left right amp sgmts 1 GeometryStroke diff --git a/packages/font-glyphs/src/symbol/pictograph/schematic.ptl b/packages/font-glyphs/src/symbol/pictograph/schematic.ptl index 592287c45d..f4995f8f02 100644 --- a/packages/font-glyphs/src/symbol/pictograph/schematic.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/schematic.ptl @@ -123,64 +123,30 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin corner midx midy do "Resistor" + glyph-block-import Shared-Symbol-Shapes : HZigzag VZigzag define amplitude : Geom.Size * 0.8 define vWaves 2 define hWaves MosaicWidthScalar - define [HoriWaveSegment left right lefty righty sw] : intersection - MaskRight left - MaskLeft right - ExtLineCenter 1 sw left lefty right righty - define [VertWaveSegment bot top botx topx sw] : intersection - MaskAbove bot - MaskBelow top - ExtLineCenter 1 sw botx bot topx top - create-glyph [MangleName 'resistorHori'] [MangleUnicode 0x1CC09] : glyph-proc set-width MosaicWidth include : ForceUpright - local segs : 2 * hWaves - 1 - local halfPeriod : MosaicWidth / (2 * hWaves) - local up : midy + amplitude - local down : midy - amplitude - include : intersection - MaskLeft : left + 0.5 * halfPeriod - MaskAbove : midy - 0.5 * boxDrawingStroke - ExtLineCenter 1 boxDrawingStroke left midy (left + 0.5 * halfPeriod) up - foreach [j : range 0 segs] : begin - include : HoriWaveSegment - left + (j + 0.5) * halfPeriod - left + (j + 1.5) * halfPeriod - if (j % 2) down up - if (j % 2) up down - * boxDrawingStroke - include : intersection - MaskRight : right - 0.5 * halfPeriod - MaskBelow : midy + 0.5 * boxDrawingStroke - ExtLineCenter 1 boxDrawingStroke (right - 0.5 * halfPeriod) down right midy + local segs : 2 * hWaves + local mask : (right - left) / (segs * 2) + include : difference + HZigzag.fromCenter midy left right amplitude segs 0 boxDrawingStroke 1 + MaskLeftLine (left + mask) bottom (left + mask) (midy - boxDrawingStroke / 2) + MaskRightLine (right - mask) (midy + boxDrawingStroke / 2) (right - mask) top create-glyph [MangleName 'resistorVert'] [MangleUnicode 0x1CC0A] : glyph-proc set-width MosaicWidth include : ForceUpright - local segs : 2 * vWaves - 1 - local halfPeriod : MosaicHeight / (2 * vWaves) - local up : midx + amplitude - local down : midx - amplitude - include : intersection - MaskBelow : bottom + 0.5 * halfPeriod - MaskRight : midx - [HSwToV : 0.5 * boxDrawingStroke] - ExtLineCenter 1 boxDrawingStroke midx bottom up (bottom + 0.5 * halfPeriod) - foreach [j : range 0 segs] : begin - include : VertWaveSegment - bottom + (j + 0.5) * halfPeriod - bottom + (j + 1.5) * halfPeriod - if (j % 2) down up - if (j % 2) up down - * boxDrawingStroke - include : intersection - MaskAbove : top - 0.5 * halfPeriod - MaskLeft : midx + [HSwToV : 0.5 * boxDrawingStroke] - ExtLineCenter 1 boxDrawingStroke down (top - 0.5 * halfPeriod) midx top + local segs : 2 * vWaves + local mask : (top - bottom) / (segs * 2) + include : difference + VZigzag.fromCenter midx bottom top amplitude segs 0 boxDrawingStroke 1 + MaskBelowLine left (bottom + mask) (midx - [HSwToV : boxDrawingStroke / 2]) (bottom + mask) + MaskAboveLine (midx + [HSwToV : boxDrawingStroke / 2]) (top - mask) right (top - mask) do "Coil" glyph-block-import Symbol-Mosaic-Split-Graphic : Multicell @@ -258,7 +224,7 @@ glyph-block Symbol-Pictograph-Schematic : for-width-kinds WideWidth4 : begin local tipDy : tipDx * (-slope) local baseDx : -tipDy / [Math.sqrt 3] * 2 local baseDy : baseDx / (-slope) - define arrowPos : (1 - [HSwToV boxDrawingStroke] / (MosaicWidth / 2)) * 0.4 + define arrowPos : (1 - [HSwToV boxDrawingStroke] / MosaicMiddle) * 0.4 define [VerticalPart] : intersection Rect top bottom left (midx + [HSwToV : 0.5 * boxDrawingStroke]) diff --git a/packages/font-glyphs/src/symbol/pictograph/suit.ptl b/packages/font-glyphs/src/symbol/pictograph/suit.ptl index 1330da3103..9294fc187a 100644 --- a/packages/font-glyphs/src/symbol/pictograph/suit.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/suit.ptl @@ -10,7 +10,7 @@ glyph-block Symbol-Pictograph-Suit-Cards : begin glyph-block-import Common-Derivatives glyph-block-import Symbol-Pictograph-Heart : HeartShapeImpl - define df : DivFrame para.diversityM + define df : DivFrame para.advanceScaleM define sw : AdviceStroke 4.25 define suit : new Box mix SymbolMid PictTop 0.75 diff --git a/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl b/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl index 5b5c2d6ee7..45061ffa1a 100644 --- a/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl @@ -9,7 +9,7 @@ glyph-block Symbol-Punctuation-Ampersand : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Letter-Latin-Ezh : RevEzhShape - glyph-block-import Letter-Shared-Shapes : DToothlessRise RightwardTailedBar SerifedArcEnd + glyph-block-import Letter-Shared-Shapes : RightwardTailedBar SerifedArcEnd define SwAmpersand : AdviceStroke2 2.5 3 CAP define fineAmp : AdviceStroke 3.5 @@ -31,7 +31,7 @@ glyph-block Symbol-Punctuation-Ampersand : begin define ClosedTipSw : AdviceStroke 3 define ClosedIncisedSw : AdviceStroke 5 - define ClosedBottomSlopeVal : -0.5 * (SwAmpersand - ClosedIncisedSw) / SwAmpersand + define ClosedBottomSlopeVal : (-0.5) * (SwAmpersand - ClosedIncisedSw) / SwAmpersand define ClosedBottomSlope {.x ClosedBottomSlopeVal .y (-1)} define xClosedAmpersandBottom : [mix SB RightSB 0.44] + (0.125 + 0.5 * CorrectionOMidX + ClosedBottomSlopeVal) * SwAmpersand define [ClosedAmpersandLeadDim sw swTip offset] : begin @@ -88,7 +88,7 @@ glyph-block Symbol-Punctuation-Ampersand : begin g4 xUpperLoopLeft yUpperLoopLeft flat [mix xUpperLoopLeft xTerminal pStraightBar] [mix yMockUpperLoopLeftBottom 0 pStraightBar] curl [mix xUpperLoopLeft xTerminal 2] (-yMockUpperLoopLeftBottom) - Rect 0 (-CAP * 2) xTerminal (Width * 2) + Rect 0 ((-CAP) * 2) xTerminal (Width * 2) create-glyph 'ampersand.upperOpen' : union intersection @@ -115,8 +115,8 @@ glyph-block Symbol-Punctuation-Ampersand : begin archv g4 xUpperLoopLeft yUpperLoopLeft flat [mix xUpperLoopLeft xTerminal pStraightBar] [mix yMockUpperLoopLeftBottom 0 pStraightBar] - corner [mix xUpperLoopLeft xTerminal 2] (- yMockUpperLoopLeftBottom) - corner ([mix xUpperLoopLeft xTerminal 2] + Width * 2) (- yMockUpperLoopLeftBottom) + corner [mix xUpperLoopLeft xTerminal 2] (-yMockUpperLoopLeftBottom) + corner ([mix xUpperLoopLeft xTerminal 2] + Width * 2) (-yMockUpperLoopLeftBottom) corner ([mix xUpperLoopLeft xTerminal 2] + Width * 2) (CAP - O) difference dispiro @@ -126,8 +126,8 @@ glyph-block Symbol-Punctuation-Ampersand : begin archv g4 xUpperLoopLeft yUpperLoopLeft flat [mix xUpperLoopLeft xTerminal pStraightBar] [mix yMockUpperLoopLeftBottom 0 pStraightBar] - curl [mix xUpperLoopLeft xTerminal 2] (- yMockUpperLoopLeftBottom) - Rect 0 (-CAP * 2) xTerminal (Width * 2) + curl [mix xUpperLoopLeft xTerminal 2] (-yMockUpperLoopLeftBottom) + Rect 0 ((-CAP) * 2) xTerminal (Width * 2) define xLowerOpenRight : mix xUpperLoopRight RightSB 0.5 define xLowerOpenBottom : mix SB xLowerOpenRight 0.5 diff --git a/packages/font-glyphs/src/symbol/punctuation/at.ptl b/packages/font-glyphs/src/symbol/punctuation/at.ptl index 34d4ddbb73..0be93f522f 100644 --- a/packages/font-glyphs/src/symbol/punctuation/at.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/at.ptl @@ -46,22 +46,22 @@ glyph-block Symbol-Punctuation-At : begin curl (RightSB - HalfStroke + TanSlope * sw) (bot + O) define [FourFoldShape height fSolidInner] : glyph-proc - local df : include : DivFrame para.diversityM [if fSolidInner 3.25 4] + local df : include : DivFrame para.advanceScaleM [if fSolidInner 3.25 4] local top : SymbolMid + height / 2 local bot : SymbolMid - height / 2 local otop : mix bot top 0.75 local obot : mix top bot 0.8 - local sw : AdviceStroke [if fSolidInner 3.25 4] df.div - local swh : AdviceStroke [if fSolidInner 3.25 3.75] df.div + local sw : AdviceStroke [if fSolidInner 3.25 4] df.adws + local swh : AdviceStroke [if fSolidInner 3.25 3.75] df.adws local kM12 : if fSolidInner 0.40 (1 / 3) local kM12Sw : if fSolidInner 0.25 0.5 local m1 : [mix (df.leftSB + [HSwToV (sw / 2)]) (df.rightSB - [HSwToV (sw / 2)]) kM12 ] - [HSwToV (sw * kM12Sw)] local m2 : [mix (df.leftSB + [HSwToV (sw / 2)]) (df.rightSB - [HSwToV (sw / 2)]) (1 - kM12)] + [HSwToV (sw * kM12Sw)] - local ad : ArchDepth * [Math.sqrt df.div] + local ad : ArchDepth * [Math.sqrt df.adws] local ada : ArchDepthAOf ad df.width local adb : ArchDepthBOf ad df.width diff --git a/packages/font-glyphs/src/symbol/punctuation/dashes.ptl b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl index 425cc8f95f..d56fbc4a2d 100644 --- a/packages/font-glyphs/src/symbol/punctuation/dashes.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl @@ -48,11 +48,11 @@ glyph-block Symbol-Punctuation-Dashes : begin select-variant 'doubleUnderscore' 0x2017 (follow -- 'underscore') create-glyph 'hyphen' '-' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : HBar.m df.leftSB df.rightSB SymbolMid create-glyph 'armn/hyphen' 0x58A : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : dispiro widths.center g4 df.leftSB SymbolMid [heading Rightward] @@ -102,6 +102,6 @@ glyph-block Symbol-Punctuation-Dashes : begin clear-anchors create-glyph 'dblHyphen' 0x2E40 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : HBar.m df.leftSB df.rightSB (SymbolMid + EqualHalfSpace) include : HBar.m df.leftSB df.rightSB (SymbolMid - EqualHalfSpace) diff --git a/packages/font-glyphs/src/symbol/punctuation/ellipsis.ptl b/packages/font-glyphs/src/symbol/punctuation/ellipsis.ptl index c087405a3c..2d5e9ca343 100644 --- a/packages/font-glyphs/src/symbol/punctuation/ellipsis.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/ellipsis.ptl @@ -34,13 +34,13 @@ glyph-block Symbol-Punctuation-Ellipsis : begin for-width-kinds WideWidth1 "Ellipsis" foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do create-glyph "\[MangleName 'oneDotLeader'].\(suffix)" : glyph-proc - local width : MosaicWidth * [mix para.diversityF para.diversityII (MosaicWidthScalar - 1)] + local width : MosaicWidth * [mix para.advanceScaleF para.advanceScaleII (MosaicWidthScalar - 1)] set-width width local radius : [EllipsisDotRadius 2 MosaicWidth] * kDotRadius include : DrawAt (width / 2) radius (radius - overshoot) create-glyph "\[MangleName 'twoDotsLeader'].\(suffix)" : glyph-proc - local width : MosaicWidth * [mix 1 para.diversityF (MosaicWidthScalar - 1)] + local width : MosaicWidth * [mix 1 para.advanceScaleF (MosaicWidthScalar - 1)] set-width width local radius : [EllipsisDotRadius 2 MosaicWidth] * kDotRadius local left : mix 0 width (1 / 4) @@ -84,19 +84,19 @@ glyph-block Symbol-Punctuation-Ellipsis : begin define radius : kDotRadius * [EllipsisDotRadius 3 XH] create-glyph "triColon.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : VThreeDotsShape DrawAt radius overshoot 0 df.width 0 0 XH create-glyph "mathTriColon.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : VThreeDotsShape DrawAt radius overshoot 0 df.width 0 (SymbolMid - XH / 2) (SymbolMid + XH / 2) create-glyph "quadColon.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : VFourDotShape DrawAt radius overshoot df.middle (-XH / 6) (XH * 7 / 6) create-glyph "mathQuadColon.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : VFourDotShape DrawAt radius overshoot df.middle (SymbolMid - XH * 2 / 3) (SymbolMid + XH * 2 / 3) create-glyph "vSixDots.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/symbol/punctuation/emotion.ptl b/packages/font-glyphs/src/symbol/punctuation/emotion.ptl index 42bff313b7..c749764268 100644 --- a/packages/font-glyphs/src/symbol/punctuation/emotion.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/emotion.ptl @@ -16,7 +16,7 @@ glyph-block Symbol-Punctuation-Emotion : begin foreach { suffix { DrawAt kdr overshoot } } [Object.entries DotVariants] : do local dr : DotRadius * kdr create-glyph "exclam.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : df.markSet.capital include : VBar.m df.middle [clamp 0 (CAP * 0.4) (emotionBottom * 1.18)] CAP include : DrawAt df.middle dr (dr - overshoot) @@ -36,7 +36,7 @@ glyph-block Symbol-Punctuation-Emotion : begin select-variant 'questionDown/dotPart' (follow -- 'punctuationDot') derive-glyphs 'retroflexClickHook' 0x1DF0A 'exclam' : function [src sel] : glyph-proc - local df : DivFrame para.diversityF + local df : DivFrame para.advanceScaleF include : df.markSet.capDesc include : refer-glyph src include : RetroflexHook.m @@ -45,8 +45,8 @@ glyph-block Symbol-Punctuation-Emotion : begin yAttach -- DotRadius alias 'alveolarclick' 0x1C3 'exclam' - turned 'exclamDown' 0xA1 'exclam' [DivFrame para.diversityF].middle (XH / 2) - turned 'alveolarpercussive' null 'exclam' [DivFrame para.diversityF].middle (CAP / 2) + turned 'exclamDown' 0xA1 'exclam' [DivFrame para.advanceScaleF].middle (XH / 2) + turned 'alveolarpercussive' null 'exclam' [DivFrame para.advanceScaleF].middle (CAP / 2) do "Question" local [YConnectT top emotionBottom] : mix emotionBottom (top - HalfStroke) 0.375 diff --git a/packages/font-glyphs/src/symbol/punctuation/guillemet.ptl b/packages/font-glyphs/src/symbol/punctuation/guillemet.ptl index 732a8e8fd6..78b46631bc 100644 --- a/packages/font-glyphs/src/symbol/punctuation/guillemet.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/guillemet.ptl @@ -9,45 +9,50 @@ glyph-block Symbol-Punctuation-Guillemet : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + define guilTop : mix SymbolMid ParenTop 0.5 + define guilBot : mix SymbolMid ParenBot 0.5 + define extension 0.55 + define guilLeft : mix Middle SB extension + define guilRight : mix Middle RightSB extension + create-glyph 'singleGuillemetLeft.straight' : glyph-proc - local top : mix SymbolMid ParenTop 0.5 - local bot : mix SymbolMid ParenBot 0.5 - local mid : mix bot top 0.5 local extension 0.55 local sw : AdviceStroke 3 local fine : AdviceStroke 4 - include : intersection [MaskAbove mid] : dispiro - flat [mix Middle SB extension] mid [widths.rhs sw] - curl [mix Middle RightSB extension] top [widths.center fine] - - include : intersection [MaskBelow mid] : dispiro - flat [mix Middle SB extension] mid [widths.lhs sw] - curl [mix Middle RightSB extension] bot [widths.center fine] + include : intersection + MaskAboveLine guilLeft SymbolMid guilRight [mix SymbolMid guilBot 0.5] 2 + dispiro + flat guilLeft SymbolMid [widths.rhs sw] + curl guilRight guilTop [widths.center fine] + include : intersection + MaskBelowLine guilLeft SymbolMid guilRight [mix SymbolMid guilTop 0.5] 2 + dispiro + flat guilLeft SymbolMid [widths.lhs sw] + curl guilRight guilBot [widths.center fine] include : Translate (-(RightSB - SB) * 0.05) 0 create-glyph 'singleGuillemetLeft.curly' : glyph-proc - local top : mix SymbolMid ParenTop 0.5 - local bot : mix SymbolMid ParenBot 0.5 - local mid : mix bot top 0.5 local extension 0.55 local sw : AdviceStroke 3 local fine : AdviceStroke 4 - include : intersection [MaskAbove mid] : dispiro - g4 [mix Middle SB extension] (mid + sw * 0.25) [widths.rhs sw] - quadControls 0.6 0.3 - g4 [mix Middle RightSB extension] top [widths.center fine] - - include : intersection [MaskBelow mid] : dispiro - g4 [mix Middle SB extension] (mid - sw * 0.25) [widths.lhs sw] - quadControls 0.6 0.3 - g4 [mix Middle RightSB extension] bot [widths.center fine] - - include : VBar.l [mix Middle SB extension] (mid - sw * 0.25) (mid + sw * 0.25) sw + include : intersection + MaskAboveLine guilLeft SymbolMid guilRight [mix SymbolMid guilBot 0.5] 2 + dispiro + g4 guilLeft (SymbolMid + sw * 0.25) [widths.rhs sw] + quadControls 0.6 0.3 + g4 guilRight guilTop [widths.center fine] + include : intersection + MaskBelowLine guilLeft SymbolMid guilRight [mix SymbolMid guilTop 0.5] 2 + dispiro + g4 guilLeft (SymbolMid - sw * 0.25) [widths.lhs sw] + quadControls 0.6 0.3 + g4 guilRight guilBot [widths.center fine] + include : VBar.l guilLeft (SymbolMid - sw * 0.25) (SymbolMid + sw * 0.25) sw include : Translate (-(RightSB - SB) * 0.05) 0 diff --git a/packages/font-glyphs/src/symbol/punctuation/interpuncts.ptl b/packages/font-glyphs/src/symbol/punctuation/interpuncts.ptl index 67ce458452..ed496e1b4a 100644 --- a/packages/font-glyphs/src/symbol/punctuation/interpuncts.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/interpuncts.ptl @@ -12,7 +12,7 @@ glyph-block Symbol-Punctuation-Interpuncts : begin foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do create-glyph "interpunct.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : DrawAt df.middle SymbolMid (PeriodRadius * kDotRadius - overshoot) select-variant 'interpunct' 0xB7 (follow -- 'punctuationDot') diff --git a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl index 32ea83504f..5815cee627 100644 --- a/packages/font-glyphs/src/symbol/punctuation/percentages.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl @@ -37,10 +37,10 @@ glyph-block Symbol-Punctuation-Percentages : begin include : DrawAt (RightSB - r) (0 + r) (r - overshoot) create-glyph 'permille.NWID.dots' : glyph-proc - define df : include : DivFrame para.diversityM + define df : include : DivFrame para.advanceScaleM define slopeDf : DivFrame 1 - define refSw : AdviceStroke 4 df.div + define refSw : AdviceStroke 4 df.adws include : PercentBarShape slopeDf refSw local dotwidth : refSw * 1.5 @@ -52,10 +52,10 @@ glyph-block Symbol-Punctuation-Percentages : begin include : VBar.r df.rightSB 0 [mix 0 CAP 0.3] lowerDotWidth create-glyph 'basepoint.NWID.dots' : glyph-proc - define df : include : DivFrame para.diversityM - define slopeDf : DivFrame : Math.min 1 : para.diversityM * 0.8 + define df : include : DivFrame para.advanceScaleM + define slopeDf : DivFrame : Math.min 1 : para.advanceScaleM * 0.8 - define refSw : AdviceStroke 5 df.div + define refSw : AdviceStroke 5 df.adws include : PercentBarShape slopeDf refSw local dotwidth : refSw * 1.5 @@ -137,16 +137,16 @@ glyph-block Symbol-Punctuation-Percentages : begin curl [mix l r pFine] [mix 0 CAP pFine] [widths.heading (fine * cor) 0 Upward] create-glyph : glyph-proc - local width : Width * para.diversityM + local width : Width * para.advanceScaleM local rightSB : width - SB set-width width local l : SB / 2 local r : width - l 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 ada : ArchDepthA * 0.5 * para.advanceScaleM + local adb : ArchDepthB * 0.5 * para.advanceScaleM + local sw : AdviceStroke2 4 5 CAP para.advanceScaleM + local fine : AdviceStroke2 5 5 CAP para.advanceScaleM local cor : HSwToV : 1 / [Math.sqrt : 1 - (((r - l - sw) / (CAP - 0)) ** 2)] local pTerm : fine / (2 * [Math.hypot CAP (r - l)]) local pFine : 0.5 - HalfStroke / [Math.hypot CAP (r - l)] @@ -164,26 +164,26 @@ glyph-block Symbol-Punctuation-Percentages : begin create-forked-glyph 'permille.NWID.ringsContinuousSlash' : glyph-proc local l1 : l - O local r2 r - local gap : (SB / 2 - O * 2) * para.diversityM + local gap : (SB / 2 - O * 2) * para.advanceScaleM local fill : ((r2 - l1) - gap) / 2 local r1 : l1 + fill local l2 : r1 + gap - local swp : AdviceStroke2 4 5 CAP para.diversityM + local swp : AdviceStroke2 4 5 CAP para.advanceScaleM include : OShape otop 0 l1 r1 swp ada adb include : OShape otop 0 l2 r2 swp ada adb create-forked-glyph 'basepoint.NWID.ringsContinuousSlash' : glyph-proc local l1 : l - O local r3 r - local gap : (SB / 2 - O) * para.diversityM + local gap : (SB / 2 - O) * para.advanceScaleM local fill : ((r3 - l1) - 2 * gap) / 3 local r1 : l1 + fill local l2 : r1 + gap local r2 : l2 + fill local l3 : r2 + gap - local swp : AdviceStroke2 6 5 CAP para.diversityM - local smap : ArchDepthA * (1/3) * para.diversityM - local smbp : ArchDepthB * (1/3) * para.diversityM + local swp : AdviceStroke2 6 5 CAP para.advanceScaleM + local smap : ArchDepthA * (1/3) * para.advanceScaleM + local smbp : ArchDepthB * (1/3) * para.advanceScaleM include : OShape otop 0 l1 r1 swp smap smbp include : OShape otop 0 l2 r2 swp smap smbp include : OShape otop 0 l3 r3 swp smap smbp diff --git a/packages/font-glyphs/src/symbol/punctuation/quotes-and-primes.ptl b/packages/font-glyphs/src/symbol/punctuation/quotes-and-primes.ptl index f42b03befc..8cb48b4ae0 100644 --- a/packages/font-glyphs/src/symbol/punctuation/quotes-and-primes.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/quotes-and-primes.ptl @@ -21,34 +21,34 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin local ratio : Math.min 1 : (quoteTop - quoteBottom) / (PeriodSize - commaLow) derive-glyphs 'lowSingleQuote' 0x201A 'comma' : function [src gr] : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : refer-glyph src include : FlipAround df.middle 0 ratio ratio derive-glyphs 'revLowSingleQuote' null 'revComma' : function [src gr] : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : refer-glyph src include : FlipAround df.middle 0 ratio ratio derive-glyphs 'openSingleQuote' 0x2018 'lowSingleQuote' : function [src gr] : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : refer-glyph src include : FlipAround df.middle [mix [mix PeriodSize commaLow 0.5] yCurlyQuotes 0.5] derive-glyphs 'closeSingleQuote' 0x2019 'openSingleQuote' : function [src gr] : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : refer-glyph src include : FlipAround df.middle yCurlyQuotes derive-glyphs 'revSingleQuote' 0x201B 'revComma' : function [src gr] : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : refer-glyph src include : FlipAround df.middle 0 ratio ratio include : FlipAround df.middle [mix [mix PeriodSize commaLow 0.5] yCurlyQuotes 0.5] include : FlipAround df.middle yCurlyQuotes define [DoubleQuoteProc gn] : glyph-proc - local dfSingle : DivFrame para.diversityF + local dfSingle : DivFrame para.advanceScaleF local dist : Width * 0.225 include : refer-glyph gn include : Translate (-dist * 2) 0 @@ -68,7 +68,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin # Primes create-glyph 'prime' 0x2032 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF local wide : Width * 0.1 include : dispiro widths.center (Stroke * 1.2) @@ -76,7 +76,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin curl (df.middle - wide) quoteBottom [widths.heading HalfStroke HalfStroke Downward] create-glyph 'doubleprime' 0x2033 : glyph-proc - local dfSingle : DivFrame para.diversityF + local dfSingle : DivFrame para.advanceScaleF local d : 0.25 * (RightSB - SB) include : refer-glyph "prime" include : Translate (-d * 2) 0 @@ -84,7 +84,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin include : Translate (d + Middle - dfSingle.middle) 0 create-glyph 'tripleprime' 0x2034 : glyph-proc - local df : include : DivFrame para.diversityM + local df : include : DivFrame para.advanceScaleM local wide : Width * 0.1 local d : df.width * 0.3 local fine : 0.5 * [AdviceStroke 3.5] @@ -102,7 +102,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin curl (df.middle + d - wide) quoteBottom [widths.heading fine fine Downward] create-glyph 'quadPrime' 0x2057 : glyph-proc - local df : include : DivFrame para.diversityM + local df : include : DivFrame para.advanceScaleM local wide : Width * 0.1 local fine : 0.5 * [AdviceStroke 4] local d : df.width * 0.15 - fine / 6 @@ -124,7 +124,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin curl (df.middle + 3 * d - wide) quoteBottom [widths.heading fine fine Downward] create-glyph 'revprime' 0x2035 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF local wide : -Width * 0.1 include : dispiro widths.center (Stroke * 1.2) @@ -132,7 +132,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin curl (df.middle - wide) quoteBottom [widths.heading HalfStroke HalfStroke Downward] create-glyph 'revdoubleprime' 0x2036 : glyph-proc - local dfSingle : DivFrame para.diversityF + local dfSingle : DivFrame para.advanceScaleF local d : 0.25 * (RightSB - SB) include : refer-glyph "revprime" include : Translate (-d * 2) 0 @@ -140,7 +140,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin include : Translate (d + Middle - dfSingle.middle) 0 create-glyph 'revtripleprime' 0x2037 : glyph-proc - local df : include : DivFrame para.diversityM + local df : include : DivFrame para.advanceScaleM local wide : -Width * 0.1 local d : df.width * 0.3 local fine : 0.5 * [AdviceStroke 3.5] @@ -175,34 +175,34 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin # ASCII quotes create-glyph 'asciiSingleQuote/body/straight' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : StraightQuoteShape df quoteTop quoteBottom create-glyph 'Saltillo' 0xA78B : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : df.markSet.capital include : StraightQuoteShape df CAP (0.625 * XH) create-glyph 'saltillo' 0xA78C : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : df.markSet.b include : StraightQuoteShape df Ascender XH create-glyph 'asciiGrave/selector.straight' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF DependentSelector.set currentGlyph 'straight' create-glyph 'asciiGrave/selector.raisedInverseComma' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF DependentSelector.set currentGlyph 'raisedInverseComma' create-glyph 'asciiGrave/selector.raisedTurnComma' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF DependentSelector.set currentGlyph 'raisedTurnComma' create-glyph 'asciiSingleQuote/selector.straight' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF DependentSelector.set currentGlyph 'straight' create-glyph 'asciiSingleQuote/selector.raisedComma' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF DependentSelector.set currentGlyph 'raisedComma' select-variant 'asciiSingleQuote/selector' (follow -- 'asciiSingleQuote') @@ -218,10 +218,10 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin 'raisedComma' 'closeSingleQuote' alias 'mdfStress' 0x2C8 'asciiSingleQuote/body/straight' - turned 'mdfSecondaryStress' 0x2CC 'asciiSingleQuote/body/straight' [DivFrame para.diversityF].middle (XH / 2) + turned 'mdfSecondaryStress' 0x2CC 'asciiSingleQuote/body/straight' [DivFrame para.advanceScaleF].middle (XH / 2) create-glyph 'asciiDoubleQuote' 0x22 : glyph-proc - local dfSingle : DivFrame para.diversityF + local dfSingle : DivFrame para.advanceScaleF local dist : 0.2 * Width include : refer-glyph "asciiSingleQuote/body/straight" include : Translate (-dist * 2) 0 @@ -245,7 +245,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin # Armenian exclamatory create-glyph 'armn/exclam' 0x55C : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF local height : quoteTop - quoteBottom local xLeft : df.middle - height / 2.5 local xRight : df.middle + height / 2.5 @@ -256,7 +256,7 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin g4.up.end xRight quoteTop [widths.lhs.heading sw Upward] create-glyph "armn/questionMark" 0x055E : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF local height : quoteTop - quoteBottom local xLeft : df.middle - height / 2 diff --git a/packages/font-glyphs/src/symbol/punctuation/small.ptl b/packages/font-glyphs/src/symbol/punctuation/small.ptl index db55782009..c52c6841fc 100644 --- a/packages/font-glyphs/src/symbol/punctuation/small.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/small.ptl @@ -13,16 +13,16 @@ glyph-block Symbol-Punctuation-Small : begin foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do create-glyph "period.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : DrawAt df.middle (PeriodRadius * kDotRadius) (PeriodRadius * kDotRadius - overshoot) create-glyph "halfXhPeriod.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : DrawAt df.middle (XH / 2) (PeriodRadius * kDotRadius - overshoot) create-glyph "xhPeriod.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : DrawAt df.middle (XH - PeriodRadius * kDotRadius) (PeriodRadius * kDotRadius - overshoot) create-glyph "capPeriod.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : DrawAt df.middle (CAP - PeriodRadius * kDotRadius) (PeriodRadius * kDotRadius - overshoot) create-glyph "smallPeriod.\(suffix)" : DrawAt Middle (DotRadius * kDotRadius) (DotRadius * kDotRadius - overshoot) @@ -40,7 +40,7 @@ glyph-block Symbol-Punctuation-Small : begin include : Translate (mx1) (my1) create-glyph 'comma.round' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : CommaShapeT df.middle 0 : glyph-proc local r : PeriodRadius + 0 local ro : PeriodRadius - O @@ -73,7 +73,7 @@ glyph-block Symbol-Punctuation-Small : begin g4 (-commaOverflow + Descender * TanSlope) Descender [widths.rhs swEnd] create-glyph 'comma.square' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : with-transform [Translate df.middle 0] : glyph-proc local r : PeriodRadius * DesignParameters.squareDotScalar + 0 local sw : Math.min [AdviceStroke 4] (PeriodSize * DesignParameters.squareDotScalar * 0.4) @@ -90,7 +90,7 @@ glyph-block Symbol-Punctuation-Small : begin create-glyph 'revComma.round' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : CommaShapeT df.middle 0 : glyph-proc local r : PeriodRadius + 0 local ro : PeriodRadius - O @@ -123,7 +123,7 @@ glyph-block Symbol-Punctuation-Small : begin g4 (commaOverflow + Descender * TanSlope) Descender [widths.lhs swEnd] create-glyph 'revComma.square' : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF include : with-transform [Translate df.middle 0] : glyph-proc local r : PeriodRadius * DesignParameters.squareDotScalar + 0 local sw : Math.min [AdviceStroke 4] (PeriodSize * DesignParameters.squareDotScalar * 0.4) @@ -142,8 +142,8 @@ glyph-block Symbol-Punctuation-Small : begin select-variant 'comma' ',' (follow -- 'punctuationDot') select-variant 'revComma' 0x2E41 (follow -- 'punctuationDot') - turned "turnComma.round" null "comma.round" [DivFrame para.diversityF].middle PeriodRadius - turned "turnComma.square" null "comma.square" [DivFrame para.diversityF].middle (PeriodRadius * DesignParameters.squareDotScalar) + turned "turnComma.round" null "comma.round" [DivFrame para.advanceScaleF].middle PeriodRadius + turned "turnComma.square" null "comma.square" [DivFrame para.advanceScaleF].middle (PeriodRadius * DesignParameters.squareDotScalar) select-variant 'turnComma' 0x2E32 (follow -- 'punctuationDot') derive-composites 'raisedPeriod.round' null 'period.round' [ApparentTranslate 0 (XH / 2 - PeriodRadius)] @@ -166,14 +166,14 @@ glyph-block Symbol-Punctuation-Small : begin include [refer-glyph "capPeriod.\(suffix)"] create-glyph "modifierLetterColon.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityII + local df : include : DivFrame para.advanceScaleII local k 0.9 local dr : DotRadius * kDotRadius include : DrawAt df.middle [mix dr (XH - dr) k] (dr - overshoot) include : DrawAt df.middle [mix dr (XH - dr) (1 - k)] (dr - overshoot) create-glyph "modifierLetterRaisedColon.\(suffix)" : glyph-proc - local df : include : DivFrame para.diversityII + local df : include : DivFrame para.advanceScaleII local k 0.9 local dr : DotRadius * kDotRadius include : DrawAt df.middle (CAP - [mix dr (XH - dr) k]) (dr - overshoot) @@ -297,7 +297,7 @@ glyph-block Symbol-Punctuation-Small : begin alias 'grek/question' 0x37E 'semicolon' alias 'armn/fullstop' 0x589 'colon' - turned 'turnSemiColon' 0x2E35 'semicolon' [DivFrame para.diversityF].middle (XH / 2) + turned 'turnSemiColon' 0x2E35 'semicolon' [DivFrame para.advanceScaleF].middle (XH / 2) # Hollow (no CV) @@ -324,14 +324,14 @@ glyph-block Symbol-Punctuation-Small : begin curl (mx - rad * k2x) (d - rad * k2y) create-glyph 'hollowColon' 0x2982 : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF define sw : AdviceStroke 5 define dotRadius : Math.max PeriodRadius (XH / 8) include : RingStrokeAt df.middle (XH - dotRadius) (dotRadius + sw / 2 - O) sw include : RingStrokeAt df.middle dotRadius (dotRadius + sw / 2 - O) sw create-glyph 'zNotationSchemaComposition' 0x2A1F : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF define sw : AdviceStroke 5 define dotRadius : Math.max PeriodRadius (XH / 8) include : RingStrokeAt df.middle (XH - dotRadius) (dotRadius + sw / 2 - O) sw @@ -340,7 +340,7 @@ glyph-block Symbol-Punctuation-Small : begin RingCommaStroke df.middle dotRadius (dotRadius + sw / 2 - O) sw 0.75 0 1 3 create-glyph 'zNotationRelationalComposition' 0x2A3E : glyph-proc - local df : include : DivFrame para.diversityF + local df : include : DivFrame para.advanceScaleF define sw : AdviceStroke 6.5 define dotRadius : 0.625 * [Math.max PeriodRadius (XH / 8)] include : RingStrokeAt df.middle (0.625 * XH - dotRadius) (dotRadius + sw / 2 - O) sw diff --git a/packages/font-glyphs/src/symbol/shared.ptl b/packages/font-glyphs/src/symbol/shared.ptl index 76a90d3042..f47d93a848 100644 --- a/packages/font-glyphs/src/symbol/shared.ptl +++ b/packages/font-glyphs/src/symbol/shared.ptl @@ -1,6 +1,7 @@ $$include '../meta/macros.ptl' import [mix linreg clamp fallback] from "@iosevka/util" +import [Point] from "@iosevka/geometry/point" glyph-module @@ -36,6 +37,32 @@ glyph-block Shared-Symbol-Shapes : begin define [WaveShape] : with-params [left right xsJoin xfJoin diagJoinS diagJoinF [waveCount 1] [unitWidth Width]] : WaveShapeImpl (unitWidth * -left) (unitWidth * (1 + right)) (-left * waveCount) ((1 + right) * waveCount) xsJoin xfJoin diagJoinS diagJoinF return WaveShape + glyph-block-export Polyline ClosedPolyline + define [Polyline] : with-params [af points [contrast HVContrast] [upright 0] [startAf af] [endAf af]] : begin + local {{x0 y0} {xp yp}} points + local knots : list + flat x0 y0 startAf + sharp-corner xp yp contrast upright + foreach {x y} [items-of : points.slice 2 (-1)] : begin + knots.push : virt [mix xp x 0.5] [mix yp y 0.5] af + knots.push : sharp-corner x y contrast upright + set {xp yp} {x y} + set {xp yp} points.[points.length - 1] + knots.push : curl xp yp endAf + + return knots + + define [ClosedPolyline] : with-params [af points [contrast HVContrast] [upright 0]] : begin + local {xp yp} points.[points.length - 1] + local knots : list + foreach {x y} [items-of points] : begin + knots.push : virt [mix xp x 0.5] [mix yp y 0.5] af + knots.push : sharp-corner x y contrast upright + set {xp yp} {x y} + knots.push : close + + return knots + glyph-block-export TriangleShape define [TriangleShape x1 y1 x2 y2 x3 y3 sw] : begin local widthSide : if ((y2 - y1) * (y3 - y2) + (x2 - x1) * (x3 - x2) < 0) widths.rhs widths.lhs @@ -59,36 +86,101 @@ glyph-block Shared-Symbol-Shapes : begin corner x3 y3 corner x1 y1 + glyph-block-export HZigzag VZigzag + define HZigzag : namespace + define [getOffset dx dy upright sw] : begin + local T : new Point Point.Type.Corner dx dy + local N : TangentToNormal T HVContrast [if upright 0] + local D : T.scale : N.x / T.x * sw / 2 + return D - define [HZigzagSegment x1 x2 y1 y2 sw] : intersection - MaskRight x1 - MaskLeft x2 - ExtLineCenter 1 sw x1 y1 x2 y2 - define [VZigzagSegment y1 y2 x1 x2 sw] : intersection - MaskAbove y1 - MaskBelow y2 - ExtLineCenter 1 sw x1 y1 x2 y2 + export : define [fromSide midy left right amp sgmts phase sw upright] : glyph-proc + local halfPeriod : (right - left) / sgmts + local posOff : getOffset halfPeriod ( 2 * amp) upright (-sw) + local negOff : getOffset halfPeriod (-2 * amp) upright sw - glyph-block-export HZigzag VZigzag - define [HZigzag midy left right amp sgmts phase sw] : glyph-proc - local halfPeriod : (right - left) / sgmts - local up : midy + amp - local down : midy - amp - foreach [j : range 0 sgmts] : begin - include : HZigzagSegment - left + j * halfPeriod - left + (j + 1) * halfPeriod - if ((j + phase) % 2) down up - if ((j + phase) % 2) up down - * sw - define [VZigzag midx bot top amp sgmts phase sw] : glyph-proc - local halfPeriod : (top - bot) / sgmts - local up : midx + amp - local down : midx - amp - foreach [j : range 0 sgmts] : begin - include : VZigzagSegment - bot + j * halfPeriod - bot + (j + 1) * halfPeriod - if ((j + phase) % 2) down up - if ((j + phase) % 2) up down - * sw + local pos : midy + amp + local neg : midy - amp + local points : list + points.push : list + if phase (left - posOff.x) (left - negOff.x) + if phase (neg - posOff.y) (pos - negOff.y) + foreach [j : range 1 sgmts] : begin + points.push : list + left + j * halfPeriod + if ((j + phase) % 2) neg pos + points.push : list + if ((sgmts + phase) % 2) (right + negOff.x) (right + posOff.x) + if ((sgmts + phase) % 2) (neg + negOff.y) (pos + posOff.y) + + include : dispiro : Polyline [widths.center sw] points (upright -- upright) + + export : define [fromCenter midy left right amp sgmts phase sw upright] : glyph-proc + local halfPeriod : (right - left) / sgmts + local posOff : getOffset halfPeriod ( 2 * amp) upright (-sw) + local negOff : getOffset halfPeriod (-2 * amp) upright sw + + local pos : midy + amp + local neg : midy - amp + local points : list + points.push : list + if phase (left - negOff.x) (left - posOff.x) + if phase (midy - negOff.y) (midy - posOff.y) + foreach [j : range 0 sgmts] : begin + points.push : list + left + (j + 0.5) * halfPeriod + if ((j + phase) % 2) neg pos + points.push : list + if ((sgmts + phase) % 2) (right + negOff.x) (right + posOff.x) + if ((sgmts + phase) % 2) (midy + negOff.y) (midy + posOff.y) + + include : dispiro : Polyline [widths.center sw] points (upright -- upright) + + define VZigzag : namespace + define [getOffset dx dy upright sw] : begin + local T : new Point Point.Type.Corner dx dy + local N : TangentToNormal T HVContrast [if upright 0] + local D : T.scale : N.y / T.y * sw / 2 + return D + + export : define [fromSide midx bot top amp sgmts phase sw upright] : glyph-proc + local halfPeriod : (top - bot) / sgmts + local posOff : getOffset ( 2 * amp) halfPeriod upright sw + local negOff : getOffset (-2 * amp) halfPeriod upright (-sw) + + local pos : midx + amp + local neg : midx - amp + local points : list + points.push : list + if phase (neg - posOff.x) (pos - negOff.x) + if phase (bot - posOff.y) (bot - negOff.y) + foreach [j : range 1 sgmts] : begin + points.push : list + if ((j + phase) % 2) neg pos + bot + j * halfPeriod + points.push : list + if ((sgmts + phase) % 2) (neg + negOff.x) (pos + posOff.x) + if ((sgmts + phase) % 2) (top + negOff.y) (top + posOff.y) + + include : dispiro : Polyline [widths.center sw] points (upright -- upright) + + export : define [fromCenter midx bot top amp sgmts phase sw upright] : glyph-proc + local halfPeriod : (top - bot) / sgmts + local posOff : getOffset ( 2 * amp) halfPeriod upright sw + local negOff : getOffset (-2 * amp) halfPeriod upright (-sw) + + local pos : midx + amp + local neg : midx - amp + local points : list + points.push : list + if phase (midx - negOff.x) (midx - posOff.x) + if phase (bot - negOff.y) (bot - posOff.y) + foreach [j : range 0 sgmts] : begin + points.push : list + if ((j + phase) % 2) neg pos + bot + (j + 0.5) * halfPeriod + points.push : list + if ((sgmts + phase) % 2) (midx + negOff.x) (midx + posOff.x) + if ((sgmts + phase) % 2) (top + negOff.y) (top + posOff.y) + + include : dispiro : Polyline [widths.center sw] points (upright -- upright) diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 5cddcd481a..7283d451c7 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-kits", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { "./derived-coordinates": "./src/derived-coordinates.mjs", @@ -8,9 +8,9 @@ "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "32.4.0", - "@iosevka/glyph": "32.4.0", - "@iosevka/util": "32.4.0", + "@iosevka/geometry": "32.5.0", + "@iosevka/glyph": "32.5.0", + "@iosevka/util": "32.5.0", "typo-geom": "^0.16.1" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index 83a6ffc096..75de8b48b1 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./lib/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "32.4.0", - "@iosevka/glyph": "32.4.0", + "@iosevka/font-glyphs": "32.5.0", + "@iosevka/glyph": "32.5.0", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index 7dcbff2be5..0251de67f0 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,15 +10,15 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@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", + "@iosevka/font-glyphs": "32.5.0", + "@iosevka/font-otl": "32.5.0", + "@iosevka/geometry": "32.5.0", + "@iosevka/geometry-cache": "32.5.0", + "@iosevka/glyph": "32.5.0", + "@iosevka/param": "32.5.0", + "@iosevka/util": "32.5.0", + "harfbuzzjs": "^0.4.4", + "ot-builder": "^1.7.5", "semver": "^7.6.3", "@msgpack/msgpack": "^2.8.0" } diff --git a/packages/font/src/build-font/index.mjs b/packages/font/src/build-font/index.mjs index a6caf3b7fb..a5c57e5eae 100644 --- a/packages/font/src/build-font/index.mjs +++ b/packages/font/src/build-font/index.mjs @@ -7,6 +7,7 @@ import { CreateEmptyFont } from "../font-io/index.mjs"; import { buildCompatLigatures } from "../hb-compat-ligature/index.mjs"; import { assignFontNames } from "../naming/index.mjs"; import { convertOtd } from "../otd-conv/index.mjs"; +import { postProcessFont } from "../post-processing/index.mjs"; import { generateTtfaControls } from "../ttfa-controls/index.mjs"; import { validateFontConfigMono } from "../validate/metrics.mjs"; @@ -34,6 +35,8 @@ export async function buildFont(para, cache) { const font = await convertOtd(baseFont, otl, cleanGs); // Build compatibility ligatures if (para.compatibilityLigatures) await buildCompatLigatures(para, font); + // Apply post processing + postProcessFont(para, font); // Generate ttfaControls const ttfaControls = await generateTtfaControls(cleanGs, font.glyphs); diff --git a/packages/font/src/derive-spacing.mjs b/packages/font/src/derive-spacing.mjs index f55178668a..03c5bd7344 100644 --- a/packages/font/src/derive-spacing.mjs +++ b/packages/font/src/derive-spacing.mjs @@ -6,15 +6,24 @@ import { CliProc, Ot } from "ot-builder"; import { readTTF, saveTTF } from "./font-io/index.mjs"; import { assignFontNames, createNamingDictFromArgv } from "./naming/index.mjs"; +import { getParametersT } from "./param/index.mjs"; +import { postProcessFont } from "./post-processing/index.mjs"; import { validateFontConfigMono } from "./validate/metrics.mjs"; export default main; async function main(argv) { + // Set up parameters + const paraT = await getParametersT(argv); + const para = paraT(argv); + + // Read in font const font = await readTTF(argv.i); + // Assign font names const naming = createNamingDictFromArgv(argv); assignFontNames(font, naming, false); + // Derive spacing switch (argv.shape.spacing) { case "term": await deriveTerm(font); @@ -31,12 +40,15 @@ async function main(argv) { break; } + // Save no-GC result await saveTTF(argv.oNoGc, font); + // GC and save switch (argv.shape.spacing) { case "fontconfig-mono": case "fixed": CliProc.gcFont(font, Ot.ListGlyphStoreFactory); + postProcessFont(para, font); validateFontConfigMono(font); await saveTTF(argv.o, font); break; diff --git a/packages/font/src/index.mjs b/packages/font/src/index.mjs index 50c718450e..8be6d21906 100644 --- a/packages/font/src/index.mjs +++ b/packages/font/src/index.mjs @@ -1,19 +1,13 @@ import fs from "fs"; -import path from "path"; import zlib from "zlib"; -import * as Toml from "@iarna/toml"; import * as Caching from "@iosevka/geometry-cache"; import { createGrDisplaySheet } from "@iosevka/glyph/relation"; -import * as Parameters from "@iosevka/param"; -import { applyLigationData } from "@iosevka/param/ligation"; -import { applyMetricOverride } from "@iosevka/param/metric-override"; -import * as VariantData from "@iosevka/param/variant"; import { encode } from "@msgpack/msgpack"; import { buildFont } from "./build-font/index.mjs"; import { saveTTF } from "./font-io/index.mjs"; -import { createNamingDictFromArgv } from "./naming/index.mjs"; +import { getParametersT } from "./param/index.mjs"; export default main; async function main(argv) { @@ -42,61 +36,6 @@ async function main(argv) { return { cacheUpdated }; } -/////////////////////////////////////////////////////////////////////////////////////////////////// - -// Parameter preparation -async function getParametersT(argv) { - const PARAMETERS_TOML = path.resolve(argv.paramsDir, "./parameters.toml"); - const WEIGHTS_TOML = path.resolve(argv.paramsDir, "./shape-weight.toml"); - const WIDTHS_TOML = path.resolve(argv.paramsDir, "./shape-width.toml"); - const SLOPES_TOML = path.resolve(argv.paramsDir, "./shape-slope.toml"); - const PRIVATE_TOML = path.resolve(argv.paramsDir, "./private-parameters.toml"); - const VARIANTS_TOML = path.resolve(argv.paramsDir, "./variants.toml"); - const LIGATIONS_TOML = path.resolve(argv.paramsDir, "./ligation-set.toml"); - const parametersData = Object.assign( - {}, - await tryParseToml(PARAMETERS_TOML), - await tryParseToml(WEIGHTS_TOML), - await tryParseToml(WIDTHS_TOML), - await tryParseToml(SLOPES_TOML), - fs.existsSync(PRIVATE_TOML) ? await tryParseToml(PRIVATE_TOML) : {}, - ); - const rawVariantsData = await tryParseToml(VARIANTS_TOML); - const rawLigationData = await tryParseToml(LIGATIONS_TOML); - function createParaImpl(argv) { - let para = Parameters.init(deepClone(parametersData), argv); - VariantData.apply(deepClone(rawVariantsData), para, argv); - applyLigationData(deepClone(rawLigationData), para, argv); - if (argv.excludedCharRanges) para.excludedCharRanges = argv.excludedCharRanges; - if (argv.compatibilityLigatures) para.compatibilityLigatures = argv.compatibilityLigatures; - if (argv.metricOverride) applyMetricOverride(para, argv.metricOverride, argv); - para.naming = { ...para.naming, ...createNamingDictFromArgv(argv) }; - return para; - } - function paraT(argv) { - const para = createParaImpl(argv); - para.createFork = function (tf) { - const argv1 = deepClone(argv); - tf(argv1, argv); - return paraT(argv1); - }; - return para; - } - return paraT; -} -async function tryParseToml(str) { - try { - return Toml.parse(await fs.promises.readFile(str, "utf-8")); - } catch (e) { - throw new Error( - `Failed to parse configuration file ${str}.\nPlease validate whether there's syntax error.\n${e}`, - ); - } -} -function deepClone(pod) { - return JSON.parse(JSON.stringify(pod)); -} - // Save character map file async function saveCharMap(argv, glyphStore) { let charMap = []; diff --git a/packages/font/src/naming/index.mjs b/packages/font/src/naming/index.mjs index 278ba12969..711be75980 100644 --- a/packages/font/src/naming/index.mjs +++ b/packages/font/src/naming/index.mjs @@ -212,7 +212,7 @@ function getStyleLinkedStyles(menuNameMap, weight, width, slope) { }; } -function nameFont(font, nameID, str) { +export function nameFont(font, nameID, str) { nameFontImpl(font.name.records, 1, 0, 0, nameID, Buffer.from(str, "utf-8")); // Mac Roman nameFontImpl(font.name.records, 3, 1, 1033, nameID, str); // Windows Unicode English } diff --git a/packages/font/src/otd-conv/index.mjs b/packages/font/src/otd-conv/index.mjs index 5893407b0c..afffda8a55 100644 --- a/packages/font/src/otd-conv/index.mjs +++ b/packages/font/src/otd-conv/index.mjs @@ -1,7 +1,7 @@ import { CliProc } from "ot-builder"; import { convertGlyphs } from "./glyphs.mjs"; -import { convertGsub, convertGpos, convertGdef } from "./layout.mjs"; +import { convertGdef, convertGpos, convertGsub } from "./layout.mjs"; export function convertOtd(baseFont, otl, gs) { const { glyphs, cmap } = convertGlyphs(gs); diff --git a/packages/font/src/param/index.mjs b/packages/font/src/param/index.mjs new file mode 100644 index 0000000000..dd02ed5c8b --- /dev/null +++ b/packages/font/src/param/index.mjs @@ -0,0 +1,62 @@ +import fs from "fs"; +import path from "path"; + +import * as Toml from "@iarna/toml"; +import * as Parameters from "@iosevka/param"; +import { applyLigationData } from "@iosevka/param/ligation"; +import { applyMetricOverride } from "@iosevka/param/metric-override"; +import * as VariantData from "@iosevka/param/variant"; + +import { createNamingDictFromArgv } from "../naming/index.mjs"; + +export async function getParametersT(argv) { + const PARAMETERS_TOML = path.resolve(argv.paramsDir, "./parameters.toml"); + const WEIGHTS_TOML = path.resolve(argv.paramsDir, "./shape-weight.toml"); + const WIDTHS_TOML = path.resolve(argv.paramsDir, "./shape-width.toml"); + const SLOPES_TOML = path.resolve(argv.paramsDir, "./shape-slope.toml"); + const PRIVATE_TOML = path.resolve(argv.paramsDir, "./private-parameters.toml"); + const VARIANTS_TOML = path.resolve(argv.paramsDir, "./variants.toml"); + const LIGATIONS_TOML = path.resolve(argv.paramsDir, "./ligation-set.toml"); + const parametersData = Object.assign( + {}, + await tryParseToml(PARAMETERS_TOML), + await tryParseToml(WEIGHTS_TOML), + await tryParseToml(WIDTHS_TOML), + await tryParseToml(SLOPES_TOML), + fs.existsSync(PRIVATE_TOML) ? await tryParseToml(PRIVATE_TOML) : {}, + ); + const rawVariantsData = await tryParseToml(VARIANTS_TOML); + const rawLigationData = await tryParseToml(LIGATIONS_TOML); + function createParaImpl(argv) { + let para = Parameters.init(deepClone(parametersData), argv); + VariantData.apply(deepClone(rawVariantsData), para, argv); + applyLigationData(deepClone(rawLigationData), para, argv); + if (argv.excludedCharRanges) para.excludedCharRanges = argv.excludedCharRanges; + if (argv.compatibilityLigatures) para.compatibilityLigatures = argv.compatibilityLigatures; + if (argv.metricOverride) applyMetricOverride(para, argv.metricOverride, argv); + para.naming = { ...para.naming, ...createNamingDictFromArgv(argv) }; + return para; + } + function paraT(argv) { + const para = createParaImpl(argv); + para.createFork = function (tf) { + const argv1 = deepClone(argv); + tf(argv1, argv); + return paraT(argv1); + }; + return para; + } + return paraT; +} +async function tryParseToml(str) { + try { + return Toml.parse(await fs.promises.readFile(str, "utf-8")); + } catch (e) { + throw new Error( + `Failed to parse configuration file ${str}.\nPlease validate whether there's syntax error.\n${e}`, + ); + } +} +function deepClone(pod) { + return JSON.parse(JSON.stringify(pod)); +} diff --git a/packages/font/src/post-processing/feature-params.mjs b/packages/font/src/post-processing/feature-params.mjs new file mode 100644 index 0000000000..37813f6381 --- /dev/null +++ b/packages/font/src/post-processing/feature-params.mjs @@ -0,0 +1,46 @@ +import { Ot, Sigma } from "ot-builder"; + +import { nameFont } from "../naming/index.mjs"; + +export function postProcessingFeatureParams(para, font) { + if (!para.variants.composites) return; + if (!font.gsub) return; + if (!font.name) return; + + const nm = new NameManager(); + + for (const [name, ss] of para.variants.composites) { + if (!ss.description) continue; + for (const feat of font.gsub.features) { + if (feat.tag !== ss.tag) continue; + const nameId = nm.getNameId(ss.description); + feat.params = Sigma.DependentPair.create(Ot.GsubGpos.FeatureParams.TID_StylisticSet, { + uiNameID: nameId, + }); + } + } + + nm.apply(font); +} + +class NameManager { + constructor() { + this.nameId = 257; + this.nameMap = new Map(); + } + + getNameId(name) { + let nameId = this.nameMap.get(name); + if (!nameId) { + nameId = this.nameId++; + this.nameMap.set(name, nameId); + } + return nameId; + } + + apply(font) { + for (const [name, id] of this.nameMap) { + nameFont(font, id, name); + } + } +} diff --git a/packages/font/src/post-processing/index.mjs b/packages/font/src/post-processing/index.mjs new file mode 100644 index 0000000000..f1ab0d7678 --- /dev/null +++ b/packages/font/src/post-processing/index.mjs @@ -0,0 +1,5 @@ +import { postProcessingFeatureParams } from "./feature-params.mjs"; + +export function postProcessFont(para, font) { + postProcessingFeatureParams(para, font); +} diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index ae2779f84e..24130b6189 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "32.4.0", + "@iosevka/geometry": "32.5.0", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index 9ee6c55ecd..76e0d9eff8 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -16,7 +16,7 @@ "./encoding": "./src/encoding.mjs" }, "dependencies": { - "@iosevka/util": "32.4.0", + "@iosevka/util": "32.5.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index d08a11de07..7057200d0e 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "32.4.0" + "@iosevka/geometry": "32.5.0" } } diff --git a/packages/param/package.json b/packages/param/package.json index d9ead7655b..b196c4bacf 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "32.4.0" + "@iosevka/util": "32.5.0" } } diff --git a/packages/util/package.json b/packages/util/package.json index 3bc76d24da..bddfee7ceb 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/params/parameters.toml b/params/parameters.toml index 6950afcca3..fc8826174f 100644 --- a/params/parameters.toml +++ b/params/parameters.toml @@ -77,13 +77,13 @@ slab = 0 # Old style number height onumZeroHeightRatio = 1.145 -# Reset diversity -diversityMM = 1 -diversityM = 1 -diversityT = 1 -diversityF = 1 -diversityI = 1 -diversityII = 1 +# Diversed advance width scale factors, used in quasi-proportional families +advanceScaleMM = 1 # Extra-wide letters +advanceScaleM = 1 # M-like letters +advanceScaleT = 1 # T-like letters +advanceScaleF = 1 # f-like letters +advanceScaleI = 1 # i-like letters (with serifs/tails) +advanceScaleII = 1 # Extra-narrow letters (like i without serifs/tails) # OS/2 and POST fixed metrics @@ -133,22 +133,22 @@ forceMonospace = true [spacing-quasi-proportional] spacing = 3 isQuasiProportional = true -diversityMM = 1.5 # 9/6 -diversityM = 1.3333333333333 # 8/6 -diversityT = 1.1666666666666 # 7/6 -diversityF = 0.8333333333333 # 5/6 -diversityI = 0.6666666666666 # 4/6 -diversityII = 0.5 # 3/6 +advanceScaleMM = 1.5 # 9/6 +advanceScaleM = 1.3333333333333 # 8/6 +advanceScaleT = 1.1666666666666 # 7/6 +advanceScaleF = 0.8333333333333 # 5/6 +advanceScaleI = 0.6666666666666 # 4/6 +advanceScaleII = 0.5 # 3/6 [spacing-quasi-proportional-extension-only] spacing = 3 isQuasiProportional = true -diversityMM = 1.50 # 9/6 -diversityM = 1.3333333333333 # 8/6 -diversityT = 1.1666666666666 # 7/6 -diversityF = 1.00 -diversityI = 1.00 -diversityII = 1.00 +advanceScaleMM = 1.50 # 9/6 +advanceScaleM = 1.3333333333333 # 8/6 +advanceScaleT = 1.1666666666666 # 7/6 +advanceScaleF = 1.00 +advanceScaleI = 1.00 +advanceScaleII = 1.00 ###### Slopes [slope-italic] diff --git a/params/variants.toml b/params/variants.toml index 0f0e6fff33..f5d84f1f7d 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -4298,7 +4298,6 @@ selectorAffix."t/compLigRight" = "bentHook" selectorAffix.tHookTop = "bentHook" selectorAffix.tHookTopRTail = "hookless" selectorAffix.tRTail = "hookless" -selectorAffix.tLTail = "bentHook" selectorAffix.tCurlyTail = {if = [{symmetry = "asymmetric"}], then = "flatHook", else = "bentHook"} selectorAffix."tsLig/upperHalf" = "bentHook" @@ -4312,7 +4311,6 @@ selectorAffix."t/compLigRight" = "flatHook" selectorAffix.tHookTop = "flatHook" selectorAffix.tHookTopRTail = "hookless" selectorAffix.tRTail = "hookless" -selectorAffix.tLTail = "flatHook" selectorAffix.tCurlyTail = "flatHook" selectorAffix."tsLig/upperHalf" = "bentHook" @@ -4326,7 +4324,6 @@ selectorAffix."t/compLigRight" = "diagonalTailed" selectorAffix.tHookTop = "diagonalTailed" selectorAffix.tHookTopRTail = "hookless" selectorAffix.tRTail = "hookless" -selectorAffix.tLTail = "diagonalTailed" selectorAffix.tCurlyTail = {if = [{symmetry = "asymmetric"}], then = "flatHook", else = "bentHook"} selectorAffix."tsLig/upperHalf" = "bentHook" @@ -4341,7 +4338,6 @@ selectorAffix."t/compLigRight" = "hookless" selectorAffix.tHookTop = "hookless" selectorAffix.tHookTopRTail = "hookless" selectorAffix.tRTail = "hookless" -selectorAffix.tLTail = "hookless" selectorAffix.tCurlyTail = {if = [{symmetry = "asymmetric"}], then = "flatHook", else = "hookless"} selectorAffix."tsLig/upperHalf" = "bentHook" @@ -4359,7 +4355,6 @@ selectorAffix."t/compLigRight" = "" selectorAffix.tHookTop = "" selectorAffix.tHookTopRTail = "" selectorAffix.tRTail = "" -selectorAffix.tLTail = "" selectorAffix.tCurlyTail = "" selectorAffix."tsLig/upperHalf" = "" @@ -4374,7 +4369,6 @@ selectorAffix."t/compLigRight" = "asymmetric" selectorAffix.tHookTop = "asymmetric" selectorAffix.tHookTopRTail = "asymmetric" selectorAffix.tRTail = "asymmetric" -selectorAffix.tLTail = "asymmetric" selectorAffix.tCurlyTail = "asymmetric" selectorAffix."tsLig/upperHalf" = "" @@ -4390,7 +4384,6 @@ selectorAffix."t/compLigRight" = "" selectorAffix.tHookTop = "" selectorAffix.tHookTopRTail = "" selectorAffix.tRTail = "" -selectorAffix.tLTail = "" selectorAffix.tCurlyTail = "" selectorAffix."tsLig/upperHalf" = "" @@ -4404,7 +4397,6 @@ selectorAffix."t/compLigRight" = "" selectorAffix.tHookTop = "" selectorAffix.tHookTopRTail = "" selectorAffix.tRTail = "shortNeck" -selectorAffix.tLTail = "shortNeck" selectorAffix.tCurlyTail = "shortNeck" selectorAffix."tsLig/upperHalf" = "shortNeck" @@ -4418,7 +4410,6 @@ selectorAffix."t/compLigRight" = "" selectorAffix.tHookTop = "" selectorAffix.tHookTopRTail = "" selectorAffix.tRTail = "shortNeck2" -selectorAffix.tLTail = "shortNeck2" selectorAffix.tCurlyTail = "shortNeck2" selectorAffix."tsLig/upperHalf" = "shortNeck2" @@ -8556,6 +8547,28 @@ selectorAffix."micro" = "serifed" +[prime.decorative-angle-brackets] +sampler = "❮ ❯" +samplerExplain = "Decorative angle brackets (U+276C...U+2771)" +tagKind = "symbol" + +[prime.decorative-angle-brackets.variants.tall] +rank = 1 +description = "Tall decorative angle brackets, sharing same height as conventional brackets" +selector."decorativeAngleBracket" = "tall" + +[prime.decorative-angle-brackets.variants.middle] +rank = 2 +description = "Middle-height decorative angle brackets" +selector."decorativeAngleBracket" = "middle" + +[prime.decorative-angle-brackets.variants.short] +rank = 3 +description = "Short decorative angle brackets, sharing same height as guillemts" +selector."decorativeAngleBracket" = "short" + + + [prime.lig-ltgteq] sampler = "<= >=" samplerExplain = "Less-equal and Greater-equal ligations" @@ -8882,6 +8895,7 @@ question = "smooth" pilcrow = "high" partial-derivative = "curly-bar" micro-sign = "toothed-serifless" +decorative-angle-brackets = "middle" lig-ltgteq = "flat" lig-neq = "slightly-slanted" lig-equal-chain = "with-notch" diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index f27d0c899d..0569fd179f 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,14 +1,14 @@ { "name": "@iosevka/amend-readme", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.4.0", - "@unicode/unicode-16.0.0": "^1.6.4", + "@iosevka/param": "32.5.0", + "@unicode/unicode-16.0.0": "^1.6.5", "semver": "^7.6.3" } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index 2456be7155..3224e47941 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,8 +10,8 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "32.4.0", - "@unicode/unicode-16.0.0": "^1.6.4", + "@iosevka/param": "32.5.0", + "@unicode/unicode-16.0.0": "^1.6.5", "cldr": "^7.6.0", "@msgpack/msgpack": "^2.8.0" } diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index 536e07d7d5..cc0c202b7d 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "32.4.0", + "version": "32.5.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "32.4.0" + "@iosevka/data-export": "32.5.0" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index d21e1f9cde..06c5581235 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/misc", - "version": "32.4.0", + "version": "32.5.0", "private": true, "dependencies": { "semver": "^7.6.3", "wawoff2": "^2.0.1", - "@iosevka/util": "32.4.0", - "@unicode/unicode-16.0.0": "^1.6.4" + "@iosevka/util": "32.5.0", + "@unicode/unicode-16.0.0": "^1.6.5" } }