diff --git a/buildglyphs.ptl b/buildglyphs.ptl index 30961b1..99c5be4 100644 --- a/buildglyphs.ptl +++ b/buildglyphs.ptl @@ -123,6 +123,7 @@ export as build : define [buildFont para recursive recursiveCodes] : begin define CAP para.cap define XH para.xheight define DESCENDER : fallback para.descender (XH - CAP) + define CONTRAST : fallback para.contrast 1 # Key metrics for symbols local parenTop ((XH * 0.625) + (CAP - XH) * 2.5) local parenBot ((XH * 0.625) - (CAP - XH) * 2.5) @@ -141,11 +142,11 @@ export as build : define [buildFont para recursive recursiveCodes] : begin define globalTransform : Italify para.italicAngle define deGlobalTransform : inverse globalTransform - define CORRECTION_HX : [fallback para.contrast 1] / [Math.sqrt (1 - globalTransform.yx * globalTransform.yx)] + define HVCONTRAST : CONTRAST * [Math.cos (para.italicangle / 180 * Math.PI)] + [Math.sin (para.italicangle / 180 * Math.PI)] * globalTransform.yx # Orient parameters - define UPWARD {.x (-CORRECTION_HX) .y 0} - define DOWNWARD {.x CORRECTION_HX .y 0} + define UPWARD {.x (-HVCONTRAST) .y 0} + define DOWNWARD {.x HVCONTRAST .y 0} define RIGHTWARD {.x globalTransform.yx .y 1} define LEFTWARD {.x (- globalTransform.yx) .y (-1)} @@ -163,7 +164,6 @@ export as build : define [buildFont para recursive recursiveCodes] : begin define SMOOTH para.smooth define SMALLSMOOTH para.smallsmooth define STROKE para.stroke - define CONTRAST para.contrast define DOTSIZE : fallback para.dotsize STROKE define PERIODSIZE : fallback para.periodsize DOTSIZE define BARPOS : fallback para.barpos 0.5 @@ -213,7 +213,7 @@ export as build : define [buildFont para recursive recursiveCodes] : begin define CAP_SMOOTH : CAP - SMOOTH define DOTRADIUS : DOTSIZE / 2 define PERIODRADIUS : PERIODSIZE / 2 - define SIDEJUT : JUT - HALFSTROKE * CORRECTION_HX + define SIDEJUT : JUT - HALFSTROKE * HVCONTRAST define SMOOTHA : SMOOTH - globalTransform.yx * para.smoothadjust define SMOOTHB : SMOOTH + globalTransform.yx * para.smoothadjust @@ -228,7 +228,7 @@ export as build : define [buildFont para recursive recursiveCodes] : begin # Blackness parameters # We will estimate blackness using lower-case 'e' define WHITENESS : ((XH - STROKE * 3) * (RIGHTSB - SB) * (1 / 3)) / (XH * (RIGHTSB - SB)) - define [adviceBlackness crowdedness] : Math.min STROKE ((RIGHTSB - SB) * (1 - WHITENESS) / (crowdedness * CORRECTION_HX)) + define [adviceBlackness crowdedness] : Math.min STROKE ((RIGHTSB - SB) * (1 - WHITENESS) / (crowdedness * HVCONTRAST)) define MVERTSTROKE : adviceBlackness : fallback para.lllcrowdedness (3 + 1 / 3) define OVERLAYSTROKE : adviceBlackness 3.75 define OPERATORSTROKE : adviceBlackness 3.2 @@ -241,7 +241,7 @@ export as build : define [buildFont para recursive recursiveCodes] : begin local ss : y * 0.22 + STROKE * 0.23 + 0.02 * (RIGHTSB - SB) return : ss + sign * globalTransform.yx * para.smoothadjust * (ss / SMALLSMOOTH) define [adviceGlottalStopSmooth y sign] : ((y - STROKE) * 0.24 + STROKE * 0.625) + sign * globalTransform.yx * para.smoothadjust - define [shoulderMidSlope _fine _stroke _dir] : 0.5 * CORRECTION_HX * ([fallback _stroke STROKE] - [fallback _fine SHOULDERFINE]) / [fallback _stroke STROKE] + [fallback _dir 1] * globalTransform.yx + define [shoulderMidSlope _fine _stroke _dir] : 0.5 * HVCONTRAST * ([fallback _stroke STROKE] - [fallback _fine SHOULDERFINE]) / [fallback _stroke STROKE] + [fallback _dir 1] * globalTransform.yx # Anchor parameters define BASE Anchor.BASE diff --git a/extract.js b/extract.js index 66bc036..7019e33 100644 --- a/extract.js +++ b/extract.js @@ -145,8 +145,12 @@ if(argv.svg) { return buf; } var svg = '' - svg += '' + var skew = (argv.uprightify ? 1 : 0) * Math.tan((font.post.italicAngle || 0) / 180 * Math.PI); + var scale = (argv.upm || 1000) / 1000; + + svg += '' + for(var j = 0; j < font.glyf.length; j++){ var g = font.glyf[j]; if(g.contours) { @@ -154,8 +158,11 @@ if(argv.svg) { var contour = g.contours[k]; for(var p = 0; p < contour.length; p++) { contour[p].x += contour[p].y * skew; + contour[p].x *= scale; + contour[p].y *= scale; } } + g.advanceWidth *= scale; Glyph.prototype.cleanup.call(g, 0.25); } var gd = '<' + (j === 0 ? 'missing-glyph' : 'glyph') + ' glyph-name="' + g.name + '" horiz-adv-x="' + g.advanceWidth + '" '+ (g.unicode && g.unicode.length ? 'unicode="&#x' + g.unicode[0].toString(16) + ';"' : '') +' d="' + toSVGPath(g) + '" />' diff --git a/glyphs/common-shapes.ptl b/glyphs/common-shapes.ptl index 7748f61..14406af 100644 --- a/glyphs/common-shapes.ptl +++ b/glyphs/common-shapes.ptl @@ -153,8 +153,8 @@ define [OBarLeftShape _top _left] : glyph-construction widths.lhs g4 (mt) (top - O) [heading {.y (-1) .x (-st)}] archv - flat (left + (STROKE - fine) * CORRECTION_HX) (top - SMALLSMOOTHA) [widths fine 0] - curl (left + (STROKE - fine) * CORRECTION_HX) (0 + SMALLSMOOTHB) [widths fine 0] + flat (left + (STROKE - fine) * HVCONTRAST) (top - SMALLSMOOTHA) [widths fine 0] + curl (left + (STROKE - fine) * HVCONTRAST) (0 + SMALLSMOOTHB) [widths fine 0] arcvh g4 (mb) O [widths.heading STROKE 0 {.y (1) .x (-sb)}] archv @@ -171,25 +171,25 @@ define SERIF_SHIFT_X 0.6 define [LeftwardTopSerif x y length _sw] : glyph-construction local sw : fallback _sw STROKE include : dispiro - flat (x + HALFSTROKE * CORRECTION_HX) y [widths.heading sw 0 LEFTWARD] + flat (x + HALFSTROKE * HVCONTRAST) y [widths.heading sw 0 LEFTWARD] curl (x - length - globalTransform.yx * (sw * SERIF_SHIFT_X)) y define [LeftwardBottomSerif x y length _sw] : glyph-construction local sw : fallback _sw STROKE include : dispiro - flat (x + HALFSTROKE * CORRECTION_HX) y [widths.heading 0 sw LEFTWARD] + flat (x + HALFSTROKE * HVCONTRAST) y [widths.heading 0 sw LEFTWARD] curl (x - length + globalTransform.yx * (sw * SERIF_SHIFT_X)) y define [RightwardTopSerif x y length _sw] : glyph-construction local sw : fallback _sw STROKE include : dispiro - flat (x - HALFSTROKE * CORRECTION_HX) y [widths.heading 0 sw RIGHTWARD] + flat (x - HALFSTROKE * HVCONTRAST) y [widths.heading 0 sw RIGHTWARD] curl (x + length - globalTransform.yx * (sw * SERIF_SHIFT_X)) y define [RightwardBottomSerif x y length _sw] : glyph-construction local sw : fallback _sw STROKE include : dispiro - flat (x - HALFSTROKE * CORRECTION_HX) y [widths.heading sw 0 RIGHTWARD] + flat (x - HALFSTROKE * HVCONTRAST) y [widths.heading sw 0 RIGHTWARD] curl (x + length + globalTransform.yx * (sw * SERIF_SHIFT_X)) y define [CenterTopSerif x y length _sw] : glyph-construction @@ -230,44 +230,44 @@ define [AIVSerifs top _left _right] : glyph-construction local left : fallback _left SB local right : fallback _right RIGHTSB if SLAB : begin - include : CenterTopSerif (left + STROKE * sideSerifK * CORRECTION_HX) top JUT + include : CenterTopSerif (left + STROKE * sideSerifK * HVCONTRAST) top JUT tag-contour 'serifLT' - include : CenterTopSerif (right - STROKE * sideSerifK * CORRECTION_HX) top JUT + include : CenterTopSerif (right - STROKE * sideSerifK * HVCONTRAST) top JUT tag-contour 'serifRT' define [AIHSerifs top _left _right] : glyph-construction local left : fallback _left SB local right : fallback _right RIGHTSB if SLAB : begin include : AIVSerifs top _left _right - include : CenterBottomSerif (left + STROKE * sideSerifK * CORRECTION_HX) 0 JUT - include : CenterBottomSerif (right - STROKE * sideSerifK * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (left + STROKE * sideSerifK * HVCONTRAST) 0 JUT + include : CenterBottomSerif (right - STROKE * sideSerifK * HVCONTRAST) 0 JUT define [AINSerifs top _left _right sw xn] : glyph-construction local left : fallback _left SB local right : fallback _right RIGHTSB local jut : JUT * [fallback xn 1] if SLAB : begin - include : LeftwardTopSerif (left + sw * (sideSerifK - 0.5) * CORRECTION_HX) top (jut - sw / 2 * CORRECTION_HX) - include : CenterTopSerif (right - sw * sideSerifK * CORRECTION_HX) top jut - include : CenterBottomSerif (left + sw * sideSerifK * CORRECTION_HX) 0 jut + include : LeftwardTopSerif (left + sw * (sideSerifK - 0.5) * HVCONTRAST) top (jut - sw / 2 * HVCONTRAST) + include : CenterTopSerif (right - sw * sideSerifK * HVCONTRAST) top jut + include : CenterBottomSerif (left + sw * sideSerifK * HVCONTRAST) 0 jut tag-contour 'serifLB' - #include : CenterdBottomSerif (right - STROKE * (sideSerifK - 0.5) * CORRECTION_HX) 0 (JUT / 2) + #include : CenterdBottomSerif (right - STROKE * (sideSerifK - 0.5) * HVCONTRAST) 0 (JUT / 2) define [AICyrISerifs top _left _right] : glyph-construction local left : fallback _left SB local right : fallback _right RIGHTSB if SLAB : begin include : LeftwardBottomSerif left 0 SIDEJUT include : RightwardTopSerif right top SIDEJUT - include : CenterTopSerif (left + STROKE * sideSerifK * CORRECTION_HX) top JUT - include : CenterBottomSerif (right - STROKE * sideSerifK * CORRECTION_HX) 0 JUT + include : CenterTopSerif (left + STROKE * sideSerifK * HVCONTRAST) top JUT + include : CenterBottomSerif (right - STROKE * sideSerifK * HVCONTRAST) 0 JUT tag-contour 'serifRB' define [AIMSerifs top _left _right] : glyph-construction local left : fallback _left SB local right : fallback _right RIGHTSB if SLAB : begin - include : LeftwardTopSerif (left + STROKE * (sideSerifK - 0.5) * CORRECTION_HX) top SIDEJUT - include : RightwardTopSerif (right - STROKE * (sideSerifK - 0.5) * CORRECTION_HX) top SIDEJUT - include : CenterBottomSerif (left + STROKE * sideSerifK * CORRECTION_HX) 0 JUT - include : CenterBottomSerif (right - STROKE * sideSerifK * CORRECTION_HX) 0 JUT + include : LeftwardTopSerif (left + STROKE * (sideSerifK - 0.5) * HVCONTRAST) top SIDEJUT + include : RightwardTopSerif (right - STROKE * (sideSerifK - 0.5) * HVCONTRAST) top SIDEJUT + include : CenterBottomSerif (left + STROKE * sideSerifK * HVCONTRAST) 0 JUT + include : CenterBottomSerif (right - STROKE * sideSerifK * HVCONTRAST) 0 JUT define [xsStrand _xleft yleft _xright yright _halfstroke0 _halfstroke1 _ess _expansion _roundp] : begin @@ -313,7 +313,7 @@ define [sStrand yleft yright _expansion] : begin define [halfXStrand _leftx lefty rightx righty turn straight tension _fine] : glyph-construction - local leftx : _leftx + (HALFSTROKE * CORRECTION_HX * [if (rightx > _leftx) 1 (-1)]) + local leftx : _leftx + (HALFSTROKE * HVCONTRAST * [if (rightx > _leftx) 1 (-1)]) local fine : (_fine || STROKE) * 0.5 local turnyleft : mix lefty righty turn @@ -345,7 +345,7 @@ define [nShoulderKnots left right fine _top _bottom _sma _smb _wide] : begin local smb : fallback _smb SMALLSMOOTHB local stroke : fallback _wide STROKE local slope : shoulderMidSlope fine - local middle : [mix (left - stroke * CORRECTION_HX) right 0.5] + (slope - CORRECTION_OMIDX) * stroke + local middle : [mix (left - stroke * HVCONTRAST) right 0.5] + (slope - CORRECTION_OMIDX) * stroke return : list flat left (top - sma - 2) [widths fine 0] curl left (top - sma) @@ -360,20 +360,20 @@ define [nShoulder left right fine _top _bottom _sma _smb _wide] : let [a argumen define [mShoulderSpiro left right top bottom width fine] : glyph-construction - local fix : CORRECTION_VS * CORRECTION_HX * width / STROKE + local fix : CORRECTION_VS * HVCONTRAST * width / STROKE local sm : SMALLSMOOTH * 0.75 include : spiro-outline - corner (right - width * CORRECTION_HX) bottom - curl (right - width * CORRECTION_HX) (top - sm + fix) + corner (right - width * HVCONTRAST) bottom + curl (right - width * HVCONTRAST) (top - sm + fix) arcvh 8 'no-tiny' - g2 [mix left (right - width * CORRECTION_HX) 0.5] (top - O - width) + g2 [mix left (right - width * HVCONTRAST) 0.5] (top - O - width) archv 8 'no-tiny' flat left (top - sm - fix) corner left (top - sm - fix - 1) corner (left - fine) (top - sm - 1) curl (left - fine) (top - sm) arcvh 8 'no-tiny' - g2 [mix (left - fine * CORRECTION_HX) right 0.5] (top - O) + g2 [mix (left - fine * HVCONTRAST) right 0.5] (top - O) archv 8 'no-tiny' flat right (top - sm) corner right bottom @@ -398,8 +398,8 @@ define [VBar x ydown yup _fine] : glyph-construction flat x ydown [heading [if (ydown < yup) UPWARD DOWNWARD]] curl x yup [heading [if (ydown < yup) UPWARD DOWNWARD]] -define [VBarLeft x yd yu _fine] : VBar (x + [fallback _fine STROKE] * 0.5 * CORRECTION_HX) yd yu _fine -define [VBarRight x yd yu _fine] : VBar (x - [fallback _fine STROKE] * 0.5 * CORRECTION_HX) yd yu _fine +define [VBarLeft x yd yu _fine] : VBar (x + [fallback _fine STROKE] * 0.5 * HVCONTRAST) yd yu _fine +define [VBarRight x yd yu _fine] : VBar (x - [fallback _fine STROKE] * 0.5 * HVCONTRAST) yd yu _fine define [VerticalHook x y extend depth fine strg] : glyph-construction include : dispiro @@ -459,7 +459,7 @@ define [HCurlyTail fine wide rinner left m1 _right x1 x2 y2] : glyph-constructio flat left wide [heading RIGHTWARD] curl m1 wide [heading RIGHTWARD] archv 8 - g4 right (wide + rinner - O / 2) [widths.heading 0 fine {.x (-CORRECTION_HX) .y ((wide - fine) / (wide + rinner * 2 - O))}] + g4 right (wide + rinner - O / 2) [widths.heading 0 fine {.x (-HVCONTRAST) .y ((wide - fine) / (wide + rinner * 2 - O))}] arcvh 8 g4.left.mid mid (wide + rinner * 2 - O) [heading LEFTWARD] quadcontrols ((x1 - mid) / (x2 - mid)) 0 8 @@ -543,7 +543,7 @@ define [WaveShape l r cy extendy tension sw] : glyph-construction define [CyrDescender x shift] : glyph-construction local descenderOverflow : if SLAB SIDEJUT ((RIGHTSB - SB) * [fallback shift 0.1]) include : VBarRight (x + descenderOverflow + 0.25 * STROKE) (HALFSTROKE - LONGJUT) STROKE - if (!SLAB && descenderOverflow > STROKE * 0.75) : include : HBarTop (x - HALFSTROKE * CORRECTION_HX) (x + descenderOverflow) STROKE + if (!SLAB && descenderOverflow > STROKE * 0.75) : include : HBarTop (x - HALFSTROKE * HVCONTRAST) (x + descenderOverflow) STROKE # Derived subfonts define [Fork gs params] : begin diff --git a/glyphs/letters-unified-basic.ptl b/glyphs/letters-unified-basic.ptl index 9f512ba..4deb39f 100644 --- a/glyphs/letters-unified-basic.ptl +++ b/glyphs/letters-unified-basic.ptl @@ -51,7 +51,7 @@ symbol-block 'i' include : LeftwardBottomSerif MIDDLE 0 LONGJUT create-glyph 'dotlessi.italic' : glyph-construction - local left : [mix SB RIGHTSB [linreg 18 0.42 126 0.46 STROKE]] - HALFSTROKE * CORRECTION_HX + local left : [mix SB RIGHTSB [linreg 18 0.42 126 0.46 STROKE]] - HALFSTROKE * HVCONTRAST local right : mix SB RIGHTSB 1.1 local middle : mix left right 0.55 include : dispiro @@ -61,10 +61,10 @@ symbol-block 'i' hookend O g4 right (HOOK * [linreg 18 0.85 126 1 STROKE]) include : dispiro - flat (left - LONGJUT + HALFSTROKE * CORRECTION_HX) XH [widths 0 STROKE] + flat (left - LONGJUT + HALFSTROKE * HVCONTRAST) XH [widths 0 STROKE] curl left XH include eMarks - set-anchor 'above' BASE (left + HALFSTROKE * CORRECTION_HX + [linreg 18 0.25 126 0 STROKE] * globalTransform.yx * WIDTH) XH + set-anchor 'above' BASE (left + HALFSTROKE * HVCONTRAST + [linreg 18 0.25 126 0 STROKE] * globalTransform.yx * WIDTH) XH set-anchor 'below' BASE middle 0 select-variant 'dotlessi' 0x131 [if para.italicangle 'italic' 'serifed'] @@ -111,8 +111,8 @@ symbol-block 'J' create-glyph 'J.straight' : glyph-construction set-width WIDTH include capitalMarks - set-anchor 'above' BASE (RIGHTSB - STROKE * CORRECTION_HX * 0.75 - JBALANCE2) CAP - set-anchor 'overlay' BASE (RIGHTSB - STROKE * CORRECTION_HX * 0.75 - JBALANCE2) (CAP * BARPOS) + set-anchor 'above' BASE (RIGHTSB - STROKE * HVCONTRAST * 0.75 - JBALANCE2) CAP + set-anchor 'overlay' BASE (RIGHTSB - STROKE * HVCONTRAST * 0.75 - JBALANCE2) (CAP * BARPOS) local slope (STROKE * 0.00092) local expand 0.35 @@ -147,7 +147,7 @@ symbol-block 'J' create-glyph 'J.serifed' : glyph-construction set-width WIDTH include glyphs.'J.straight' AS_BASE - include : LeftwardTopSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX - JBALANCE2) CAP LONGJUT + include : LeftwardTopSerif (RIGHTSB - HALFSTROKE * HVCONTRAST - JBALANCE2) CAP LONGJUT select-variant 'J' 'J' 'serifed' alias 'cyrJe' 0x408 'J' @@ -156,10 +156,10 @@ symbol-block 'J' symbol-block 'j' create-glyph 'dotlessj.straight' : glyph-construction include pMarks - set-anchor 'above' BASE (MIDDLE + JBALANCE - STROKE * 0.166 * CORRECTION_HX) XH - set-anchor 'overlay' BASE (MIDDLE + JBALANCE - STROKE * 0.166 * CORRECTION_HX) (XH / 2) - local center : MIDDLE + JBALANCE + HALFSTROKE * CORRECTION_HX - local hookx : center - (WIDTH * 0.5) - STROKE * CORRECTION_HX + OXHOOK + set-anchor 'above' BASE (MIDDLE + JBALANCE - STROKE * 0.166 * HVCONTRAST) XH + set-anchor 'overlay' BASE (MIDDLE + JBALANCE - STROKE * 0.166 * HVCONTRAST) (XH / 2) + local center : MIDDLE + JBALANCE + HALFSTROKE * HVCONTRAST + local hookx : center - (WIDTH * 0.5) - STROKE * HVCONTRAST + OXHOOK local turn : [mix center hookx 0.5] + CORRECTION_OMIDS include : dispiro widths.rhs @@ -189,7 +189,7 @@ symbol-block 'j' set-anchor 'above' BASE (MIDDLE + JBALANCE) XH local fine : adviceBlackness 3.5 local rinner : LONGJUT / 2 - fine / 2 - local m1 : MIDDLE - HALFSTROKE * CORRECTION_HX + JBALANCE + local m1 : MIDDLE - HALFSTROKE * HVCONTRAST + JBALANCE local x2 : mix RIGHTSB m1 0.25 local y2 : DESCENDER + O include : LeftwardTopSerif (MIDDLE + JBALANCE) XH LONGJUT @@ -208,7 +208,7 @@ symbol-block 'L' include : HBarBottom (SB * 1.5 - O) (RIGHTSB - OX) 0 if SLAB : begin include : LeftwardBottomSerif (SB * 1.5) 0 SIDEJUT - include : CenterTopSerif (SB * 1.5 + CORRECTION_HX * HALFSTROKE) top JUT + include : CenterTopSerif (SB * 1.5 + HVCONTRAST * HALFSTROKE) top JUT include : UpwardRightSerif (RIGHTSB - OX) 0 VJUT create-glyph 'L' : glyph-construction @@ -315,7 +315,7 @@ symbol-block 'l' create-glyph 'lrtail' : glyph-construction assign-unicode 0x26D include glyphs.rtailBR - apply-transform : Translate (MIDDLE + HALFSTROKE * CORRECTION_HX) 0 + apply-transform : Translate (MIDDLE + HALFSTROKE * HVCONTRAST) 0 include glyphs.'l.hooky' include ifMarks @@ -324,7 +324,7 @@ symbol-block 'l' include bMarks local fine : adviceBlackness 3.5 local rinner : LONGJUT / 2 - fine / 2 - local m1 : MIDDLE + HALFSTROKE * CORRECTION_HX + local m1 : MIDDLE + HALFSTROKE * HVCONTRAST local x2 : mix SB m1 0.25 local y2 : - fine include : LeftwardTopSerif MIDDLE CAP LONGJUT @@ -387,7 +387,7 @@ symbol-block 'l' ### V and v define VShape : symbol-block 'V, v and nu' - local cornerdist : HALFSTROKE * CORRECTION_HX * [if SLAB 1.2 1] + local cornerdist : HALFSTROKE * HVCONTRAST * [if SLAB 1.2 1] local vcurviness : if (SLAB && !para.isItalic) 0.15 0.3 define [VShape top] : glyph-construction @@ -456,7 +456,7 @@ define VShape : symbol-block 'V, v and nu' local xmid : MIDDLE + HALFSTROKE * 0.75 include : dispiro - g4 (SB + 0.4 * STROKE * CORRECTION_HX) (XH - O) [widths.rhs] + g4 (SB + 0.4 * STROKE * HVCONTRAST) (XH - O) [widths.rhs] bezcontrols 0.33 0.2 1 0.76 6 important g4.down.end xmid 0 [heading DOWNWARD] @@ -494,7 +494,7 @@ symbol-block 'a' set-anchor 'trailing' BASE (RIGHTSB - markHalfStroke) 0 local bartop (XH * BARPOS * 1.02 + HALFSTROKE) local lowslope : let [k : linreg 18 0 126 0.85 STROKE] : [shoulderMidSlope SHOULDERFINE nothing (-1)] * k - globalTransform.yx * (1 - k) - local lowmiddle : [mix (SB + OX) (RIGHTSB - HALFSTROKE * CORRECTION_HX) [linreg 72 0.51 126 0.56 STROKE]] + CORRECTION_OMIDS + local lowmiddle : [mix (SB + OX) (RIGHTSB - HALFSTROKE * HVCONTRAST) [linreg 72 0.51 126 0.56 STROKE]] + CORRECTION_OMIDS local barsmooth : mix SB RIGHTSB 0.55 include : dispiro widths.lhs @@ -511,8 +511,8 @@ symbol-block 'a' arcvh g4 (lowmiddle + (-lowslope) * STROKE) O [heading {.y 1 .x lowslope}] archv - flat (RIGHTSB - STROKE * CORRECTION_HX) (SMALLSMOOTHB * 0.9) [widths 0 SHOULDERFINE] - curl (RIGHTSB - STROKE * CORRECTION_HX) (SMALLSMOOTHB * 0.9 + 1) + flat (RIGHTSB - STROKE * HVCONTRAST) (SMALLSMOOTHB * 0.9) [widths 0 SHOULDERFINE] + curl (RIGHTSB - STROKE * HVCONTRAST) (SMALLSMOOTHB * 0.9 + 1) if SLAB : begin include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB 0 SIDEJUT @@ -540,8 +540,8 @@ symbol-block 'a' include eMarks include : OBarRightShape start-from RIGHTSB 0 - line-to (RIGHTSB - STROKE * CORRECTION_HX) 0 - line-to (RIGHTSB - STROKE * CORRECTION_HX) (XH - STROKE / 2) + line-to (RIGHTSB - STROKE * HVCONTRAST) 0 + line-to (RIGHTSB - STROKE * HVCONTRAST) (XH - STROKE / 2) line-to RIGHTSB (XH - O) if SLAB : begin include : RightwardBottomSerif RIGHTSB 0 SIDEJUT @@ -560,27 +560,27 @@ symbol-block 'W' flat SB top [heading DOWNWARD] curl SB (top * 0.75) [heading DOWNWARD] quadcontrols 0 0.3 6 unimportant - g4 (WShape.m1 - WShape.fine / 2 * CORRECTION_HX) 0 [widths.lhs (WShape.fine * 0.8)] + g4 (WShape.m1 - WShape.fine / 2 * HVCONTRAST) 0 [widths.lhs (WShape.fine * 0.8)] # bottom cap 1 - start-from (WShape.m1 + WShape.fine / 2 * CORRECTION_HX) 0 - line-to (WShape.m1 - WShape.fine / 2 * CORRECTION_HX) 0 + start-from (WShape.m1 + WShape.fine / 2 * HVCONTRAST) 0 + line-to (WShape.m1 - WShape.fine / 2 * HVCONTRAST) 0 line-to WShape.m1 WShape.fine include : dispiro widths.rhs WShape.fine - straight.down.start (MIDDLE + WShape.fine / 2 * CORRECTION_HX) wheight [heading DOWNWARD] + straight.down.start (MIDDLE + WShape.fine / 2 * HVCONTRAST) wheight [heading DOWNWARD] quadcontrols 0 0.1 6 unimportant - g4 (WShape.m1 + WShape.fine / 2 * CORRECTION_HX) 0 [widths.rhs WShape.fine] + g4 (WShape.m1 + WShape.fine / 2 * HVCONTRAST) 0 [widths.rhs WShape.fine] include : dispiro widths.lhs WShape.fine - straight.down.start (MIDDLE - WShape.fine / 2 * CORRECTION_HX) wheight [heading DOWNWARD] + straight.down.start (MIDDLE - WShape.fine / 2 * HVCONTRAST) wheight [heading DOWNWARD] quadcontrols 0 0.1 6 unimportant - g4 (WShape.m2 - WShape.fine / 2 * CORRECTION_HX) 0 [widths.lhs WShape.fine] + g4 (WShape.m2 - WShape.fine / 2 * HVCONTRAST) 0 [widths.lhs WShape.fine] # bottom cap 2 - start-from (WShape.m2 + WShape.fine / 2 * CORRECTION_HX) 0 - line-to (WShape.m2 - WShape.fine / 2 * CORRECTION_HX) 0 + start-from (WShape.m2 + WShape.fine / 2 * HVCONTRAST) 0 + line-to (WShape.m2 - WShape.fine / 2 * HVCONTRAST) 0 line-to WShape.m2 WShape.fine include : dispiro @@ -588,7 +588,7 @@ symbol-block 'W' flat RIGHTSB top [heading DOWNWARD] curl RIGHTSB (top * 0.75) [heading DOWNWARD] quadcontrols 0 0.3 6 unimportant - g4 (WShape.m2 + WShape.fine / 2 * CORRECTION_HX) 0 [widths.rhs (WShape.fine * 0.8)] + g4 (WShape.m2 + WShape.fine / 2 * HVCONTRAST) 0 [widths.rhs (WShape.fine * 0.8)] include : AIVSerifs top set WShape.fine : adviceBlackness 6 set WShape.m1 : WIDTH * 0.325 @@ -622,8 +622,8 @@ symbol-block 'W' widths.rhs straight.down.start RIGHTSB (top - HOOK) [heading DOWNWARD] quadcontrols 0 0.3 6 unimportant g2 - g4 (WShape.m2 + WShape.fine / 2 * CORRECTION_HX) 0 [widths.rhs (WShape.fine * 0.8)] - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) (top - HOOK) (HOOKX * 0.65) (-HOOK + HALFSTROKE) + g4 (WShape.m2 + WShape.fine / 2 * HVCONTRAST) 0 [widths.rhs (WShape.fine * 0.8)] + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) (top - HOOK) (HOOKX * 0.65) (-HOOK + HALFSTROKE) create-glyph 'Whooktop' : glyph-construction assign-unicode 0x2C72 @@ -709,7 +709,7 @@ symbol-block 'Y' straight.left.start (RIGHTSB + HOOKX / 3) (CAP - STROKE) g4 (RIGHTSB - HOOKX / 3) (CAP - HOOK) quadcontrols 0.55 0.7 8 unimportant - g4 (MIDDLE + STROKE / 2 * CORRECTION_HX) cross + g4 (MIDDLE + STROKE / 2 * HVCONTRAST) cross create-glyph 'cyrue' : glyph-construction assign-unicode 0x4AF @@ -732,7 +732,7 @@ symbol-block 'y' local dpy1 : (1 - [linreg (1 - px2) (1 - py2) px1 py1 1]) / (1 - py1) local dpy2 : (1 - [linreg (1 - px1) (1 - py1) px2 py2 1]) / (1 - py2) local yrstrokel : MIDDLE - WIDTH * [if SLAB 0.15 0.1] + [if SLAB HALFSTROKE 0] - local yrstroker : RIGHTSB - HALFSTROKE * CORRECTION_HX + local yrstroker : RIGHTSB - HALFSTROKE * HVCONTRAST local yshrink : linreg 18 1 126 0.85 STROKE local slabysize : JUT * [linreg 18 0.85 126 1 STROKE] local slabyvx : linreg 18 0.7 126 0.5 STROKE @@ -776,7 +776,7 @@ symbol-block 'y' if SLAB : then include pMarks - include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE + include : nShoulder (SB + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE include : FlipAround MIDDLE (XH / 2) include : dispiro widths.rhs @@ -842,11 +842,11 @@ symbol-block 'K' g4 (SB + STROKE) attach [widths 0 fine] include : dispiro widths.center - g4.up.start (RIGHTSB - O - HALFSTROKE * CORRECTION_HX) 0 [heading UPWARD] + g4.up.start (RIGHTSB - O - HALFSTROKE * HVCONTRAST) 0 [heading UPWARD] quadcontrols 0 [if SLAB 0.125 0.25] 8 g4 attach2 (top * 0.61) [widths.center fine] if SLAB : begin - include : RightwardTopSerif (RIGHTSB - (STROKE * [if SLAB 1.15 1.05] * (WIDTH * 2 / UPM) / 2 - HALFSTROKE) * CORRECTION_HX) top (SIDEJUT) + include : RightwardTopSerif (RIGHTSB - (STROKE * [if SLAB 1.15 1.05] * (WIDTH * 2 / UPM) / 2 - HALFSTROKE) * HVCONTRAST) top (SIDEJUT) include : RightwardBottomSerif (RIGHTSB - O) 0 SIDEJUT create-glyph 'K' : glyph-construction @@ -856,8 +856,8 @@ symbol-block 'K' include : VBarLeft SB 0 CAP include : KShape CAP if SLAB : begin - include : CenterTopSerif (SB + HALFSTROKE * CORRECTION_HX) CAP JUT - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterTopSerif (SB + HALFSTROKE * HVCONTRAST) CAP JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) 0 JUT alias 'Kappa' 0x39A 'K' alias 'cyrKa' 0x41A 'K' composite nothing glyphs.cyrKa [CyrDescender (RIGHTSB - O)] [into-unicode 0x49A] @@ -871,7 +871,7 @@ symbol-block 'K' if SLAB : begin include : LeftwardTopSerif SB CAP SIDEJUT if (para.italicangle === 0) : begin - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) 0 JUT tag-contour 'serifLB' create-glyph 'kappa' : glyph-construction @@ -890,8 +890,8 @@ symbol-block 'K' include : VBarLeft SB 0 XH include : KShape XH if SLAB : begin - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT - include : CenterTopSerif (SB + HALFSTROKE * CORRECTION_HX) XH JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) 0 JUT + include : CenterTopSerif (SB + HALFSTROKE * HVCONTRAST) XH JUT composite nothing glyphs.cyrka [CyrDescender (RIGHTSB - O)] [into-unicode 0x49B] alias 'latinkappa' 0x138 'cyrka' @@ -900,14 +900,14 @@ symbol-block 'K' include capitalMarks include : KShape CAP include : VBarLeft SB 0 (CAP - HOOK - HALFSTROKE) - include : VerticalHook (SB + HALFSTROKE * CORRECTION_HX) (CAP - HOOK - HALFSTROKE) HOOKX (-HOOK) + include : VerticalHook (SB + HALFSTROKE * HVCONTRAST) (CAP - HOOK - HALFSTROKE) HOOKX (-HOOK) create-glyph 'khooktop' : glyph-construction assign-unicode 0x199 include bMarks include : KShape XH include : VBarLeft SB 0 (CAP - HOOK - HALFSTROKE) - include : VerticalHook (SB + HALFSTROKE * CORRECTION_HX) (CAP - HOOK - HALFSTROKE) HOOKX (-HOOK) + include : VerticalHook (SB + HALFSTROKE * HVCONTRAST) (CAP - HOOK - HALFSTROKE) HOOKX (-HOOK) turned nothing 0xA7B0 'K' MIDDLE (CAP / 2) turned nothing 0x29E 'k' MIDDLE (XH / 2) pMarks @@ -963,8 +963,8 @@ symbol-block 'B' include eMarks local mid : mix RIGHTSB SB 0.65 local midy : XH * BARPOS - local smb : XH - [mix (midy + HALFSTROKE) (XH - O - STROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] + globalTransform.yx * CORRECTION_HX * STROKE - local sma : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] - globalTransform.yx * CORRECTION_HX * STROKE + local smb : XH - [mix (midy + HALFSTROKE) (XH - O - STROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] + globalTransform.yx * HVCONTRAST * STROKE + local sma : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] - globalTransform.yx * HVCONTRAST * STROKE include : dispiro widths.lhs flat mid (midy - HALFSTROKE) [heading RIGHTWARD] @@ -1133,7 +1133,7 @@ symbol-block 'd' if SLAB : begin include : RightwardBottomSerif RIGHTSB 0 SIDEJUT tag-contour 'serifRB' - include : LeftwardTopSerif (RIGHTSB - STROKE * CORRECTION_HX) CAP SIDEJUT + include : LeftwardTopSerif (RIGHTSB - STROKE * HVCONTRAST) CAP SIDEJUT create-glyph 'dcroat' : glyph-construction assign-unicode 0x111 @@ -1164,13 +1164,13 @@ symbol-block 'd' curl m1 (rinner * 2 + fine) CurlyTail fine rinner m1 0 (m1 + rinner * 2 + fine) x2 y2 if SLAB : begin - include : LeftwardTopSerif (m1 - STROKE * CORRECTION_HX) CAP SIDEJUT + include : LeftwardTopSerif (m1 - STROKE * HVCONTRAST) CAP SIDEJUT create-glyph 'dhooktop' : glyph-construction assign-unicode 0x257 include bMarks include glyphs.'a.italic' - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) XH HOOKX (-HOOK) + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) XH HOOKX (-HOOK) create-glyph 'ddot' : glyph-construction include glyphs.dotAbove @@ -1207,7 +1207,7 @@ define {PShape} : symbol-block 'P' if SLAB : begin include : LeftwardTopSerif (SB * mul) top SIDEJUT tag-contour 'serifLT' - include : CenterBottomSerif (SB * mul + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (SB * mul + HALFSTROKE * HVCONTRAST) 0 JUT create-glyph 'P' : glyph-construction set-width WIDTH assign-unicode 'P' @@ -1236,7 +1236,7 @@ symbol-block 'p' if SLAB : begin include : LeftwardTopSerif SB XH SIDEJUT tag-contour 'serifLT' - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) DESCENDER JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) DESCENDER JUT tag-contour 'serifLB' alias 'cyrer' 0x440 'p' @@ -1246,7 +1246,7 @@ symbol-block 'p' include : OBarLeftShape include : HooktopLeftBar nothing DESCENDER if SLAB : begin - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) DESCENDER JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) DESCENDER JUT tag-contour 'serifLB' ### rho @@ -1254,7 +1254,7 @@ symbol-block 'p' assign-unicode 0x3C1 include pMarks include : OShape XH 0 (SB - OX + O) RIGHTSB - include : VBar (SB + HALFSTROKE * CORRECTION_HX + O) DESCENDER SMALLSMOOTHB + include : VBar (SB + HALFSTROKE * HVCONTRAST + O) DESCENDER SMALLSMOOTHB ### R and CyrYa symbol-block 'R and CyrYa' @@ -1264,7 +1264,7 @@ symbol-block 'R and CyrYa' local right (RIGHTSB - O - [if SLAB (JUT / 8) 0]) include : dispiro widths.center - g4.up.start (right - HALFSTROKE * CORRECTION_HX) 0 [heading UPWARD] + g4.up.start (right - HALFSTROKE * HVCONTRAST) 0 [heading UPWARD] quadcontrols 0 [if SLAB 0.3 0.4] 8 g4 MIDDLE ((top - STROKE) * m) if SLAB : begin @@ -1275,7 +1275,7 @@ symbol-block 'R and CyrYa' assign-unicode 'R' include capitalMarks include : RShape CAP - set-anchor 'overlay' BASE (SB + STROKE * CORRECTION_HX) (CAP * PBARPOS - HALFSTROKE) + set-anchor 'overlay' BASE (SB + STROKE * HVCONTRAST) (CAP * PBARPOS - HALFSTROKE) create-glyph 'smcpR' : glyph-construction assign-unicode 0x280 @@ -1318,13 +1318,13 @@ symbol-block 'R and CyrYa' local left (SB + O + [if SLAB (JUT / 8) 0]) include : dispiro widths.center - g4.up.start (left + HALFSTROKE * CORRECTION_HX) 0 [heading UPWARD] + g4.up.start (left + HALFSTROKE * HVCONTRAST) 0 [heading UPWARD] quadcontrols 0 [if SLAB 0.3 0.4] 8 g4 MIDDLE ((top - STROKE) * m) if SLAB : begin include : RightwardTopSerif barright top SIDEJUT - include : CenterBottomSerif (barright - HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (barright - HALFSTROKE * HVCONTRAST) 0 JUT include : LeftwardBottomSerif (SB + JUT / 8) 0 (SIDEJUT + JUT / 8) create-glyph 'cyrYa' : glyph-construction @@ -1341,9 +1341,9 @@ symbol-block 'R and CyrYa' ### r symbol-block 'r' - local rbar : SB + RBALANCE + STROKE * CORRECTION_HX - local [rBottomSerif y] : tagged 'serifLB' : CenterBottomSerif (rbar - HALFSTROKE * CORRECTION_HX + RBALANCE * 0.35) y (JUT + RBALANCE * 0.65) - local [rTopSerif y] : tagged 'serifLT' : LeftwardTopSerif (rbar - STROKE * CORRECTION_HX) y (SIDEJUT + RBALANCE * 0.3) + local rbar : SB + RBALANCE + STROKE * HVCONTRAST + local [rBottomSerif y] : tagged 'serifLB' : CenterBottomSerif (rbar - HALFSTROKE * HVCONTRAST + RBALANCE * 0.35) y (JUT + RBALANCE * 0.65) + local [rTopSerif y] : tagged 'serifLT' : LeftwardTopSerif (rbar - STROKE * HVCONTRAST) y (SIDEJUT + RBALANCE * 0.3) create-glyph 'r' : glyph-construction set-width WIDTH assign-unicode 'r' @@ -1354,7 +1354,7 @@ symbol-block 'r' local mixp : 0.54 + 2 * globalTransform.yx * STROKE / WIDTH local mixpin : 0.65 + globalTransform.yx * [linreg 72 0.1 108 0.5 STROKE] local rmiddle : mix (rbar - fine) rhookx mixp - local rmiddlein : [mix rbar (rhookx - STROKE * CORRECTION_HX * 1.05) mixpin] - CORRECTION_OMIDS + local rmiddlein : [mix rbar (rhookx - STROKE * HVCONTRAST * 1.05) mixpin] - CORRECTION_OMIDS local skew : Math.max 0 : (rmiddle - rmiddlein) / STROKE - globalTransform.yx * [linreg 72 0.25 108 0.75 STROKE] include : dispiro widths.lhs @@ -1363,7 +1363,7 @@ symbol-block 'r' g4.left.mid (rmiddle - CORRECTION_OMIDS * [linreg 72 0.75 108 1 STROKE]) XO [widths.heading STROKE 0 {.y (-1) .x (-skew)}] #alsothru 0.75 [linreg 18 0.25 126 0.23 STROKE] archv - straight.down.end (rbar - fine * CORRECTION_HX) (XH * 0.53 + (SMALLSMOOTH - SMALLSMOOTHA)) [widths.heading fine 0 DOWNWARD] + straight.down.end (rbar - fine * HVCONTRAST) (XH * 0.53 + (SMALLSMOOTH - SMALLSMOOTHA)) [widths.heading fine 0 DOWNWARD] include : VBarRight rbar 0 XH set-anchor 'overlay' BASE (rbar - STROKE * 0.25) (XH * 0.5) @@ -1414,8 +1414,8 @@ symbol-block 'r' widths.lhs g4 rhookx (XH - RHOOK) hookstart XO - flat (rbar - STROKE * CORRECTION_HX) (XH - SMALLSMOOTHA) - curl (rbar - STROKE * CORRECTION_HX) 0 [heading DOWNWARD] + flat (rbar - STROKE * HVCONTRAST) (XH - SMALLSMOOTHA) + curl (rbar - STROKE * HVCONTRAST) 0 [heading DOWNWARD] if SLAB : include : rBottomSerif 0 turned nothing 0x2C79 'rrtail' MIDDLE (XH / 2) @@ -1467,13 +1467,13 @@ define {CShape} : symbol-block 'C' assign-unicode 0x187 include glyphs.C AS_BASE include : VBarRight (RIGHTSB - OXHOOK) (CAP - HOOK) CAP - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX - OXHOOK) CAP HOOKX (-HOOK) + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST - OXHOOK) CAP HOOKX (-HOOK) create-glyph 'chooktop' : glyph-construction assign-unicode 0x188 include glyphs.c AS_BASE include : VBarRight (RIGHTSB - OXHOOK) (XH - HOOK) XH - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX - OXHOOK) XH HOOKX (-HOOK) + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST - OXHOOK) XH HOOKX (-HOOK) create-glyph 'Cbar' : glyph-construction assign-unicode 0xA792 @@ -1490,7 +1490,7 @@ define {CShape} : symbol-block 'C' include eMarks local fine : adviceBlackness 3 local rinner : ((XH * 0.45) - fine * 1.5) / 2 - local m1 : SB + O + STROKE * CORRECTION_HX + local m1 : SB + O + STROKE * HVCONTRAST local x2 : SB + HALFSTROKE * 0.6 local y2 : -XH * 0.05 include : dispiro @@ -1563,7 +1563,7 @@ define {CShape} : symbol-block 'C' alsothru 0.4 0.8 g4 MIDDLE 0 alsothru 0.5 0.135 - g4.down.mid (RIGHTSB - STROKE * CORRECTION_HX + OX) [mix DESCENDER STROKE 0.5] [heading DOWNWARD] + g4.down.mid (RIGHTSB - STROKE * HVCONTRAST + OX) [mix DESCENDER STROKE 0.5] [heading DOWNWARD] arcvh straight.left.end (RIGHTSB - HOOKX + OX) (DESCENDER + STROKE) [heading LEFTWARD] list CShape @@ -1603,13 +1603,13 @@ symbol-block 'G' assign-unicode 0x193 include glyphs.G AS_BASE include : VBarRight (RIGHTSB - OXHOOK) (CAP - HOOK) CAP - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX - OXHOOK) CAP HOOKX (-HOOK) nothing O + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST - OXHOOK) CAP HOOKX (-HOOK) nothing O create-glyph 'smcpGhooktop' : glyph-construction assign-unicode 0x29B include glyphs.smcpG AS_BASE include : VBarRight (RIGHTSB - OXHOOK) (XH - HOOK) XH - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX - OXHOOK) XH HOOKX (-HOOK) nothing O + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST - OXHOOK) XH HOOKX (-HOOK) nothing O create-glyph 'Gbar' : glyph-construction assign-unicode 0x1E4 @@ -1672,7 +1672,7 @@ symbol-block 'g' assign-unicode 0x260 include glyphs.scriptg AS_BASE eject-contour 'serifRT' - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) XH HOOKX (-HOOK) nothing O + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) XH HOOKX (-HOOK) nothing O create-glyph 'gbar' : glyph-construction assign-unicode 0x1E5 @@ -1772,9 +1772,9 @@ symbol-block 'Q' start-from MIDDLE 0 line-to (MIDDLE + WIDTH * 0.1) (-CAP * 0.2) - line-to (MIDDLE + WIDTH * 0.1 + STROKE * CORRECTION_HX) (-CAP * 0.2) - line-to (MIDDLE + STROKE * CORRECTION_HX) 0 - line-to (MIDDLE + STROKE * (1 - 0.5 / 3) * CORRECTION_HX) (STROKE * 0.5) + line-to (MIDDLE + WIDTH * 0.1 + STROKE * HVCONTRAST) (-CAP * 0.2) + line-to (MIDDLE + STROKE * HVCONTRAST) 0 + line-to (MIDDLE + STROKE * (1 - 0.5 / 3) * HVCONTRAST) (STROKE * 0.5) reverse-last alias 'cyrQa' 0x51A 'Q' @@ -1790,7 +1790,7 @@ symbol-block 'q' if SLAB : begin include : RightwardTopSerif RIGHTSB XH SIDEJUT tag-contour 'serifRT' - include : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) DESCENDER JUT + include : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) DESCENDER JUT alias 'cyrqa' 0x51B 'q' create-glyph 'Qrtail' : glyph-construction @@ -1826,7 +1826,7 @@ symbol-block 'q' include pMarks include glyphs.q eject-contour 'serifRT' - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) XH HOOKX (-HOOK) + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) XH HOOKX (-HOOK) ### N @@ -1865,7 +1865,7 @@ define {NShape} : symbol-block 'N' assign-unicode 0x19D include glyphs.N AS_BASE eject-contour 'serifLB' - include : VerticalHook (SB + HALFSTROKE * CORRECTION_HX) 0 (-HOOKX) HOOK + include : VerticalHook (SB + HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK list NShape @@ -1876,7 +1876,7 @@ symbol-block 'n' assign-unicode 'n' include eMarks - include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE + include : nShoulder (SB + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE include : VBarLeft SB 0 XH if SLAB : begin @@ -1884,9 +1884,9 @@ symbol-block 'n' tag-contour 'serifLT' if (para.italicangle > 0) : then : include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB 0 SIDEJUT - : else : include : tagged 'serifRB' : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 JUT + : else : include : tagged 'serifRB' : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 JUT if (para.italicangle === 0) : begin - include : tagged 'serifLB' : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT + include : tagged 'serifLB' : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) 0 JUT alias 'cyrpe.italic' null 'n' create-glyph 'napostrophe' : glyph-construction @@ -1900,21 +1900,21 @@ symbol-block 'n' include pMarks include glyphs.n false eject-contour 'serifRB' - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 (-HOOKX) HOOK + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK create-glyph 'Eng' : glyph-construction assign-unicode 0x14A include capitalMarks include : nShoulder (SB + STROKE) RIGHTSB SHOULDERFINE CAP (HOOK + HALFSTROKE + O) SMOOTHA SMOOTHB - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) (HOOK + HALFSTROKE + O) [Math.max ((SB - RIGHTSB) / 2 + HALFSTROKE) (-HOOKX)] HOOK - include : VBar (SB + HALFSTROKE * CORRECTION_HX) 0 CAP + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) (HOOK + HALFSTROKE + O) [Math.max ((SB - RIGHTSB) / 2 + HALFSTROKE) (-HOOKX)] HOOK + include : VBar (SB + HALFSTROKE * HVCONTRAST) 0 CAP create-glyph 'nltail' : glyph-construction assign-unicode 0x272 include glyphs.n AS_BASE eject-contour 'serifLB' - include : VerticalHook (SB + HALFSTROKE * CORRECTION_HX) 0 (-HOOKX) HOOK + include : VerticalHook (SB + HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK create-glyph 'ncurlytail' : glyph-construction assign-unicode 0x235 @@ -1927,14 +1927,14 @@ symbol-block 'n' include eMarks include : VBarLeft SB 0 XH wide include : dispiro - nShoulderKnots (SB + wide * CORRECTION_HX) m1 SHOULDERFINE nothing (rinner * 2 + fine) nothing nothing wide + nShoulderKnots (SB + wide * HVCONTRAST) m1 SHOULDERFINE nothing (rinner * 2 + fine) nothing nothing wide CurlyTail fine rinner m1 0 (m1 + rinner * 2 + fine) x2 y2 if SLAB : begin include : LeftwardTopSerif SB XH SIDEJUT tag-contour 'serifLT' if (para.italicangle === 0) : begin - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) 0 JUT tag-contour 'serifLB' # eta @@ -1943,7 +1943,7 @@ symbol-block 'n' include pMarks set-anchor 'lf' BASE (SB + HALFSTROKE) 0 - include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE XH DESCENDER SMALLSMOOTHA SMALLSMOOTHB + include : nShoulder (SB + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE XH DESCENDER SMALLSMOOTHA SMALLSMOOTHB include : VBarLeft SB 0 XH if SLAB : begin include : LeftwardTopSerif SB XH SIDEJUT @@ -1955,15 +1955,15 @@ symbol-block 'n' set-anchor 'lf' BASE (SB + HALFSTROKE) 0 include : nShoulder (SB + STROKE) RIGHTSB SHOULDERFINE CAP DESCENDER SMALLSMOOTHA SMALLSMOOTHB - include : VBar (SB + HALFSTROKE * CORRECTION_HX) 0 CAP + include : VBar (SB + HALFSTROKE * HVCONTRAST) 0 CAP if SLAB : begin include : LeftwardTopSerif SB CAP SIDEJUT tag-contour 'serifLT' if (para.italicangle > 0) : then : include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB DESCENDER SIDEJUT - : else : include : tagged 'serifRB' : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) DESCENDER JUT + : else : include : tagged 'serifRB' : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) DESCENDER JUT if (para.italicangle === 0) : begin - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) 0 JUT tag-contour 'serifLB' create-glyph 'latineta' : glyph-construction @@ -1971,16 +1971,16 @@ symbol-block 'n' include pMarks set-anchor 'lf' BASE (SB + HALFSTROKE) 0 - include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE XH DESCENDER SMALLSMOOTHA SMALLSMOOTHB + include : nShoulder (SB + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE XH DESCENDER SMALLSMOOTHA SMALLSMOOTHB include : VBarLeft SB 0 XH if SLAB : begin include : LeftwardTopSerif SB XH SIDEJUT tag-contour 'serifLT' if (para.italicangle > 0) : then : include : tagged 'serifRB' : RightwardBottomSerif RIGHTSB DESCENDER SIDEJUT - : else : include : tagged 'serifRB' : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) DESCENDER JUT + : else : include : tagged 'serifRB' : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) DESCENDER JUT if (para.italicangle === 0) : begin - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) 0 JUT tag-contour 'serifLB' ### U @@ -2024,7 +2024,7 @@ symbol-block 'u' include : FlipAround MIDDLE (XH / 2) if SLAB : begin - include : LeftwardTopSerif (RIGHTSB - STROKE * CORRECTION_HX) XH SIDEJUT + include : LeftwardTopSerif (RIGHTSB - STROKE * HVCONTRAST) XH SIDEJUT include : LeftwardTopSerif SB XH SIDEJUT # upsilon @@ -2051,7 +2051,7 @@ symbol-block 'u' archv flat RIGHTSB sma curl RIGHTSB (top - HOOK - HALFSTROKE) [heading UPWARD] - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) (top - HOOK - HALFSTROKE) (-(RIGHTSB - HALFSTROKE * CORRECTION_HX - MIDDLE)) (-HOOK) + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) (top - HOOK - HALFSTROKE) (-(RIGHTSB - HALFSTROKE * HVCONTRAST - MIDDLE)) (-HOOK) create-glyph 'latinUpsilon2' : glyph-construction assign-unicode 0x1B2 @@ -2101,10 +2101,10 @@ symbol-block 'M' ### m symbol-block 'm' define [SmallMShape top bot] : glyph-construction - local m1 : mix (SB + O) (MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX) 0.5 - local m2 : mix (RIGHTSB - O) (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) 0.5 - include : mShoulderSpiro (SB + O + MVERTSTROKE * CORRECTION_HX) (MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX) top bot MVERTSTROKE (MVERTSTROKE * SHOULDERFINE / STROKE) - include : mShoulderSpiro (MIDDLE + MVERTSTROKE * 0.5 * CORRECTION_HX) (RIGHTSB - O) top bot MVERTSTROKE (MVERTSTROKE * SHOULDERFINE / STROKE) + local m1 : mix (SB + O) (MIDDLE + MVERTSTROKE / 2 * HVCONTRAST) 0.5 + local m2 : mix (RIGHTSB - O) (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) 0.5 + include : mShoulderSpiro (SB + O + MVERTSTROKE * HVCONTRAST) (MIDDLE + MVERTSTROKE / 2 * HVCONTRAST) top bot MVERTSTROKE (MVERTSTROKE * SHOULDERFINE / STROKE) + include : mShoulderSpiro (MIDDLE + MVERTSTROKE * 0.5 * HVCONTRAST) (RIGHTSB - O) top bot MVERTSTROKE (MVERTSTROKE * SHOULDERFINE / STROKE) include : VBarLeft (SB + O) bot top MVERTSTROKE if SLAB : begin include : LeftwardTopSerif SB top SIDEJUT @@ -2126,7 +2126,7 @@ symbol-block 'm' include pMarks include glyphs.m eject-contour 'serifRB' - include : VerticalHook (RIGHTSB - O - MVERTSTROKE / 2 * CORRECTION_HX) 0 (-HOOKX) HOOK MVERTSTROKE + include : VerticalHook (RIGHTSB - O - MVERTSTROKE / 2 * HVCONTRAST) 0 (-HOOKX) HOOK MVERTSTROKE turned nothing 0x26F 'm' MIDDLE (XH / 2) create-glyph 'capitalTurnm' : glyph-construction @@ -2179,31 +2179,31 @@ symbol-block 'h' assign-unicode 'h' include bMarks - include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE + include : nShoulder (SB + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE include : VBarLeft SB 0 CAP if SLAB : begin include : LeftwardTopSerif SB CAP SIDEJUT if (para.italicangle > 0) : then : include : RightwardBottomSerif RIGHTSB 0 SIDEJUT - : else : include : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 JUT + : else : include : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 JUT tag-contour 'serifRB' if (para.italicangle === 0) : begin - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) 0 JUT tag-contour 'serifLB' alias 'cyrshha' 0x4BB 'h' create-glyph 'hhooktop' : glyph-construction assign-unicode 0x266 include bMarks - include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE + include : nShoulder (SB + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE include : HooktopLeftBar if SLAB : begin if (para.italicangle > 0) : then : include : RightwardBottomSerif RIGHTSB 0 SIDEJUT - : else : include : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 JUT + : else : include : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 JUT tag-contour 'serifRB' if (para.italicangle === 0) : begin - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) 0 JUT tag-contour 'serifLB' create-glyph 'hhooktopltail' : glyph-construction @@ -2211,20 +2211,20 @@ symbol-block 'h' include pMarks include glyphs.hhooktop eject-contour 'serifRB' - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 (-HOOKX) HOOK + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK create-glyph 'hltail' : glyph-construction assign-unicode 0xA727 include pMarks include glyphs.h eject-contour 'serifRB' - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 (-HOOKX) HOOK + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK turned nothing 0x265 'h' MIDDLE (XH / 2) pMarks create-glyph 'hookturnh' : glyph-construction assign-unicode 0x2AE - include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE XH (HOOK + HALFSTROKE + 1) SMOOTHA SMOOTHB + include : nShoulder (SB + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE XH (HOOK + HALFSTROKE + 1) SMOOTHA SMOOTHB include : VBarLeft SB 0 CAP include : create-glyph : glyph-construction include glyphs.rtailBR @@ -2234,12 +2234,12 @@ symbol-block 'h' include : FlipAround MIDDLE (XH / 2) include pMarks if SLAB : begin - include : LeftwardTopSerif (RIGHTSB - STROKE * CORRECTION_HX) XH SIDEJUT - include : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) DESCENDER JUT + include : LeftwardTopSerif (RIGHTSB - STROKE * HVCONTRAST) XH SIDEJUT + include : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) DESCENDER JUT create-glyph 'hookturnhrtail' : glyph-construction assign-unicode 0x2AF - include : nShoulder (SB + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE XH (HOOK + HALFSTROKE + 1) SMOOTHA SMOOTHB + include : nShoulder (SB + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE XH (HOOK + HALFSTROKE + 1) SMOOTHA SMOOTHB include : VBarLeft SB 0 (XH - 1) include : create-glyph : glyph-construction include glyphs.rtailBR @@ -2254,7 +2254,7 @@ symbol-block 'h' apply-transform : Italify include pMarks if SLAB : begin - include : LeftwardTopSerif (RIGHTSB - STROKE * CORRECTION_HX) XH SIDEJUT + include : LeftwardTopSerif (RIGHTSB - STROKE * HVCONTRAST) XH SIDEJUT create-glyph 'hbar' : glyph-construction assign-unicode 0x127 @@ -2270,7 +2270,7 @@ define {FShape} : symbol-block 'F' include : HBar (SB * 1.5 - O) (RIGHTSB - [Math.max HALFSTROKE ((RIGHTSB - SB) * 0.15)] - [if SLAB (STROKE * 0.25) 0]) ([fallback top CAP] * [fallback y [if SLAB 0.52 0.54]]) if SLAB : begin include : LeftwardTopSerif (SB * 1.5) [fallback top CAP] SIDEJUT - include : CenterBottomSerif (SB * 1.5 + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (SB * 1.5 + HALFSTROKE * HVCONTRAST) 0 JUT tag-contour 'serifBottom' include : DownwardRightSerif RIGHTSB [fallback top CAP] VJUT @@ -2284,7 +2284,7 @@ define {FShape} : symbol-block 'F' assign-unicode 0x191 include glyphs.F AS_BASE eject-contour 'serifBottom' - include : VerticalHook (SB * 1.5 + HALFSTROKE * CORRECTION_HX) 0 (-HOOKX) HOOK + include : VerticalHook (SB * 1.5 + HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK list FShape @@ -2305,8 +2305,8 @@ define {LongSShape} : symbol-block 'f' create-glyph 'longs.upright' : glyph-construction include bMarks - local m : MIDDLE - JBALANCE - HALFSTROKE * CORRECTION_HX - local r : m + (WIDTH * 0.5) + STROKE * CORRECTION_HX - OXHOOK + local m : MIDDLE - JBALANCE - HALFSTROKE * HVCONTRAST + local r : m + (WIDTH * 0.5) + STROKE * HVCONTRAST - OXHOOK include : dispiro widths.lhs g4 r (CAP - HOOK) @@ -2314,7 +2314,7 @@ define {LongSShape} : symbol-block 'f' flat m (CAP - SMOOTHA) curl m 0 if SLAB : begin - include : tagged 'serifLB' : CenterBottomSerif (m + HALFSTROKE * CORRECTION_HX + RBALANCE * 0.35) 0 (JUT + RBALANCE * 0.65) + include : tagged 'serifLB' : CenterBottomSerif (m + HALFSTROKE * HVCONTRAST + RBALANCE * 0.35) 0 (JUT + RBALANCE * 0.65) define [LongSShape top bottom hookx hooky fine] : glyph-construction local w [fallback fine STROKE] @@ -2357,7 +2357,7 @@ define {LongSShape} : symbol-block 'f' include ifMarks local fine : adviceBlackness 3.5 local rinner : LONGJUT / 2 - fine / 2 - local m1 : MIDDLE - HALFSTROKE * CORRECTION_HX - FBALANCE + local m1 : MIDDLE - HALFSTROKE * HVCONTRAST - FBALANCE local x2 : mix RIGHTSB m1 0.25 local y2 : DESCENDER + O include glyphs.'longs.straight' false @@ -2387,7 +2387,7 @@ define {LongSShape} : symbol-block 'f' define fbar : XH * 0.91 + STROKE * 0.25 create-glyph 'f.upright' : glyph-construction include bMarks - local barleft : [mix SB RIGHTSB 0.35] - STROKE * 0.25 * CORRECTION_HX + local barleft : [mix SB RIGHTSB 0.35] - STROKE * 0.25 * HVCONTRAST include : dispiro widths.lhs g4 (RIGHTSB + RBALANCE2 - OXE) (CAP - HOOK * 0.7) @@ -2422,10 +2422,10 @@ define {LongSShape} : symbol-block 'f' if SLAB : begin if para.isItalic : then : include : tagged 'serifRB' : RightwardBottomSerif barr 0 SIDEJUT - : else : include : tagged 'serifRB' : CenterBottomSerif (barr - HALFSTROKE * CORRECTION_HX) 0 JUT + : else : include : tagged 'serifRB' : CenterBottomSerif (barr - HALFSTROKE * HVCONTRAST) 0 JUT create-glyph 'f_l.upright' : glyph-construction - local m : MIDDLE - JBALANCE - HALFSTROKE * CORRECTION_HX + shift + local m : MIDDLE - JBALANCE - HALFSTROKE * HVCONTRAST + shift include : dispiro widths.rhs flat m 0 @@ -2435,8 +2435,8 @@ define {LongSShape} : symbol-block 'f' include : VBarRight barr 0 (CAP - HOOK) include : HBarTop hbarleft [mix SB barr 0.6] fbar if SLAB : begin - include : tagged 'serifLB' : CenterBottomSerif (m + HALFSTROKE * CORRECTION_HX + RBALANCE * 0.35) 0 (JUT + RBALANCE * 0.65) - include : tagged 'serifRB' : CenterBottomSerif (barr - HALFSTROKE * CORRECTION_HX) 0 JUT + include : tagged 'serifLB' : CenterBottomSerif (m + HALFSTROKE * HVCONTRAST + RBALANCE * 0.35) 0 (JUT + RBALANCE * 0.65) + include : tagged 'serifRB' : CenterBottomSerif (barr - HALFSTROKE * HVCONTRAST) 0 JUT create-glyph 'f_l.italic' : glyph-construction include : create-glyph : glyph-construction @@ -2558,18 +2558,18 @@ symbol-block 'T' set-width WIDTH assign-unicode 'T' include capitalMarks - set-anchor 'bottomright' BASE (MIDDLE + HALFSTROKE * CORRECTION_HX) 0 + set-anchor 'bottomright' BASE (MIDDLE + HALFSTROKE * HVCONTRAST) 0 include : TShape CAP alias 'Tau' 0x3A4 'T' alias 'cyrTe' 0x422 'T' - composite nothing glyphs.cyrTe [CyrDescender (MIDDLE + HALFSTROKE * CORRECTION_HX)] ifMarks [into-unicode 0x4AC] + composite nothing glyphs.cyrTe [CyrDescender (MIDDLE + HALFSTROKE * HVCONTRAST)] ifMarks [into-unicode 0x4AC] turned 'turnT' 0xA7B1 'T' MIDDLE (CAP / 2) create-glyph 'cyrte.upright' : glyph-construction include eMarks include : TShape XH - composite 'cyrtedescender.upright' glyphs.'cyrte.upright' [CyrDescender (MIDDLE + HALFSTROKE * CORRECTION_HX)] pMarks + composite 'cyrtedescender.upright' glyphs.'cyrte.upright' [CyrDescender (MIDDLE + HALFSTROKE * HVCONTRAST)] pMarks italic-variant 'cyrtedescender' 0x4AD create-glyph 'Thookleft' : glyph-construction @@ -2594,9 +2594,9 @@ symbol-block 'T' ### t symbol-block 't' - define tcenter : MIDDLE - TBALANCE - STROKE * 0.5 * CORRECTION_HX + define tcenter : MIDDLE - TBALANCE - STROKE * 0.5 * HVCONTRAST define [SmallTShape top bot] : glyph-construction - local hookx : tcenter + (WIDTH - SB * 2) * 0.8 + STROKE * 0.25 * CORRECTION_HX + local hookx : tcenter + (WIDTH - SB * 2) * 0.8 + STROKE * 0.25 * HVCONTRAST local turn : [mix tcenter hookx 0.5] + CORRECTION_OMIDS local smb : Math.max HOOK ((turn - tcenter) * 1.2) @@ -2624,13 +2624,13 @@ symbol-block 't' include glyphs.t local attach : utp currentGlyph.gizmo glyphs.t.anchors.bottomright include : VBarRight attach.x 0 attach.y - include : VerticalHook (attach.x - HALFSTROKE * CORRECTION_HX) 0 (-HOOKX) HOOK + include : VerticalHook (attach.x - HALFSTROKE * HVCONTRAST) 0 (-HOOKX) HOOK create-glyph 'thooktop' : glyph-construction assign-unicode 0x1AD include eMarks include : SmallTShape (XH - HALFSTROKE) 0 - include : VerticalHook (tcenter + HALFSTROKE * CORRECTION_HX) XH HOOKX (-HOOK) + include : VerticalHook (tcenter + HALFSTROKE * HVCONTRAST) XH HOOKX (-HOOK) create-glyph 'trtail' : glyph-construction assign-unicode 0x288 @@ -2649,13 +2649,13 @@ symbol-block 't' widths.lhs flat tcenter CAP [heading DOWNWARD] curl tcenter (fine + rinner * 2) - CurlyTail fine rinner (tcenter+ STROKE * CORRECTION_HX) 0 (tcenter + STROKE * CORRECTION_HX + LONGJUT) x2 y2 + CurlyTail fine rinner (tcenter+ STROKE * HVCONTRAST) 0 (tcenter + STROKE * HVCONTRAST + LONGJUT) x2 y2 create-glyph 'tbar' : glyph-construction assign-unicode 0x167 include glyphs.t AS_BASE - include : HOverlayBar ([mix MIDDLE SB 0.7] - TBALANCE * 0.5 - STROKE * 0.25 * CORRECTION_HX) ([mix MIDDLE RIGHTSB 0.7] - TBALANCE * 0.5 - STROKE * 0.25 * CORRECTION_HX) [mix 0 XH 0.6] + include : HOverlayBar ([mix MIDDLE SB 0.7] - TBALANCE * 0.5 - STROKE * 0.25 * HVCONTRAST) ([mix MIDDLE RIGHTSB 0.7] - TBALANCE * 0.5 - STROKE * 0.25 * HVCONTRAST) [mix 0 XH 0.6] create-glyph 'tcaron' : glyph-construction assign-unicode 0x165 @@ -2730,7 +2730,7 @@ symbol-block 'S' assign-unicode 0x282 include glyphs.rtailBR apply-transform : Upright - apply-transform : Translate (SB + STROKE * CORRECTION_HX + OXHOOK) 0 + apply-transform : Translate (SB + STROKE * HVCONTRAST + OXHOOK) 0 apply-transform : Italify include pMarks include glyphs.s @@ -2765,7 +2765,7 @@ symbol-block 'Z' assign-unicode 'Z' include capitalMarks - local cor : 1.15 * CORRECTION_HX + local cor : 1.15 * HVCONTRAST include : HBarTop SB RIGHTSB CAP @@ -2789,7 +2789,7 @@ symbol-block 'Z' assign-unicode 'z' include eMarks - local cor : 1.2 * CORRECTION_HX + local cor : 1.2 * HVCONTRAST include : HBarTop SB RIGHTSB XH diff --git a/glyphs/letters-unified-extended.ptl b/glyphs/letters-unified-extended.ptl index 603f770..8e2116b 100644 --- a/glyphs/letters-unified-extended.ptl +++ b/glyphs/letters-unified-extended.ptl @@ -30,7 +30,7 @@ symbol-block 'Gamma' include : HBarTop (SB * 1.5 - O) (RIGHTSB - OX) top if SLAB : begin include : LeftwardTopSerif (SB * 1.5) top SIDEJUT - include : CenterBottomSerif (SB * 1.5 + CORRECTION_HX * HALFSTROKE) 0 JUT + include : CenterBottomSerif (SB * 1.5 + HVCONTRAST * HALFSTROKE) 0 JUT include : tagged 'serifRT' : DownwardRightSerif (RIGHTSB - OX) top VJUT create-glyph 'Gamma' : glyph-construction @@ -86,7 +86,7 @@ symbol-block 'gamma' local xmid : [mix SB RIGHTSB 0.46] + HALFSTROKE include : dispiro - g4 (SB + 0.4 * STROKE * CORRECTION_HX) (XH - O) [widths.rhs] + g4 (SB + 0.4 * STROKE * HVCONTRAST) (XH - O) [widths.rhs] bezcontrols 0.33 0.17 1 0.62 6 important flat xmid 0 curl xmid DESCENDER [heading DOWNWARD] @@ -120,9 +120,9 @@ define {LambdaShape} : symbol-block 'Lambda' line-to MIDDLE (CAP - sw) if SLAB : begin - include : CenterBottomSerif (SB + sw / 2 * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (SB + sw / 2 * HVCONTRAST) 0 JUT tag-contour 'serif' - include : CenterBottomSerif (RIGHTSB - sw / 2 * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (RIGHTSB - sw / 2 * HVCONTRAST) 0 JUT tag-contour 'serif' create-glyph 'Lambda' : glyph-construction @@ -180,8 +180,8 @@ symbol-block 'Delta and cyrbe' include bMarks include : dispiro widths.rhs (STROKE * CTHINB) - flat (SB + OX + STROKE * (1 - CTHINB) * CORRECTION_HX) SMALLSMOOTHB - curl (SB + OX + STROKE * (1 - CTHINB) * CORRECTION_HX) (XH - SMALLSMOOTHA) + flat (SB + OX + STROKE * (1 - CTHINB) * HVCONTRAST) SMALLSMOOTHB + curl (SB + OX + STROKE * (1 - CTHINB) * HVCONTRAST) (XH - SMALLSMOOTHA) arcvh g4 (MIDDLE - CORRECTION_OMIDS) (CAP * 0.7 - O) [widths.rhs STROKE] archv @@ -193,14 +193,14 @@ symbol-block 'Delta and cyrbe' flat (SB + OX) SMALLSMOOTHB curl (SB + OX) (XH - SMALLSMOOTHA) alsothruthem [list {0.25 0.79} {0.5 0.87}] important - g4 (RIGHTSB - HALFSTROKE * CORRECTION_HX) CAP + g4 (RIGHTSB - HALFSTROKE * HVCONTRAST) CAP symbol-block 'epsilon and cyrze' define [SmallEpsilonShape top hook] : glyph-construction local midx : mix SB RIGHTSB 0.65 local midy : top * BARPOS - local sma : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] - globalTransform.yx * CORRECTION_HX * STROKE - local smb : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] + globalTransform.yx * CORRECTION_HX * STROKE + local sma : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] - globalTransform.yx * HVCONTRAST * STROKE + local smb : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHB / (SMOOTHA + SMOOTHB))] + globalTransform.yx * HVCONTRAST * STROKE local fine : STROKE * CTHIN include : dispiro widths.lhs @@ -232,8 +232,8 @@ symbol-block 'epsilon and cyrze' define [CyrZeShape top hook] : glyph-construction local midx : mix RIGHTSB SB 0.65 local midy : top * BARPOS - local smb : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] + globalTransform.yx * CORRECTION_HX * STROKE - local sma : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] - globalTransform.yx * CORRECTION_HX * STROKE + local smb : top - [mix (midy + HALFSTROKE) (top - O - STROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] + globalTransform.yx * HVCONTRAST * STROKE + local sma : [mix (STROKE + O) (midy - HALFSTROKE) (SMOOTHA / (SMOOTHA + SMOOTHB))] - globalTransform.yx * HVCONTRAST * STROKE local fine : STROKE * CTHIN include : dispiro widths.rhs @@ -269,7 +269,7 @@ symbol-block 'Theta' assign-unicode 0x398 include capitalMarks include glyphs.O AS_BASE - include : HBar (SB + STROKE * CORRECTION_HX - O * 3) (RIGHTSB - STROKE * CORRECTION_HX + O * 3) CAPMIDDLE + include : HBar (SB + STROKE * HVCONTRAST - O * 3) (RIGHTSB - STROKE * HVCONTRAST + O * 3) CAPMIDDLE create-glyph 'theta' : glyph-construction assign-unicode 0x3B8 include bMarks @@ -285,7 +285,7 @@ symbol-block 'zeta and xi' widths.rhs g4 (RIGHTSB + O) (CAP - STROKE) bezcontrols 0.7 0.35 1 0.64 12 - g4.down.mid (SB + STROKE * CORRECTION_HX) [mix 0 CAP 0.27] + g4.down.mid (SB + STROKE * HVCONTRAST) [mix 0 CAP 0.27] arcvh g4 [mix SB RIGHTSB 0.55] STROKE archv @@ -305,14 +305,14 @@ symbol-block 'zeta and xi' widths.rhs g4.left.start xbar (CAP - STROKE) archv - g4 (SB - O * 2 + STROKE * CORRECTION_HX) [mix (CAP - STROKE) ybar 0.6] + g4 (SB - O * 2 + STROKE * HVCONTRAST) [mix (CAP - STROKE) ybar 0.6] arcvh g4.right.end xbar ybar include : dispiro widths.rhs g4.left.start xbar (ybar - STROKE) bezcontrols 0.7 0 1 0.63 - g4 (SB + STROKE * CORRECTION_HX) [mix 0 ybar 0.45] + g4 (SB + STROKE * HVCONTRAST) [mix 0 ybar 0.45] arcvh g4 [mix SB RIGHTSB 0.5] STROKE archv @@ -355,10 +355,10 @@ define {PiShape} : symbol-block 'Pi' include : VBarRight (RIGHTSB - shrink) bottom (top - fine / 2) fine if SLAB : begin - include : CenterBottomSerif (SB + shrink + fine * 0.5 * CORRECTION_HX) bottom JUT fine - include : CenterBottomSerif (RIGHTSB - shrink - fine * 0.5 * CORRECTION_HX) bottom JUT fine - include : CenterTopSerif (SB + shrink + fine * 0.5 * CORRECTION_HX) top JUT fine - include : CenterTopSerif (RIGHTSB - shrink - fine * 0.5 * CORRECTION_HX) top JUT fine + include : CenterBottomSerif (SB + shrink + fine * 0.5 * HVCONTRAST) bottom JUT fine + include : CenterBottomSerif (RIGHTSB - shrink - fine * 0.5 * HVCONTRAST) bottom JUT fine + include : CenterTopSerif (SB + shrink + fine * 0.5 * HVCONTRAST) top JUT fine + include : CenterTopSerif (RIGHTSB - shrink - fine * 0.5 * HVCONTRAST) top JUT fine create-glyph 'Pi' : glyph-construction assign-unicode 0x3A0 @@ -385,11 +385,11 @@ symbol-block 'pi' local m1 : mix SB RIGHTSB m include : dispiro widths.rhs - straight.down.start (m1 + HALFSTROKE * CORRECTION_HX) XH [heading DOWNWARD] + straight.down.start (m1 + HALFSTROKE * HVCONTRAST) XH [heading DOWNWARD] alsothru 0.5 0.85 important g4 [mix SB RIGHTSB 0.1] O local m2 : mix SB RIGHTSB (1 - m) - local hook : Math.max (STROKE * CORRECTION_HX * 1.1) (HOOK * 0.8) + local hook : Math.max (STROKE * HVCONTRAST * 1.1) (HOOK * 0.8) include : dispiro widths.center flat m2 XH [heading DOWNWARD] @@ -462,10 +462,10 @@ symbol-block 'Phi, phi and varphi' archv g4 (WIDTH - x1) (XH * 0.55) arcvh 8 - g4.left.mid [mix (WIDTH - x1) (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) 0.525] XH [heading LEFTWARD] + g4.left.mid [mix (WIDTH - x1) (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) 0.525] XH [heading LEFTWARD] archv - flat (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) y3 - curl (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (MVERTSTROKE * 0.2) [heading DOWNWARD] + flat (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) y3 + curl (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) (MVERTSTROKE * 0.2) [heading DOWNWARD] create-glyph 'phi' : glyph-construction assign-unicode 0x3C6 @@ -610,19 +610,19 @@ symbol-block 'omega' g4 x0 y0 g4 x1 (XH / 2) arcvh 8 - g4 [mix x1 (MIDDLE + fine / 2 * CORRECTION_HX) 0.5] O [heading RIGHTWARD] + g4 [mix x1 (MIDDLE + fine / 2 * HVCONTRAST) 0.5] O [heading RIGHTWARD] archv 8 - flat (MIDDLE + (mfine - fine / 2) * CORRECTION_HX) y3 [widths.heading mfine 0 UPWARD] - curl (MIDDLE + (mfine - fine / 2) * CORRECTION_HX) y4 [heading UPWARD] + flat (MIDDLE + (mfine - fine / 2) * HVCONTRAST) y3 [widths.heading mfine 0 UPWARD] + curl (MIDDLE + (mfine - fine / 2) * HVCONTRAST) y4 [heading UPWARD] include : dispiro widths.rhs fine g4 (WIDTH - x0) y0 g4 (WIDTH - x1) (XH / 2) arcvh 8 - g4 [mix (WIDTH - x1) (MIDDLE - fine / 2 * CORRECTION_HX) 0.5] O [heading LEFTWARD] + g4 [mix (WIDTH - x1) (MIDDLE - fine / 2 * HVCONTRAST) 0.5] O [heading LEFTWARD] archv 8 - flat (MIDDLE - (mfine - fine / 2) * CORRECTION_HX) y3 [widths.heading 0 mfine UPWARD] - curl (MIDDLE - (mfine - fine / 2) * CORRECTION_HX) y4 [heading UPWARD] + flat (MIDDLE - (mfine - fine / 2) * HVCONTRAST) y3 [widths.heading 0 mfine UPWARD] + curl (MIDDLE - (mfine - fine / 2) * HVCONTRAST) y4 [heading UPWARD] create-glyph 'pomega' : glyph-construction assign-unicode 0x3D6 @@ -642,10 +642,10 @@ symbol-block 'omega' local y4 : XH * 0.65 include : dispiro widths.rhs mfine - flat (MIDDLE + (mfine - fine / 2) * CORRECTION_HX) y4 [heading DOWNWARD] - curl (MIDDLE + (mfine - fine / 2) * CORRECTION_HX) y3 [heading DOWNWARD] + flat (MIDDLE + (mfine - fine / 2) * HVCONTRAST) y4 [heading DOWNWARD] + curl (MIDDLE + (mfine - fine / 2) * HVCONTRAST) y3 [heading DOWNWARD] arcvh 8 - g4 [mix x1 (MIDDLE + fine / 2 * CORRECTION_HX) 0.5] O [widths.heading 0 fine LEFTWARD] + g4 [mix x1 (MIDDLE + fine / 2 * HVCONTRAST) 0.5] O [widths.heading 0 fine LEFTWARD] archv 8 g4 x1 y1 arcvh @@ -653,10 +653,10 @@ symbol-block 'omega' archv g4 (WIDTH - x1) y1 arcvh 8 - g4 [mix (WIDTH - x1) (MIDDLE - fine / 2 * CORRECTION_HX) 0.5] O [heading LEFTWARD] + g4 [mix (WIDTH - x1) (MIDDLE - fine / 2 * HVCONTRAST) 0.5] O [heading LEFTWARD] archv 8 - flat (MIDDLE - (mfine - fine / 2) * CORRECTION_HX) y3 [widths.heading 0 mfine UPWARD] - curl (MIDDLE - (mfine - fine / 2) * CORRECTION_HX) y4 [heading UPWARD] + flat (MIDDLE - (mfine - fine / 2) * HVCONTRAST) y3 [widths.heading 0 mfine UPWARD] + curl (MIDDLE - (mfine - fine / 2) * HVCONTRAST) y4 [heading UPWARD] ########################################################################################### @@ -676,17 +676,17 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related' include : dispiro widths.lhs fine flat (left + STROKE * 0.2) 0 [heading RIGHTWARD] - curl ([Math.max (left + fine * CORRECTION_HX) (right - turnRadius * [Math.pow ((right - left) / (RIGHTSB - SB)) 0.5])] + CORRECTION_OMIDX * fine) 0 + curl ([Math.max (left + fine * HVCONTRAST) (right - turnRadius * [Math.pow ((right - left) / (RIGHTSB - SB)) 0.5])] + CORRECTION_OMIDX * fine) 0 archv 8 g4 (right - OX) turnbottom arcvh 8 - flat ([Math.max (left + fine * CORRECTION_HX) (right - turnRadius * [Math.pow ((right - left) / (RIGHTSB - SB)) 0.5])] - CORRECTION_OMIDX * fine) bowl + flat ([Math.max (left + fine * HVCONTRAST) (right - turnRadius * [Math.pow ((right - left) / (RIGHTSB - SB)) 0.5])] - CORRECTION_OMIDX * fine) bowl curl (left + STROKE * 0.2) bowl [heading LEFTWARD] include : VBarLeft left 0 top fine if SLAB : begin - include : LeftwardBottomSerif left 0 (jut - fine / 2 * CORRECTION_HX) + include : LeftwardBottomSerif left 0 (jut - fine / 2 * HVCONTRAST) tag-contour 'serifYeriLB' - include : CenterTopSerif (left + fine / 2 * CORRECTION_HX) top jut + include : CenterTopSerif (left + fine / 2 * HVCONTRAST) top jut tag-contour 'serifYeriLT' define [RevCyrYeriShape top _left _right _fine _jut] : glyph-construction @@ -710,9 +710,9 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related' curl (right - STROKE * 0.2) bowl [heading RIGHTWARD] include : VBarRight right 0 top fine if SLAB : begin - include : RightwardBottomSerif right 0 (jut - fine / 2 * CORRECTION_HX) + include : RightwardBottomSerif right 0 (jut - fine / 2 * HVCONTRAST) tag-contour 'serifYeriRB' - include : CenterTopSerif (right - fine / 2 * CORRECTION_HX) top jut + include : CenterTopSerif (right - fine / 2 * HVCONTRAST) top jut tag-contour 'serifYeriRT' create-glyph 'cyrYeri' : glyph-construction @@ -754,12 +754,12 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related' include : DownwardLeftSerif [mix RIGHTSB SB 0.9] CAP VJUT define [CyrYerShape top] : glyph-construction - local left : if SLAB ([mix SB RIGHTSB 0.35] - MVERTSTROKE / 2 * CORRECTION_HX) [mix SB RIGHTSB 0.1] + local left : if SLAB ([mix SB RIGHTSB 0.35] - MVERTSTROKE / 2 * HVCONTRAST) [mix SB RIGHTSB 0.1] local barleft : mix 0 SB [if SLAB 0.25 0.6] include : CyrYeriShape top left RIGHTSB include : HBarTop barleft (STROKE * 0.1 + left) top if SLAB : begin - include : DownwardLeftSerif barleft top VJUT (MVERTSTROKE / CORRECTION_HX) + include : DownwardLeftSerif barleft top VJUT (MVERTSTROKE / HVCONTRAST) create-glyph 'cyrYer' : glyph-construction assign-unicode 0x42A @@ -772,11 +772,11 @@ define {CyrYeriShape RevCyrYeriShape} : symbol-block 'CyrYeri-related' include : CyrYerShape XH define [CyrYeryShape top] : glyph-construction - include : CyrYeriShape top (SB + O) [mix (RIGHTSB - MVERTSTROKE * CORRECTION_HX) (MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX) 0.5] MVERTSTROKE (JUT * 0.75) + include : CyrYeriShape top (SB + O) [mix (RIGHTSB - MVERTSTROKE * HVCONTRAST) (MIDDLE + MVERTSTROKE / 2 * HVCONTRAST) 0.5] MVERTSTROKE (JUT * 0.75) include : VBarRight (RIGHTSB - O) 0 top MVERTSTROKE if SLAB : begin - include : CenterTopSerif (RIGHTSB - O - MVERTSTROKE / 2 * CORRECTION_HX) top (JUT * 0.75) - include : CenterBottomSerif (RIGHTSB - O - MVERTSTROKE / 2 * CORRECTION_HX) 0 (JUT * 0.75) + include : CenterTopSerif (RIGHTSB - O - MVERTSTROKE / 2 * HVCONTRAST) top (JUT * 0.75) + include : CenterBottomSerif (RIGHTSB - O - MVERTSTROKE / 2 * HVCONTRAST) 0 (JUT * 0.75) create-glyph 'cyrYery' : glyph-construction assign-unicode 0x42B @@ -880,7 +880,7 @@ symbol-block 'CyrDe' local topleft : mix cutleft cutright 0.15 include : HBarBottom (cutleft - descenderOverflow) (cutright + descenderOverflow) 0 include : VBarRight cutright 0 top - include : halfXStrand (topleft + STROKE * CORRECTION_HX) top (cutleft + HALFSTROKE * CORRECTION_HX) HALFSTROKE 0.1 0.75 0.5 + include : halfXStrand (topleft + STROKE * HVCONTRAST) top (cutleft + HALFSTROKE * HVCONTRAST) HALFSTROKE 0.1 0.75 0.5 include : VBarLeft (cutleft - descenderOverflow) (-LONGJUT + HALFSTROKE) 0 include : VBarRight (cutright + descenderOverflow) (-LONGJUT + HALFSTROKE) 0 @@ -905,8 +905,8 @@ symbol-block 'CyrDe' include bMarks include : dispiro widths.lhs (STROKE * CTHINB) - flat (RIGHTSB - OX - STROKE * CORRECTION_HX * (1 - CTHINB)) SMALLSMOOTHA - curl (RIGHTSB - OX - STROKE * CORRECTION_HX * (1 - CTHINB)) (XH - SMALLSMOOTHB) + flat (RIGHTSB - OX - STROKE * HVCONTRAST * (1 - CTHINB)) SMALLSMOOTHA + curl (RIGHTSB - OX - STROKE * HVCONTRAST * (1 - CTHINB)) (XH - SMALLSMOOTHB) arcvh g4 (MIDDLE - CORRECTION_OMIDS) (CAP * 0.7 - O) [widths.lhs] archv @@ -934,7 +934,7 @@ symbol-block 'CyrEl' if SLAB : begin include : RightwardTopSerif cutright top SIDEJUT include : LeftwardTopSerif cutleft top SIDEJUT - include : CenterBottomSerif (cutright - HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (cutright - HALFSTROKE * HVCONTRAST) 0 JUT create-glyph 'cyrEl' : glyph-construction assign-unicode 0x41B @@ -951,7 +951,7 @@ symbol-block 'CyrZhe' local fine : adviceBlackness 3.3 local midx : mix SB MIDDLE 0.3 define [CyrAngleShape] : glyph-construction - local cor CORRECTION_HX + local cor HVCONTRAST start-from (SB + O * 4) 0 line-to (SB + fine * cor + O * 4) 0 line-to (midx + fine * cor) (top / 2) @@ -1036,9 +1036,9 @@ symbol-block 'CyrChe' flat MIDDLE (bar - HALFSTROKE) curl (RIGHTSB - 1) (bar - HALFSTROKE) [heading RIGHTWARD] if SLAB : begin - include : CenterTopSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) top JUT - include : CenterTopSerif (SB + HALFSTROKE * CORRECTION_HX) top JUT - include : CenterBottomSerif (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterTopSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) top JUT + include : CenterTopSerif (SB + HALFSTROKE * HVCONTRAST) top JUT + include : CenterBottomSerif (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 JUT create-glyph 'cyrChe' : glyph-construction assign-unicode 0x427 @@ -1068,14 +1068,14 @@ symbol-block 'CyrChe' symbol-block 'CyrYu' define [CyrYuShape top sma smb] : glyph-construction - local xm : mix (SB + O + MVERTSTROKE * CORRECTION_HX) (RIGHTSB - OX) 0.175 + local xm : mix (SB + O + MVERTSTROKE * HVCONTRAST) (RIGHTSB - OX) 0.175 include : VBarLeft (SB + O) 0 top MVERTSTROKE include : OShape top 0 xm (RIGHTSB - OX) MVERTSTROKE (sma * 0.8) (smb * 0.8) include : HBar (SB + O + 1) xm (top / 2) if SLAB : begin - include : CenterTopSerif (SB + O + MVERTSTROKE / 2 * CORRECTION_HX) top (JUT * 0.75) - include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * CORRECTION_HX) 0 (JUT * 0.75) + include : CenterTopSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) top (JUT * 0.75) + include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) 0 (JUT * 0.75) create-glyph 'cyrYu' : glyph-construction assign-unicode 0x42E @@ -1092,10 +1092,10 @@ symbol-block 'CyrLje and CyrNje' local xlefttop : mix SB RIGHTSB 0.075 local jut : JUT * 0.72 include : LegShape xlefttop [mix SB RIGHTSB 0.025] [mix SB 0 [if SLAB 0.75 0.5]] top 0 MVERTSTROKE - include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (RIGHTSB - O) MVERTSTROKE jut + include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) (RIGHTSB - O) MVERTSTROKE jut include : HBarTop xlefttop MIDDLE top if SLAB : begin - include : LeftwardTopSerif xlefttop top (jut - MVERTSTROKE / 2 * CORRECTION_HX) + include : LeftwardTopSerif xlefttop top (jut - MVERTSTROKE / 2 * HVCONTRAST) create-glyph 'cyrLje' : glyph-construction assign-unicode 0x409 @@ -1111,11 +1111,11 @@ symbol-block 'CyrLje and CyrNje' local xlefttop : mix SB RIGHTSB 0.075 local jut : JUT * 0.72 include : VBarLeft SB 0 top MVERTSTROKE - include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (RIGHTSB - O) MVERTSTROKE jut + include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) (RIGHTSB - O) MVERTSTROKE jut include : HBar (SB + MVERTSTROKE * 0.1) MIDDLE (top / 2) if SLAB : begin - include : CenterTopSerif (SB + MVERTSTROKE / 2 * CORRECTION_HX) top jut - include : CenterBottomSerif (SB + MVERTSTROKE / 2 * CORRECTION_HX) 0 jut + include : CenterTopSerif (SB + MVERTSTROKE / 2 * HVCONTRAST) top jut + include : CenterBottomSerif (SB + MVERTSTROKE / 2 * HVCONTRAST) 0 jut create-glyph 'cyrNje' : glyph-construction assign-unicode 0x40A @@ -1134,7 +1134,7 @@ symbol-block 'CyrTshe and CyrDje' local left : mix SB RIGHTSB 0.15 - include : nShoulder (left + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE + include : nShoulder (left + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE include : VBarLeft left 0 CAP include : HBarTop SB [mix left RIGHTSB 0.5] CAP @@ -1146,17 +1146,17 @@ symbol-block 'CyrTshe and CyrDje' local left : mix SB RIGHTSB 0.15 - include : nShoulder (left + STROKE * CORRECTION_HX) RIGHTSB SHOULDERFINE XH (HOOK + HALFSTROKE + O) SMOOTHA SMOOTHB + include : nShoulder (left + STROKE * HVCONTRAST) RIGHTSB SHOULDERFINE XH (HOOK + HALFSTROKE + O) SMOOTHA SMOOTHB include : VBarLeft left 0 CAP include : HBarTop SB [mix left RIGHTSB 0.5] CAP - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) (HOOK + HALFSTROKE + O) [Math.max ((left - RIGHTSB) / 2 + HALFSTROKE) (-HOOK * 1.2)] HOOK + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) (HOOK + HALFSTROKE + O) [Math.max ((left - RIGHTSB) / 2 + HALFSTROKE) (-HOOK * 1.2)] HOOK create-glyph 'cyrdje' : glyph-construction assign-unicode 0x452 include ifMarks include glyphs.cyrtshe eject-contour 'serifRB' - include : VerticalHook (RIGHTSB - HALFSTROKE * CORRECTION_HX) 0 (-HOOK * 1.2) HOOK + include : VerticalHook (RIGHTSB - HALFSTROKE * HVCONTRAST) 0 (-HOOK * 1.2) HOOK ########################################################################################### # UNIFIED LETTERFORMS : OTHER LATIN @@ -1169,13 +1169,13 @@ symbol-block 'eszet' local l : SB * 1 include : dispiro widths.lhs - g4 ([mix SB RIGHTSB 0.75] + HALFSTROKE * CORRECTION_HX) (CAP - HOOK) + 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 * CORRECTION_HX + local tl : [mix l RIGHTSB 0.35] + HALFSTROKE * HVCONTRAST include : HBarTop (l + 1) (RIGHTSB - HALFSTROKE * 1.2 - OX) t include : dispiro widths.rhs @@ -1274,7 +1274,7 @@ symbol-block 'Digraphs' include : OEShape XH define aeepart : glyph-construction - local eLeft : MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX + 0.1 + local eLeft : MIDDLE - MVERTSTROKE / 2 * HVCONTRAST + 0.1 local eMiddle : [mix eLeft (RIGHTSB - OX * 2) 0.5] - MVERTSTROKE * globalTransform.yx local barbottom (XH * EBARPOS - HALFSTROKE) @@ -1295,7 +1295,7 @@ symbol-block 'Digraphs' define aeapart : glyph-construction local bartop (XH * BARPOS * 1.02 + HALFSTROKE) - local abarRight : MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX - 0.1 + local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST - 0.1 local lowmiddle : mix (SB + OX * 2) abarRight 0.5 local barsmooth : mix SB abarRight 0.7 @@ -1317,7 +1317,7 @@ symbol-block 'Digraphs' curl (abarRight - 1) bartop [heading RIGHTWARD] define oeopart : glyph-construction - local abarRight : MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX + local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST include : OShape XH 0 (SB + OX) (abarRight + OX) MVERTSTROKE (SMALLSMOOTHA * 0.6) (SMALLSMOOTHB * 0.6) @@ -1348,7 +1348,7 @@ symbol-block 'Digraphs' include oeopart include : VBar MIDDLE (XH / 2) CAP MVERTSTROKE if SLAB : begin - include : LeftwardTopSerif (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) CAP SIDEJUT + include : LeftwardTopSerif (MIDDLE - MVERTSTROKE / 2 * HVCONTRAST) CAP SIDEJUT create-glyph 'qp' : glyph-construction set-width WIDTH @@ -1395,7 +1395,7 @@ symbol-block 'Digraphs' include capitalMarks include : create-glyph : glyph-construction include glyphs.'I.straight' - apply-transform : Translate (SB - MIDDLE + HALFSTROKE * CORRECTION_HX) 0 + apply-transform : Translate (SB - MIDDLE + HALFSTROKE * HVCONTRAST) 0 include : create-glyph : glyph-construction include glyphs.'J.shorthook' apply-transform : Translate JBALANCE2 0 @@ -1406,15 +1406,15 @@ symbol-block 'Digraphs' include : create-glyph : glyph-construction include glyphs.'dotlessi.straight' AS_BASE include glyphs.dotAbove - apply-transform : Translate (SB * 1.5 - MIDDLE + HALFSTROKE * CORRECTION_HX) 0 + apply-transform : Translate (SB * 1.5 - MIDDLE + HALFSTROKE * HVCONTRAST) 0 include : create-glyph : glyph-construction include glyphs.'dotlessj.straight' AS_BASE include glyphs.dotAbove - apply-transform : Translate (RIGHTSB - SB * 0.5 - MIDDLE - JBALANCE - HALFSTROKE * CORRECTION_HX) 0 + apply-transform : Translate (RIGHTSB - SB * 0.5 - MIDDLE - JBALANCE - HALFSTROKE * HVCONTRAST) 0 symbol-block 'Ezh' define [EzhShape top bot pleft hookless] : glyph-construction - local cor : 1.2 * CORRECTION_HX + local cor : 1.2 * HVCONTRAST local yMidBar : mix bot top 0.6 local ezhLeft : mix SB RIGHTSB [fallback pleft 0.2] local ezhRight : mix SB RIGHTSB 0.925 @@ -1441,7 +1441,7 @@ symbol-block 'Ezh' include : DownwardLeftSerif SB top VJUT define [RevEzhShape top bot pleft hookless] : glyph-construction - local cor : 1.2 * CORRECTION_HX + local cor : 1.2 * HVCONTRAST local yMidBar : mix bot top 0.6 local ezhRight : mix RIGHTSB SB [fallback pleft 0.2] local ezhLeft : mix RIGHTSB SB 0.925 @@ -1507,7 +1507,7 @@ symbol-block 'Ezh' flat [mix SB RIGHTSB 0.45] b curl [mix SB RIGHTSB 0.4] b archv - g4 (SB + STROKE * CORRECTION_HX) [mix (DESCENDER + STROKE) b 0.5] + g4 (SB + STROKE * HVCONTRAST) [mix (DESCENDER + STROKE) b 0.5] arcvh flat [mix SB RIGHTSB 0.4] (DESCENDER + STROKE) curl RIGHTSB (DESCENDER + STROKE) @@ -1519,7 +1519,7 @@ symbol-block 'Ezh' include : EzhShape XH DESCENDER nothing p local fine : adviceBlackness 3 local rinner : (XH * 0.4 - fine * 1.5) / 2 - local m1 : RIGHTSB - STROKE * CORRECTION_HX + local m1 : RIGHTSB - STROKE * HVCONTRAST local x2 : RIGHTSB - HALFSTROKE local y2 DESCENDER include : dispiro @@ -1537,8 +1537,8 @@ symbol-block 'Glottal stop' hookstart CAPO g4 RIGHTSB (CAP - [adviceGlottalStopSmooth CAP 1]) alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)] - flat (MIDDLE - HALFSTROKE * CORRECTION_HX) (XH * 0.3) [widths STROKE 0] - curl (MIDDLE - HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD] + flat (MIDDLE - HALFSTROKE * HVCONTRAST) (XH * 0.3) [widths STROKE 0] + curl (MIDDLE - HALFSTROKE * HVCONTRAST) 0 [heading DOWNWARD] if SLAB : begin include : CenterBottomSerif MIDDLE 0 JUT @@ -1551,8 +1551,8 @@ symbol-block 'Glottal stop' hookstart CAPO g4 SB (CAP - [adviceGlottalStopSmooth CAP (-1)]) alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)] - flat (MIDDLE + HALFSTROKE * CORRECTION_HX) (XH * 0.3) [widths 0 STROKE] - curl (MIDDLE + HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD] + flat (MIDDLE + HALFSTROKE * HVCONTRAST) (XH * 0.3) [widths 0 STROKE] + curl (MIDDLE + HALFSTROKE * HVCONTRAST) 0 [heading DOWNWARD] if SLAB : begin include : CenterBottomSerif MIDDLE 0 JUT @@ -1565,8 +1565,8 @@ symbol-block 'Glottal stop' hookstart XO g4 RIGHTSB (XH - [adviceGlottalStopSmooth XH 1]) [heading DOWNWARD] alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)] - flat (MIDDLE - HALFSTROKE * CORRECTION_HX) (XH * 0.15) [widths STROKE 0] - curl (MIDDLE - HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD] + flat (MIDDLE - HALFSTROKE * HVCONTRAST) (XH * 0.15) [widths STROKE 0] + curl (MIDDLE - HALFSTROKE * HVCONTRAST) 0 [heading DOWNWARD] if SLAB : begin include : CenterBottomSerif MIDDLE 0 JUT @@ -1580,8 +1580,8 @@ symbol-block 'Glottal stop' hookstart XO g4 SB (XH - smooth) alsothru 0.5 0.45 [widths (ESS / 2) (ESS / 2)] - flat (MIDDLE + HALFSTROKE * CORRECTION_HX) (XH * 0.15) [widths 0 STROKE] - curl (MIDDLE + HALFSTROKE * CORRECTION_HX) 0 [heading DOWNWARD] + flat (MIDDLE + HALFSTROKE * HVCONTRAST) (XH * 0.15) [widths 0 STROKE] + curl (MIDDLE + HALFSTROKE * HVCONTRAST) 0 [heading DOWNWARD] include : HOverlayBar (MIDDLE - LONGJUT * 0.6) (MIDDLE + LONGJUT * 0.6) (XH * 0.25) include : FlipAround MIDDLE (XH / 2) @@ -1594,8 +1594,8 @@ symbol-block 'Glottal stop' hookstart CAPO g4 RIGHTSB (CAP - [adviceGlottalStopSmooth CAP 1]) alsothru 0.5 0.45 [widths markHalfStroke markHalfStroke] - flat (MIDDLE - fine / 2 * CORRECTION_HX) (XH * 0.3) [widths fine 0] - curl (MIDDLE - fine / 2 * CORRECTION_HX) 0 [heading DOWNWARD] + flat (MIDDLE - fine / 2 * HVCONTRAST) (XH * 0.3) [widths fine 0] + curl (MIDDLE - fine / 2 * HVCONTRAST) 0 [heading DOWNWARD] if SLAB : begin include : CenterBottomSerif MIDDLE 0 JUT fine @@ -1608,8 +1608,8 @@ symbol-block 'Glottal stop' hookstart CAPO g4 SB (CAP - [adviceGlottalStopSmooth CAP (-1)]) alsothru 0.5 0.45 [widths markHalfStroke markHalfStroke] - flat (MIDDLE + fine / 2 * CORRECTION_HX) (XH * 0.3) [widths 0 fine] - curl (MIDDLE + fine / 2 * CORRECTION_HX) 0 [heading DOWNWARD] + flat (MIDDLE + fine / 2 * HVCONTRAST) (XH * 0.3) [widths 0 fine] + curl (MIDDLE + fine / 2 * HVCONTRAST) 0 [heading DOWNWARD] if SLAB : begin include : CenterBottomSerif MIDDLE 0 JUT fine alias 'capglottalstop' 0x241 'glottalstop' @@ -1664,8 +1664,8 @@ symbol-block 'Thorn' include : VBarLeft (SB * 1.25) 0 CAP if SLAB : begin - include : CenterBottomSerif (SB * 1.25 + HALFSTROKE * CORRECTION_HX) 0 JUT - include : CenterTopSerif (SB * 1.25 + HALFSTROKE * CORRECTION_HX) CAP JUT + include : CenterBottomSerif (SB * 1.25 + HALFSTROKE * HVCONTRAST) 0 JUT + include : CenterTopSerif (SB * 1.25 + HALFSTROKE * HVCONTRAST) CAP JUT create-glyph 'thorn' : glyph-construction assign-unicode 0xFE @@ -1686,43 +1686,43 @@ symbol-block 'Hwair' include : HBar SB MIDDLE (CAP / 2) include : dispiro widths.lhs MVERTSTROKE - flat (MIDDLE - MVERTSTROKE * 0.5 * CORRECTION_HX) CAP [heading DOWNWARD] - curl (MIDDLE - MVERTSTROKE * 0.5 * CORRECTION_HX) (SMALLSMOOTHB * 0.6) + flat (MIDDLE - MVERTSTROKE * 0.5 * HVCONTRAST) CAP [heading DOWNWARD] + curl (MIDDLE - MVERTSTROKE * 0.5 * HVCONTRAST) (SMALLSMOOTHB * 0.6) arcvh - g4 [mix (MIDDLE - MVERTSTROKE * 0.5 * CORRECTION_HX) (RIGHTSB - O) 0.5] O [heading RIGHTWARD] + g4 [mix (MIDDLE - MVERTSTROKE * 0.5 * HVCONTRAST) (RIGHTSB - O) 0.5] O [heading RIGHTWARD] archv flat (RIGHTSB - O) (SMALLSMOOTHA * 0.6) curl (RIGHTSB - O) XH [heading UPWARD] if SLAB : begin local jut : JUT * 0.75 - include : CenterTopSerif (SB + O + MVERTSTROKE / 2 * CORRECTION_HX) CAP jut - include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * CORRECTION_HX) 0 jut + include : CenterTopSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) CAP jut + include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) 0 jut include : CenterTopSerif MIDDLE CAP jut create-glyph 'hwair' : glyph-construction assign-unicode 0x195 include : VBarLeft (SB + O) 0 CAP MVERTSTROKE include : dispiro - nShoulderKnots (SB + O + MVERTSTROKE * CORRECTION_HX) (MIDDLE + MVERTSTROKE * 0.5 * CORRECTION_HX) (MVERTSTROKE * 0.4) nothing (XH * 0.51) (SMALLSMOOTHA * 0.6) (SMALLSMOOTHB * 0.6) MVERTSTROKE - flat (MIDDLE + MVERTSTROKE * 0.5 * CORRECTION_HX) (XH * 0.5) [heading DOWNWARD] - curl (MIDDLE + MVERTSTROKE * 0.5 * CORRECTION_HX) (SMALLSMOOTHB * 0.6) + nShoulderKnots (SB + O + MVERTSTROKE * HVCONTRAST) (MIDDLE + MVERTSTROKE * 0.5 * HVCONTRAST) (MVERTSTROKE * 0.4) nothing (XH * 0.51) (SMALLSMOOTHA * 0.6) (SMALLSMOOTHB * 0.6) MVERTSTROKE + flat (MIDDLE + MVERTSTROKE * 0.5 * HVCONTRAST) (XH * 0.5) [heading DOWNWARD] + curl (MIDDLE + MVERTSTROKE * 0.5 * HVCONTRAST) (SMALLSMOOTHB * 0.6) arcvh - g4 [mix (MIDDLE - MVERTSTROKE * 0.5 * CORRECTION_HX) (RIGHTSB - O) 0.5] O [widths.heading MVERTSTROKE 0 RIGHTWARD] + g4 [mix (MIDDLE - MVERTSTROKE * 0.5 * HVCONTRAST) (RIGHTSB - O) 0.5] O [widths.heading MVERTSTROKE 0 RIGHTWARD] archv flat (RIGHTSB - O) (SMALLSMOOTHA * 0.6) curl (RIGHTSB - O) XH [heading UPWARD] if SLAB : begin local jut : JUT * 0.75 - include : LeftwardTopSerif (SB + O) CAP (jut - MVERTSTROKE / 2 * CORRECTION_HX) + include : LeftwardTopSerif (SB + O) CAP (jut - MVERTSTROKE / 2 * HVCONTRAST) if (para.italicangle === 0) : begin - include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * CORRECTION_HX) 0 jut + include : CenterBottomSerif (SB + O + MVERTSTROKE / 2 * HVCONTRAST) 0 jut tag-contour 'serifLB' symbol-block 'Gha' create-glyph 'Gha' : glyph-construction assign-unicode 0x1A2 include capitalMarks - local abarRight : MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX + local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST include : OShape CAP 0 (SB + O) abarRight MVERTSTROKE (SMALLSMOOTHA * 0.6) (SMALLSMOOTHB * 0.6) include : VBarRight (RIGHTSB - O * 2) DESCENDER CAP MVERTSTROKE include : dispiro @@ -1730,13 +1730,13 @@ symbol-block 'Gha' flat MIDDLE (CAP - SMALLSMOOTHB * 0.6) [heading RIGHTWARD] curl (MIDDLE + 1) (CAP - SMALLSMOOTHB * 0.6) [heading RIGHTWARD] alsothru 0.5 0.15 - g4 (RIGHTSB - O * 2 - MVERTSTROKE * CORRECTION_HX) CAP [widths 0 MVERTSTROKE] + g4 (RIGHTSB - O * 2 - MVERTSTROKE * HVCONTRAST) CAP [widths 0 MVERTSTROKE] create-glyph 'gha' : glyph-construction assign-unicode 0x1A3 include pMarks - local abarRight : MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX + local abarRight : MIDDLE + MVERTSTROKE / 2 * HVCONTRAST include : OShape XH 0 (SB + O) abarRight MVERTSTROKE (SMALLSMOOTHA * 0.6) (SMALLSMOOTHB * 0.6) include : VBarRight (RIGHTSB - O * 2) DESCENDER XH MVERTSTROKE include : dispiro @@ -1744,7 +1744,7 @@ symbol-block 'Gha' flat MIDDLE (XH - SMALLSMOOTHB * 0.6) [heading RIGHTWARD] curl (MIDDLE + 1) (XH - SMALLSMOOTHB * 0.6) [heading RIGHTWARD] alsothru 0.5 0.15 - g4 (RIGHTSB - O * 2 - MVERTSTROKE * CORRECTION_HX) XH [widths 0 MVERTSTROKE] + g4 (RIGHTSB - O * 2 - MVERTSTROKE * HVCONTRAST) XH [widths 0 MVERTSTROKE] symbol-block 'Wynn' define [WynnShape bot top] : glyph-construction @@ -1755,7 +1755,7 @@ symbol-block 'Wynn' g4 MIDDLE (top - O) archv g4 (RIGHTSB - O) [mix bot top 0.7] - g4 (SB + STROKE * CORRECTION_HX) [mix bot top 0.1] + g4 (SB + STROKE * HVCONTRAST) [mix bot top 0.1] create-glyph 'Wynn' : glyph-construction assign-unicode 0x1F7 @@ -1801,7 +1801,7 @@ symbol-block 'RamsHorn' include : dispiro widths.center - g4 (SB + HALFSTROKE * CORRECTION_HX + O) top [heading DOWNWARD] + g4 (SB + HALFSTROKE * HVCONTRAST + O) top [heading DOWNWARD] quadcontrols 1 0.7 16 g4 (MIDDLE + d - hf) (bottom + d * (1 - globalTransform.yx * 0.5)) [widths hf hf] arcvh @@ -1809,7 +1809,7 @@ symbol-block 'RamsHorn' archv g4 (MIDDLE - d + hf) (bottom + d * (1 + globalTransform.yx * 0.5)) quadcontrols 0 0.3 16 - g4 (RIGHTSB - HALFSTROKE * CORRECTION_HX - O) top [widths.heading HALFSTROKE HALFSTROKE UPWARD] + g4 (RIGHTSB - HALFSTROKE * HVCONTRAST - O) top [widths.heading HALFSTROKE HALFSTROKE UPWARD] create-glyph 'latingamma' : glyph-construction assign-unicode 0x263 @@ -1835,7 +1835,7 @@ symbol-block 'Rhotic Tail and other phonetic letters' include : dispiro widths.center sw g2 (left) (XH * 0.5) - g2 (mid - sw * CORRECTION_HX) (XH * 0.5 + rise) [widths 0 sw] + g2 (mid - sw * HVCONTRAST) (XH * 0.5 + rise) [widths 0 sw] include : dispiro widths.rhs sw flat mid (XH * 0.5 + rise) [heading DOWNWARD] @@ -1846,19 +1846,19 @@ symbol-block 'Rhotic Tail and other phonetic letters' create-glyph 'rhotichook' : glyph-construction assign-unicode 0x2DE - include : ErTail (-STROKE * CORRECTION_HX) STROKE true + include : ErTail (-STROKE * HVCONTRAST) STROKE true if [not recursive] : let [thinfont : Widen {'schwa' 'revlatinepsilon'} 0.85 1] : begin create-glyph 'er' : glyph-construction assign-unicode 0x25A include eMarks include thinfont.schwa - include : ErTail (WIDTH * 0.85 - SB - markFine * CORRECTION_HX) + include : ErTail (WIDTH * 0.85 - SB - markFine * HVCONTRAST) create-glyph 'revlatinepsiloner' : glyph-construction assign-unicode 0x25D include eMarks include thinfont.revlatinepsilon - include : ErTail (WIDTH * 0.85 - SB - markFine * CORRECTION_HX) + include : ErTail (WIDTH * 0.85 - SB - markFine * HVCONTRAST) create-glyph 'bidentalpercussive' : glyph-construction assign-unicode 0x2AD diff --git a/glyphs/numbers.ptl b/glyphs/numbers.ptl index 7f0da74..e11cbf2 100644 --- a/glyphs/numbers.ptl +++ b/glyphs/numbers.ptl @@ -31,7 +31,7 @@ symbol-block "Numbers" include : VBar (MIDDLE + ONEBALANCE) 0 CAP include : dispiro - flat (MIDDLE - HALFSTROKE * CORRECTION_HX + ONEBALANCE) CAP [widths STROKE 0] + flat (MIDDLE - HALFSTROKE * HVCONTRAST + ONEBALANCE) CAP [widths STROKE 0] curl (MIDDLE - HOOKX * 1.25 + ONEBALANCE) (CAP - HOOK * 0.75) if SLAB : begin @@ -89,18 +89,18 @@ symbol-block "Numbers" assign-unicode '4' local bar (CAP * 0.4) - local vert : [mix SB RIGHTSB 0.825] - CORRECTION_HX * STROKE + local vert : [mix SB RIGHTSB 0.825] - HVCONTRAST * STROKE local p 0.25 local fine (STROKE * 0.9) include : HBarTop (SB + OX) RIGHTSB bar include : VBarLeft vert 0 CAP - local slope : (CAP - bar) / (vert - fine * p * CORRECTION_HX - (SB + OX)) + local slope : (CAP - bar) / (vert - fine * p * HVCONTRAST - (SB + OX)) include : dispiro g4 (SB + OX) bar [widths 0 fine] - g4 (vert - fine * p * CORRECTION_HX) CAP [widths.heading 0 [Math.hypot fine (fine / slope)] UPWARD] + g4 (vert - fine * p * HVCONTRAST) CAP [widths.heading 0 [Math.hypot fine (fine / slope)] UPWARD] if SLAB : begin - include : CenterBottomSerif (vert + HALFSTROKE * CORRECTION_HX) 0 JUT + include : CenterBottomSerif (vert + HALFSTROKE * HVCONTRAST) 0 JUT define [FiveShape top bp] : glyph-construction @@ -160,7 +160,7 @@ symbol-block "Numbers" include : HBarTop (SB + OXE) RIGHTSB CAP local x : mix SB RIGHTSB 0.28 - local cor : [Math.hypot 1 ((RIGHTSB - x - HALFSTROKE) / (CAP - STROKE))] * CORRECTION_HX + local cor : [Math.hypot 1 ((RIGHTSB - x - HALFSTROKE) / (CAP - STROKE))] * HVCONTRAST start-from (x - STROKE * cor / 2) 0 line-to (x + STROKE * cor / 2) 0 @@ -199,21 +199,21 @@ symbol-block "Numbers" # There is an "eight without lower contour" shape used for /propto create-glyph 'rotetedpropto' : glyph-construction - local p 0.96 - local py 0.4 - local l (SB + OX) - local r (RIGHTSB - OX) - include : dispiro - widths.lhs - straight.up.start r 0 [heading UPWARD] - alsothru 0.5 (1 - py) [widths (STROKE * py) (STROKE * (1 - py))] - g4 [mix r l p] (CAP - SMOOTHA * p * pr) [widths.rhs] - arcvh - g4 (MIDDLE - CORRECTION_OMIDS) (CAP - O) - archv - g4 [mix l r p] (CAP - SMOOTHB * p * pr) - alsothru 0.5 py [widths (STROKE * py) (STROKE * (1 - py))] - straight.down.end l 0 [widths.heading STROKE 0 DOWNWARD] + local p 0.96 + local py 0.4 + local l (SB + OX) + local r (RIGHTSB - OX) + include : dispiro + widths.lhs + straight.up.start r 0 [heading UPWARD] + alsothru 0.5 (1 - py) [widths (STROKE * py) (STROKE * (1 - py))] + g4 [mix r l p] (CAP - SMOOTHA * p * pr) [widths.rhs] + arcvh + g4 (MIDDLE - CORRECTION_OMIDS) (CAP - O) + archv + g4 [mix l r p] (CAP - SMOOTHB * p * pr) + alsothru 0.5 py [widths (STROKE * py) (STROKE * (1 - py))] + straight.down.end l 0 [widths.heading STROKE 0 DOWNWARD] create-glyph 'nine' : glyph-construction include capitalMarks @@ -227,8 +227,8 @@ symbol-block "Numbers" local ymiddlea : mix u d 0.5 include : dispiro widths.rhs (STROKE * CTHINB) - flat (r - STROKE * (1 - CTHINB) * CORRECTION_HX) ymiddlea - curl (r - STROKE * (1 - CTHINB) * CORRECTION_HX) (d + SMALLSMOOTHA) + flat (r - STROKE * (1 - CTHINB) * HVCONTRAST) ymiddlea + curl (r - STROKE * (1 - CTHINB) * HVCONTRAST) (d + SMALLSMOOTHA) arcvh g4 ([mix l r 0.5] + CORRECTION_OMIDS) (d + O) [widths 0 STROKE] archv diff --git a/glyphs/overmarks.ptl b/glyphs/overmarks.ptl index 8dc90f9..7ee824d 100644 --- a/glyphs/overmarks.ptl +++ b/glyphs/overmarks.ptl @@ -199,7 +199,7 @@ symbol-block 'Above marks' local hookTop ([mix aboveMarkBot aboveMarkTop 0.9] + fine / 2) include : dispiro widths.lhs (fine * 2) - flat (markMiddle - fine * CORRECTION_HX) hookBot [heading RIGHTWARD] + flat (markMiddle - fine * HVCONTRAST) hookBot [heading RIGHTWARD] curl (markMiddle + fine * 0.4) hookBot [heading RIGHTWARD] archv g4.up.mid (markMiddle + markExtend - O) [mix hookBot hookTop (SMOOTHB / (SMOOTHB + SMOOTHA))] [heading UPWARD] @@ -382,7 +382,7 @@ symbol-block 'Below marks' local cedillaTop (belowMarkTop + fine * 0.85) local cedillaBot belowMarkBot include : dispiro - flat (markMiddle - fine * CORRECTION_HX) cedillaTop [widths.heading 0 (fine * 2) RIGHTWARD] + flat (markMiddle - fine * HVCONTRAST) cedillaTop [widths.heading 0 (fine * 2) RIGHTWARD] curl markMiddle cedillaTop [heading RIGHTWARD] archv g4 (markMiddle + markExtend - O) [mix cedillaTop cedillaBot 0.5] [heading DOWNWARD] @@ -752,9 +752,9 @@ symbol-block 'Corner marks' widths.rhs flat 0 (-O) [heading DOWNWARD] curl 0 0 [heading DOWNWARD] - straight.right.end (HOOKX - HALFSTROKE * CORRECTION_HX) (-HOOK + HALFSTROKE) - #flat (HOOKX - HALFSTROKE * CORRECTION_HX - 0.01) (-HOOK + HALFSTROKE) - #curl (HOOKX - HALFSTROKE * CORRECTION_HX) (-HOOK + HALFSTROKE) + straight.right.end (HOOKX - HALFSTROKE * HVCONTRAST) (-HOOK + HALFSTROKE) + #flat (HOOKX - HALFSTROKE * HVCONTRAST - 0.01) (-HOOK + HALFSTROKE) + #curl (HOOKX - HALFSTROKE * HVCONTRAST) (-HOOK + HALFSTROKE) create-glyph 'ltailBR' : glyph-construction set-width 0 @@ -765,7 +765,7 @@ symbol-block 'Corner marks' widths.rhs flat 0 (-O) [heading DOWNWARD] curl 0 0 [heading DOWNWARD] - straight.left.end (-HOOKX - HALFSTROKE * CORRECTION_HX) (-HOOK - HALFSTROKE) + straight.left.end (-HOOKX - HALFSTROKE * HVCONTRAST) (-HOOK - HALFSTROKE) # Overlay Marks symbol-block 'Overlay Marks' diff --git a/glyphs/symbol-geometric.ptl b/glyphs/symbol-geometric.ptl index 95ea96b..0e85064 100644 --- a/glyphs/symbol-geometric.ptl +++ b/glyphs/symbol-geometric.ptl @@ -302,7 +302,7 @@ symbol-block 'Box-Drawing' define [dlboxdraw unicode u d l r] : create-glyph ('bd' + [unicode.toString 16 :.toUpperCase]) : glyph-construction assign-unicode unicode set-width width - local stopH : [Math.max u d] - light * 1 - light * 0.5 * CORRECTION_HX + local stopH : [Math.max u d] - light * 1 - light * 0.5 * HVCONTRAST local stopV : [Math.max l r] - light * 1.5 local capH : [Math.max u d] - light * 1 local capV : [Math.max l r] - light * 1 @@ -318,8 +318,8 @@ symbol-block 'Box-Drawing' if u : begin include : VBar (midx + (u - light)) (midy + stopV) font.hhea.ascent light if (u > light) : include : VBar (midx - (u - light)) (midy + stopV) font.hhea.ascent light - if (stopH > 0 && [not u]) : include : HBar (midx - stopH - light * CORRECTION_HX) (midx + stopH + light * CORRECTION_HX) (midy + capV) light - if (stopH > 0 && [not d]) : include : HBar (midx - stopH - light * CORRECTION_HX) (midx + stopH + light * CORRECTION_HX) (midy - capV) light + if (stopH > 0 && [not u]) : include : HBar (midx - stopH - light * HVCONTRAST) (midx + stopH + light * HVCONTRAST) (midy + capV) light + if (stopH > 0 && [not d]) : include : HBar (midx - stopH - light * HVCONTRAST) (midx + stopH + light * HVCONTRAST) (midy - capV) light if (stopV > 0 && [not l]) : include : VBar (midx - capH) (midy - stopV - light) (midy + stopV + light) light if (stopV > 0 && [not r]) : include : VBar (midx + capH) (midy - stopV - light) (midy + stopV + light) light define [complexBoxDraw unicodeStart U D L R fn dl] : begin diff --git a/glyphs/symbol-letter.ptl b/glyphs/symbol-letter.ptl index e5e0576..f8dc534 100644 --- a/glyphs/symbol-letter.ptl +++ b/glyphs/symbol-letter.ptl @@ -73,7 +73,7 @@ symbol-block 'Currency' create-glyph 'frenchFranc' : glyph-construction assign-unicode 0x20A3 include glyphs.F - include : HOverlayBar (SB * 0.5) (SB * 3 + STROKE * CORRECTION_HX) [mix 0 XH 0.4] + include : HOverlayBar (SB * 0.5) (SB * 3 + STROKE * HVCONTRAST) [mix 0 XH 0.4] create-glyph 'peseta' : glyph-construction assign-unicode 0x20A7 diff --git a/glyphs/symbol-math.ptl b/glyphs/symbol-math.ptl index 1eea5af..19c9498 100644 --- a/glyphs/symbol-math.ptl +++ b/glyphs/symbol-math.ptl @@ -6,7 +6,7 @@ symbol-block 'Letter-like Mathematical Symbols' assign-unicode 0xB5 include glyphs.mu AS_BASE if SLAB : if (para.italicangle === 0) : begin - include : CenterBottomSerif (SB + HALFSTROKE * CORRECTION_HX) DESCENDER JUT + include : CenterBottomSerif (SB + HALFSTROKE * HVCONTRAST) DESCENDER JUT tag-contour 'serifLB' create-glyph 'forall' : glyph-construction assign-unicode 0x2200 diff --git a/glyphs/symbol-punctuation.ptl b/glyphs/symbol-punctuation.ptl index 2e346a0..b4402b5 100644 --- a/glyphs/symbol-punctuation.ptl +++ b/glyphs/symbol-punctuation.ptl @@ -187,7 +187,7 @@ symbol-block 'Emotion Punctuations' hookstart CAPO g4 RIGHTSB (CAP - SMOOTHB * 0.9) alsothru 0.5 0.45 [widths.center ESSQUESTION] - straight.down.end (MIDDLE - HALFSTROKE * CORRECTION_HX) questionBottom [widths STROKE 0] + straight.down.end (MIDDLE - HALFSTROKE * HVCONTRAST) questionBottom [widths STROKE 0] create-glyph 'dwquestion' : glyph-construction set-width UPM assign-unicode 0xFF1F @@ -198,7 +198,7 @@ symbol-block 'Emotion Punctuations' hookstart CAPO g4 (UPM * 0.75) (CAP - SMOOTHB * 0.9) alsothru 0.5 0.45 [widths.center ESSQUESTION] - straight.down.end (UPM / 2 - HALFSTROKE * CORRECTION_HX) questionBottom [widths STROKE 0] + straight.down.end (UPM / 2 - HALFSTROKE * HVCONTRAST) questionBottom [widths STROKE 0] create-glyph 'questionDown' : glyph-construction assign-unicode 0xBF @@ -266,18 +266,18 @@ symbol-block 'Typographic Symbols' include : dispiro widths.lhs - flat (RIGHTSB - O - STROKE * CORRECTION_HX) CAPMIDDLE [heading DOWNWARD] - curl (RIGHTSB - O - STROKE * CORRECTION_HX) (SMOOTHA + CORRECTION_HX * CORRECTION_VS) + flat (RIGHTSB - O - STROKE * HVCONTRAST) CAPMIDDLE [heading DOWNWARD] + curl (RIGHTSB - O - STROKE * HVCONTRAST) (SMOOTHA + HVCONTRAST * CORRECTION_VS) arcvh g4 MIDDLE (O + fine) [widths fine 0] archv - g4 (SB + O + fine * CORRECTION_HX) (SMOOTHB - CORRECTION_HX * CORRECTION_VS) + g4 (SB + O + fine * HVCONTRAST) (SMOOTHB - HVCONTRAST * CORRECTION_VS) alsothru 0.5 0.5 [widths.center (fine * ESS / STROKE)] - g4 ([mix SB RIGHTSB p] - fine * CORRECTION_HX) (CAP - SMOOTHB * pr * rr + CORRECTION_HX * CORRECTION_VS * (fine / STROKE)) [widths 0 fine] + g4 ([mix SB RIGHTSB p] - fine * HVCONTRAST) (CAP - SMOOTHB * pr * rr + HVCONTRAST * CORRECTION_VS * (fine / STROKE)) [widths 0 fine] arcvh g4 ([mix SB RIGHTSB [mix p l 0.5]] - CORRECTION_OMIDS + CORRECTION_VS) (CAPO - fine) archv - g4 ([mix SB RIGHTSB l] + fine * CORRECTION_HX) (CAP - SMOOTHA * pr - CORRECTION_HX * CORRECTION_VS * (fine / STROKE)) + g4 ([mix SB RIGHTSB l] + fine * HVCONTRAST) (CAP - SMOOTHA * pr - HVCONTRAST * CORRECTION_VS * (fine / STROKE)) alsothru 0.5 0.45 [lambda] flat [mix SB RIGHTSB r] (SMOOTHA * s) curl [mix SB RIGHTSB r] ((SMOOTHA * s) - 1) @@ -383,7 +383,7 @@ symbol-block 'Typographic Symbols' set-width WIDTH assign-unicode '/' - local cor : CORRECTION_HX / [Math.sqrt (1 - [Math.pow ((RIGHTSB - SB - STROKE) / (parenTop - parenBot)) 2])] + local cor : HVCONTRAST / [Math.sqrt (1 - [Math.pow ((RIGHTSB - SB - STROKE) / (parenTop - parenBot)) 2])] start-from SB parenBot line-to (SB + STROKE * cor) parenBot @@ -395,7 +395,7 @@ symbol-block 'Typographic Symbols' set-width WIDTH assign-unicode "\\" - local cor : CORRECTION_HX / [Math.sqrt (1 - [Math.pow ((RIGHTSB - SB - STROKE) / (parenTop - parenBot)) 2])] + local cor : HVCONTRAST / [Math.sqrt (1 - [Math.pow ((RIGHTSB - SB - STROKE) / (parenTop - parenBot)) 2])] start-from SB parenTop line-to (SB + STROKE * cor) parenTop @@ -686,7 +686,7 @@ symbol-block 'Percentages' set-width WIDTH assign-unicode '%' local dotwidth ([adviceBlackness 4] * 1.5) - local cor : CORRECTION_HX / [Math.sqrt (1 - [Math.pow ((RIGHTSB - SB - STROKE) / (CAP - 0)) 2])] + local cor : HVCONTRAST / [Math.sqrt (1 - [Math.pow ((RIGHTSB - SB - STROKE) / (CAP - 0)) 2])] start-from SB 0 line-to (SB + STROKE * cor) 0 diff --git a/onegroup.mk b/onegroup.mk index 4748d07..bb0c3dd 100644 --- a/onegroup.mk +++ b/onegroup.mk @@ -31,7 +31,6 @@ MAPS = $(subst .ttf,.charmap,$(TARGETS)) FDTS = $(subst .ttf,.fdt,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))) SVG0 = $(subst .ttf,.svg,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))) -PASS0 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS)) ABFEAT = $(subst .ttf,.ab.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))) FEATURE = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(UPRIGHT) $(EXTUPRG))) FEATITA = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(ITALIC) $(EXTITAL))) @@ -84,8 +83,6 @@ $(OBJDIR)/.pass0-$(PREFIX)-heavy.fdt : $(SCRIPTS) | $(OBJDIR) $(OBJDIR)/.pass0-$(PREFIX)-heavyitalic.fdt : $(SCRIPTS) | $(OBJDIR) $(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) -$(PASS0) : $(OBJDIR)/.pass0-%.ttf : $(OBJDIR)/.pass0-%.fdt - $(NODE) extract --upm 16000 --uprightify 1 --ttf $@ $< $(SVG0) : $(OBJDIR)/.pass0-%.svg : $(OBJDIR)/.pass0-%.fdt $(NODE) extract --uprightify 1 --svg $@ $< $(ABFEAT) : $(OBJDIR)/.pass0-%.ab.fea : $(OBJDIR)/.pass0-%.fdt diff --git a/pass1-cleanup.py b/pass1-cleanup.py index afa07c7..e642ad9 100644 --- a/pass1-cleanup.py +++ b/pass1-cleanup.py @@ -36,8 +36,9 @@ font.simplify(0.2, ("smoothcurves", "choosehv"), 0.1) #font.em = 2000 font.layers["Fore"].is_quadratic = True +font.simplify(0.1, ("smoothcurves", "choosehv"), 0.1) font.transform(psMat.skew(float(sys.argv[3]) / 180 * math.pi)) -#font.em = 1000 +font.em = 1000 font.canonicalContours() font.canonicalStart()