From fbe1c20abc3c9fe121617b692cee0ce12d9064e6 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 15 Jan 2017 18:53:03 +0800 Subject: [PATCH] Added v-brace-straight (cv36) and v-brace-curly(cv37) --- glyphs/symbol-punctuation.ptl | 59 ++++++++++++++++++++++++++--------- parameters.toml | 52 +++++++++++++++++++----------- 2 files changed, 78 insertions(+), 33 deletions(-) diff --git a/glyphs/symbol-punctuation.ptl b/glyphs/symbol-punctuation.ptl index f2ca970..917e984 100644 --- a/glyphs/symbol-punctuation.ptl +++ b/glyphs/symbol-punctuation.ptl @@ -67,35 +67,66 @@ export : define [apply] : begin include : FlipAround MIDDLE parenMid save 'bracketRight' ']' - sketch # braceLeft + sketch # braceLeft.straight local parenCenter [mix SB RIGHTSB [mix braceInside braceOutside 0.5]] local radius : [mix SB RIGHTSB braceInside] - parenCenter include : dispiro - flat [mix SB RIGHTSB braceInside] (parenTop - HALFSTROKE) [widths.heading HALFSTROKE HALFSTROKE LEFTWARD] - curl ([mix SB RIGHTSB braceInside] - 0.01) (parenTop - HALFSTROKE) [widths.heading HALFSTROKE HALFSTROKE LEFTWARD] + straight.left.start [mix SB RIGHTSB braceInside] (parenTop - HALFSTROKE) [widths.heading HALFSTROKE HALFSTROKE LEFTWARD] archv flat parenCenter (parenTop - radius) [heading DOWNWARD] curl parenCenter (parenMid + radius) [heading DOWNWARD] arcvh - flat ([mix SB RIGHTSB braceOutside] + 0.01) parenMid [heading LEFTWARD] - curl [mix SB RIGHTSB braceOutside] parenMid [heading LEFTWARD] + straight.left.end [mix SB RIGHTSB braceOutside] parenMid [heading LEFTWARD] include : dispiro - flat [mix SB RIGHTSB braceInside] (parenBot + HALFSTROKE) [widths.heading HALFSTROKE HALFSTROKE LEFTWARD] - curl ([mix SB RIGHTSB braceInside] - 0.01) (parenBot + HALFSTROKE) [widths.heading HALFSTROKE HALFSTROKE LEFTWARD] + straight.left.start [mix SB RIGHTSB braceInside] (parenBot + HALFSTROKE) [widths.heading HALFSTROKE HALFSTROKE LEFTWARD] archv flat parenCenter (parenBot + radius) [heading UPWARD] curl parenCenter (parenMid - radius) [heading UPWARD] arcvh - flat ([mix SB RIGHTSB braceOutside] + 0.01) parenMid [heading LEFTWARD] - curl [mix SB RIGHTSB braceOutside] parenMid [heading LEFTWARD] - save 'braceLeft' '{' + straight.left.end [mix SB RIGHTSB braceOutside] parenMid [heading LEFTWARD] + save 'braceLeft.straight' - sketch # braceRight - include glyphs.braceLeft - include : FlipAround MIDDLE parenMid - save 'braceRight' '}' + sketch # braceLeft.curly + local xIns : mix SB RIGHTSB [mix braceOutside braceInside 1] + local xOus : mix SB RIGHTSB [mix braceInside braceOutside 1] + local m1 : mix SB RIGHTSB [mix braceInside braceOutside 0.6] + local m2 : mix SB RIGHTSB [mix braceInside braceOutside 0.4] + local braceRadiusLowLimit : (parenTop - parenMid - STROKE) * (1 / 3) + HALFSTROKE + local radius1 : Math.min (xIns - m1) braceRadiusLowLimit + local radius2 : [Math.min (m2 - xOus) braceRadiusLowLimit] - HALFSTROKE + local ess : mix STROKE ESS 0.25 + include : dispiro + straight.left.start xIns (parenTop - HALFSTROKE) [widths.heading HALFSTROKE HALFSTROKE LEFTWARD] + archv + g4.down.mid m1 (parenTop - radius1) [heading DOWNWARD] + alsothru 0.5 0.5 [widths (ess / 2) (ess / 2)] + g4.down.mid m2 (parenMid + radius2) [widths.heading HALFSTROKE HALFSTROKE DOWNWARD] + arcvh + straight.left.end xOus parenMid [heading LEFTWARD] + + include : dispiro + straight.left.start xIns (parenBot + HALFSTROKE) [widths.heading HALFSTROKE HALFSTROKE LEFTWARD] + archv + g4.up.mid m1 (parenBot + radius1) [heading UPWARD] + alsothru 0.5 0.5 [widths (ess / 2) (ess / 2)] + g4.up.mid m2 (parenMid - radius2) [widths.heading HALFSTROKE HALFSTROKE UPWARD] + arcvh + straight.left.end xOus parenMid [heading LEFTWARD] + save 'braceLeft.curly' + + composite 'braceRight.straight' glyphs.'braceLeft.straight' [FlipAround MIDDLE parenMid] + composite 'braceRight.curly' glyphs.'braceLeft.curly' [FlipAround MIDDLE parenMid] + + select-variant 'braceLeft' '{' 'curly' { + .cv36 'braceLeft.straight' + .cv37 'braceLeft.curly' + } + select-variant 'braceRight' '}' 'curly' { + .cv36 'braceRight.straight' + .cv37 'braceRight.curly' + } sketch # angleLeft local fatten : Math.hypot 1 (([mix SB RIGHTSB : parenInside - parenOutside] - O) / (parenTop - parenMid)) diff --git a/parameters.toml b/parameters.toml index 7b853af..93b52d9 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', '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 +ss01 = ['cv01', 'cv11', 'cv05', 'cv10', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Andale Mono Style +ss02 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv13', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Anonymous Pro Style +ss03 = ['cv01', 'cv11', 'cv03', 'cv07', 'cv13', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Consolas Style +ss04 = ['cv01', 'cv12', 'cv03', 'cv08', 'cv13', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34', 'cv36'] # Menlo Style +ss05 = ['cv01', 'cv24', 'cv03', 'cv08', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv33', 'cv34', 'cv37'] # Fira Mono Style +ss06 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Liberation Mono Style +ss07 = ['cv02', 'cv12', 'cv06', 'cv10', 'cv13', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Monaco Style +ss08 = ['cv01', 'cv11', 'cv03', 'cv07', 'cv14', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34', 'cv36'] # Pragmata Pro Style +ss09 = ['cv01', 'cv11', 'cv05', 'cv08', 'cv14', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34', 'cv37'] # Source Code Pro Style [iosevka.sscompose.italic] -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 +ss01 = ['cv01', 'cv11', 'cv05', 'cv10', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Andale Mono Style +ss02 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv13', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Anonymous Pro Style +ss03 = ['cv02', 'cv12', 'cv04', 'cv08', 'cv13', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Consolas Style +ss04 = ['cv01', 'cv12', 'cv03', 'cv08', 'cv13', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34', 'cv36'] # Menlo Style +ss05 = ['cv01', 'cv24', 'cv03', 'cv08', 'cv14', 'cv18', 'cv21', 'cv22', 'cv25', 'cv29', 'cv33', 'cv34', 'cv37'] # Fira Mono Style +ss06 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Liberation Mono Style +ss07 = ['cv02', 'cv12', 'cv06', 'cv10', 'cv13', 'cv18', 'cv20', 'cv22', 'cv25', 'cv29', 'cv32', 'cv34', 'cv36'] # Monaco Style +ss08 = ['cv01', 'cv12', 'cv03', 'cv07', 'cv14', 'cv19', 'cv21', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34', 'cv36'] # Pragmata Pro Style +ss09 = ['cv02', 'cv12', 'cv04', 'cv08', 'cv14', 'cv19', 'cv20', 'cv22', 'cv25', 'cv29', 'cv31', 'cv34', 'cv37'] # Source Code Pro Style [verbose] verbose = true @@ -720,4 +720,18 @@ eszet = 'traditional' [v-eszet-sulzbacher.variantSelector] eszet = 'sulzbacher' [cv35.variantSelector] -eszet = 'sulzbacher' \ No newline at end of file +eszet = 'sulzbacher' + +[v-brace-straight.variantSelector] +braceLeft = 'straight' +braceRight = 'straight' +[cv36.variantSelector] +braceLeft = 'straight' +braceRight = 'straight' + +[v-brace-curly.variantSelector] +braceLeft = 'curly' +braceRight = 'curly' +[cv37.variantSelector] +braceLeft = 'curly' +braceRight = 'curly' \ No newline at end of file