diff --git a/glyphs/letters-unified-extended.ptl b/glyphs/letters-unified-extended.ptl index 27b4942..2fb8de5 100644 --- a/glyphs/letters-unified-extended.ptl +++ b/glyphs/letters-unified-extended.ptl @@ -1335,57 +1335,90 @@ export : define [apply] : begin ########################################################################################### # UNIFIED LETTERFORMS : OTHER LATIN ########################################################################################### - - sketch # eszet - set-width WIDTH - include markset.if - local l : SB * 1 - include : dispiro - widths.lhs - g4 ([mix SB RIGHTSB 0.75] + HALFSTROKE * HVCONTRAST) (CAP - HOOK) - hookstart (CAP - O) - flat l XH - curl l 0 [heading DOWNWARD] - local t : mix 0 CAP 0.7 - local tm : [mix DESCENDER t 0.625] + HALFSTROKE - local tl : [mix l RIGHTSB 0.35] + HALFSTROKE * HVCONTRAST - include : HBarTop (l + 1) (RIGHTSB - HALFSTROKE * 1.2 - OX) t - include : dispiro - widths.rhs - flat tl tm [heading RIGHTWARD] - curl (tl + 1) tm [heading RIGHTWARD] - g2 (RIGHTSB - OX * 1.5) [mix DESCENDER tm 0.70] - g2 (RIGHTSB - OX * 1.5) [mix DESCENDER tm 0.67] - alsothru 0.5 0.75 - g4 [mix SB RIGHTSB 0.35] DESCENDER - include : dispiro - widths.center (STROKE * 1.1) - corner tl (tm - STROKE) [heading UPWARD] - corner (RIGHTSB - HALFSTROKE * 1.2 - OX) t [heading UPWARD] - save 'eszet' 0xDF - - sketch # Eszet - include markset.capital - include : dispiro - widths.lhs - g4 (RIGHTSB + O * 2) (CAP - SMOOTHB) - hookstart (CAP - O) - flat SB XH - curl SB 0 [heading DOWNWARD] + do local ymiddle : [mix 0 CAP 0.5] - HALFSTROKE - include : dispiro - widths.rhs - g4 (RIGHTSB - ymiddle / 2 - STROKE * 0.75) (ymiddle + STROKE) - archv - g4 (RIGHTSB - O) [mix 0 (ymiddle + STROKE) 0.5] - arcvh - flat (RIGHTSB - ymiddle / 2 - HALFSTROKE) 0 - curl (SB + STROKE - O * 3) 0 [heading LEFTWARD] - include : dispiro - widths.rhs - g4 (RIGHTSB + O * 2) (CAP - SMOOTHB) - g4 (RIGHTSB - ymiddle / 2 - STROKE * 0.75) (ymiddle + STROKE) [widths STROKE 0] - save 'Eszet' 0x1E9E + local xmiddle : RIGHTSB - ymiddle / 2 - STROKE * 0.75 + local xfinal : Math.min (RIGHTSB - ymiddle / 2 - HALFSTROKE - 1 - STROKE * TANSLANT) (SB + STROKE * 1.75) + sketch # eszet + set-width WIDTH + include markset.if + local l : SB * 1 + include : dispiro + widths.lhs + g4 ([mix SB RIGHTSB 0.75] + HALFSTROKE * HVCONTRAST) (CAP - HOOK) + hookstart (CAP - O) + flat l XH + curl l 0 [heading DOWNWARD] + local t : mix 0 CAP 0.7 + local tm : [mix DESCENDER t 0.625] + HALFSTROKE + local tl : [mix l RIGHTSB 0.35] + HALFSTROKE * HVCONTRAST + include : HBarTop (l + 1) (RIGHTSB - HALFSTROKE * 1.2 - OX) t + include : dispiro + widths.rhs + flat tl tm [heading RIGHTWARD] + curl (tl + 1) tm [heading RIGHTWARD] + g2 (RIGHTSB - OX * 1.5) [mix DESCENDER tm 0.70] + g2 (RIGHTSB - OX * 1.5) [mix DESCENDER tm 0.67] + alsothru 0.5 0.75 + g4 [mix SB RIGHTSB 0.35] DESCENDER + include : dispiro + widths.center (STROKE * 1.1) + corner tl (tm - STROKE) [heading UPWARD] + corner (RIGHTSB - HALFSTROKE * 1.2 - OX) t [heading UPWARD] + piecewise + para.isItalic : include : VerticalHook (l + HALFSTROKE * HVCONTRAST) 0 (-HOOK * 1.2) HOOK + SLAB : include : LeftwardBottomSerif SB 0 SIDEJUT + save 'eszet.traditional' + + sketch # eszet.sulzbacher + include markset.capital + include : dispiro + widths.rhs + flat SB 0 [heading UPWARD] + curl SB XH + arcvh + g4 (MIDDLE + O) (CAP - O) + archv + g4 (RIGHTSB + O * 2) [mix CAP ymiddle 0.47] + g4.left.end xmiddle ymiddle [heading LEFTWARD] + include : dispiro + widths.rhs + g4.right.start xmiddle (ymiddle + STROKE) [heading RIGHTWARD] + archv + g4 (RIGHTSB - O) [mix 0 (ymiddle + STROKE) 0.5] + arcvh + flat (RIGHTSB - ymiddle / 2 - HALFSTROKE) 0 + curl xfinal 0 [heading LEFTWARD] + if SLAB : include : LeftwardBottomSerif SB 0 SIDEJUT + save 'eszet.sulzbacher' + + select-variant 'eszet' 0xDF 'sulzbacher' { + .cv34 'eszet.traditional' + .cv35 'eszet.sulzbacher' + } + + sketch # Eszet + include markset.capital + include : dispiro + widths.lhs + g4 (RIGHTSB + O * 2) (CAP - SMOOTHB) + hookstart (CAP - O) + flat SB XH + curl SB 0 [heading DOWNWARD] + include : dispiro + widths.rhs + g4 (RIGHTSB - ymiddle / 2 - STROKE * 0.75) (ymiddle + STROKE) + archv + g4 (RIGHTSB - O) [mix 0 (ymiddle + STROKE) 0.5] + arcvh + flat (RIGHTSB - ymiddle / 2 - HALFSTROKE) 0 + curl xfinal 0 [heading LEFTWARD] + include : dispiro + widths.rhs + g4 (RIGHTSB + O * 2) (CAP - SMOOTHB) + g4 (RIGHTSB - ymiddle / 2 - STROKE * 0.75) (ymiddle + STROKE) [widths STROKE 0] + if SLAB : include : LeftwardBottomSerif SB 0 SIDEJUT + save 'Eszet' 0x1E9E sketch # AE diff --git a/parameters.toml b/parameters.toml index 2e379c9..7b853af 100644 --- a/parameters.toml +++ b/parameters.toml @@ -78,26 +78,26 @@ powerlineShiftX = 0 # Horizontal shift [iosevka.variantSelector] [iosevka.sscompose.upright] -ss01 = ['cv01', 'cv11', 'cv05', 'cv10', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32'] # Andale Mono Style -ss02 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv13', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32'] # Anonymous Pro Style -ss03 = ['cv01', 'cv11', 'cv03', 'cv07', 'cv13', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32'] # Consolas Style -ss04 = ['cv01', 'cv12', 'cv03', 'cv08', 'cv13', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31'] # Menlo Style -ss05 = ['cv01', 'cv24', 'cv03', 'cv08', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv33'] # Fira Mono Style -ss06 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32'] # Liberation Mono Style -ss07 = ['cv02', 'cv12', 'cv06', 'cv10', 'cv13', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32'] # Monaco Style -ss08 = ['cv01', 'cv11', 'cv03', 'cv07', 'cv14', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31'] # Pragmata Pro Style -ss09 = ['cv01', 'cv11', 'cv05', 'cv08', 'cv14', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv31'] # Source Code Pro Style +ss01 = ['cv01', 'cv11', 'cv05', 'cv10', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Andale Mono Style +ss02 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv13', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Anonymous Pro Style +ss03 = ['cv01', 'cv11', 'cv03', 'cv07', 'cv13', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Consolas Style +ss04 = ['cv01', 'cv12', 'cv03', 'cv08', 'cv13', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34'] # Menlo Style +ss05 = ['cv01', 'cv24', 'cv03', 'cv08', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv33', 'cv34'] # Fira Mono Style +ss06 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Liberation Mono Style +ss07 = ['cv02', 'cv12', 'cv06', 'cv10', 'cv13', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Monaco Style +ss08 = ['cv01', 'cv11', 'cv03', 'cv07', 'cv14', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34'] # Pragmata Pro Style +ss09 = ['cv01', 'cv11', 'cv05', 'cv08', 'cv14', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34'] # Source Code Pro Style [iosevka.sscompose.italic] -ss01 = ['cv01', 'cv11', 'cv05', 'cv10', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32'] # Andale Mono Style -ss02 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv13', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32'] # Anonymous Pro Style -ss03 = ['cv02', 'cv12', 'cv04', 'cv08', 'cv13', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32'] # Consolas Style -ss04 = ['cv01', 'cv12', 'cv03', 'cv08', 'cv13', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31'] # Menlo Style -ss05 = ['cv01', 'cv24', 'cv03', 'cv08', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv33'] # Fira Mono Style -ss06 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32'] # Liberation Mono Style -ss07 = ['cv02', 'cv12', 'cv06', 'cv10', 'cv13', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32'] # Monaco Style -ss08 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31'] # Pragmata Pro Style -ss09 = ['cv02', 'cv12', 'cv04', 'cv08', 'cv14', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv31'] # Source Code Pro Style +ss01 = ['cv01', 'cv11', 'cv05', 'cv10', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Andale Mono Style +ss02 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv13', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Anonymous Pro Style +ss03 = ['cv02', 'cv12', 'cv04', 'cv08', 'cv13', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Consolas Style +ss04 = ['cv01', 'cv12', 'cv03', 'cv08', 'cv13', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34'] # Menlo Style +ss05 = ['cv01', 'cv24', 'cv03', 'cv08', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv33', 'cv34'] # Fira Mono Style +ss06 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Liberation Mono Style +ss07 = ['cv02', 'cv12', 'cv06', 'cv10', 'cv13', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34'] # Monaco Style +ss08 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34'] # Pragmata Pro Style +ss09 = ['cv02', 'cv12', 'cv04', 'cv08', 'cv14', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34'] # Source Code Pro Style [verbose] verbose = true @@ -711,3 +711,13 @@ at = 'fourfold' at = 'short' [cv33.variantSelector] at = 'short' + +[v-eszet-traditional.variantSelector] +eszet = 'traditional' +[cv34.variantSelector] +eszet = 'traditional' + +[v-eszet-sulzbacher.variantSelector] +eszet = 'sulzbacher' +[cv35.variantSelector] +eszet = 'sulzbacher' \ No newline at end of file diff --git a/testdrive/index.html b/testdrive/index.html index 8b2b015..c722b0a 100644 --- a/testdrive/index.html +++ b/testdrive/index.html @@ -7,7 +7,7 @@ - +