diff --git a/README.md b/README.md index c80edf679..9f2eee8ce 100644 --- a/README.md +++ b/README.md @@ -226,18 +226,6 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a * Styles for individual characters. They are easy-to-understand names of the `cv##` styles, including: - * Styles for `A`, `Λ`, `Δ`: - * `v-turn-v-straight`, `cv73`: Standard, straight `A`, `Λ`, `Δ` (default). - * `v-turn-v-curly`, `cv74`: Slightly curly `A`, `Λ`, `Δ`, like Iosevka 2.x. - * Styles for `Q`: - * `v-capital-q-taily`, `cv42`: `Q` with a curly tail (default). - * `v-capital-q-straight`, `cv43`: `Q` with a straight tail like in the old versions. - * Styles for `Y`: - * `v-capital-y-straight`, `cv80`: Standard, straight `Y` (default). - * `v-capital-y-curly`, `cv81`: Slightly curly `Y`, like Iosevka 2.x. - * Styles for `R`: - * `v-capital-r-straight`, `cv82`: Standard, straight-leg `R` (default). - * `v-capital-r-curly`, `cv83`:  Slightly curly-legged `R`, like Iosevka 2.x. * Styles for `a`: * `v-a-doublestorey`, `cv01`: Double-storey `a` (default for Upright). * `v-a-singlestorey`, `cv02`: Single-storey `a` (default for Italic). @@ -284,7 +272,7 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a * Styles for `u`: * `v-u-with-bar`, `cv89`: Normal `u` with right bar (default). * `v-u-without-bar`, `cv90`: Normal `u` without right bar, like a smaller uppercase `U`. - * Styles for `v`: + * Styles for `v`, `V`: * `v-v-straight`, `cv71`: Standard, straight `V` and `v` (default). * `v-v-curly`, `cv72`:  Slightly curly `V` and `v`, like Iosevka 2.x. * Styles for `w`, `W`: @@ -297,6 +285,21 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a * `v-y-straight`, `cv48`: More-straight letter `y` (default for Upright). * `v-y-cursive`, `cv49`: Cursive-like `y` (default for Italic). * `v-y-curly`, `cv79`: More curly letter `y`, like Iosevka 2.x. + * Styles for `G`: + * `v-capital-g-tooth`, `cv91`: Toothed G (default). + * `v-capital-g-toothless`, `cv92`: Toothless G. + * Styles for `A`, `Λ`, `Δ`: + * `v-turn-v-straight`, `cv73`: Standard, straight `A`, `Λ`, `Δ` (default). + * `v-turn-v-curly`, `cv74`: Slightly curly `A`, `Λ`, `Δ`, like Iosevka 2.x. + * Styles for `Q`: + * `v-capital-q-taily`, `cv42`: `Q` with a curly tail (default). + * `v-capital-q-straight`, `cv43`: `Q` with a straight tail like in the old versions. + * Styles for `Y`: + * `v-capital-y-straight`, `cv80`: Standard, straight `Y` (default). + * `v-capital-y-curly`, `cv81`: Slightly curly `Y`, like Iosevka 2.x. + * Styles for `R`: + * `v-capital-r-straight`, `cv82`: Standard, straight-leg `R` (default). + * `v-capital-r-curly`, `cv83`:  Slightly curly-legged `R`, like Iosevka 2.x. * Styles for `0`: * `v-zero-slashed`, `cv13`: Slashed Zero `0` (default). * `v-zero-dotted`, `cv14`: Dotted Zero `0`. @@ -327,13 +330,13 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a * Styles for `^`: * `v-caret-high`, `cv29`: Higher circumflex `^` (default). * `v-caret-low`, `cv30`: Lower circumflex `^`. + * Styles for `{`, `}`: + * `v-brace-straight`, `cv36`: More straight braces. + * `v-brace-curly`, `cv37`: More curly braces (default). * Styles for `@`: * `v-at-threefold`, `cv31`: The long, three-fold At symbol (`@`) (default). * `v-at-fourfold`, `cv32`: The traditional, four-fold At symbol (`@`). * `v-at-short`, `cv33`: The shorter, Fira-like At symbol (`@`). - * Styles for `{`, `}`: - * `v-brace-straight`, `cv36`: More straight braces. - * `v-brace-curly`, `cv37`: More curly braces (default). * Styles for `$`: * `v-dollar-open`, `cv38`: Dollar symbol with open contour. * `v-dollar-through`, `cv39`: Dollar symbol with strike-through vertical bar (default). diff --git a/glyphs/letters-unified-basic.ptl b/glyphs/letters-unified-basic.ptl index 02635d990..def2b1749 100644 --- a/glyphs/letters-unified-basic.ptl +++ b/glyphs/letters-unified-basic.ptl @@ -2764,54 +2764,86 @@ glyph-block LetterUnified-Basic : begin ### G do "G and related =============================================================================" - define [GShape top sma smb] : glyph-construction + define [GShape fTooth top sma smb] : glyph-construction local yBar : top * 0.52 + STROKE * 0.25 local fine SHOULDERFINE local sb : shoulderMidSlope fine nothing (-1) - include : dispiro + + local knots : list widths.lhs g4 RIGHTSB (top - HOOK) hookstart (top - O) flat (SB + OX) (top - sma) curl (SB + OX) smb arcvh + + if fTooth + : then : knots.push g4.right.mid (MIDDLE + (CORRECTION_OMIDX - sb) * STROKE) O [widths.heading STROKE 0 {.y (1) .x (sb)}] archv straight.up.end (RIGHTSB - (STROKE - fine) * HVCONTRAST) sma [widths.heading fine 0 UPWARD] + : else : knots.push + g4 (MIDDLE + CORRECTION_OMIDS) O + flat RIGHTSB sma + curl RIGHTSB yBar [heading UPWARD] + + include : dispiro.apply null knots + include : HBarTop MIDDLE RIGHTSB yBar - include : VBarRight RIGHTSB sma yBar - include : VBarRight RIGHTSB sma 0 (STROKE - fine / 2) + if fTooth : include + include : VBarRight RIGHTSB sma yBar + include : VBarRight RIGHTSB sma 0 (STROKE - fine / 2) + + define [HookTopShapeOfG top] : union + VBarRight (RIGHTSB - OXHOOK) (top - HOOK) top + VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST - OXHOOK) top HOOKX (-HOOK) nothing O + + define [OverlayBarOfG top] : HOverlayBar [mix SB RIGHTSB 0.5] [mix RIGHTSB WIDTH 0.7] [mix 0 (top / 2) 0.55] sketch # G - set-width WIDTH include MarkSet.capital - include : GShape CAP SMOOTHA SMOOTHB - save 'G' 'G' + branch + include : GShape true CAP SMOOTHA SMOOTHB + save 'G.toothed' + branch + include : HookTopShapeOfG CAP + save 'Ghooktop.toothed' + branch + include : OverlayBarOfG CAP + save 'Gbar.toothed' + + branch + include : GShape false CAP SMOOTHA SMOOTHB + save 'G.toothless' + branch + include : HookTopShapeOfG CAP + save 'Ghooktop.toothless' + branch + include : OverlayBarOfG CAP + save 'Gbar.toothless' + sketch # smcpG include MarkSet.e - include : GShape XH SMOOTHA SMOOTHB + branch + include : GShape true XH SMOOTHA SMOOTHB + save 'smcpG.toothed' + branch + include : HookTopShapeOfG CAP + save 'smcpGhooktop.toothed' - save 'smcpG' 0x262 + branch + include : GShape false XH SMOOTHA SMOOTHB + save 'smcpG.toothless' + branch + include : HookTopShapeOfG CAP + save 'smcpGhooktop.toothless' - sketch # Ghooktop - include glyphs.G AS_BASE - include : VBarRight (RIGHTSB - OXHOOK) (CAP - HOOK) CAP - include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST - OXHOOK) CAP HOOKX (-HOOK) nothing O - - save 'Ghooktop' 0x193 - - sketch # smcpGhooktop - include glyphs.smcpG AS_BASE - include : VBarRight (RIGHTSB - OXHOOK) (XH - HOOK) XH - include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST - OXHOOK) XH HOOKX (-HOOK) nothing O - - save 'smcpGhooktop' 0x29B - - sketch # Gbar - include glyphs.G AS_BASE - include : HOverlayBar [mix SB RIGHTSB 0.5] [mix RIGHTSB WIDTH 0.7] [mix 0 CAPMIDDLE 0.55] - save 'Gbar' 0x1E4 + select-variant 'G' 'G' + select-variant 'smcpG' 0x262 (follow -- 'G') + select-variant 'Ghooktop' 0x193 (follow -- 'G') + select-variant 'smcpGhooktop' 0x29B (follow -- 'G') + select-variant 'Gbar' 0x1E4 (follow -- 'G') ### g do "g and related =============================================================================" diff --git a/images/charvars.png b/images/charvars.png index d2dea98ee..3407da077 100644 Binary files a/images/charvars.png and b/images/charvars.png differ diff --git a/images/languages.png b/images/languages.png index e77bd7490..ed16c1836 100644 Binary files a/images/languages.png and b/images/languages.png differ diff --git a/images/ligations.png b/images/ligations.png index 3503a0257..05608eba3 100644 Binary files a/images/ligations.png and b/images/ligations.png differ diff --git a/images/matrix.png b/images/matrix.png index 55d604e4f..4a8b19d4b 100644 Binary files a/images/matrix.png and b/images/matrix.png differ diff --git a/images/preview-all.png b/images/preview-all.png index 619aee302..6f05d46df 100644 Binary files a/images/preview-all.png and b/images/preview-all.png differ diff --git a/images/stylesets.png b/images/stylesets.png index 290bea3d1..d8433bb84 100644 Binary files a/images/stylesets.png and b/images/stylesets.png differ diff --git a/images/weights.png b/images/weights.png index 7047d38e2..8cd463373 100644 Binary files a/images/weights.png and b/images/weights.png differ diff --git a/snapshot/index.html b/snapshot/index.html index fe4b1c9c4..3cfd4ac31 100644 --- a/snapshot/index.html +++ b/snapshot/index.html @@ -69,54 +69,6 @@
Character Variants
    -
    1. -
    2. - cv73 - A - A -
    3. -
    4. - cv74 - A - A -
    5. -
  1. -
    1. -
    2. - cv42 - Q - Q -
    3. -
    4. - cv43 - Q - Q -
    5. -
  2. -
    1. -
    2. - cv80 - Y - Y -
    3. -
    4. - cv81 - Y - Y -
    5. -
  3. -
    1. -
    2. - cv82 - R - R -
    3. -
    4. - cv83 - R - R -
    5. -
    1. cv01 @@ -366,6 +318,66 @@ y
  4. +
    1. +
    2. + cv91 + G + G +
    3. +
    4. + cv92 + G + G +
    5. +
  5. +
    1. +
    2. + cv73 + A + A +
    3. +
    4. + cv74 + A + A +
    5. +
  6. +
    1. +
    2. + cv42 + Q + Q +
    3. +
    4. + cv43 + Q + Q +
    5. +
  7. +
    1. +
    2. + cv80 + Y + Y +
    3. +
    4. + cv81 + Y + Y +
    5. +
  8. +
    1. +
    2. + cv82 + R + R +
    3. +
    4. + cv83 + R + R +
    5. +
    1. cv13 @@ -489,6 +501,18 @@ ^
  9. +
    1. +
    2. + cv36 + { + } +
    3. +
    4. + cv37 + { + } +
    5. +
    1. cv31 @@ -506,18 +530,6 @@ @
  10. -
    1. -
    2. - cv36 - { - } -
    3. -
    4. - cv37 - { - } -
    5. -
    1. cv38 diff --git a/utility/amend-readme/index.js b/utility/amend-readme/index.js index 22e6e3bae..e583c6cf9 100644 --- a/utility/amend-readme/index.js +++ b/utility/amend-readme/index.js @@ -1,8 +1,8 @@ const fs = require("fs-extra"); const path = require("path"); -const parseVariantsData = require("../generate-snapshot-page/parse-variants-data"); -const parseLigationData = require("../generate-snapshot-page/ligation-data"); -const getCharMapAndSupportedLanguageList = require("../generate-supported-languages/proc"); +const parseVariantsData = require("../export-data/parse-variants-data"); +const parseLigationData = require("../export-data/ligation-data"); +const getCharMapAndSupportedLanguageList = require("../export-data/supported-languages"); const charMapPath = process.argv[2]; main().catch(e => { diff --git a/utility/export-data/index.js b/utility/export-data/index.js index 374c8eeab..ae86fb21e 100644 --- a/utility/export-data/index.js +++ b/utility/export-data/index.js @@ -1,7 +1,7 @@ const fs = require("fs-extra"); -const parseVariantsData = require("../generate-snapshot-page/parse-variants-data"); -const parseLigationData = require("../generate-snapshot-page/ligation-data"); -const getCharMapAndSupportedLanguageList = require("../generate-supported-languages/proc"); +const parseVariantsData = require("./parse-variants-data"); +const parseLigationData = require("./ligation-data"); +const getCharMapAndSupportedLanguageList = require("./supported-languages"); const version = require("../../package.json").version; diff --git a/utility/generate-snapshot-page/ligation-data.js b/utility/export-data/ligation-data.js similarity index 100% rename from utility/generate-snapshot-page/ligation-data.js rename to utility/export-data/ligation-data.js diff --git a/utility/generate-snapshot-page/parse-variants-data.js b/utility/export-data/parse-variants-data.js similarity index 96% rename from utility/generate-snapshot-page/parse-variants-data.js rename to utility/export-data/parse-variants-data.js index aefcd34ce..8200210e7 100644 --- a/utility/generate-snapshot-page/parse-variants-data.js +++ b/utility/export-data/parse-variants-data.js @@ -48,8 +48,8 @@ function getCvData(variants) { } function rankOf(initialChar) { - if ("A" <= initialChar && initialChar <= "Z") return 3; - if ("a" <= initialChar && initialChar <= "z") return 2; + if ("a" <= initialChar && initialChar <= "z") return 3; + if ("A" <= initialChar && initialChar <= "Z") return 2; if ("0" <= initialChar && initialChar <= "9") return 1; return 0; } diff --git a/utility/generate-supported-languages/proc.js b/utility/export-data/supported-languages.js similarity index 100% rename from utility/generate-supported-languages/proc.js rename to utility/export-data/supported-languages.js diff --git a/utility/generate-release-note/index.js b/utility/generate-release-note/index.js index a65a92cfa..0e360eac0 100644 --- a/utility/generate-release-note/index.js +++ b/utility/generate-release-note/index.js @@ -19,11 +19,13 @@ class Output { async function main() { const out = new Output(); - await GenerateChangeList(out); + await CopyMarkdown(out, "packages-desc.md"); await GeneratePackageList(out); await CopyMarkdown(out, "style-set-sample-image.md"); - await CopyMarkdown(out, "deprecated-packages.md"); + await CopyMarkdown(out, "package-reorg.md"); + await GenerateChangeList(out); + await fs.ensureDir(path.join(__dirname, `../../release-archives/`)); await fs.writeFile( path.join(__dirname, `../../release-archives/release-notes-${Version}.md`), diff --git a/utility/generate-release-note/release-note-fragments/deprecated-packages.md b/utility/generate-release-note/release-note-fragments/package-reorg.md similarity index 100% rename from utility/generate-release-note/release-note-fragments/deprecated-packages.md rename to utility/generate-release-note/release-note-fragments/package-reorg.md diff --git a/utility/generate-release-note/release-note-fragments/packages-desc.md b/utility/generate-release-note/release-note-fragments/packages-desc.md index 3d398fe06..134b1c5f5 100644 --- a/utility/generate-release-note/release-note-fragments/packages-desc.md +++ b/utility/generate-release-note/release-note-fragments/packages-desc.md @@ -4,7 +4,7 @@ Iosevka provides a large variety of variants. Prebuilt variants are described be - **Spacing** : How wide some specific characters are. - _Default_: The default variant with ligatures. Various symbols, like arrows and geometric, are wide (2-column). - - _Terminal_ (“Term”):A narrower variant focusing terminal uses. Arrows and geometric symbols will be narrow ti follow typical terminal usages. + - _Terminal_ (“Term”):A narrower variant focusing terminal uses. Arrows and geometric symbols will be narrow to follow typical terminal usages. - _Fixed_: Exact monospace font without ligatures and wide glyphs. Since some environments cannot interpret Iosevka or Iosevka Term as monospace, and have difficulties with ligatures included, you can use Iosevka Fixed as an alternative. - **Shape** : Key shape parameters: - *Slab*: Letters will contain slab serif. diff --git a/utility/generate-snapshot-page/index.js b/utility/generate-snapshot-page/index.js index e7f39cd05..6a397f171 100644 --- a/utility/generate-snapshot-page/index.js +++ b/utility/generate-snapshot-page/index.js @@ -1,8 +1,8 @@ const ejs = require("ejs"); const fs = require("fs-extra"); const path = require("path"); -const parseVariantsData = require("./parse-variants-data"); -const getLigationData = require("./ligation-data"); +const parseVariantsData = require("../export-data/parse-variants-data"); +const getLigationData = require("../export-data/ligation-data"); main().catch(e => { console.error(e); diff --git a/variants.toml b/variants.toml index 342744fd6..f1b8c53c9 100644 --- a/variants.toml +++ b/variants.toml @@ -1,4 +1,15 @@ # Variants +[simple.v-capital-g-tooth] +tag = "cv91" +sampler = "G" +description = "Toothed G" +G = "toothed" + +[simple.v-capital-g-toothless] +tag = "cv92" +sampler = "G" +description = "Toothless G" +G = "toothless" [simple.v-turn-v-straight] tag = "cv73" @@ -267,14 +278,14 @@ u = "withoutBar" [simple.v-v-straight] tag = "cv71" -sampler = 'v' +sampler = 'vV' description = 'Standard, straight `V` and `v`' v = "straight" V = "straight" [simple.v-v-curly] tag = "cv72" -sampler = 'v' +sampler = 'vV' description = ' Slightly curly `V` and `v`, like Iosevka 2.x' v = "curly" V = "curly" @@ -456,6 +467,20 @@ sampler = '^' description = 'Lower circumflex `^`' asciicaret = 'low' +[simple.v-brace-straight] +tag = 'cv36' +sampler = '{ }' +description = 'More straight braces' +braceLeft = 'straight' +braceRight = 'straight' + +[simple.v-brace-curly] +tag = 'cv37' +sampler = '{ }' +description = 'More curly braces' +braceLeft = 'curly' +braceRight = 'curly' + [simple.v-at-threefold] tag = 'cv31' sampler = '@' @@ -474,20 +499,6 @@ sampler = '@' description = 'The shorter, Fira-like At symbol (`@`)' at = 'short' -[simple.v-brace-straight] -tag = 'cv36' -sampler = '{ }' -description = 'More straight braces' -braceLeft = 'straight' -braceRight = 'straight' - -[simple.v-brace-curly] -tag = 'cv37' -sampler = '{ }' -description = 'More curly braces' -braceLeft = 'curly' -braceRight = 'curly' - [simple.v-dollar-open] tag = 'cv38' sampler = '$' @@ -627,7 +638,8 @@ design = [ 'v-x-straight', 'v-capital-y-straight', 'v-capital-r-straight', - 'v-u-with-bar' + 'v-u-with-bar', + 'v-capital-g-tooth' ] upright = [ 'v-a-doublestorey',