Added /Yhooktop, /gha, etc.

This commit is contained in:
be5invis 2015-09-07 02:16:06 +08:00
parent 73866134f8
commit 0e85ee5079
7 changed files with 154 additions and 39 deletions

View File

@ -35,6 +35,7 @@ define customDecompositions (
."\u0289" "u\u0336"
."\u0244" "U\u0336"
."\u01E5" "g\u0336"
."\u01BB" "2\u0336"
."\u0290" "z\u0322"
."\u0256" "d\u0322"

View File

@ -137,12 +137,7 @@ define [YShape top] : glyph-construction {
local cross [top * 0.4]
include : halfXStrand SB top MIDDLE cross 0.1 0.4 0.28
include : halfXStrand RIGHTSB top MIDDLE cross 0.1 0.4 0.28
include : create-stroke
:.start-from MIDDLE 0
:.set-width HALFSTROKE HALFSTROKE
:.heads-to UPWARD
:.line-to MIDDLE [cross + HALFSTROKE]
:.heads-to UPWARD
include : VBar MIDDLE 0 [cross + HALFSTROKE]
}
create-glyph 'Y' : glyph-construction {
set-width WIDTH
@ -151,24 +146,12 @@ create-glyph 'Y' : glyph-construction {
include : YShape CAP
}
create-glyph 'K' : glyph-construction {
set-width WIDTH
assign-unicode 'K'
include capitalMarks
define [KShape] : glyph-construction {
local TURN [CAP * 0.95]
local rturn [XH * 0.1]
local right [RIGHTSB - O]
local fine : adviceBlackness 3.5
include : create-stroke
:.start-from SB 0
:.set-width 0 STROKE
:.heads-to UPWARD
:.line-to SB CAP
:.heads-to UPWARD
include : create-stroke
:.start-from RIGHTSB CAP
:.heads-to DOWNWARD
@ -184,7 +167,13 @@ create-glyph 'K' : glyph-construction {
:.set-width HALFSTROKE HALFSTROKE
:.curve-to [right - HALFSTROKE] [rturn + 0.2 * [XH - rturn]] MIDDLE [CAPMIDDLE + HALFSTROKE]
:.set-width [fine / 2] [fine / 2]
}
create-glyph 'K' : glyph-construction {
set-width WIDTH
assign-unicode 'K'
include capitalMarks
include : VBarLeft SB 0 CAP
include : KShape
}
### B D P R
@ -246,26 +235,27 @@ create-glyph 'D' : glyph-construction {
curl [SB - O] 0 [heading LEFTWARD]
}
}
define [PShape top] : glyph-construction {
define [PShape top _mul bp] : glyph-construction {
local mul : fallback _mul 1.25
local bowlTop [top * 1]
local bowlBottom [[top - STROKE] * 0.55 - HALFSTROKE]
local bowlBottom [[top - STROKE] * [fallback bp 0.55] - HALFSTROKE]
local turn : mix bowlTop bowlBottom [SMOOTHB / [SMOOTHA + SMOOTHB]]
local turnRadius : [bowlTop - bowlBottom] * 0.45
include : spiro {
widths.rhs
flat [SB * 1.25 - O] bowlTop [heading RIGHTWARD]
flat [SB * mul - O] bowlTop [heading RIGHTWARD]
curl [RIGHTSB - turnRadius - CORRECTION_OMIDS] bowlTop
archv
g4 [RIGHTSB - O] turn
arcvh
flat [RIGHTSB - turnRadius + CORRECTION_OMIDS] bowlBottom
curl [SB * 1.25 - O] bowlBottom [heading LEFTWARD]
curl [SB * mul - O] bowlBottom [heading LEFTWARD]
}
include : VBarLeft [SB * 1.25] 0 top
include : VBarLeft [SB * mul] 0 top
}
define [RShape top] : glyph-construction {
include : PShape top
include : PShape top 1
local TURN [XH * 0.1]
local right [RIGHTSB - O]
include : create-stroke
@ -337,7 +327,7 @@ create-glyph 'O' : glyph-construction {
assign-unicode 'O'
include capitalMarks
include : smallo CAP 0 [SB - O] [RIGHTSB + O] nothing SMOOTHA SMOOTHB
include : smallo CAP 0 SB RIGHTSB nothing SMOOTHA SMOOTHB
}
create-glyph 'Q' : glyph-construction {

View File

@ -93,9 +93,9 @@ create-glyph 'g' : glyph-construction {
local groundy : [mix DESCENDER [XH * GBARPOS] 0.7] + HALFSTROKE
include : spiro {
g4 [mix SB RIGHTSB 0.3] [mix XH [XH * GBARPOS - O] 0.95] [widths 0 [STROKE * 0.7]]
alsothru [-0.6] 0.5 [widths 0 [STROKE * 0.95]]
flat [mix SB RIGHTSB 0.425] groundy [widths 0 STROKE]
curl [mix RIGHTSB SB 0.425] groundy
alsothru [-1.2] 0.5 [widths HALFSTROKE HALFSTROKE]
flat [mix SB RIGHTSB 0.435] groundy [widths 0 STROKE]
curl [mix RIGHTSB SB 0.435] groundy
archv 4
g4 grightx [mix [DESCENDER + O] groundy 0.53]
arcvh
@ -103,7 +103,7 @@ create-glyph 'g' : glyph-construction {
archv
g4 gleftx [mix [DESCENDER + O] groundy 0.53]
arcvh
g4 [mix SB RIGHTSB 0.425] groundy
g4 [mix SB RIGHTSB 0.435] groundy
}
start-from [RIGHTSB + 0.25 * SB] XH
line-to [RIGHTSB + 0.25 * SB] [XH - STROKE]
@ -221,9 +221,9 @@ create-glyph 'a.upright' : glyph-construction {
dont-export
include eMarks
set-anchor 'trailing' BASE [RIGHTSB - markHalfStroke] 0
local bartop [XH * BARPOS + HALFSTROKE]
local bartop [XH * BARPOS * 1.02 + HALFSTROKE]
local lowmiddle : mix SB [RIGHTSB - STROKE] [linreg 80 0.55 120 0.65 STROKE]
local barsmooth : mix SB RIGHTSB 0.6
local barsmooth : mix SB RIGHTSB 0.65
include : spiro {
widths.lhs
flat RIGHTSB 0 [heading UPWARD]
@ -236,7 +236,7 @@ create-glyph 'a.upright' : glyph-construction {
flat [RIGHTSB + O] bartop [heading LEFTWARD]
curl barsmooth bartop
archv
g4 [SB + O] [bartop * 0.45]
g4 [SB + O] [bartop * 0.475]
arcvh 16
g4 [lowmiddle + CORRECTION_OMIDS] O
archv

View File

@ -91,10 +91,10 @@ define aeepart : glyph-construction {
}
define aeapart : glyph-construction {
local bartop [XH * BARPOS + HALFSTROKE]
local bartop [XH * BARPOS * 1.02 + HALFSTROKE]
local abarRight : MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX
local lowmiddle : [mix [SB + MVERTSTROKE] [abarRight - MVERTSTROKE] 0.5] + MVERTSTROKE * globalTransform.yx
local barsmooth : mix SB abarRight 0.6
local barsmooth : mix SB abarRight 0.7
local sma : SMALLSMOOTHA * 0.6
local smb : SMALLSMOOTHB * 0.6
@ -108,14 +108,13 @@ define aeapart : glyph-construction {
arcvh
g4 lowmiddle O
archv
g4 [SB + O * 2] [mix 0 bartop [smb / [sma + smb]]]
g4 [SB + O * 2] [mix 0 bartop 0.5]
arcvh
flat barsmooth bartop
curl [abarRight - 1] bartop [heading RIGHTWARD]
}
}
define oeopart : glyph-construction {
local abarRight : MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX
include : smallo XH 0 [SB + O] [abarRight + O] MVERTSTROKE [SMALLSMOOTHA * 0.6] [SMALLSMOOTHB * 0.6]
}
@ -414,6 +413,57 @@ create-glyph 'hwair' : glyph-construction {
}
}
create-glyph 'Gha' : glyph-construction {
assign-unicode 0x1A2
include capitalMarks
local abarRight : MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX
include : smallo CAP 0 [SB + O] abarRight MVERTSTROKE [SMALLSMOOTHA * 0.6] [SMALLSMOOTHB * 0.6]
include : VBarRight [RIGHTSB - O * 2] DESCENDER CAP MVERTSTROKE
include : spiro {
widths.lhs MVERTSTROKE
flat MIDDLE [CAP - SMALLSMOOTHB * 0.6] [heading RIGHTWARD]
curl [MIDDLE + 1] [CAP - SMALLSMOOTHB * 0.6] [heading RIGHTWARD]
alsothru 0.5 0.15
g4 [RIGHTSB - MVERTSTROKE * CORRECTION_HX] CAP [widths 0 MVERTSTROKE]
}
}
create-glyph 'gha' : glyph-construction {
assign-unicode 0x1A3
include pMarks
local abarRight : MIDDLE + MVERTSTROKE / 2 * CORRECTION_HX
include : smallo XH 0 [SB + O] abarRight MVERTSTROKE [SMALLSMOOTHA * 0.6] [SMALLSMOOTHB * 0.6]
include : VBarRight [RIGHTSB - O * 2] DESCENDER XH MVERTSTROKE
include : spiro {
widths.lhs MVERTSTROKE
flat MIDDLE [XH - SMALLSMOOTHB * 0.6] [heading RIGHTWARD]
curl [MIDDLE + 1] [XH - SMALLSMOOTHB * 0.6] [heading RIGHTWARD]
alsothru 0.5 0.15
g4 [RIGHTSB - MVERTSTROKE * CORRECTION_HX] XH [widths 0 MVERTSTROKE]
}
}
create-glyph 'looprevesh' : glyph-construction {
assign-unicode 0x1AA
include ifMarks
local fine : adviceBlackness 5
include : spiro {
widths.center fine
g4 MIDDLE [CAP - fine * 1.5] [heading DOWNWARD]
arcvh
g4 [MIDDLE - fine * 1] [CAP - fine * 2.5] [heading LEFTWARD]
archv
g4 [MIDDLE - fine * 2] [CAP - fine * 1.5] [heading UPWARD]
arcvh
g4 [MIDDLE - fine * 1] [CAP - fine * 0.5] [heading RIGHTWARD]
archv
flat MIDDLE [CAP - fine * 1.5] [widths.heading HALFSTROKE HALFSTROKE DOWNWARD]
curl MIDDLE 0 [heading DOWNWARD]
arcvh
g4 [MIDDLE + HOOKX] [-HOOK] [heading RIGHTWARD]
}
}
create-glyph 'scripta' : glyph-construction {
assign-unicode 0x0251
include eMarks
@ -637,6 +687,23 @@ create-glyph 'reve' : glyph-construction {
include : RevSmallEShape XH STROKE
}
create-glyph 'Yr' : glyph-construction {
assign-unicode 0x1A6
include ifMarks
local top : CAP * 0.85
local bp 0.45
include : PShape top 1 bp
include : VBarLeft SB [top - 1] CAP
local TURN [XH * 0.1]
local right [RIGHTSB - O]
include : create-stroke
:.start-from [right - HALFSTROKE] DESCENDER
:.heads-to UPWARD
:.set-width HALFSTROKE HALFSTROKE
:.curve-to [right - HALFSTROKE] [mix [DESCENDER + TURN] top 0.2] MIDDLE [[top - STROKE] * bp]
}
# Glottalstop
create-glyph 'glottalstop' : glyph-construction {
assign-unicode 0x294

View File

@ -233,6 +233,20 @@ create-glyph 'phooktop' : glyph-construction {
include : oLeft
include : HooktopLeftBar nothing DESCENDER
}
create-glyph 'Khooktop' : glyph-construction {
assign-unicode 0x198
include capitalMarks
include : KShape
include : VBarLeft SB 0 [CAP - HOOK - HALFSTROKE]
include : VerticalHook [SB + HALFSTROKE * CORRECTION_HX] [CAP - HOOK - HALFSTROKE] HOOKX [-HOOK]
}
create-glyph 'khooktop' : glyph-construction {
assign-unicode 0x199
include bMarks
include : SmallKShape
include : VBarLeft SB 0 [CAP - HOOK - HALFSTROKE]
include : VerticalHook [SB + HALFSTROKE * CORRECTION_HX] [CAP - HOOK - HALFSTROKE] HOOKX [-HOOK]
}
create-glyph 'scriptghooktop' : glyph-construction {
assign-unicode 0x260
include glyphs.scriptg AS_BASE
@ -367,6 +381,47 @@ create-glyph 'whooktop' : glyph-construction {
line-to m2 bottomStroke
include : VerticalHook [RIGHTSB - HALFSTROKE * CORRECTION_HX] [XH - HOOK] [HOOKX * 0.65] [-HOOK + HALFSTROKE]
}
create-glyph 'Yhooktop' : glyph-construction {
assign-unicode 0x1B3
include capitalMarks
local cross [CAP * 0.4]
local TURN [mix cross CAP 0.9]
include : halfXStrand SB CAP MIDDLE cross 0.1 0.4 0.28
local x1 : RIGHTSB - HOOKX / 3
local x2 : mix MIDDLE RIGHTSB 0.52
local y1 : TURN - HOOK
local y2 : mix cross CAP 0.3
include : create-stroke
:.start-from [RIGHTSB + HOOKX / 4] [CAP - STROKE]
:.set-width 0 STROKE
:.curve-to [linreg y1 x1 y2 x2 [CAP - STROKE]] [CAP - STROKE] x1 y1
:.curve-to x2 y2 [MIDDLE + STROKE / 2 * CORRECTION_HX] cross
include : VBar MIDDLE 0 [cross + HALFSTROKE]
}
create-glyph 'yhooktop' : glyph-construction {
assign-unicode 0x1B4
include pMarks
local xbottom : mix SB RIGHTSB 0.28
local turnp : XH / [XH - DESCENDER]
local xb : mix SB RIGHTSB 0.49
local yb : mix 0 XH [0.05 * turnp]
# include : xStrand xbottom DESCENDER RIGHTSB XH 0.1 0.6 0.14
include : spiro {
widths.center
flat [xbottom + HALFSTROKE * CORRECTION_HX] DESCENDER [heading UPWARD]
curl [xbottom + HALFSTROKE * CORRECTION_HX] [DESCENDER + 1] [heading UPWARD]
alsothruthem ((0 0.05) (0.1 0.19) (0.2125 0.33) (0.44 0.6) (0.93 0.98)) important
g2 [RIGHTSB - HOOKX / 6] [mix DESCENDER [XH - HALFSTROKE] 0.98]
flat [RIGHTSB + HOOKX / 4 - 1] [XH - HALFSTROKE]
curl [RIGHTSB + HOOKX / 4] [XH - HALFSTROKE]
}
include : halfXStrand SB XH xb yb [0.1 * turnp] 0.4 [0.14 * turnp]
}
# Left-tail
create-glyph 'fltail' : glyph-construction {
assign-unicode 0x192

View File

@ -42,6 +42,8 @@ $(OBJDIR)/.pass0-iosevkacc-bolditalic.ttf : $(FILES) | $(OBJDIR)
$(ABFEAT) : $(OBJDIR)/.pass0-%.ab.fea : $(OBJDIR)/.pass0-%.ttf
-@echo Autobuild feature $@ from $<
$(MAPS) : $(OBJDIR)/%.charmap : $(OBJDIR)/.pass0-%.ttf
-@echo Autobuild CM $@ from $<
$(FEATURE) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.fea
cat $^ > $@

View File

@ -224,7 +224,7 @@
];
var sampleSentences = [
{lang: 'English', sample: 'Shaw, those twelve beige hooks are joined if I patch a young, gooey mouth. Bl̓ood of m̧y ḃlȯod.'},
{lang: 'English', sample: 'Quirky spud boys can jam after zapping five worthy Polysixes.'},
{lang: 'IPA', sample: '*ɢʷəʔ nraʔ lˁoŋ t.qʰa ʑi̪ə'},
{lang: 'Powerline', sample: '<span style="background:black;color:white"> NORMAL </span><span style="background:#ccc;color:black;font-style:normal">\uE0B0</span><span style="background:#ccc;color:black"> <span style="font-style:normal">\uE0A0</span> master <span style="font-style:normal">\uE0B1</span> glyphs/powerline.patel </span><span style="background:#eee;color:#ccc;font-style:normal">\uE0B0</span><span style="background:#eee;color:#555"> dos <span style="font-style:normal">\uE0B3</span> utf-8 <span style="font-style:normal">\uE0B3</span> PatEL </span><span style="background:#eee;color:#ccc;font-style:normal">\uE0B2</span><span style="background:#ccc"> 2% </span><span style="background:#ccc;color:black;font-style:normal">\uE0B2</span><span style="color:white;background:black"> \uE0A1 1:1 </span>'},
{lang: 'Bulgarian', sample: 'Я, пазачът Вальо уж бди, а скришом хапва кюфтенца зад щайгите.'},