Corrected CORRECTION_HX in italics. It is also renamed to HVCONTRAST.

This commit is contained in:
be5invis 2015-12-18 06:05:40 +08:00
parent c717d900c8
commit acbe71d4e2
13 changed files with 345 additions and 340 deletions

View File

@ -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

View File

@ -145,8 +145,12 @@ if(argv.svg) {
return buf;
}
var svg = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" ><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"><defs><font id="' + font.name.postScriptName + '">'
svg += '<font-face font-family="' + font.name.fontFamily + '" font-weight="' + font['OS/2'].usWeightClass + '" font-stretch="normal" units-per-em="1000"/>'
var skew = (argv.uprightify ? 1 : 0) * Math.tan((font.post.italicAngle || 0) / 180 * Math.PI);
var scale = (argv.upm || 1000) / 1000;
svg += '<font-face font-family="' + font.name.fontFamily + '" font-weight="' + font['OS/2'].usWeightClass + '" font-stretch="normal" units-per-em="' + (1000 * scale) + '"/>'
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) + '" />'

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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()