From 19f6f894cc7ed4bbd78a62d4d5e7eb8bfa61cab9 Mon Sep 17 00:00:00 2001 From: Belleve Invis Date: Fri, 24 Jul 2015 01:31:15 +0800 Subject: [PATCH] Balanced /a and /r. --- buildglyphs.js | 16 +++++++++------- final.pe | 7 +++++-- glyphs/latin-lower.patel | 20 ++++++++++++-------- parameters.js | 5 ++--- parameters.patel | 5 ++--- 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/buildglyphs.js b/buildglyphs.js index 1bae4cf..bd777d8 100644 --- a/buildglyphs.js +++ b/buildglyphs.js @@ -1040,7 +1040,7 @@ exports.build = function(r1_para) { r190_xn$putshapes$9Jrj(r190_xn$createstroke$7Hrq()["start-from"](r190_center, r1_CAP)["set-width"](r1_STROKE, 0)["heads-to"](r1_DOWNWARD)["line-to"](r190_center, r190_smb)["arc-vh-to"](r190_turn, r1_O)["curve-to"](r190_turn + (r1_KAPPA_HOOK + r1_TAILADJKAPPA * r1_globalTransform.yx + .1) * (r190_hookx - r190_turn), r1_O, r190_hookx, r1_HOOK - r1_TAILADJY * r1_globalTransform.yx)["to-outline"]()), void r190_xn$putshapes$9Jrj(r190_xn$createstroke$7Hrq()["start-from"](r190_center + r1_HALFSTROKE - r1_LONGJUT + r1_TBALANCE2, r1_XH)["heads-to"](r1_RIGHTWARD)["set-width"](0, r1_STROKE)["line-to"](r190_center + r1_HALFSTROKE + r1_LONGJUT + r1_TBALANCE2, r1_XH)["heads-to"](r1_RIGHTWARD)["to-outline"]()); }), r1_xn$createglyph$7Hrq("a.upright", function() { - var r193_currentGlyph, r193_xn$setwidth$9Jrj, r193_xn$assignunicode$7Hrq, r193_xn$startfrom$1aao, r193_xn$lineto$5sIl, r193_xn$curveto$1aao, r193_xn$cubicto$1aao, r193_xn$putshapes$9Jrj, r193_xn$reverselast$3qIs, r193_include, r193_xn$createstroke$7Hrq, r193_xn$setanchor$9Jrj, r193_bartop, _r193_t0; + var r193_currentGlyph, r193_xn$setwidth$9Jrj, r193_xn$assignunicode$7Hrq, r193_xn$startfrom$1aao, r193_xn$lineto$5sIl, r193_xn$curveto$1aao, r193_xn$cubicto$1aao, r193_xn$putshapes$9Jrj, r193_xn$reverselast$3qIs, r193_include, r193_xn$createstroke$7Hrq, r193_xn$setanchor$9Jrj, r193_bartop, r193_lowmiddle, r193_barsmooth, _r193_t0; return _r193_t0 = this, r193_currentGlyph = _r193_t0, r193_xn$setwidth$9Jrj = _r193_t0["set-width"].bind(_r193_t0), r193_xn$assignunicode$7Hrq = function(r194_code) { var r194_code; @@ -1051,9 +1051,10 @@ exports.build = function(r1_para) { r193_include = _r193_t0.include.bind(_r193_t0), r193_xn$createstroke$7Hrq = _r193_t0["create-stroke"].bind(_r193_t0), r193_xn$setanchor$9Jrj = _r193_t0["set-anchor"].bind(_r193_t0), _r193_t0.gizmo = r1_globalTransform, _r193_t0["set-width"](r1_WIDTH), r193_xn$setwidth$9Jrj(r1_WIDTH), r193_bartop = r1_XH * r1_BARPOS + r1_STROKE, - r193_xn$putshapes$9Jrj(r193_xn$createstroke$7Hrq()["start-from"](r1_RIGHTSB, 0)["heads-to"](r1_UPWARD)["set-width"](r1_STROKE, 0)["line-to"](r1_RIGHTSB, r1_XH - r1_SMOOTHA)["arc-vh-to"](r1_MIDDLE, r1_XO)["heads-to"](r1_LEFTWARD)["curve-to"](r1_MIDDLE - r1_KAPPA_HOOK * (r1_MIDDLE - r1_SB), r1_XO, r1_SB + r1_OXHOOK, r1_XH - r1_AHOOK)["to-outline"]()), - r193_xn$putshapes$9Jrj(r193_xn$createstroke$7Hrq()["start-from"](.47 * r1_WIDTH, r1_O)["set-width"](0, r1_STROKE)["heads-to"](r1_LEFTWARD)["arc-hv-to"](r1_SB + r1_O, .45 * r193_bartop)["arc-vh-to"](.6 * r1_WIDTH, r193_bartop)["line-to"](r1_RIGHTSB, r193_bartop)["heads-to"](r1_RIGHTWARD)["to-outline"]()), - void r193_xn$putshapes$9Jrj(r193_xn$createstroke$7Hrq()["start-from"](.47 * r1_WIDTH, r1_O + r1_STROKE)["set-width"](0, r1_STROKE)["heads-to"](r1_RIGHTWARD)["arc-hv-to"](r1_RIGHTSB - r1_STROKE, .65 * r1_SMALLSMOOTHA)["heads-to"](r1_UPWARD)["set-width"](0, .4 * r1_STROKE)["to-outline"]()); + r193_lowmiddle = r1_mix(r1_SB, r1_RIGHTSB - r1_STROKE, r1_linreg(80, .55, 120, .625, r1_STROKE)), + r193_barsmooth = r1_mix(r1_SB, r1_RIGHTSB, .6), r193_xn$putshapes$9Jrj(r193_xn$createstroke$7Hrq()["start-from"](r1_RIGHTSB, 0)["heads-to"](r1_UPWARD)["set-width"](r1_STROKE, 0)["line-to"](r1_RIGHTSB, r1_XH - r1_SMOOTHA)["arc-vh-to"](r1_MIDDLE, r1_XO)["heads-to"](r1_LEFTWARD)["curve-to"](r1_MIDDLE - r1_KAPPA_HOOK * (r1_MIDDLE - r1_SB), r1_XO, r1_SB + r1_OXHOOK, r1_XH - r1_AHOOK)["to-outline"]()), + r193_xn$putshapes$9Jrj(r193_xn$createstroke$7Hrq()["start-from"](r193_lowmiddle, r1_O)["set-width"](0, r1_STROKE)["heads-to"](r1_LEFTWARD)["arc-hv-to"](r1_SB + r1_O, .45 * r193_bartop)["arc-vh-to"](r193_barsmooth, r193_bartop)["line-to"](r1_RIGHTSB, r193_bartop)["heads-to"](r1_RIGHTWARD)["to-outline"]()), + void r193_xn$putshapes$9Jrj(r193_xn$createstroke$7Hrq()["start-from"](r193_lowmiddle, r1_O + r1_STROKE)["set-width"](0, r1_STROKE)["heads-to"](r1_RIGHTWARD)["arc-hv-to"](r1_RIGHTSB - r1_STROKE, .65 * r1_SMALLSMOOTHA)["heads-to"](r1_UPWARD)["set-width"](0, .4 * r1_STROKE)["to-outline"]()); }), r1_xn$createglyph$7Hrq("a.italic", function() { var r196_currentGlyph, r196_xn$setwidth$9Jrj, r196_xn$assignunicode$7Hrq, r196_xn$startfrom$1aao, r196_xn$lineto$5sIl, r196_xn$curveto$1aao, r196_xn$cubicto$1aao, r196_xn$putshapes$9Jrj, r196_xn$reverselast$3qIs, r196_include, r196_xn$createstroke$7Hrq, r196_xn$setanchor$9Jrj, _r196_t0; return _r196_t0 = this, r196_currentGlyph = _r196_t0, r196_xn$setwidth$9Jrj = _r196_t0["set-width"].bind(_r196_t0), @@ -1446,7 +1447,7 @@ exports.build = function(r1_para) { r274_include(r1_eMarks), r274_xn$putshapes$9Jrj(r1_sHookUpper(r1_XH, .87 * r1_SMOOTHA, r1_SHOOK)), r274_xn$putshapes$9Jrj(r1_sHookLower(0, .87 * r1_SMOOTHA, r1_SHOOK)), void r274_xn$putshapes$9Jrj(r1_sStrand(r1_XH - .87 * r1_SMOOTHA, .87 * r1_SMOOTHA, .2, .45)); }), r1_xn$createglyph$7Hrq("r", function() { - var r277_currentGlyph, r277_xn$setwidth$9Jrj, r277_xn$assignunicode$7Hrq, r277_xn$startfrom$1aao, r277_xn$lineto$5sIl, r277_xn$curveto$1aao, r277_xn$cubicto$1aao, r277_xn$putshapes$9Jrj, r277_xn$reverselast$3qIs, r277_include, r277_xn$createstroke$7Hrq, r277_xn$setanchor$9Jrj, r277_slope, r277_expand, r277_coexpand, r277_ssmootha, _r277_t0; + var r277_currentGlyph, r277_xn$setwidth$9Jrj, r277_xn$assignunicode$7Hrq, r277_xn$startfrom$1aao, r277_xn$lineto$5sIl, r277_xn$curveto$1aao, r277_xn$cubicto$1aao, r277_xn$putshapes$9Jrj, r277_xn$reverselast$3qIs, r277_include, r277_xn$createstroke$7Hrq, r277_xn$setanchor$9Jrj, r277_slope, r277_expand, r277_coexpand, r277_rhookx, r277_rmiddle, _r277_t0; return _r277_t0 = this, r277_currentGlyph = _r277_t0, r277_xn$setwidth$9Jrj = _r277_t0["set-width"].bind(_r277_t0), r277_xn$assignunicode$7Hrq = function(r278_code) { var r278_code; @@ -1458,8 +1459,9 @@ exports.build = function(r1_para) { r277_xn$setanchor$9Jrj = _r277_t0["set-anchor"].bind(_r277_t0), _r277_t0.gizmo = r1_globalTransform, _r277_t0["set-width"](r1_WIDTH), r277_xn$setwidth$9Jrj(r1_WIDTH), r277_xn$assignunicode$7Hrq("r"), r277_include(r1_eMarks), r277_slope = .015, r277_expand = .175, r277_coexpand = (1 - r277_expand) / 2, - r277_ssmootha = .87 * r1_SMOOTHA, r277_xn$putshapes$9Jrj(r277_xn$createstroke$7Hrq()["start-from"](r1_RIGHTSB + r1_JBALANCE / 2, r1_XH - r1_RHOOK)["set-width"](r1_STROKE, 0)["curve-to"](r1_MIDDLE + r1_KAPPA_AHOOK * (r1_MIDDLE - r1_para.sb) + r1_JBALANCE / 2, r1_XO, r1_MIDDLE + .75 * r1_JBALANCE, r1_XO)["heads-to"](r1_LEFTWARD)["to-outline"]()), - r277_xn$putshapes$9Jrj(r277_xn$createstroke$7Hrq()["start-from"](r1_MIDDLE + .75 * r1_JBALANCE, r1_XO - r1_STROKE)["set-width"](0, r1_STROKE)["heads-to"](r1_LEFTWARD)["arc-hv-to"](r1_SB + r1_STROKE * r1_ITALICCOR + r1_RBALANCE, r1_XH - r1_SMALLSMOOTHA)["heads-to"](r1_DOWNWARD)["set-width"](0, .4 * r1_STROKE)["to-outline"]()), + r277_rhookx = r1_RIGHTSB + r1_JBALANCE / 2, r277_rmiddle = r1_mix(r1_SB + r1_RBALANCE + r1_STROKE, r277_rhookx - r1_HALFSTROKE, .5), + r277_xn$putshapes$9Jrj(r277_xn$createstroke$7Hrq()["start-from"](r277_rhookx, r1_XH - r1_RHOOK)["set-width"](r1_STROKE, 0)["curve-to"](r1_mix(r277_rmiddle, r277_rhookx, r1_KAPPA_AHOOK), r1_XO, r277_rmiddle, r1_XO)["heads-to"](r1_LEFTWARD)["to-outline"]()), + r277_xn$putshapes$9Jrj(r277_xn$createstroke$7Hrq()["start-from"](r277_rmiddle, r1_XO - r1_STROKE)["set-width"](0, r1_STROKE)["heads-to"](r1_LEFTWARD)["arc-hv-to"](r1_SB + r1_STROKE * r1_ITALICCOR + r1_RBALANCE, r1_XH - r1_SMALLSMOOTHA)["heads-to"](r1_DOWNWARD)["set-width"](0, .3 * r1_STROKE)["to-outline"]()), void r277_xn$putshapes$9Jrj(r277_xn$createstroke$7Hrq()["start-from"](r1_SB + r1_RBALANCE, 0)["heads-to"](r1_UPWARD)["set-width"](0, r1_STROKE)["line-to"](r1_SB + r1_RBALANCE, r1_XH)["heads-to"](r1_UPWARD)["to-outline"]()); }), r1_xn$createglyph$7Hrq("f.upright", function() { var r280_currentGlyph, r280_xn$setwidth$9Jrj, r280_xn$assignunicode$7Hrq, r280_xn$startfrom$1aao, r280_xn$lineto$5sIl, r280_xn$curveto$1aao, r280_xn$cubicto$1aao, r280_xn$putshapes$9Jrj, r280_xn$reverselast$3qIs, r280_include, r280_xn$createstroke$7Hrq, r280_xn$setanchor$9Jrj, _r280_t0; diff --git a/final.pe b/final.pe index 265109e..a1aedb2 100644 --- a/final.pe +++ b/final.pe @@ -10,10 +10,13 @@ ClearTable('maxp'); Print("Outline Cleanup..."); AddExtrema(); RemoveOverlap(); -ReplaceWithReference(3, 1); -Simplify(0, 1); RoundToInt() RemoveOverlap(); +ReplaceWithReference(3, 1); +SetFontOrder(3); +Simplify(0, 2); +SetFontOrder(2); +Simplify(0, 1); CorrectDirection(); CanonicalContours(); CanonicalStart(); diff --git a/glyphs/latin-lower.patel b/glyphs/latin-lower.patel index 11e50fa..3eeb0eb 100644 --- a/glyphs/latin-lower.patel +++ b/glyphs/latin-lower.patel @@ -280,6 +280,8 @@ create-glyph 't' : glyph-construction { create-glyph 'a.upright' : glyph-construction { set-width WIDTH local bartop [XH * BARPOS + STROKE] + local lowmiddle : mix SB [RIGHTSB - STROKE] [linreg 80 0.55 120 0.625 STROKE] + local barsmooth : mix SB RIGHTSB 0.6 put-shapes : create-stroke :.start-from RIGHTSB 0 :.heads-to UPWARD @@ -290,16 +292,16 @@ create-glyph 'a.upright' : glyph-construction { :.curve-to [MIDDLE - KAPPA_HOOK * [MIDDLE - SB]] XO [SB + OXHOOK] [XH - AHOOK] :.to-outline put-shapes : create-stroke - :.start-from [WIDTH * 0.47] O + :.start-from lowmiddle O :.set-width 0 STROKE :.heads-to LEFTWARD :.arc-hv-to [SB + O] [bartop * 0.45] - :.arc-vh-to [WIDTH * 0.6] bartop + :.arc-vh-to barsmooth bartop :.line-to RIGHTSB bartop :.heads-to RIGHTWARD :.to-outline put-shapes : create-stroke - :.start-from [WIDTH * 0.47] [O + STROKE] + :.start-from lowmiddle [O + STROKE] :.set-width 0 STROKE :.heads-to RIGHTWARD :.arc-hv-to [RIGHTSB - STROKE] [SMALLSMOOTHA * 0.65] @@ -773,21 +775,23 @@ create-glyph 'r' : glyph-construction { local slope 0.015 local expand 0.175 local coexpand [[1 - expand] / 2] - local ssmootha [SMOOTHA * 0.87] + + local rhookx : RIGHTSB + JBALANCE / 2 + local rmiddle : mix [SB + RBALANCE + STROKE] [rhookx - HALFSTROKE] 0.5 put-shapes : create-stroke - :.start-from [RIGHTSB + JBALANCE / 2] [XH - RHOOK] + :.start-from rhookx [XH - RHOOK] :.set-width STROKE 0 - :.curve-to [MIDDLE + KAPPA_AHOOK * [MIDDLE - para.sb] + JBALANCE / 2] XO [MIDDLE + JBALANCE * 0.75] XO + :.curve-to [mix rmiddle rhookx KAPPA_AHOOK] XO rmiddle XO :.heads-to LEFTWARD :.to-outline put-shapes : create-stroke - :.start-from [MIDDLE + JBALANCE * 0.75] [XO - STROKE] + :.start-from rmiddle [XO - STROKE] :.set-width 0 STROKE :.heads-to LEFTWARD :.arc-hv-to [SB + STROKE * ITALICCOR + RBALANCE] [XH - SMALLSMOOTHA] :.heads-to DOWNWARD - :.set-width 0 [STROKE * 0.4] + :.set-width 0 [STROKE * 0.3] :.to-outline put-shapes : create-stroke :.start-from [SB + RBALANCE] 0 diff --git a/parameters.js b/parameters.js index dde450d..38aa3f6 100644 --- a/parameters.js +++ b/parameters.js @@ -21,7 +21,8 @@ 'smoothadjust': 100, 'o': -8, 'oxhook': 0, - 'kappa': 0.515, + 'kappa': 0.518, + 'ckappa': 0.618, 'italicangle': 0, 'longjut': 175, 'accent': 170, @@ -62,13 +63,11 @@ r0_italic['tbalance'] = 70; r0_italic['rbalance'] = 30; r0_italic['style'] = 'Italic'; - r0_italic['ckappa'] = 0.618; r0_italic['isItalic'] = true; r0_bolditalic = Object['create'](r0_bold); r0_bolditalic['italicangle'] = 10; r0_bolditalic['tbalance'] = 90; r0_bolditalic['style'] = 'Bold Italic'; - r0_bolditalic['ckappa'] = 0.618; r0_bolditalic['isBold'] = true; r0_bolditalic['isItalic'] = true; exports['regular'] = r0_regular; diff --git a/parameters.patel b/parameters.patel index 6b8d2b6..3be9ab2 100644 --- a/parameters.patel +++ b/parameters.patel @@ -22,7 +22,8 @@ define regular ( .o [-8] .oxhook 0 - .kappa 0.515 + .kappa 0.518 + .ckappa 0.618 .italicangle 0 .longjut 175 .accent 170 @@ -68,14 +69,12 @@ italic.italicangle = 10 italic.tbalance = 70 italic.rbalance = 30 italic.style = 'Italic' -italic.ckappa = 0.618 italic.isItalic = true define bolditalic : Object.create bold bolditalic.italicangle = 10 bolditalic.tbalance = 90 bolditalic.style = 'Bold Italic' -bolditalic.ckappa = 0.618 bolditalic.isBold = true bolditalic.isItalic = true