All latin glyphs between U+0000 and U+02c0 are covered. Release 0.1.12.

This commit is contained in:
be5invis 2015-09-16 00:45:59 +08:00
parent ba2834ce5d
commit cd33785f09
9 changed files with 183 additions and 36 deletions

View File

@ -252,7 +252,6 @@ define [buildFont para recursive] : begin {
define [create-glyph name actions] : piecewise {
[name && actions] : begin {
if [pickHash && [not pickHash.(name)]] : return nothing
# process.stderr.write : "Building /" + name + [if recursive " (recursive)" ""] + " for " + para.family + ' ' + para.style + "\n"
set dependencyProfile`name ()
define glyphObject [new Glyph name]
glyphObject.set-width WIDTH

View File

@ -26,6 +26,8 @@ define customDecompositions (
."\u0248" "J\u0335"
."\u0249" "j\u0335"
."\u0268" "i\u0335"
."\u024C" "R\u0335"
."\u024D" "r\u0335"
."\u01B5" "Z\u0335"
."\u01B6" "z\u0335"
."\u1D7B" "\u026A\u0335"

View File

@ -385,38 +385,34 @@ define [hookend y p f dontextend] : return (.type 'interpolate' .af [lambda [bef
}])
# Derived subfonts
define [Miniature glyphs fold scale] : begin {
local forkedPara : Object.create para
forkedPara.upmscale = 1
forkedPara.stroke = [adviceBlackness fold] / scale
forkedPara.sb = SB / 2
define [Fork glyphs params] : begin {
local p : Object.create params
p.upmscale = 1
local shouldBuildList ()
foreach glyphid [items-of glyphs] : set shouldBuildList : shouldBuildList.concat (glyphid :: dependencyProfile.(glyphid))
local forkFont : buildFont forkedPara shouldBuildList
local forkFont : buildFont p shouldBuildList
return forkFont.glyfMap
}
define [Miniature glyphs fold scale] : begin {
local forkedPara : Object.create para
forkedPara.stroke = [adviceBlackness fold] / scale
forkedPara.sb = SB / 2
return : Fork glyphs forkedPara
}
define [Thinner glyphs p] : begin {
local forkedPara : Object.create para
forkedPara.upmscale = 1
forkedPara.width = WIDTH * p
local shouldBuildList ()
foreach glyphid [items-of glyphs] : set shouldBuildList : shouldBuildList.concat (glyphid :: dependencyProfile.(glyphid))
local forkFont : buildFont forkedPara shouldBuildList
return forkFont.glyfMap
return : Fork glyphs forkedPara
}
define [Widen glyphs p psb] : begin {
local forkedPara : Object.create para
forkedPara.upmscale = 1
forkedPara.width = WIDTH * p
forkedPara.sb = SB * [fallback psb p]
forkedPara.accentx = ACCENTX * p
forkedPara.jut = JUT * p
forkedPara.longjut = LONGJUT * p
forkedPara.hookx = HOOKX * p
local shouldBuildList ()
foreach glyphid [items-of glyphs] : set shouldBuildList : shouldBuildList.concat (glyphid :: dependencyProfile.(glyphid))
local forkFont : buildFont forkedPara shouldBuildList
return forkFont.glyfMap
return : Fork glyphs forkedPara
}
define [turned newid unicode id x y mark] : create-glyph [fallback newid : 'turn' + id] : glyph-construction {
if unicode : assign-unicode unicode

View File

@ -275,6 +275,7 @@ create-glyph 'R' : glyph-construction {
assign-unicode 'R'
include capitalMarks
include : RShape CAP
set-anchor 'overlay' BASE [SB + STROKE * CORRECTION_HX] [CAP * 0.55 - HALFSTROKE]
}
### C G O zero Q U

View File

@ -8,25 +8,26 @@ create-glyph 'o' : glyph-construction {
include : smallo XH 0 SB RIGHTSB
}
define [oLeft] : glyph-construction {
define [oLeft _top] : glyph-construction {
local top : fallback _top XH
include : spiro {
widths.lhs
g4 [MIDDLE - CORRECTION_OMIDS + HALFSTROKE / 4] XO
g4 [MIDDLE - CORRECTION_OMIDS + HALFSTROKE / 4] [top - O]
archv
flat [SB + HALFSTROKE * CORRECTION_HX] [XH - SMALLSMOOTHA] [widths HALFSTROKE 0]
flat [SB + HALFSTROKE * CORRECTION_HX] [top - SMALLSMOOTHA] [widths HALFSTROKE 0]
curl [SB + HALFSTROKE * CORRECTION_HX] [0 + SMALLSMOOTHB] [widths HALFSTROKE 0]
arcvh
g4 [MIDDLE + CORRECTION_OMIDS + HALFSTROKE / 4] O [widths STROKE 0]
archv
flat [RIGHTSB - O] [0 + SMALLSMOOTHA]
curl [RIGHTSB - O] [XH - SMALLSMOOTHB]
curl [RIGHTSB - O] [top - SMALLSMOOTHB]
arcvh
close
}
}
define [oRight] : glyph-construction {
include : create-glyph [oLeft]
include : FlipAround MIDDLE [XH / 2]
define [oRight top] : glyph-construction {
include : create-glyph [oLeft top]
include : FlipAround MIDDLE [[fallback top XH] / 2]
}
create-glyph 'p' : glyph-construction {
set-width WIDTH
@ -658,12 +659,8 @@ create-glyph 'r' : glyph-construction {
flat barright [XH - SMALLSMOOTHA] [widths 0 [STROKE * 0.3]]
curl barright [XH - SMALLSMOOTHA - 1]
}
include : create-stroke
:.start-from [SB + RBALANCE] 0
:.heads-to UPWARD
:.set-width 0 STROKE
:.line-to [SB + RBALANCE] XH
:.heads-to UPWARD
include : VBarLeft [SB + RBALANCE] 0 XH
set-anchor 'overlay' BASE [SB + RBALANCE + STROKE * CORRECTION_HX] [XH * 0.5]
}
### f

View File

@ -152,6 +152,37 @@ create-glyph 'pq' : glyph-construction {
include : VBar MIDDLE DESCENDER [XH / 2] MVERTSTROKE
}
create-glyph 'OU' : glyph-construction {
assign-unicode 0x222
include capitalMarks
include : smallo [CAP * BARPOS + HALFSTROKE] 0 SB RIGHTSB nothing SMOOTHA SMOOTHB
include : spiro {
widths.lhs
flat SB CAP [heading DOWNWARD]
curl SB [CAP * BARPOS - O - HALFSTROKE + SMOOTHB]
arcvh
g4 [MIDDLE + CORRECTION_OMIDS] [CAP * BARPOS - O - HALFSTROKE]
archv
flat RIGHTSB [CAP * BARPOS - O - HALFSTROKE + SMOOTHA]
curl RIGHTSB CAP [heading UPWARD]
}
}
create-glyph 'ou' : glyph-construction {
assign-unicode 0x223
include bMarks
include : smallo XH 0 SB RIGHTSB
include : spiro {
widths.lhs
flat SB CAP [heading DOWNWARD]
curl SB [XH - O - STROKE + SMOOTHB]
arcvh
g4 [MIDDLE + CORRECTION_OMIDS] [XH - O - STROKE]
archv
flat RIGHTSB [XH - O - STROKE + SMOOTHA]
curl RIGHTSB CAP [heading UPWARD]
}
}
create-glyph 'Eth' : glyph-construction {
assign-unicode 0xD0
@ -565,6 +596,35 @@ create-glyph 'wynn' : glyph-construction {
include pMarks
include : WynnShape DESCENDER XH
}
define [YoghShape top bot] : glyph-construction {
include : spiro {
widths.rhs
g4 SB [top - HOOK]
hookstart top
g4 RIGHTSB [top - SMOOTHB]
alsothruthem ((0.5 0.75)) important
g4 [mix SB RIGHTSB 0.1] [mix bot top 0.4]
}
include : spiro {
widths.rhs
g4 [mix SB RIGHTSB 0.75] [mix bot [top - SMOOTHB] 0.75] [widths.heading 0 [STROKE * 1.25] DOWNWARD]
g4 RIGHTSB [[mix bot [top - SMOOTHB] 0.475] + 1] [widths 0 STROKE]
g4 RIGHTSB [[mix bot [top - SMOOTHB] 0.475] - 1]
alsothruthem ((0.25 0.6) (0.5 0.81))
g4 SB [bot + O]
}
}
create-glyph 'Yogh' : glyph-construction {
assign-unicode 0x21C
include capitalMarks
include : YoghShape CAP 0
}
create-glyph 'yogh' : glyph-construction {
assign-unicode 0x21D
include pMarks
include : YoghShape XH DESCENDER
}
# Latinified greek letters
create-glyph 'latinupsilon1' : glyph-construction {
assign-unicode 0x28A

View File

@ -468,6 +468,19 @@ create-glyph 'hltail' : glyph-construction {
include glyphs.h
include : VerticalHook [RIGHTSB - HALFSTROKE * CORRECTION_HX] 0 [-HOOKX] HOOK
}
create-glyph 'hookturnh' : glyph-construction {
assign-unicode 0x2AE
include : nShoulder [SB + STROKE * CORRECTION_HX] [mix SB RIGHTSB 0.5] RIGHTSB [STROKE * 0.4] XH [HOOK + HALFSTROKE + 1] SMOOTHA SMOOTHB
include : VBarLeft SB 0 CAP
include : create-glyph : glyph-construction {
include glyphs.rtailBR
apply-transform : Upright
apply-transform : Translate RIGHTSB [HOOK + HALFSTROKE]
apply-transform : Italify
}
include : FlipAround MIDDLE [XH / 2]
include pMarks
}
# Right-tail
create-glyph 'srtail' : glyph-construction {
assign-unicode 0x282
@ -529,6 +542,49 @@ create-glyph 'ezhtail' : glyph-construction {
:.arc-vh-to [mix SB RIGHTSB 0.4] [DESCENDER + STROKE]
:.line-to RIGHTSB [DESCENDER + STROKE]
}
create-glyph 'Qrtail' : glyph-construction {
assign-unicode 0x24A
include capitalMarks
include : oRight CAP
include : VBarRight RIGHTSB 0 CAP
include : create-glyph : glyph-construction {
include glyphs.rtailBR
apply-transform : Upright
apply-transform : Translate RIGHTSB 0
apply-transform : Italify
}
}
create-glyph 'qrtail' : glyph-construction {
assign-unicode 0x24B
include eMarks
include : oRight
include : VBarRight RIGHTSB 0 XH
include : create-glyph : glyph-construction {
include glyphs.rtailBR
apply-transform : Upright
apply-transform : Translate RIGHTSB 0
apply-transform : Italify
}
}
create-glyph 'hookturnhrtail' : glyph-construction {
assign-unicode 0x2AF
include : nShoulder [SB + STROKE * CORRECTION_HX] [mix SB RIGHTSB 0.5] RIGHTSB [STROKE * 0.4] XH [HOOK + HALFSTROKE + 1] SMOOTHA SMOOTHB
include : VBarLeft SB 0 [XH - 1]
include : create-glyph : glyph-construction {
include glyphs.rtailBR
apply-transform : Upright
apply-transform : Translate RIGHTSB [HOOK + HALFSTROKE]
apply-transform : Italify
}
include : FlipAround MIDDLE [XH / 2]
include : create-glyph : glyph-construction {
include glyphs.rtailBR
apply-transform : Upright
apply-transform : Translate RIGHTSB 0
apply-transform : Italify
}
include pMarks
}
# Downtail
create-glyph 'Zdtail' : glyph-construction {
assign-unicode 0x224
@ -876,6 +932,30 @@ create-glyph 'ltildeover' : glyph-construction {
apply-transform : Italify
}
}
# Double stack
if [not recursive]: create-glyph 'ww' : glyph-construction {
assign-unicode 0x2AC
local p : Object.create para
p.xheight = CAP / 2
local forked : Fork ('w') p
include forked.w
apply-transform : Upright
apply-transform : Translate 0 [CAP / 2]
apply-transform : Italify
include forked.w
}
create-glyph 'bidentalpercussive' : glyph-construction {
assign-unicode 0x2AD
local g : create-glyph : glyph-construction {
include : HBarTop SB RIGHTSB [CAP * 0.4]
include : VBarLeft SB [CAP * 0.1] [CAP * 0.4]
include : VBarRight RIGHTSB [CAP * 0.1] [CAP * 0.4]
}
include g
apply-transform : Upright
apply-transform : Translate 0 [CAP / 2]
apply-transform : Italify
include g
}
# Turned glyphs
turned nothing 0x27A 'rlongleg' MIDDLE [XH / 2] [anchorDeriv bMarks (.anchors (.bottomright (.type BASE .x RIGHTSB - RBALANCE .y 0)))]

View File

@ -815,16 +815,28 @@ create-glyph 'rtailBR' : glyph-construction {
assign-unicode 0x322
set-anchor 'bottomright' MARK 0 0 0 belowMarkBot
include : VBarRight 0 0 [-O]
include : VerticalHook [- HALFSTROKE * CORRECTION_HX] 0 HOOKX HOOK
include : spiro {
widths.rhs
flat 0 [-O]
curl 0 0
arcvh
flat [HOOKX - HALFSTROKE * CORRECTION_HX - 0.1] [-HOOK + HALFSTROKE]
curl [HOOKX - HALFSTROKE * CORRECTION_HX] [-HOOK + HALFSTROKE]
}
}
create-glyph 'ltailBR' : glyph-construction {
set-width 0
assign-unicode 0x321
set-anchor 'bottomright' MARK 0 0 0 belowMarkBot
include : VBarRight 0 0 [-O]
include : VerticalHook [- HALFSTROKE * CORRECTION_HX] 0 [-HOOKX] HOOK
include : spiro {
widths.rhs
flat 0 [-O]
curl 0 0
arcvh
flat [-HOOKX - HALFSTROKE * CORRECTION_HX + 0.1] [-HOOK - HALFSTROKE]
curl [-HOOKX - HALFSTROKE * CORRECTION_HX] [-HOOK - HALFSTROKE]
}
}
# Overlay Marks
create-glyph 'tildeOver' : glyph-construction {

View File

@ -45,7 +45,7 @@ define regular (
.family 'Iosevka'
.style 'Regular'
.weight 400
.version 'r0.1.11'
.version 'r0.1.12'
.variantSelector (.)
.copyright 'Copyright (c) 2015 Belleve Invis.'
)