added /revEzh, /revezh, /latinGamma, /latinepsilon, /latinEpsilon, ...

This commit is contained in:
be5invis 2015-08-16 01:58:15 +08:00
parent 679a7f5004
commit db421daba8
7 changed files with 172 additions and 39 deletions

View file

@ -284,7 +284,7 @@ createSuperscripts : list {
list 0x207D 'parenLeft'
list 0x207E 'parenRight'
list 0x02B0 'h'
list 0x02B1 'hooktoph'
list 0x02B1 'hhooktop'
list 0x02B2 'j'
list 0x02B3 'r'
list 0x02B4 'turnr'

View file

@ -196,6 +196,7 @@ define [XSHookUpper top left _middle right smooth hook _stroke] : glyph-construc
:.arc-hv-to left [top - smooth]
}
define [sHookUpper top smooth hook _middle _stroke] : XSHookUpper top SB _middle RIGHTSB smooth hook _stroke
define [CHookUpper top smooth hook _middle _stroke] : XSHookUpper top [SB + O] _middle RIGHTSB smooth hook _stroke
define [twoHookUpper top smooth hook _middle _stroke] : XSHookUpper top RIGHTSB _middle SB smooth hook _stroke
define [XSHookLower bottom left _middle right smooth hook _stroke] : glyph-construction {
local middle : fallback _middle [mix left right SBALANCE]
@ -208,7 +209,8 @@ define [XSHookLower bottom left _middle right smooth hook _stroke] : glyph-const
:.curve-to [mix middle left KAPPA_HOOK] [bottom + O] [left + OXHOOK] [bottom + hook]
}
define [sHookLower bottom smooth hook _middle _stroke] : XSHookLower bottom SB _middle RIGHTSB smooth hook _stroke
define [EHookLower bottom smooth hook _middle _stroke _o] : XSHookLower bottom [RIGHTSB + TAILADJX * globalTransform.yx] _middle [SB + [fallback _o O]] smooth [hook - TAILADJY * globalTransform.yx] _stroke
define [EHookLower bottom smooth hook _middle _stroke _o] : XSHookLower bottom [RIGHTSB - O + TAILADJX * globalTransform.yx] _middle [SB + [fallback _o O]] smooth [hook - TAILADJY * globalTransform.yx] _stroke
define [CHookLower bottom smooth hook _middle _stroke _o] : XSHookLower bottom [RIGHTSB + TAILADJX * globalTransform.yx] _middle [SB + [fallback _o O]] smooth [hook - TAILADJY * globalTransform.yx] _stroke
define [RevEHookLower bottom smooth hook _middle _stroke _o] : XSHookLower bottom SB _middle [RIGHTSB - [fallback _o O]] smooth hook _stroke
define [smallo u d l r _width _sma _smb] : glyph-construction {
@ -310,6 +312,15 @@ define [Miniature glyphs fold scale] : begin {
local forkFont : buildFont forkedPara shouldBuildList
return forkFont.glyfMap
}
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
}
define [turned newid unicode id x y mark] : create-glyph [fallback newid : 'turn' + id] : glyph-construction {
if unicode : assign-unicode unicode
include glyphs`id [if mark false AS_BASE]

View file

@ -187,14 +187,12 @@ create-glyph 'alpha' : glyph-construction {
:.set-width fine 0
:.heads-to DOWNWARD
}
create-glyph 'iota' : glyph-construction {
assign-unicode 0x3B9
include eMarks
define [IotaShape top] : glyph-construction {
local middle MIDDLE
set-anchor 'above' BASE middle XH
include : leftwardTopSerif middle XH LONGJUT
set-anchor 'above' BASE middle top
include : leftwardTopSerif middle top LONGJUT
include : create-stroke
:.start-from middle XH
:.start-from middle top
:.heads-to DOWNWARD
:.set-width HALFSTROKE HALFSTROKE
:.line-to middle HOOK
@ -202,6 +200,11 @@ create-glyph 'iota' : glyph-construction {
:.line-to [middle + LONGJUT * 1.05] HALFSTROKE
:.heads-to RIGHTWARD
}
create-glyph 'iota' : glyph-construction {
assign-unicode 0x3B9
include eMarks
include : IotaShape XH
}
create-glyph 'eta' : glyph-construction {
assign-unicode 0x3B7
include pMarks

View file

@ -107,8 +107,8 @@ create-glyph 'c' : glyph-construction {
assign-unicode 'c'
include eMarks
include : EHookLower 0 SMALLSMOOTHB HOOK
include : XSHookUpper XH [SB + O] nothing RIGHTSB SMALLSMOOTHA [HOOK - TAILADJY * globalTransform.yx]
include : CHookLower 0 SMALLSMOOTHB HOOK
include : CHookUpper XH SMALLSMOOTHA HOOK
include : create-stroke
:.start-from [SB + O] [XH - SMALLSMOOTHA] :.set-width STROKE 0
:.line-to [SB + O] SMALLSMOOTHB
@ -126,7 +126,7 @@ define [SmallEShape top stroke barpos] : glyph-construction {
:.arc-vh-to MIDDLE [top - O]
:.arc-hv-to [SB + O] [top - SMALLSMOOTHA]
:.line-to [SB + O] SMALLSMOOTHB
include : EHookLower 0 SMALLSMOOTHB HOOK
include : EHookLower 0 SMALLSMOOTHB SHOOK [mix SB RIGHTSB SBALANCE] stroke
include : create-stroke
:.start-from [SB + [stroke / 2]] barbottom
:.set-width stroke 0

View file

@ -168,10 +168,8 @@ create-glyph 'Eth' : glyph-construction {
:.line-to [mix [SB + STROKE] [RIGHTSB - STROKE] 0.55] [CAP * 0.54]
:.heads-to RIGHTWARD
}
create-glyph 'Dcroat' : glyph-construction {
assign-unicode 0x110
include glyphs.Eth AS_BASE
}
alias 'DCroat' 0x110 'Eth'
alias 'arficanD' 0x189 'Eth'
create-glyph 'eth' : glyph-construction {
set-width WIDTH
@ -299,13 +297,12 @@ create-glyph 'eszet' : glyph-construction {
}
}
define [EzhShape top bot pleft] : glyph-construction {
define [EzhShape top bot pleft flat] : glyph-construction {
local cor 1.2
local yMidBar : mix bot top 0.6
local ezhLeft : mix SB RIGHTSB [fallback pleft 0.2]
local ezhRight : mix SB RIGHTSB 0.925
include : create-stroke :.start-from SB top :.heads-to RIGHTWARD :.set-width 0 STROKE
:.line-to ezhRight top :.heads-to RIGHTWARD :.to-outline
include : HBarTop SB ezhRight top
start-from ezhLeft yMidBar
line-to [ezhLeft + STROKE * cor] [yMidBar - HALFSTROKE]
@ -314,14 +311,42 @@ define [EzhShape top bot pleft] : glyph-construction {
line-to [ezhRight - STROKE * cor] [top - STROKE]
reverse-last
include : create-stroke
local s : create-stroke
:.start-from ezhLeft yMidBar
:.heads-to RIGHTWARD
:.set-width 0 STROKE
:.line-to MIDDLE yMidBar
:.arc-hv-to RIGHTSB [mix yMidBar bot 0.5]
:.to-outline
include : XSHookLower bot SB [mix SB RIGHTSB 0.465] RIGHTSB [[yMidBar - bot] / 2] SHOOK
if flat {
then : s.heads-to DOWNWARD
else : include : XSHookLower bot SB [mix SB RIGHTSB 0.465] RIGHTSB [[yMidBar - bot] / 2] SHOOK
}
include s
}
define [RevEzhShape top bot pleft flat] : glyph-construction {
local cor 1.2
local yMidBar : mix bot top 0.6
local ezhRight : mix RIGHTSB SB [fallback pleft 0.2]
local ezhLeft : mix RIGHTSB SB 0.925
include : HBarTop ezhLeft RIGHTSB top
start-from ezhRight yMidBar
line-to [ezhRight - STROKE * cor] [yMidBar - HALFSTROKE]
line-to [ezhRight - STROKE * cor] yMidBar
line-to ezhLeft [top - STROKE]
line-to [ezhLeft + STROKE * cor] [top - STROKE]
local s : create-stroke
:.start-from ezhRight yMidBar
:.heads-to LEFTWARD
:.set-width STROKE 0
:.line-to MIDDLE yMidBar
:.arc-hv-to SB [mix yMidBar bot 0.5]
if flat {
then : s.heads-to DOWNWARD
else : include : XSHookLower bot RIGHTSB [mix RIGHTSB SB 0.465] SB [[yMidBar - bot] / 2] SHOOK
}
include s
}
create-glyph 'Ezh' : glyph-construction {
set-width WIDTH
@ -335,6 +360,14 @@ create-glyph 'ezh' : glyph-construction {
include pMarks
include : EzhShape XH DESCENDER
}
create-glyph 'revEzh' : glyph-construction {
assign-unicode 0x1B8
include : RevEzhShape CAP 0
}
create-glyph 'revezh' : glyph-construction {
assign-unicode 0x1B9
include : RevEzhShape XH DESCENDER
}
create-glyph 'esh' : glyph-construction {
assign-unicode 0x283
include glyphs.'longs.italic' AS_BASE
@ -397,10 +430,11 @@ create-glyph 'scripta' : glyph-construction {
line-to [RIGHTSB - STROKE * ITALICCOR] [XH - STROKE / 2]
line-to RIGHTSB [XH - O]
}
create-glyph 'ftail' : glyph-construction {
assign-unicode 0x192
include glyphs.'longs.italic' AS_BASE
include : fBar
create-glyph 'turnSmallE' : glyph-construction {
assign-unicode 0x18F
include capitalMarks
include : SmallEShape CAP STROKE
include : FlipAround MIDDLE [CAP / 2]
}
create-glyph 'iogonek.dotless' : glyph-construction {
include glyphs.dotlessi AS_BASE
@ -481,11 +515,26 @@ create-glyph 'latingamma' : glyph-construction {
include pMarks
include : RamsHornShape DESCENDER XH
}
create-glyph 'latinGamma' : glyph-construction {
assign-unicode 0x194
include ifMarks
include : RamsHornShape DESCENDER CAP
}
create-glyph 'ramshorn' : glyph-construction {
assign-unicode 0x264
include eMarks
include : RamsHornShape 0 XH
}
create-glyph 'latinEpsilon' : glyph-construction {
assign-unicode 0x190
include capitalMarks
include : SmallEpsilonShape CAP
}
create-glyph 'latinIota' : glyph-construction {
assign-unicode 0x196
include capitalMarks
include : IotaShape CAP
}
define [RevSmallEShape top stroke barpos] : glyph-construction {
local barbottom [top * [fallback barpos EBARPOS]]
local hookx SB
@ -655,11 +704,12 @@ alias 'dentalclick' 0x1C0 'bar'
dual 'alveolarlateralclick' 0x1C1 'bar' [WIDTH * 0.35]
alias 'alveolarclick' 0x1C3 'exclam'
alias 'smcpH' 0x29C 'cyren'
alias 'latiniota' 0x269 'dotlessi.italic'
alias 'latiniota' 0x269 'iota'
alias 'revlatinepsilon' 0x25C 'cyrze'
# Turned glyphs
turned nothing 0x250 'a' MIDDLE [XH / 2]
turned nothing 0x252 'scripta' MIDDLE [XH / 2]
turned nothing 0x186 'C' MIDDLE [CAP / 2]
turned nothing 0x254 'c' MIDDLE [XH / 2]
turned nothing 0x18E 'E' MIDDLE [CAP / 2]
turned nothing 0x1DD 'e' MIDDLE [XH / 2]

View file

@ -122,6 +122,11 @@ create-glyph 'revglottalstopbar' : glyph-construction {
include glyphs.revglottalstop AS_BASE
include : HOverlayBar [MIDDLE - LONGJUT * 0.6] [MIDDLE + LONGJUT * 0.6] [CAP * 0.25]
}
create-glyph 'eshbar' : glyph-construction {
assign-unicode 0x284
include glyphs.esh AS_BASE
include : HOverlayBar [MIDDLE - LONGJUT * 0.6] [MIDDLE + LONGJUT * 0.6] [XH * 0.25]
}
# bdot and ddot 's dots are closer to the glyph
create-glyph 'bdot' : glyph-construction {
include glyphs.dotAbove
@ -159,20 +164,50 @@ define [HooktopLeftBar stroke] : glyph-construction {
:.line-to SB 0
:.heads-to DOWNWARD
}
create-glyph 'hooktoph' : glyph-construction {
create-glyph 'hhooktop' : glyph-construction {
assign-unicode 0x266
include bMarks
include : nShoulder [SB + STROKE * ITALICCOR] MIDDLE RIGHTSB [STROKE * 0.4]
include : HooktopLeftBar
}
create-glyph 'hooktopb' : glyph-construction {
create-glyph 'bhooktop' : glyph-construction {
assign-unicode 0x253
include bMarks
include : oLeft
include : HooktopLeftBar
}
create-glyph 'dhooktop' : glyph-construction {
assign-unicode 0x260
include glyphs.scriptg AS_BASE
include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] XH HOOKX [-HOOK]
}
create-glyph 'scriptghooktop' : glyph-construction {
assign-unicode 0x257
include bMarks
include glyphs.'a.italic'
include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] XH HOOKX [-HOOK]
}
create-glyph 'Chooktop' : glyph-construction {
assign-unicode 0x187
include glyphs.C AS_BASE
include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] [CAP - HOOK] HOOKX [-HOOK * 1.5]
}
create-glyph 'chooktop' : glyph-construction {
assign-unicode 0x188
include glyphs.c AS_BASE
include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] [XH - HOOK] HOOKX [-HOOK * 1.5]
}
# Left-tail
create-glyph 'fltail' : glyph-construction {
assign-unicode 0x192
include glyphs.'longs.italic' AS_BASE
include : fBar
}
create-glyph 'Fltail' : glyph-construction {
assign-unicode 0x191
include glyphs.F AS_BASE
include : VerticalHook [SB * 1.5 + HALFSTROKE * ITALICCOR] 0 [-HOOKX] HOOK
}
create-glyph 'nltail' : glyph-construction {
assign-unicode 0x272
include glyphs.n AS_BASE
@ -185,10 +220,10 @@ create-glyph 'mltail' : glyph-construction {
local fine : adviceBlackness 3.5
include : VerticalHook [RIGHTSB - O - fine / 2 * ITALICCOR] 0 [-HOOKX] HOOK fine
}
create-glyph 'hooktophltail' : glyph-construction {
create-glyph 'hhooktopltail' : glyph-construction {
assign-unicode 0x267
include pMarks
include glyphs.hooktoph
include glyphs.hhooktop
include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] 0 [-HOOKX] HOOK
}
# Right-tail
@ -237,7 +272,21 @@ create-glyph 'trtail' : glyph-construction {
include ifMarks
include : SmallTShape CAP DESCENDER
}
create-glyph 'ezhtail' : glyph-construction {
assign-unicode 0x1BA
local b : mix DESCENDER XH 0.25
include : EzhShape XH b nothing true
local y : mix [mix b XH 0.6] b 0.5
include : create-stroke
:.start-from RIGHTSB y
:.heads-to DOWNWARD
:.set-width 0 STROKE
:.arc-vh-to [mix SB RIGHTSB 0.45] b
:.line-to [mix SB RIGHTSB 0.4] b
:.arc-hv-to [SB + STROKE * ITALICCOR] [mix [DESCENDER + STROKE] b 0.5]
:.arc-vh-to [mix SB RIGHTSB 0.4] [DESCENDER + STROKE]
:.line-to RIGHTSB [DESCENDER + STROKE]
}
# Curly tail
define [CurlyTail fine wide rinner m1 y1 bottom _right x1 x2 y2] : glyph-construction {
local right : _right - fine * [if [_right > m1] 1 [-1]]
@ -355,12 +404,10 @@ create-glyph 'ccurlytail' : glyph-construction {
assign-unicode 0x255
include eMarks
local rinner : [[XH * 0.425] - STROKE * 1.5] / 2
include : XSHookUpper XH [SB + O] nothing RIGHTSB SMALLSMOOTHA [HOOK - TAILADJY * globalTransform.yx]
include : create-stroke
:.start-from [RIGHTSB - OXHOOK] [XH - HOOK]
:.start-from [SB + O] [XH - SMALLSMOOTHA]
:.set-width STROKE 0
:.curve-to [MIDDLE + KAPPA_HOOK * [MIDDLE - para.sb]] XO [MIDDLE - OMIDCOR_S] XO
:.arc-hv-to [SB + O] [XH - SMALLSMOOTHA]
:.line-to [SB + O] SMALLSMOOTHB
:.heads-to DOWNWARD
@ -375,9 +422,7 @@ create-glyph 'ezhcurlytail' : glyph-construction {
include eMarks
local rinner : [[XH * 0.425] - STROKE * 1.5] / 2
include : EzhShape XH DESCENDER
this.contours.pop
this.contours.pop
include : EzhShape XH DESCENDER nothing true
local m1 : RIGHTSB - STROKE * ITALICCOR
local x1 : mix RIGHTSB SB 0.25
@ -406,6 +451,28 @@ create-glyph 'zcurlytail' : glyph-construction {
line-to [RIGHTSB - STROKE * cor] [XH - STROKE]
reverse-last
}
# Er tail
define [ErTail] : glyph-construction {
local left : WIDTH * 0.85 - SB
include : HBarTop [left - markFine * 2] [left + markFine] [XH * 0.6]
include : create-stroke
:.start-from left [XH * 0.6]
:.set-width [markFine * 2] 0
:.arc-vh-to WIDTH [XH * 0.3]
:.heads-to RIGHTWARD
}
create-glyph 'er' : glyph-construction {
assign-unicode 0x25A
local f : Thinner ('schwa') 0.85
include f.schwa
include : ErTail
}
create-glyph 'revlatinepsiloner' : glyph-construction {
assign-unicode 0x25D
local f : Thinner ('revlatinepsilon') 0.85
include f.revlatinepsilon
include : ErTail
}
# Belted
define [Belt] : glyph-construction {
local fine : adviceBlackness 4.5

View file

@ -11,6 +11,7 @@ define regular (
.descender [-194]
.xheight 570
.barpos 0.52
.ebarpos 0.45
.gbarpos 0.35
.fivebarpos 0.49
@ -55,6 +56,7 @@ bold.sb = 50
bold.stroke = 120
bold.dotsize = 160
bold.periodsize = 180
bold.barpos = 0.51
bold.ebarpos = 0.4
bold.oxhook = 0
bold.ahook = 120