Added /latinkappa, /Hbar, ..., /lslash, /closeApostropheAbove, /openApostropheAbove, /commaBelow. Now it supports Latin Extended-A.
This commit is contained in:
parent
2e5e499ca3
commit
15026368a7
9 changed files with 224 additions and 39 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -33,6 +33,7 @@ build/
|
|||
ref/
|
||||
pages/
|
||||
releases/
|
||||
previewer/
|
||||
|
||||
# Generated scripts
|
||||
.buildglyphs.all.patel
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
@ -268,4 +272,12 @@ define [FlipAround x y] : glyph-construction {
|
|||
apply-transform : Scale [-1]
|
||||
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]
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -666,6 +655,19 @@ create-glyph 'k' : glyph-construction {
|
|||
:.set-width HALFSTROKE HALFSTROKE
|
||||
:.curve-to [right - HALFSTROKE] [rturn + 0.05 * [XH - rturn]] attach2 [XH * 0.5 + HALFSTROKE]
|
||||
:.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
|
||||
|
|
|
@ -367,4 +367,123 @@ create-glyph 'ezh' : glyph-construction {
|
|||
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]
|
||||
}
|
|
@ -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
|
||||
|
@ -346,4 +371,12 @@ 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]
|
||||
}
|
|
@ -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 {
|
||||
|
|
|
@ -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]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue