Balanced /e, /E, /F and /g.

This commit is contained in:
Belleve Invis 2015-07-23 08:20:58 +08:00
parent 0e2a6bcac8
commit 152c1acdb5
6 changed files with 20 additions and 12 deletions

View File

@ -69,6 +69,7 @@ define SMALLSMOOTHB : SMALLSMOOTH + globalTransform.yx * para.smoothadjust
define ITALICCORS : STROKE * globalTransform.yx
# style parameters
define EBARPOS : para.ebarpos || BARPOS
define KAPPA para.kappa
define COKAPPA : 1 - KAPPA
define BKAPPA : para.bkappa || KAPPA + 0.1
@ -88,6 +89,7 @@ define TBALANCE : para.tbalance || JBALANCE
define TBALANCE2 : para.tbalance2 || TBALANCE
define RBALANCE : para.rbalance || JBALANCE * 0.3
# Anchor parameters
define BASE 'base'
define MARK 'mark'

View File

@ -3,7 +3,7 @@
r0_Glyph = require('./support/glyph')['Glyph'];
r0_Stroke = require('./support/stroke')['Stroke'];
exports['build'] = function _r0_t0(r1_para) {
var r1_para, r1_variantSelector, r1_font, r1_glyphList, r1_glyphs, r1_globalTransform, r1_ITALICCOR, r1_UPWARD, r1_DOWNWARD, r1_RIGHTWARD, r1_LEFTWARD, r1_DESCENDER, r1_WIDTH, r1_CAP, r1_XH, r1_O, r1_OXHOOK, r1_SB, r1_HOOK, r1_AHOOK, r1_SHOOK, r1_RHOOK, r1_SMOOTH, r1_SMALLSMOOTH, r1_STROKE, r1_DOTSIZE, r1_PERIODSIZE, r1_BARPOS, r1_GBARPOS, r1_FIVEBARPOS, r1_LONGJUT, r1_ACCENT, r1_ACCENTX, r1_XO, r1_CAPO, r1_HALFSTROKE, r1_RIGHTSB, r1_MIDDLE, r1_CAPMIDDLE, r1_CAP_SMOOTH, r1_DOTRADIUS, r1_PERIODRADIUS, r1_SMOOTHA, r1_SMOOTHB, r1_SMALLSMOOTHA, r1_SMALLSMOOTHB, r1_ITALICCORS, r1_KAPPA, r1_COKAPPA, r1_BKAPPA, r1_CKAPPA, r1_COBKAPPA, r1_KAPPA_HOOK, r1_KAPPA_AHOOK, r1_TAILADJX, r1_TAILADJY, r1_TAILADJKAPPA, r1_TAILADJSX, r1_TAILADJSY, r1_TAILADJSKAPPA, r1_ILBALANCE, r1_JBALANCE, r1_TBALANCE, r1_TBALANCE2, r1_RBALANCE, r1_BASE, r1_MARK, r1_MARKBASE, r1_tm, r1_markAboveLower, r1_markAboveCap, r1_markBelowLower, r1_markBelowZero, r1_capitalMarks, r1_bMarks, r1_eMarks, r1_pMarks, r1_ifMarks, r1_xn$createglyph$7Hrq, r1_xn$selectvariant$7Hrq, r1_mix, r1_xgrid, r1_linreg, r1_Ring, r1_ORing, r1_leftwardTopSerif, r1_leftwardBottomSerif, r1_rightwardTopSerif, r1_rightwardBottomSerif, r1_xsStrand, r1_sStrand, r1_halfXStrand, r1_xStrand, r1_nBowl, r1_sHookUpper, r1_twoHookUpper, r1_sHookLower, r1_smallo, r1_hbar, r1_vbar, r1_aboveMarkTop, r1_markExtend, r1_aboveMarkBot, r1_markHalfStroke, r1_markFine, r1_markMiddle, r1_parenTop, r1_parenBot, r1_parenMid, r1_parenOutside, r1_parenInside, r1_bracketOutside, r1_bracketInside, r1_braceOutside, r1_braceInside, _r1_t0, _r1_t1, _r1_t2, _r1_t3, _r1_t4, _r1_t5, _r1_t6, _r1_t7, _r1_t8, _r1_t9, _r1_t10, _r1_t11, _r1_t12, _r1_t13, _r1_t14, _r1_t15, _r1_t16, _r1_t17, _r1_t18, _r1_t19, _r1_t20, _r1_t21, _r1_t22, _r1_t23, _r1_t24, _r1_t25, _r1_t26, _r1_t27, _r1_t28, _r1_t29, _r1_t30, _r1_t31, _r1_t32, _r1_t33, _r1_t34, _r1_t35, _r1_t36, _r1_t37, _r1_t38, _r1_t39, _r1_t40, _r1_t41, _r1_t42, _r1_t43, _r1_t44, _r1_t45, _r1_t46, _r1_t47, _r1_t48, _r1_t49, _r1_t50, _r1_t51, _r1_t52, _r1_t53, _r1_t54, _r1_t55, _r1_t56, _r1_t57, _r1_t58, _r1_t59, _r1_t60, _r1_t61, _r1_t62, _r1_t63, _r1_t64, _r1_t65, _r1_t66, _r1_t67, _r1_t68, _r1_t69, _r1_t70, _r1_t71, _r1_t72, _r1_t73, _r1_t74, _r1_t75, _r1_t76, _r1_t77, _r1_t78, _r1_t79, _r1_t80, _r1_t81, _r1_t82, _r1_t83, _r1_t84, _r1_t85, _r1_t86, _r1_t87, _r1_t88, _r1_t89, _r1_t90, _r1_t91, _r1_t92, _r1_t93, _r1_t94, _r1_t95, _r1_t96, _r1_t97, _r1_t98, _r1_t99, _r1_t100, _r1_t101, _r1_t102, _r1_t103, _r1_t104, _r1_t105, _r1_t106, _r1_t107, _r1_t108, _r1_t109, _r1_t110, _r1_t111, _r1_t112, _r1_t113, _r1_t114, _r1_t115, _r1_t116, _r1_t117, _r1_t118, _r1_t119, _r1_t120, _r1_t121, _r1_t122, _r1_t123, _r1_t124, _r1_t125, _r1_t126, _r1_t127, _r1_t128, _r1_t129, _r1_t130, _r1_t131, _r1_t132, _r1_t133, _r1_t134, _r1_t135, _r1_t136, _r1_t137, _r1_t138, _r1_t139, _r1_t140, _r1_t141, _r1_t142, _r1_t143, _r1_t144, _r1_t145, _r1_t146, _r1_t147, _r1_t148, _r1_t149, _r1_t150, _r1_t151, _r1_t152, _r1_t153, _r1_t154, _r1_t155, _r1_t156, _r1_t157, _r1_t158, _r1_t159, _r1_t160, _r1_t161, _r1_t162, _r1_t163, _r1_t164, _r1_t165, _r1_t166, _r1_t167, _r1_t168, _r1_t169;
var r1_para, r1_variantSelector, r1_font, r1_glyphList, r1_glyphs, r1_globalTransform, r1_ITALICCOR, r1_UPWARD, r1_DOWNWARD, r1_RIGHTWARD, r1_LEFTWARD, r1_DESCENDER, r1_WIDTH, r1_CAP, r1_XH, r1_O, r1_OXHOOK, r1_SB, r1_HOOK, r1_AHOOK, r1_SHOOK, r1_RHOOK, r1_SMOOTH, r1_SMALLSMOOTH, r1_STROKE, r1_DOTSIZE, r1_PERIODSIZE, r1_BARPOS, r1_GBARPOS, r1_FIVEBARPOS, r1_LONGJUT, r1_ACCENT, r1_ACCENTX, r1_XO, r1_CAPO, r1_HALFSTROKE, r1_RIGHTSB, r1_MIDDLE, r1_CAPMIDDLE, r1_CAP_SMOOTH, r1_DOTRADIUS, r1_PERIODRADIUS, r1_SMOOTHA, r1_SMOOTHB, r1_SMALLSMOOTHA, r1_SMALLSMOOTHB, r1_ITALICCORS, r1_EBARPOS, r1_KAPPA, r1_COKAPPA, r1_BKAPPA, r1_CKAPPA, r1_COBKAPPA, r1_KAPPA_HOOK, r1_KAPPA_AHOOK, r1_TAILADJX, r1_TAILADJY, r1_TAILADJKAPPA, r1_TAILADJSX, r1_TAILADJSY, r1_TAILADJSKAPPA, r1_ILBALANCE, r1_JBALANCE, r1_TBALANCE, r1_TBALANCE2, r1_RBALANCE, r1_BASE, r1_MARK, r1_MARKBASE, r1_tm, r1_markAboveLower, r1_markAboveCap, r1_markBelowLower, r1_markBelowZero, r1_capitalMarks, r1_bMarks, r1_eMarks, r1_pMarks, r1_ifMarks, r1_xn$createglyph$7Hrq, r1_xn$selectvariant$7Hrq, r1_mix, r1_xgrid, r1_linreg, r1_Ring, r1_ORing, r1_leftwardTopSerif, r1_leftwardBottomSerif, r1_rightwardTopSerif, r1_rightwardBottomSerif, r1_xsStrand, r1_sStrand, r1_halfXStrand, r1_xStrand, r1_nBowl, r1_sHookUpper, r1_twoHookUpper, r1_sHookLower, r1_smallo, r1_hbar, r1_vbar, r1_aboveMarkTop, r1_markExtend, r1_aboveMarkBot, r1_markHalfStroke, r1_markFine, r1_markMiddle, r1_parenTop, r1_parenBot, r1_parenMid, r1_parenOutside, r1_parenInside, r1_bracketOutside, r1_bracketInside, r1_braceOutside, r1_braceInside, _r1_t0, _r1_t1, _r1_t2, _r1_t3, _r1_t4, _r1_t5, _r1_t6, _r1_t7, _r1_t8, _r1_t9, _r1_t10, _r1_t11, _r1_t12, _r1_t13, _r1_t14, _r1_t15, _r1_t16, _r1_t17, _r1_t18, _r1_t19, _r1_t20, _r1_t21, _r1_t22, _r1_t23, _r1_t24, _r1_t25, _r1_t26, _r1_t27, _r1_t28, _r1_t29, _r1_t30, _r1_t31, _r1_t32, _r1_t33, _r1_t34, _r1_t35, _r1_t36, _r1_t37, _r1_t38, _r1_t39, _r1_t40, _r1_t41, _r1_t42, _r1_t43, _r1_t44, _r1_t45, _r1_t46, _r1_t47, _r1_t48, _r1_t49, _r1_t50, _r1_t51, _r1_t52, _r1_t53, _r1_t54, _r1_t55, _r1_t56, _r1_t57, _r1_t58, _r1_t59, _r1_t60, _r1_t61, _r1_t62, _r1_t63, _r1_t64, _r1_t65, _r1_t66, _r1_t67, _r1_t68, _r1_t69, _r1_t70, _r1_t71, _r1_t72, _r1_t73, _r1_t74, _r1_t75, _r1_t76, _r1_t77, _r1_t78, _r1_t79, _r1_t80, _r1_t81, _r1_t82, _r1_t83, _r1_t84, _r1_t85, _r1_t86, _r1_t87, _r1_t88, _r1_t89, _r1_t90, _r1_t91, _r1_t92, _r1_t93, _r1_t94, _r1_t95, _r1_t96, _r1_t97, _r1_t98, _r1_t99, _r1_t100, _r1_t101, _r1_t102, _r1_t103, _r1_t104, _r1_t105, _r1_t106, _r1_t107, _r1_t108, _r1_t109, _r1_t110, _r1_t111, _r1_t112, _r1_t113, _r1_t114, _r1_t115, _r1_t116, _r1_t117, _r1_t118, _r1_t119, _r1_t120, _r1_t121, _r1_t122, _r1_t123, _r1_t124, _r1_t125, _r1_t126, _r1_t127, _r1_t128, _r1_t129, _r1_t130, _r1_t131, _r1_t132, _r1_t133, _r1_t134, _r1_t135, _r1_t136, _r1_t137, _r1_t138, _r1_t139, _r1_t140, _r1_t141, _r1_t142, _r1_t143, _r1_t144, _r1_t145, _r1_t146, _r1_t147, _r1_t148, _r1_t149, _r1_t150, _r1_t151, _r1_t152, _r1_t153, _r1_t154, _r1_t155, _r1_t156, _r1_t157, _r1_t158, _r1_t159, _r1_t160, _r1_t161, _r1_t162, _r1_t163, _r1_t164, _r1_t165, _r1_t166, _r1_t167, _r1_t168, _r1_t169;
r1_variantSelector = r1_para['variantSelector'];
r1_font = require('./empty.json');
r1_glyphList = r1_font['glyf'];
@ -69,6 +69,7 @@
r1_SMALLSMOOTHA = r1_SMALLSMOOTH - r1_globalTransform['yx'] * r1_para['smoothadjust'];
r1_SMALLSMOOTHB = r1_SMALLSMOOTH + r1_globalTransform['yx'] * r1_para['smoothadjust'];
r1_ITALICCORS = r1_STROKE * r1_globalTransform['yx'];
r1_EBARPOS = r1_para['ebarpos'] || r1_BARPOS;
r1_KAPPA = r1_para['kappa'];
r1_COKAPPA = 1 - r1_KAPPA;
r1_BKAPPA = r1_para['bkappa'] || r1_KAPPA + 0.1;
@ -1015,7 +1016,7 @@
r72_include(r1_capitalMarks);
r72_xn$putshapes$9Jrj(r72_xn$createstroke$7Hrq()['start-from'](r1_SB * 1.5, 0)['heads-to'](r1_UPWARD)['set-width'](0, r1_STROKE)['line-to'](r1_SB * 1.5, r1_CAP)['heads-to'](r1_UPWARD)['to-outline']());
r72_xn$putshapes$9Jrj(r72_xn$createstroke$7Hrq()['start-from'](r1_SB * 1.5, r1_CAP)['set-width'](0, r1_STROKE)['heads-to'](r1_RIGHTWARD)['line-to'](r1_RIGHTSB, r1_CAP)['heads-to'](r1_RIGHTWARD)['to-outline']());
r72_xn$putshapes$9Jrj(r72_xn$createstroke$7Hrq()['start-from'](r1_SB * 1.5, r1_CAPMIDDLE)['set-width'](r1_HALFSTROKE, r1_HALFSTROKE)['heads-to'](r1_RIGHTWARD)['line-to'](r1_RIGHTSB - r1_HALFSTROKE, r1_CAPMIDDLE)['heads-to'](r1_RIGHTWARD)['to-outline']());
r72_xn$putshapes$9Jrj(r72_xn$createstroke$7Hrq()['start-from'](r1_SB * 1.5, r1_CAP * 0.52)['set-width'](r1_HALFSTROKE, r1_HALFSTROKE)['heads-to'](r1_RIGHTWARD)['line-to'](r1_RIGHTSB - r1_HALFSTROKE, r1_CAP * 0.52)['heads-to'](r1_RIGHTWARD)['to-outline']());
return void 0;
});
r1_xn$createglyph$7Hrq('E', function _r1_t60() {
@ -1504,7 +1505,7 @@
return void 0;
});
r1_xn$createglyph$7Hrq('g', function _r1_t81() {
var r116_xn$setwidth$9Jrj, r116_xn$assignunicode$7Hrq, r116_xn$startfrom$1aao, r116_xn$lineto$5sIl, r116_xn$curveto$1aao, r116_xn$cubicto$1aao, r116_xn$putshapes$9Jrj, r116_xn$reverselast$3qIs, r116_include, r116_xn$createstroke$7Hrq, r116_xn$setanchor$9Jrj, _r116_t0;
var r116_xn$setwidth$9Jrj, r116_xn$assignunicode$7Hrq, r116_xn$startfrom$1aao, r116_xn$lineto$5sIl, r116_xn$curveto$1aao, r116_xn$cubicto$1aao, r116_xn$putshapes$9Jrj, r116_xn$reverselast$3qIs, r116_include, r116_xn$createstroke$7Hrq, r116_xn$setanchor$9Jrj, r116_grightx, _r116_t0;
_r116_t0 = this;
r116_xn$setwidth$9Jrj = _r116_t0['set-width']['bind'](_r116_t0);
r116_xn$assignunicode$7Hrq = _r116_t0['assign-unicode']['bind'](_r116_t0);
@ -1527,7 +1528,8 @@
r1_Ring(r1_XO - r1_STROKE, r1_XH * r1_GBARPOS + r1_STROKE, r1_SB * 1.25 + r1_STROKE, r1_RIGHTSB - 0.25 * r1_SB - r1_STROKE, r1_SMALLSMOOTH - r1_STROKE)
]);
r116_xn$reverselast$3qIs();
r116_xn$putshapes$9Jrj(r116_xn$createstroke$7Hrq()['start-from'](r1_MIDDLE, r1_XH * r1_GBARPOS)['set-width'](0, r1_STROKE * 0.75)['arc-hv-to'](r1_SB * 1.5 + r1_STROKE, (r1_O - r1_DESCENDER * 0.85 + r1_XH * r1_GBARPOS) * 0.47)['set-width'](0, r1_STROKE)['arc-vh-to'](r1_MIDDLE + r1_DESCENDER * 0.15, r1_O - r1_DESCENDER * 0.85)['line-to'](r1_MIDDLE - r1_DESCENDER * 0.15, r1_O - r1_DESCENDER * 0.85)['arc-hv-to'](r1_RIGHTSB - r1_O * 2, -r1_STROKE * r1_globalTransform['yx'] * 2)['arc-vh-to'](r1_MIDDLE, r1_DESCENDER + r1_O)['arc-hv-to'](r1_SB, r1_DESCENDER * 0.1)['arc-vh-to'](r1_MIDDLE + r1_DESCENDER * 0.15, r1_O - r1_DESCENDER * 0.85)['to-outline']());
r116_grightx = r1_RIGHTSB - r1_O * 4;
r116_xn$putshapes$9Jrj(r116_xn$createstroke$7Hrq()['start-from'](r1_MIDDLE, r1_XH * r1_GBARPOS)['set-width'](0, r1_STROKE * 0.75)['arc-hv-to'](r1_SB * 1.5 + r1_STROKE, (r1_O - r1_DESCENDER * 0.85 + r1_XH * r1_GBARPOS) * 0.47)['set-width'](0, r1_STROKE)['arc-vh-to'](r1_MIDDLE + r1_DESCENDER * 0.15, r1_O - r1_DESCENDER * 0.85)['line-to'](r1_MIDDLE - r1_DESCENDER * 0.15, r1_O - r1_DESCENDER * 0.85)['arc-hv-to'](r116_grightx, -r1_STROKE * r1_globalTransform['yx'] * 2)['arc-vh-to'](r1_mix(r1_SB, r116_grightx, 0.5), r1_DESCENDER + r1_O)['arc-hv-to'](r1_SB, r1_DESCENDER * 0.1)['arc-vh-to'](r1_MIDDLE + r1_DESCENDER * 0.15, r1_O - r1_DESCENDER * 0.85)['to-outline']());
r116_xn$startfrom$1aao(r1_RIGHTSB + 0.5 * r1_SB, r1_XH);
r116_xn$lineto$5sIl(r1_RIGHTSB + 0.5 * r1_SB, r1_XH - r1_STROKE);
r116_xn$lineto$5sIl(r1_MIDDLE, r1_XH - r1_STROKE - r1_O);
@ -1575,7 +1577,7 @@
_r120_t0['gizmo'] = r1_globalTransform;
_r120_t0['set-width'](r1_WIDTH);
r120_xn$setwidth$9Jrj(r1_WIDTH);
r120_barbottom = r1_XH * r1_BARPOS;
r120_barbottom = r1_XH * r1_EBARPOS;
r120_hookx = r1_RIGHTSB - r1_OXHOOK + r1_TAILADJX * r1_globalTransform['yx'];
r120_hookmiddle = r1_mix(r1_SB + r1_O, r120_hookx, 0.55);
r120_outline = r120_xn$createstroke$7Hrq()['start-from'](r1_RIGHTSB - r1_O, r120_barbottom)['heads-to'](r1_UPWARD)['set-width'](r1_STROKE, 0)['line-to'](r1_RIGHTSB - r1_O, r1_XH - r1_SMALLSMOOTHB)['arc-vh-to'](r1_MIDDLE, r1_XO)['heads-to'](r1_LEFTWARD)['arc-hv-to'](r1_SB + r1_O, r1_XH - r1_SMALLSMOOTHA)['line-to'](r1_SB + r1_O, r1_SMALLSMOOTHB)['arc-vh-to'](r120_hookmiddle, r1_O)['heads-to'](r1_RIGHTWARD)['curve-to'](r1_mix(r120_hookmiddle, r120_hookx, r1_KAPPA_HOOK), r1_O, r120_hookx, r1_SHOOK - r1_TAILADJY * r1_globalTransform['yx']);

View File

@ -414,8 +414,8 @@ create-glyph 'F' : glyph-construction {
:.line-to [SB * 1.5] CAP :.heads-to UPWARD :.to-outline
put-shapes : create-stroke :.start-from [SB * 1.5] CAP :.set-width 0 STROKE :.heads-to RIGHTWARD
:.line-to RIGHTSB CAP :.heads-to RIGHTWARD :.to-outline
put-shapes : create-stroke :.start-from [SB * 1.5] CAPMIDDLE :.set-width HALFSTROKE HALFSTROKE :.heads-to RIGHTWARD
:.line-to [RIGHTSB - HALFSTROKE] CAPMIDDLE :.heads-to RIGHTWARD :.to-outline
put-shapes : create-stroke :.start-from [SB * 1.5] [CAP * 0.52] :.set-width HALFSTROKE HALFSTROKE :.heads-to RIGHTWARD
:.line-to [RIGHTSB - HALFSTROKE] [CAP * 0.52] :.heads-to RIGHTWARD :.to-outline
}
create-glyph 'E' : glyph-construction {
set-width WIDTH

View File

@ -150,6 +150,8 @@ create-glyph 'g' : glyph-construction {
}
reverse-last
local grightx [RIGHTSB - O * 4]
put-shapes : create-stroke
:.start-from MIDDLE [XH * GBARPOS]
:.set-width 0 [STROKE * 0.75]
@ -157,8 +159,8 @@ create-glyph 'g' : glyph-construction {
:.set-width 0 STROKE
:.arc-vh-to [MIDDLE + DESCENDER * 0.15] [O - DESCENDER * 0.85]
:.line-to [MIDDLE - DESCENDER * 0.15] [O - DESCENDER * 0.85]
:.arc-hv-to [RIGHTSB - O * 2] [[-STROKE] * globalTransform.yx * 2]
:.arc-vh-to MIDDLE [DESCENDER + O]
:.arc-hv-to grightx [[-STROKE] * globalTransform.yx * 2]
:.arc-vh-to [mix SB grightx 0.5] [DESCENDER + O]
:.arc-hv-to SB [DESCENDER * 0.1]
:.arc-vh-to [MIDDLE + DESCENDER * 0.15] [O - DESCENDER * 0.85]
:.to-outline
@ -189,7 +191,7 @@ create-glyph 'c' : glyph-construction {
create-glyph 'e.upright' : glyph-construction {
set-width WIDTH
local barbottom [XH * BARPOS]
local barbottom [XH * EBARPOS]
local hookx [RIGHTSB - OXHOOK + TAILADJX * globalTransform.yx]
local hookmiddle [mix [SB + O] hookx 0.55]

View File

@ -41,11 +41,12 @@
r0_bold['stroke'] = 120;
r0_bold['dotsize'] = 160;
r0_bold['periodsize'] = 180;
r0_bold['ebarpos'] = 0.4;
r0_bold['barpos'] = 0.42;
r0_bold['hook'] = 150;
r0_bold['ahook'] = 100;
r0_bold['smooth'] = 200;
r0_bold['oxhook'] = -10;
r0_bold['oxhook'] = -8;
r0_bold['kappa_hook'] = 0.7;
r0_bold['kappa_ahook'] = 0.6;
r0_bold['jbalance'] = 60;

View File

@ -44,11 +44,12 @@ bold.sb = 50
bold.stroke = 120
bold.dotsize = 160
bold.periodsize = 180
bold.ebarpos = 0.4
bold.barpos = 0.42
bold.hook = 150
bold.ahook = 100
bold.smooth = 200
bold.oxhook = [-10]
bold.oxhook = [-8]
bold.kappa_hook = 0.7
bold.kappa_ahook = 0.60
bold.jbalance = 60