Added /latinkappa, /Hbar, ..., /lslash, /closeApostropheAbove, /openApostropheAbove, /commaBelow. Now it supports Latin Extended-A.

This commit is contained in:
Belleve Invis 2015-07-27 18:49:04 +08:00
parent 2e5e499ca3
commit 15026368a7
9 changed files with 224 additions and 39 deletions

1
.gitignore vendored
View file

@ -33,6 +33,7 @@ build/
ref/
pages/
releases/
previewer/
# Generated scripts
.buildglyphs.all.patel

View file

@ -86,7 +86,7 @@ define [createFractions records] : if [not recursive] : begin {
apply-transform : Translate MIDDLE parenMid
apply-transform : Italify
}
include : hbar SB RIGHTSB parenMid fine
include : HBar SB RIGHTSB parenMid fine
}
}

View file

@ -145,22 +145,26 @@ define [xStrand _leftx lefty _rightx righty turn straight tension] : begin {
:.concat : halfXStrand _rightx righty middlex middley turn straight tension
}
define [nBowl left middle right fine] : begin {
define [nBowl left middle right fine _top _bottom _sma _smb] : begin {
local top : fallback _top XH
local bottom : fallback _bottom 0
local sma : fallback _sma SMALLSMOOTHA
local smb : fallback _smb SMALLSMOOTHB
local bandLeft : new Stroke
:.set-transform globalTransform
:.start-from right 0
:.start-from right bottom
:.heads-to UPWARD
:.set-width STROKE 0
:.line-to right [XH - SMALLSMOOTHB]
:.arc-vh-to middle XO
:.line-to right [top - smb]
:.arc-vh-to middle [top - O]
:.heads-to LEFTWARD
:.to-outline
local bandRight : new Stroke
:.set-transform globalTransform
:.start-from middle [XO - STROKE]
:.start-from middle [top - O - STROKE]
:.set-width 0 STROKE
:.heads-to LEFTWARD
:.arc-hv-to left [XH - SMALLSMOOTHA]
:.arc-hv-to left [top - sma]
:.heads-to DOWNWARD
:.set-width 0 fine
:.to-outline
@ -239,7 +243,7 @@ define [smallo u d l r _width] : glyph-construction {
}
}
define [hbar xleft xright y _fine] : glyph-construction {
define [HBar xleft xright y _fine] : glyph-construction {
local fine : [fallback _fine STROKE] / 2
include : create-stroke
:.set-transform globalTransform
@ -249,7 +253,7 @@ define [hbar xleft xright y _fine] : glyph-construction {
:.line-to xright y
:.heads-to RIGHTWARD
}
define [vbar x ydown yup _fine] : glyph-construction {
define [VBar x ydown yup _fine] : glyph-construction {
local fine : [fallback _fine STROKE] / 2
include : create-stroke
:.set-transform globalTransform
@ -259,7 +263,7 @@ define [vbar x ydown yup _fine] : glyph-construction {
:.line-to x yup
:.heads-to [if [ydown < yup] UPWARD DOWNWARD]
}
define [HOverlayBar xleft xright y] : HBar xleft xright y [adviceBlackness 5]
# Common transformations
define [FlipAround x y] : glyph-construction {
@ -269,3 +273,11 @@ define [FlipAround x y] : glyph-construction {
apply-transform : Translate x y
apply-transform : Italify
}
define [VerticalHook x y extend depth] : glyph-construction {
include : create-stroke
:.start-from x y
:.heads-to DOWNWARD
:.set-width HALFSTROKE HALFSTROKE
:.arc-vh-to [x + extend] [y - depth]
}

View file

@ -524,6 +524,24 @@ create-glyph 'J.straight' : glyph-construction {
:.arc-vh-to [mix hookx [RIGHTSB - JBALANCE] 0.5] O :.heads-to LEFTWARD
:.curve-to [MIDDLE - kappa * [MIDDLE - SB] - SB * 0.5] O hookx HOOK
}
create-glyph 'J.shorthook' : glyph-construction {
set-width WIDTH
dont-export
include capitalMarks
local slope [STROKE * 0.00092]
local expand 0.35
local coexpand [[1 - expand] / 2]
local kappa KAPPA_HOOK
local smooth : HOOK + 0.75 * STROKE
local hookx [0.5 * SB + OXHOOK]
include : create-stroke
:.start-from [RIGHTSB - JBALANCE] CAP :.set-width 0 STROKE :.heads-to DOWNWARD
:.line-to [RIGHTSB - JBALANCE] smooth
:.arc-vh-to [mix SB RIGHTSB 0.3] O :.heads-to LEFTWARD
}
create-glyph 'J.serifed' : glyph-construction {
set-width WIDTH
dont-export

View file

@ -632,11 +632,7 @@ create-glyph 'z' : glyph-construction {
reverse-last
}
create-glyph 'k' : glyph-construction {
set-width WIDTH
assign-unicode 'k'
include bMarks
define [SmallKShape] : glyph-construction {
local TURN [XH * 0.99]
local rturn [XH * 0.1]
local right [RIGHTSB - O]
@ -645,13 +641,6 @@ create-glyph 'k' : glyph-construction {
local attach2 [MIDDLE - WIDTH * 0.1]
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 XH
:.heads-to DOWNWARD
@ -668,6 +657,19 @@ create-glyph 'k' : glyph-construction {
:.set-width [fine / 2] [fine / 2]
}
create-glyph 'k' : glyph-construction {
set-width WIDTH
assign-unicode 'k'
include bMarks
include : create-stroke
:.start-from SB 0
:.set-width 0 STROKE
:.heads-to UPWARD
:.line-to SB CAP
:.heads-to UPWARD
include : SmallKShape
}
### s
create-glyph 's' : glyph-construction {
set-width WIDTH

View file

@ -368,3 +368,122 @@ create-glyph 'esh' : glyph-construction {
assign-unicode 0x283
include glyphs.'longs.italic' AS_BASE
}
create-glyph 'latinkappa' : glyph-construction {
set-width WIDTH
assign-unicode 0x138
include bMarks
include : create-stroke
:.start-from SB 0
:.set-width 0 STROKE
:.heads-to UPWARD
:.line-to SB XH
:.heads-to UPWARD
include : SmallKShape
}
create-glyph 'Hbar' : glyph-construction {
assign-unicode 0x126
include glyphs.H AS_BASE
include : HOverlayBar [mix SB 0 0.7] [mix RIGHTSB WIDTH 0.7] [mix CAPMIDDLE CAP 0.45]
}
create-glyph 'hbar' : glyph-construction {
assign-unicode 0x127
include glyphs.h AS_BASE
include : HOverlayBar [mix SB 0 0.7] [mix SB RIGHTSB 0.5] [mix XH CAP 0.45]
}
create-glyph 'Tbar' : glyph-construction {
assign-unicode 0x166
include glyphs.T AS_BASE
include : HOverlayBar [mix MIDDLE SB 0.8] [mix MIDDLE RIGHTSB 0.8] [mix 0 CAP 0.45]
}
create-glyph 'tbar' : glyph-construction {
assign-unicode 0x167
include glyphs.t AS_BASE
include : HOverlayBar [[mix MIDDLE SB 0.7] - TBALANCE] [[mix MIDDLE RIGHTSB 0.7] - TBALANCE] [mix 0 XH 0.6]
}
create-glyph 'eng' : glyph-construction {
assign-unicode 0x14B
include glyphs.n AS_BASE
include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] 0 [-HOOK * 1.2] HOOK
}
create-glyph 'Eng' : glyph-construction {
assign-unicode 0x14A
include capitalMarks
include : nBowl [SB + STROKE] MIDDLE RIGHTSB [STROKE * 0.3] CAP [HOOK + HALFSTROKE + O] SMOOTHA SMOOTHB
include : VerticalHook [RIGHTSB - HALFSTROKE * ITALICCOR] [HOOK + HALFSTROKE + O] [Math.max [[SB - RIGHTSB] / 2 + HALFSTROKE] [-HOOK * 1.2]] HOOK
include : VBar [SB + HALFSTROKE * ITALICCOR] 0 CAP
}
create-glyph 'napostrophe' : glyph-construction {
assign-unicode 0x149
include glyphs.closeApostropheAbove
apply-transform : Translate [WIDTH + SB - MIDDLE] 0
include glyphs.n AS_BASE
}
create-glyph 'IJ' : glyph-construction {
assign-unicode 0x132
include capitalMarks
include : create-glyph : glyph-construction {
include glyphs.'I.straight'
apply-transform : Translate [SB - MIDDLE + HALFSTROKE * ITALICCOR] 0
}
include : create-glyph : glyph-construction {
include glyphs.'J.shorthook'
apply-transform : Translate JBALANCE 0
}
}
create-glyph 'ij' : glyph-construction {
assign-unicode 0x133
include ifMarks
include : create-glyph : glyph-construction {
include glyphs.'dotlessi.straight' AS_BASE
include glyphs.dotAbove
apply-transform : Translate [SB * 1.5 - MIDDLE + HALFSTROKE * ITALICCOR] 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 * ITALICCOR] 0
}
}
create-glyph 'Ldot' : glyph-construction {
assign-unicode 0x13F
include glyphs.L AS_BASE
include : list {
Ring [[mix STROKE CAP 0.5] + DOTRADIUS] [[mix STROKE CAP 0.5] - DOTRADIUS] [[mix SB RIGHTSB 0.65] - DOTRADIUS] [[mix SB RIGHTSB 0.65] + DOTRADIUS]
}
}
create-glyph 'ldot' : glyph-construction {
assign-unicode 0x140
include glyphs.l AS_BASE
apply-transform : Translate [-DOTRADIUS / 2] 0
include : list {
Ring [[mix STROKE CAP 0.5] + DOTRADIUS] [[mix STROKE CAP 0.5] - DOTRADIUS] [[mix SB RIGHTSB 1] - DOTSIZE] [mix SB RIGHTSB 1]
}
}
create-glyph 'Lslash' : glyph-construction {
assign-unicode 0x141
include glyphs.L AS_BASE
local fine : 0.5 * [adviceBlackness 5]
local middle : mix STROKE CAP 0.5
include : create-stroke
:.start-from [mix 0 SB 0.5] [middle - LONGJUT * 0.4]
:.set-width fine fine
:.line-to [1.6 * LONGJUT + [mix 0 SB 0.5]] [middle + LONGJUT * 0.4]
}
create-glyph 'lslash' : glyph-construction {
assign-unicode 0x142
include glyphs.l AS_BASE
local fine : 0.5 * [adviceBlackness 5]
local middle : mix 0 CAP 0.55
include : create-stroke
:.start-from [MIDDLE - LONGJUT * 0.8] [middle - LONGJUT * 0.4]
:.set-width fine fine
:.line-to [MIDDLE + LONGJUT * 0.8] [middle + LONGJUT * 0.4]
}

View file

@ -46,6 +46,9 @@ create-glyph 'ringAbove' : glyph-construction {
Ring [XH + ACCENT + radiusIn] [XH + ACCENT - radiusIn] [markMiddle - radiusIn] [markMiddle + radiusIn]
}
reverse-last
apply-transform : Upright
apply-transform : Translate 0 [-DOTRADIUS * 0.6]
apply-transform : Italify
}
create-glyph 'graveAbove' : glyph-construction {
set-width 0
@ -239,6 +242,28 @@ create-glyph 'doubleAcuteAbove' : glyph-construction {
:.set-samples 1
}
create-glyph 'closeApostropheAbove' : glyph-construction {
set-width 0
assign-unicode 0x313
include glyphs.dotAbove
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
include : create-stroke
:.start-from [markMiddle + DOTRADIUS] [XH + ACCENT]
:.set-width 0 [markHalfStroke * 1.25]
:.curve-to [markMiddle + DOTRADIUS] [mix [XH + ACCENT] [aboveMarkBot - DOTRADIUS] 0.5] [mix markMiddle [markMiddle - DOTRADIUS] 0.3] [aboveMarkBot - DOTRADIUS]
apply-transform : Upright
apply-transform : Translate 0 [DOTRADIUS * 0.75]
apply-transform : Italify
}
create-glyph 'openApostropheAbove' : glyph-construction {
set-width 0
assign-unicode 0x312
include glyphs.closeApostropheAbove
include : FlipAround markMiddle [XH + ACCENT]
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
}
### Below marks
create-glyph 'cedillaBelow' : glyph-construction {
set-width 0
@ -347,3 +372,11 @@ create-glyph 'archBelow' : glyph-construction {
include glyphs.breveAbove
include : FlipAround markMiddle [XH / 2]
}
create-glyph 'commaBelow' : glyph-construction {
set-width 0
assign-unicode 0x326
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
include glyphs.openApostropheAbove
include : FlipAround markMiddle [XH / 2]
}

View file

@ -269,7 +269,7 @@ create-glyph 'hyphen' : glyph-construction {
set-width WIDTH
assign-unicode '-'
include : hbar SB RIGHTSB hyphenCenter
include : HBar SB RIGHTSB hyphenCenter
}
create-glyph 'plus' : glyph-construction {
set-width WIDTH
@ -277,15 +277,15 @@ create-glyph 'plus' : glyph-construction {
include glyphs.hyphen
include : vbar MIDDLE [hyphenCenter - [RIGHTSB - SB] * 0.55] [hyphenCenter + [RIGHTSB - SB] * 0.55]
include : VBar MIDDLE [hyphenCenter - [RIGHTSB - SB] * 0.55] [hyphenCenter + [RIGHTSB - SB] * 0.55]
}
create-glyph 'equal' : glyph-construction {
set-width WIDTH
assign-unicode '='
include : hbar SB RIGHTSB [hyphenCenter - XH * 0.2]
include : hbar SB RIGHTSB [hyphenCenter + XH * 0.2]
include : HBar SB RIGHTSB [hyphenCenter - XH * 0.2]
include : HBar SB RIGHTSB [hyphenCenter + XH * 0.2]
}
create-glyph 'bar' : glyph-construction {
set-width WIDTH
@ -327,10 +327,10 @@ create-glyph 'numbersign' : glyph-construction {
local fine : adviceBlackness 4
include : hbar SB RIGHTSB [mix parenTop parenBot 0.33]
include : hbar SB RIGHTSB [mix parenTop parenBot 0.67]
include : vbar [mix SB RIGHTSB 0.3] [parenBot + fine] [parenTop - fine] fine
include : vbar [mix SB RIGHTSB 0.7] [parenBot + fine] [parenTop - fine] fine
include : HBar SB RIGHTSB [mix parenTop parenBot 0.33]
include : HBar SB RIGHTSB [mix parenTop parenBot 0.67]
include : VBar [mix SB RIGHTSB 0.3] [parenBot + fine] [parenTop - fine] fine
include : VBar [mix SB RIGHTSB 0.7] [parenBot + fine] [parenTop - fine] fine
}
create-glyph 'less' : glyph-construction {

View file

@ -20,8 +20,8 @@ create-glyph 'cent' : glyph-construction {
create-glyph 'yen' : glyph-construction {
assign-unicode 0xA5
include glyphs.Y AS_BASE
include : hbar SB RIGHTSB [CAP * 0.45] [adviceBlackness 4]
include : hbar SB RIGHTSB [CAP * 0.25] [adviceBlackness 4]
include : HBar SB RIGHTSB [CAP * 0.45] [adviceBlackness 4]
include : HBar SB RIGHTSB [CAP * 0.25] [adviceBlackness 4]
}
create-glyph 'section' : glyph-construction {
@ -127,8 +127,8 @@ create-glyph 'currency' : glyph-construction {
create-glyph 'euro' : glyph-construction {
assign-unicode 0x20AC
include glyphs.C
include : hbar [SB - HALFSTROKE] [mix SB RIGHTSB 0.7] [CAP * 0.4] [adviceBlackness 4]
include : hbar [SB - HALFSTROKE] [mix SB RIGHTSB 0.7] [CAP * 0.6] [adviceBlackness 4]
include : HBar [SB - HALFSTROKE] [mix SB RIGHTSB 0.7] [CAP * 0.4] [adviceBlackness 4]
include : HBar [SB - HALFSTROKE] [mix SB RIGHTSB 0.7] [CAP * 0.6] [adviceBlackness 4]
}
create-glyph 'multiply' : glyph-construction {
assign-unicode 0xD7
@ -154,8 +154,8 @@ create-glyph 'divide' : glyph-construction {
}
create-glyph 'brokenbar' : glyph-construction {
assign-unicode 0xA6
include : vbar MIDDLE [parenMid + HALFSTROKE] parenTop
include : vbar MIDDLE parenBot [parenMid - HALFSTROKE]
include : VBar MIDDLE [parenMid + HALFSTROKE] parenTop
include : VBar MIDDLE parenBot [parenMid - HALFSTROKE]
}
create-glyph 'singleguillemetleft' : glyph-construction {
set-width WIDTH
@ -218,8 +218,8 @@ create-glyph 'paragraph' : glyph-construction {
assign-unicode 0xB6
local sw : adviceBlackness 3.6
include : vbar [MIDDLE + sw / 4] 0 CAP sw
include : vbar [RIGHTSB - sw / 2] 0 CAP sw
include : VBar [MIDDLE + sw / 4] 0 CAP sw
include : VBar [RIGHTSB - sw / 2] 0 CAP sw
include : create-stroke
:.start-from [MIDDLE - sw / 4] [CAP - sw / 2]
:.set-width [sw / 2] [sw / 2]
@ -234,5 +234,5 @@ create-glyph 'negate' : glyph-construction {
include glyphs.hyphen
include : vbar [RIGHTSB - HALFSTROKE] [hyphenCenter - [RIGHTSB - SB] * 0.55] [hyphenCenter + HALFSTROKE]
include : VBar [RIGHTSB - HALFSTROKE] [hyphenCenter - [RIGHTSB - SB] * 0.55] [hyphenCenter + HALFSTROKE]
}