Added /Cbar, /cbar, /Ubar. Also separated mark lookups.
This commit is contained in:
parent
ede5c96571
commit
02d84bc010
|
@ -43,33 +43,14 @@ define [buildFont para recursive] : begin {
|
||||||
define unicodeGlyphs ()
|
define unicodeGlyphs ()
|
||||||
|
|
||||||
define UPM 1000
|
define UPM 1000
|
||||||
# metrics
|
define serifed : not [not para.serif]
|
||||||
define DESCENDER para.descender
|
# Key metrics
|
||||||
define WIDTH para.width
|
define WIDTH para.width
|
||||||
|
define SB para.sb
|
||||||
define CAP para.cap
|
define CAP para.cap
|
||||||
define XH para.xheight
|
define XH para.xheight
|
||||||
define O para.o
|
define DESCENDER para.descender
|
||||||
define OXHOOK para.oxhook
|
# Key metrics for symbols
|
||||||
define SB para.sb
|
|
||||||
define HOOK para.hook
|
|
||||||
define AHOOK para.ahook
|
|
||||||
define SHOOK para.shook
|
|
||||||
define RHOOK para.rhook
|
|
||||||
define HOOKX para.hookx
|
|
||||||
define SMOOTH para.smooth
|
|
||||||
define SMALLSMOOTH para.smallsmooth
|
|
||||||
define STROKE para.stroke
|
|
||||||
define DOTSIZE para.dotsize
|
|
||||||
define PERIODSIZE para.periodsize
|
|
||||||
define BARPOS para.barpos
|
|
||||||
define GBARPOS para.gbarpos
|
|
||||||
define FIVEBARPOS para.fivebarpos
|
|
||||||
define LONGJUT para.longjut
|
|
||||||
define JUT para.jut
|
|
||||||
define ACCENT para.accent
|
|
||||||
define ACCENTX para.accentx
|
|
||||||
|
|
||||||
# Common metrics for symbols
|
|
||||||
local parenTop [[XH * 0.625] + [CAP - XH] * 2.5]
|
local parenTop [[XH * 0.625] + [CAP - XH] * 2.5]
|
||||||
local parenBot [[XH * 0.625] - [CAP - XH] * 2.5]
|
local parenBot [[XH * 0.625] - [CAP - XH] * 2.5]
|
||||||
local parenMid [mix parenTop parenBot 0.5]
|
local parenMid [mix parenTop parenBot 0.5]
|
||||||
|
@ -97,6 +78,45 @@ define [buildFont para recursive] : begin {
|
||||||
return (.x [a.x / m] .y [a.y / m])
|
return (.x [a.x / m] .y [a.y / m])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Style parameters
|
||||||
|
define O para.o
|
||||||
|
define OXHOOK para.oxhook
|
||||||
|
define HOOK para.hook
|
||||||
|
define AHOOK para.ahook
|
||||||
|
define SHOOK para.shook
|
||||||
|
define RHOOK para.rhook
|
||||||
|
define HOOKX para.hookx
|
||||||
|
define SMOOTH para.smooth
|
||||||
|
define SMALLSMOOTH para.smallsmooth
|
||||||
|
define STROKE para.stroke
|
||||||
|
define DOTSIZE : fallback para.dotsize STROKE
|
||||||
|
define PERIODSIZE : fallback para.periodsize DOTSIZE
|
||||||
|
define BARPOS : fallback para.barpos 0.5
|
||||||
|
define GBARPOS : fallback para.gbarpos 0.5
|
||||||
|
define EBARPOS : fallback para.ebarpos BARPOS
|
||||||
|
define OVERLAYPOS para.overlaypos
|
||||||
|
define FIVEBARPOS para.fivebarpos
|
||||||
|
define LONGJUT para.longjut
|
||||||
|
define JUT para.jut
|
||||||
|
define ACCENT para.accent
|
||||||
|
define ACCENTX para.accentx
|
||||||
|
|
||||||
|
define KAPPA para.kappa
|
||||||
|
define BKAPPA : para.bkappa || KAPPA + 0.1
|
||||||
|
define KAPPA_SPIRO_ARC : KAPPA + 0.1
|
||||||
|
define CKAPPA : para.ckappa || BKAPPA
|
||||||
|
define KAPPA_HOOK : fallback para.kappa_hook [BKAPPA + 0.1]
|
||||||
|
define KAPPA_AHOOK : fallback para.kappa_ahook KAPPA_HOOK
|
||||||
|
define KAPPA_RHOOK : fallback para.kappa_rhook KAPPA_HOOK
|
||||||
|
define TAILADJX : WIDTH * 0.2
|
||||||
|
define TAILADJY : XH * 0.25
|
||||||
|
define ILBALANCE : LONGJUT * 0.04
|
||||||
|
define JBALANCE : fallback para.jbalance [STROKE / 2 + ILBALANCE]
|
||||||
|
define TBALANCE : fallback para.tbalance JBALANCE
|
||||||
|
define TBALANCE2 : fallback para.tbalance2 TBALANCE
|
||||||
|
define RBALANCE : fallback para.rbalance [JBALANCE * 0.3]
|
||||||
|
define SBALANCE : fallback para.sbalance 0.52
|
||||||
|
|
||||||
# derived metrics
|
# derived metrics
|
||||||
define FULLWIDTH : if para.cjkSpacing [WIDTH * 2] WIDTH
|
define FULLWIDTH : if para.cjkSpacing [WIDTH * 2] WIDTH
|
||||||
define XO : XH - O
|
define XO : XH - O
|
||||||
|
@ -120,32 +140,6 @@ define [buildFont para recursive] : begin {
|
||||||
define CORRECTION_OMIDX : globalTransform.yx * 1.2
|
define CORRECTION_OMIDX : globalTransform.yx * 1.2
|
||||||
define CORRECTION_OMIDS : STROKE * CORRECTION_OMIDX
|
define CORRECTION_OMIDS : STROKE * CORRECTION_OMIDX
|
||||||
|
|
||||||
# style parameters
|
|
||||||
define EBARPOS : para.ebarpos || BARPOS
|
|
||||||
define KAPPA para.kappa
|
|
||||||
define COKAPPA : 1 - KAPPA
|
|
||||||
define BKAPPA : para.bkappa || KAPPA + 0.1
|
|
||||||
define KAPPA_SPIRO_ARC : KAPPA + 0.1
|
|
||||||
define CKAPPA : para.ckappa || BKAPPA
|
|
||||||
define COBKAPPA : 1 - BKAPPA
|
|
||||||
define KAPPA_HOOK : fallback para.kappa_hook [BKAPPA + 0.1]
|
|
||||||
define KAPPA_AHOOK : fallback para.kappa_ahook KAPPA_HOOK
|
|
||||||
define KAPPA_RHOOK : fallback para.kappa_rhook KAPPA_HOOK
|
|
||||||
define TAILADJX : WIDTH * 0.2
|
|
||||||
define TAILADJY : XH * 0.25
|
|
||||||
define TAILADJKAPPA 0.75
|
|
||||||
define TAILADJSX : WIDTH * 0.2
|
|
||||||
define TAILADJSY 0
|
|
||||||
define TAILADJSKAPPA 0.75
|
|
||||||
define ILBALANCE : LONGJUT * 0.04
|
|
||||||
define JBALANCE : para.jbalance || HALFSTROKE + ILBALANCE
|
|
||||||
define TBALANCE : para.tbalance || JBALANCE
|
|
||||||
define TBALANCE2 : para.tbalance2 || TBALANCE
|
|
||||||
define RBALANCE : para.rbalance || JBALANCE * 0.3
|
|
||||||
define SBALANCE : fallback para.sbalance 0.52
|
|
||||||
|
|
||||||
define serifed : not [not para.serif]
|
|
||||||
|
|
||||||
# Blackness parameters
|
# Blackness parameters
|
||||||
# We will estimate blackness using lower-case 'e'
|
# We will estimate blackness using lower-case 'e'
|
||||||
define WHITENESS : [[XH - STROKE * 3] * [RIGHTSB - SB] * [1 / 3]] / [XH * [RIGHTSB - SB]]
|
define WHITENESS : [[XH - STROKE * 3] * [RIGHTSB - SB] * [1 / 3]] / [XH * [RIGHTSB - SB]]
|
||||||
|
@ -184,7 +178,14 @@ define [buildFont para recursive] : begin {
|
||||||
}
|
}
|
||||||
define [StdAnchorGroup] : begin {
|
define [StdAnchorGroup] : begin {
|
||||||
local a : anchorDeriv.apply null arguments
|
local a : anchorDeriv.apply null arguments
|
||||||
set a.anchors.overlay (.type BASE .x [mix a.anchors.below.x a.anchors.above.x BARPOS] .y [mix a.anchors.below.y a.anchors.above.y BARPOS])
|
set a.anchors.overlay (.type BASE
|
||||||
|
.x [mix a.anchors.below.x a.anchors.above.x OVERLAYPOS]
|
||||||
|
.y [mix a.anchors.below.y a.anchors.above.y OVERLAYPOS]
|
||||||
|
)
|
||||||
|
set a.anchors.slash (.type BASE
|
||||||
|
.x [mix a.anchors.below.x a.anchors.above.x 0.5]
|
||||||
|
.y [mix a.anchors.below.y a.anchors.above.y 0.5]
|
||||||
|
)
|
||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,16 +45,44 @@ feature ccmp {
|
||||||
feature mark {
|
feature mark {
|
||||||
script latn;
|
script latn;
|
||||||
language dflt;
|
language dflt;
|
||||||
lookup markAuto;
|
lookup markAuto_above;
|
||||||
|
lookup markAuto_below;
|
||||||
|
lookup markAuto_trailing;
|
||||||
|
lookup markAuto_lf;
|
||||||
|
lookup markAuto_topright;
|
||||||
|
lookup markAuto_bottomright;
|
||||||
|
lookup markAuto_overlay;
|
||||||
|
lookup markAuto_slash;
|
||||||
script grek;
|
script grek;
|
||||||
language dflt;
|
language dflt;
|
||||||
lookup markAuto;
|
lookup markAuto_above;
|
||||||
|
lookup markAuto_below;
|
||||||
|
lookup markAuto_trailing;
|
||||||
|
lookup markAuto_lf;
|
||||||
|
lookup markAuto_topright;
|
||||||
|
lookup markAuto_bottomright;
|
||||||
|
lookup markAuto_overlay;
|
||||||
|
lookup markAuto_slash;
|
||||||
script cyrl;
|
script cyrl;
|
||||||
language dflt;
|
language dflt;
|
||||||
lookup markAuto;
|
lookup markAuto_above;
|
||||||
|
lookup markAuto_below;
|
||||||
|
lookup markAuto_trailing;
|
||||||
|
lookup markAuto_lf;
|
||||||
|
lookup markAuto_topright;
|
||||||
|
lookup markAuto_bottomright;
|
||||||
|
lookup markAuto_overlay;
|
||||||
|
lookup markAuto_slash;
|
||||||
script dflt;
|
script dflt;
|
||||||
language dflt;
|
language dflt;
|
||||||
lookup markAuto;
|
lookup markAuto_above;
|
||||||
|
lookup markAuto_below;
|
||||||
|
lookup markAuto_trailing;
|
||||||
|
lookup markAuto_lf;
|
||||||
|
lookup markAuto_topright;
|
||||||
|
lookup markAuto_bottomright;
|
||||||
|
lookup markAuto_overlay;
|
||||||
|
lookup markAuto_slash;
|
||||||
} mark;
|
} mark;
|
||||||
|
|
||||||
feature mkmk {
|
feature mkmk {
|
||||||
|
|
|
@ -55,7 +55,11 @@ if(argv.dumpfeature) {
|
||||||
}
|
}
|
||||||
// mark
|
// mark
|
||||||
var mark = ttfFont.features.mark;
|
var mark = ttfFont.features.mark;
|
||||||
featurefile += 'lookup markAuto {' + mark.marks.join(';\n') + ';\n' + mark.bases.join(';\n') + ';} markAuto;'
|
for(var id in mark) {
|
||||||
|
var lookup = mark[id];
|
||||||
|
var lookupName = 'markAuto_' + id;
|
||||||
|
featurefile += 'lookup ' + lookupName + ' {' + lookup.marks.join(';\n') + ';\n' + lookup.bases.join(';\n') + ';} ' + lookupName + ';'
|
||||||
|
}
|
||||||
|
|
||||||
// mkmk
|
// mkmk
|
||||||
var mkmk = ttfFont.features.mkmk;
|
var mkmk = ttfFont.features.mkmk;
|
||||||
|
|
|
@ -33,6 +33,7 @@ define customDecompositions (
|
||||||
|
|
||||||
."\u1D7F" "\u028A\u0336"
|
."\u1D7F" "\u028A\u0336"
|
||||||
."\u0289" "u\u0336"
|
."\u0289" "u\u0336"
|
||||||
|
."\u0244" "U\u0336"
|
||||||
|
|
||||||
."\u0290" "z\u0322"
|
."\u0290" "z\u0322"
|
||||||
."\u0256" "d\u0322"
|
."\u0256" "d\u0322"
|
||||||
|
@ -490,7 +491,7 @@ create-glyph 'servicemark' : glyph-construction {
|
||||||
|
|
||||||
|
|
||||||
### Generate MARK and MKMK features
|
### Generate MARK and MKMK features
|
||||||
set font.features.mark (.marks () .bases ())
|
set font.features.mark (.)
|
||||||
set font.features.mkmk (.marks () .bases ())
|
set font.features.mkmk (.marks () .bases ())
|
||||||
set font.features.markGlyphs (.)
|
set font.features.markGlyphs (.)
|
||||||
|
|
||||||
|
@ -499,14 +500,32 @@ define [buildAnchorDescription glyph inserter propx propy] : begin {
|
||||||
foreach key [items-of : Object.keys glyph.anchors] : buf = buf + ' <anchor ' + [Math.round [upmscale * glyph.anchors.(key).(propx)]] + ' ' + [Math.round [upmscale * glyph.anchors.(key).(propy)]] + '> ' + inserter + ' @' + key
|
foreach key [items-of : Object.keys glyph.anchors] : buf = buf + ' <anchor ' + [Math.round [upmscale * glyph.anchors.(key).(propx)]] + ' ' + [Math.round [upmscale * glyph.anchors.(key).(propy)]] + '> ' + inserter + ' @' + key
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
|
# mark
|
||||||
|
define [createMarkLookup anchorid] : let [lookup : set font.features.mark.(anchorid) (.marks () .bases ())] : foreach glyph [items-of glyphList] : begin {
|
||||||
|
if [glyph.anchors && glyph.anchors.(anchorid)] : begin {
|
||||||
|
local anchor glyph.anchors.(anchorid)
|
||||||
|
if [anchor.type === 'base'] {
|
||||||
|
lookup.bases.push : 'pos mark [' + glyph.name + '] <anchor ' + [Math.round : upmscale * anchor.x] + ' ' + [Math.round : upmscale * anchor.y] + '> mark @' + anchorid
|
||||||
|
lookup.marks.push : 'markClass [' + glyph.name + '] <anchor ' + [Math.round : upmscale * anchor.x] + ' ' + [Math.round : upmscale * anchor.y] + '> @' + anchorid
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
createMarkLookup 'above'
|
||||||
|
createMarkLookup 'below'
|
||||||
|
createMarkLookup 'trailing'
|
||||||
|
createMarkLookup 'lf'
|
||||||
|
createMarkLookup 'topright'
|
||||||
|
createMarkLookup 'bottomright'
|
||||||
|
createMarkLookup 'overlay'
|
||||||
|
createMarkLookup 'slash'
|
||||||
|
# mkmk
|
||||||
foreach glyph [items-of glyphList] : if [glyph.anchors && [begin [local anchorKeys : Object.keys glyph.anchors] anchorKeys.length]] : begin {
|
foreach glyph [items-of glyphList] : if [glyph.anchors && [begin [local anchorKeys : Object.keys glyph.anchors] anchorKeys.length]] : begin {
|
||||||
local isMarkGlyph false
|
local isMarkGlyph false
|
||||||
foreach key [items-of anchorKeys] : if [glyph.anchors.(key).type == 'mark'] : set isMarkGlyph true
|
foreach key [items-of anchorKeys] : if [glyph.anchors.(key).type == 'mark'] : set isMarkGlyph true
|
||||||
|
|
||||||
if isMarkGlyph {
|
if isMarkGlyph {
|
||||||
then {
|
then {
|
||||||
font.features.mark.marks.push : 'markClass [' + glyph.name + '] ' + [buildAnchorDescription glyph '' 'x' 'y']
|
# font.features.mark.marks.push : 'markClass [' + glyph.name + '] ' + [buildAnchorDescription glyph '' 'x' 'y']
|
||||||
font.features.mkmk.marks.push : 'markClass [' + glyph.name + '] ' + [buildAnchorDescription glyph '' 'x' 'y']
|
font.features.mkmk.marks.push : 'markClass [' + glyph.name + '] ' + [buildAnchorDescription glyph '' 'x' 'y']
|
||||||
font.features.mkmk.bases.push : 'pos mark [' + glyph.name + '] ' + [buildAnchorDescription glyph 'mark' 'mbx' 'mby']
|
font.features.mkmk.bases.push : 'pos mark [' + glyph.name + '] ' + [buildAnchorDescription glyph 'mark' 'mbx' 'mby']
|
||||||
foreach key [items-of anchorKeys] : begin {
|
foreach key [items-of anchorKeys] : begin {
|
||||||
|
@ -514,6 +533,6 @@ foreach glyph [items-of glyphList] : if [glyph.anchors && [begin [local anchorKe
|
||||||
font.features.markGlyphs.(key).push glyph.name
|
font.features.markGlyphs.(key).push glyph.name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else : font.features.mark.bases.push : 'pos base [' + glyph.name + '] ' + [buildAnchorDescription glyph 'mark' 'x' 'y']
|
# else : font.features.mark.bases.push : 'pos base [' + glyph.name + '] ' + [buildAnchorDescription glyph 'mark' 'x' 'y']
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -43,8 +43,6 @@ define [CyrYeriShape top _left _right _fine] : glyph-construction {
|
||||||
local right : fallback _right RIGHTSB
|
local right : fallback _right RIGHTSB
|
||||||
|
|
||||||
local bowl : top * 0.55 + HALFSTROKE
|
local bowl : top * 0.55 + HALFSTROKE
|
||||||
local tkappa [COKAPPA - 0.22]
|
|
||||||
local bkappa [COKAPPA - 0.2]
|
|
||||||
|
|
||||||
local turnbottom : bowl / 2
|
local turnbottom : bowl / 2
|
||||||
include : spiro {
|
include : spiro {
|
||||||
|
|
|
@ -190,8 +190,6 @@ create-glyph 'K' : glyph-construction {
|
||||||
### B D P R
|
### B D P R
|
||||||
define [BShape top] : glyph-construction {
|
define [BShape top] : glyph-construction {
|
||||||
local bowl : top * 0.52 + HALFSTROKE
|
local bowl : top * 0.52 + HALFSTROKE
|
||||||
local tkappa [COKAPPA - 0.22]
|
|
||||||
local bkappa [COKAPPA - 0.2]
|
|
||||||
|
|
||||||
local turntop : [top - [bowl - STROKE]] * 0.5
|
local turntop : [top - [bowl - STROKE]] * 0.5
|
||||||
local turnbottom : bowl * 0.45
|
local turnbottom : bowl * 0.45
|
||||||
|
@ -295,7 +293,6 @@ create-glyph 'C' : glyph-construction {
|
||||||
set-width WIDTH
|
set-width WIDTH
|
||||||
assign-unicode 'C'
|
assign-unicode 'C'
|
||||||
include capitalMarks
|
include capitalMarks
|
||||||
|
|
||||||
include : spiro {
|
include : spiro {
|
||||||
widths.lhs
|
widths.lhs
|
||||||
g4 RIGHTSB [CAP - HOOK]
|
g4 RIGHTSB [CAP - HOOK]
|
||||||
|
|
|
@ -202,7 +202,7 @@ define [SmallTShape top bot] : glyph-construction {
|
||||||
curl center [bot + smb + STROKE]
|
curl center [bot + smb + STROKE]
|
||||||
arcvh
|
arcvh
|
||||||
g4 turn [bot + O + STROKE]
|
g4 turn [bot + O + STROKE]
|
||||||
quadcontrols [KAPPA_HOOK + TAILADJKAPPA * globalTransform.yx + 0.1] 0
|
quadcontrols [KAPPA_HOOK + 0.75 * globalTransform.yx + 0.1] 0
|
||||||
g4 hookx [bot + HOOK + STROKE * 0.24]
|
g4 hookx [bot + HOOK + STROKE * 0.24]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -150,12 +150,7 @@ create-glyph 'Eth' : glyph-construction {
|
||||||
assign-unicode 0xD0
|
assign-unicode 0xD0
|
||||||
|
|
||||||
include glyphs.D AS_BASE
|
include glyphs.D AS_BASE
|
||||||
include : create-stroke
|
include : HOverlayBar [SB * 0.3] [mix [SB + STROKE] [RIGHTSB - STROKE] 0.55] [CAP * BARPOS]
|
||||||
:.start-from [SB * 0.3] [CAP * 0.54]
|
|
||||||
:.set-width HALFSTROKE HALFSTROKE
|
|
||||||
:.heads-to RIGHTWARD
|
|
||||||
:.line-to [mix [SB + STROKE] [RIGHTSB - STROKE] 0.55] [CAP * 0.54]
|
|
||||||
:.heads-to RIGHTWARD
|
|
||||||
}
|
}
|
||||||
alias 'DCroat' 0x110 'Eth'
|
alias 'DCroat' 0x110 'Eth'
|
||||||
alias 'arficanD' 0x189 'Eth'
|
alias 'arficanD' 0x189 'Eth'
|
||||||
|
@ -199,20 +194,17 @@ create-glyph 'Thorn' : glyph-construction {
|
||||||
|
|
||||||
local bowlTop [CAP * 0.77]
|
local bowlTop [CAP * 0.77]
|
||||||
local bowlBottom [CAP * 0.23]
|
local bowlBottom [CAP * 0.23]
|
||||||
local bkappa [COKAPPA - 0.2]
|
|
||||||
|
|
||||||
local turn : mix bowlTop bowlBottom 0.5
|
local turn : mix bowlTop bowlBottom 0.5
|
||||||
local turnRadius : [bowlTop - bowlBottom] / 2
|
local turnRadius : [bowlTop - bowlBottom] / 2
|
||||||
|
include : spiro {
|
||||||
include : create-stroke
|
widths.rhs
|
||||||
:.start-from [SB * 1.25 + HALFSTROKE * 0.1] bowlTop
|
flat [SB * 1.25 + 1] bowlTop [heading RIGHTWARD]
|
||||||
:.heads-to RIGHTWARD
|
curl [RIGHTSB - turnRadius] bowlTop
|
||||||
:.set-width 0 STROKE
|
g4 [RIGHTSB - O] turn
|
||||||
:.line-to [RIGHTSB - turnRadius] bowlTop
|
flat [RIGHTSB - turnRadius] bowlBottom
|
||||||
:.arc-hv-to [RIGHTSB - O] turn
|
curl [SB * 1.25 + 1] bowlBottom [heading LEFTWARD]
|
||||||
:.arc-vh-to [RIGHTSB - turnRadius] bowlBottom
|
}
|
||||||
:.line-to [SB * 1.25 + HALFSTROKE * 0.1] bowlBottom
|
|
||||||
:.heads-to LEFTWARD
|
|
||||||
|
|
||||||
include : create-stroke
|
include : create-stroke
|
||||||
:.start-from [SB * 1.25] 0
|
:.start-from [SB * 1.25] 0
|
||||||
|
@ -693,6 +685,7 @@ alias 'smcpH' 0x29C 'cyren'
|
||||||
alias 'latiniota' 0x269 'iota'
|
alias 'latiniota' 0x269 'iota'
|
||||||
alias 'revlatinepsilon' 0x25C 'cyrze'
|
alias 'revlatinepsilon' 0x25C 'cyrze'
|
||||||
# Turned glyphs
|
# Turned glyphs
|
||||||
|
turned nothing 0x2C6F 'A' MIDDLE [CAP / 2]
|
||||||
turned nothing 0x250 'a' MIDDLE [XH / 2]
|
turned nothing 0x250 'a' MIDDLE [XH / 2]
|
||||||
turned nothing 0x252 'scripta' MIDDLE [XH / 2]
|
turned nothing 0x252 'scripta' MIDDLE [XH / 2]
|
||||||
turned nothing 0x186 'C' MIDDLE [CAP / 2]
|
turned nothing 0x186 'C' MIDDLE [CAP / 2]
|
||||||
|
@ -702,6 +695,7 @@ turned nothing 0x1DD 'e' MIDDLE [XH / 2]
|
||||||
turned 'schwa' 0x259 'e' MIDDLE [XH / 2]
|
turned 'schwa' 0x259 'e' MIDDLE [XH / 2]
|
||||||
turned nothing 0x1D77 'g' MIDDLE [mix DESCENDER XH 0.5]
|
turned nothing 0x1D77 'g' MIDDLE [mix DESCENDER XH 0.5]
|
||||||
turned nothing 0x265 'h' MIDDLE [XH / 2] pMarks
|
turned nothing 0x265 'h' MIDDLE [XH / 2] pMarks
|
||||||
|
turned nothing 0xA7B0 'K' MIDDLE [CAP / 2]
|
||||||
turned nothing 0x29E 'k' MIDDLE [XH / 2] pMarks
|
turned nothing 0x29E 'k' MIDDLE [XH / 2] pMarks
|
||||||
turned nothing 0x26F 'm' MIDDLE [XH / 2]
|
turned nothing 0x26F 'm' MIDDLE [XH / 2]
|
||||||
turned nothing 0x279 'r' MIDDLE [XH / 2] [anchorDeriv eMarks (.anchors (.bottomright (.x RIGHTSB - RBALANCE .y 0)))]
|
turned nothing 0x279 'r' MIDDLE [XH / 2] [anchorDeriv eMarks (.anchors (.bottomright (.x RIGHTSB - RBALANCE .y 0)))]
|
||||||
|
|
|
@ -70,6 +70,16 @@ create-glyph 'tbar' : glyph-construction {
|
||||||
include glyphs.t AS_BASE
|
include glyphs.t AS_BASE
|
||||||
include : HOverlayBar [[mix MIDDLE SB 0.7] - TBALANCE * 0.5] [[mix MIDDLE RIGHTSB 0.7] - TBALANCE * 0.5] [mix 0 XH 0.6]
|
include : HOverlayBar [[mix MIDDLE SB 0.7] - TBALANCE * 0.5] [[mix MIDDLE RIGHTSB 0.7] - TBALANCE * 0.5] [mix 0 XH 0.6]
|
||||||
}
|
}
|
||||||
|
create-glyph 'Cbar' : glyph-construction {
|
||||||
|
assign-unicode 0xA792
|
||||||
|
include glyphs.C AS_BASE
|
||||||
|
include : HOverlayBar [SB * 0.3] [mix [SB + STROKE] [RIGHTSB - STROKE] 0.55] [CAP * BARPOS]
|
||||||
|
}
|
||||||
|
create-glyph 'cbar' : glyph-construction {
|
||||||
|
assign-unicode 0xA793
|
||||||
|
include glyphs.c AS_BASE
|
||||||
|
include : HOverlayBar [SB * 0.3] [mix [SB + STROKE] [RIGHTSB - STROKE] 0.55] [XH * BARPOS]
|
||||||
|
}
|
||||||
# Dotted
|
# Dotted
|
||||||
create-glyph 'Ldot' : glyph-construction {
|
create-glyph 'Ldot' : glyph-construction {
|
||||||
assign-unicode 0x13F
|
assign-unicode 0x13F
|
||||||
|
|
|
@ -715,6 +715,24 @@ create-glyph 'longBarOver' : glyph-construction {
|
||||||
set-anchor 'overlay' MARK markMiddle [XH / 2] markMiddle [XH / 2]
|
set-anchor 'overlay' MARK markMiddle [XH / 2] markMiddle [XH / 2]
|
||||||
include : HOverlayBar [[mix 0 SB 0.5] - WIDTH] [[mix WIDTH RIGHTSB 0.5] - WIDTH] [XH / 2]
|
include : HOverlayBar [[mix 0 SB 0.5] - WIDTH] [[mix WIDTH RIGHTSB 0.5] - WIDTH] [XH / 2]
|
||||||
}
|
}
|
||||||
|
create-glyph 'slashOver' : glyph-construction {
|
||||||
|
set-width 0
|
||||||
|
assign-unicode 0x337
|
||||||
|
set-anchor 'slash' MARK markMiddle [XH / 2] markMiddle [XH / 2]
|
||||||
|
include : create-stroke
|
||||||
|
:.start-from [[mix 0 SB 0.5] - WIDTH] [XH * 0.25]
|
||||||
|
:.set-width markHalfStroke markHalfStroke
|
||||||
|
:.line-to [[mix WIDTH RIGHTSB 0.5] - WIDTH] [XH * 0.75]
|
||||||
|
}
|
||||||
|
create-glyph 'longSlashOver' : glyph-construction {
|
||||||
|
set-width 0
|
||||||
|
assign-unicode 0x338
|
||||||
|
set-anchor 'slash' MARK markMiddle [XH / 2] markMiddle [XH / 2]
|
||||||
|
include : create-stroke
|
||||||
|
:.start-from [[mix 0 SB 0.5] - WIDTH] [XH * 0.1]
|
||||||
|
:.set-width markHalfStroke markHalfStroke
|
||||||
|
:.line-to [[mix WIDTH RIGHTSB 0.5] - WIDTH] [XH * 0.9]
|
||||||
|
}
|
||||||
# Double-character arcs
|
# Double-character arcs
|
||||||
create-glyph 'tieAbove' : glyph-construction {
|
create-glyph 'tieAbove' : glyph-construction {
|
||||||
set-width 0
|
set-width 0
|
||||||
|
|
|
@ -156,15 +156,10 @@ let : begin {
|
||||||
local cy : [XH / 2] + [RIGHTSB - MIDDLE] * [Math.sin angle]
|
local cy : [XH / 2] + [RIGHTSB - MIDDLE] * [Math.sin angle]
|
||||||
include : list : Ring [cy + fine] [cy - fine] [cx - fine] [cx + fine] true
|
include : list : Ring [cy + fine] [cy - fine] [cx - fine] [cx + fine] true
|
||||||
}
|
}
|
||||||
apply-transform : Upright
|
|
||||||
apply-transform : Translate 0 [parenMid - [XH / 2]]
|
|
||||||
apply-transform : Italify
|
|
||||||
include eMarks
|
include eMarks
|
||||||
foreach k [items-of : Object.keys this.anchors] : begin {
|
apply-transform [Upright] true
|
||||||
set this.anchors.(k) (.x [this.anchors.(k).x + [parenMid - [XH / 2]] * globalTransform.yx]
|
apply-transform [Translate 0 [parenMid - [XH / 2]]] true
|
||||||
.y [this.anchors.(k).y + [parenMid - [XH / 2]]]
|
apply-transform [Italify] true
|
||||||
.type this.anchors.(k).type )
|
|
||||||
}
|
|
||||||
include : FullWidthify
|
include : FullWidthify
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ define regular (
|
||||||
.descender [-194]
|
.descender [-194]
|
||||||
.xheight 570
|
.xheight 570
|
||||||
.barpos 0.52
|
.barpos 0.52
|
||||||
|
.overlaypos 0.52
|
||||||
.ebarpos 0.45
|
.ebarpos 0.45
|
||||||
.gbarpos 0.35
|
.gbarpos 0.35
|
||||||
.fivebarpos 0.55
|
.fivebarpos 0.55
|
||||||
|
|
|
@ -13,9 +13,7 @@ define SAMPLES 3
|
||||||
define TINY 0.001
|
define TINY 0.001
|
||||||
define LITTLE 0.01
|
define LITTLE 0.01
|
||||||
define KAPPA 0.51
|
define KAPPA 0.51
|
||||||
define COKAPPA : 1 - KAPPA
|
|
||||||
define BKAPPA : KAPPA + 0.1
|
define BKAPPA : KAPPA + 0.1
|
||||||
define COBKAPPA : COKAPPA - 0.1
|
|
||||||
define CKAPPA BKAPPA
|
define CKAPPA BKAPPA
|
||||||
|
|
||||||
define [Stroke] : begin {
|
define [Stroke] : begin {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user