Iosevka/glyphs/overmarks.patel
2015-07-23 07:35:59 +08:00

84 lines
No EOL
2.8 KiB
Text

### Combining marks
local aboveMarkTop [XH + ACCENT * 1.6 - HALFSTROKE]
local markExtend [ACCENTX * 0.5]
local aboveMarkBot [XH + ACCENT - STROKE]
local markHalfStroke : 0.5 * [Math.min STROKE [ACCENT * 0.6]]
local markFine : markHalfStroke * 0.8
local markMiddle [-MIDDLE]
create-glyph 'dotAbove' : glyph-construction {
set-width 0
assign-unicode 0x307
set-anchor 'above' MARK markMiddle XH markMiddle [XH + ACCENT]
put-shapes : list {
Ring [XH + ACCENT + DOTRADIUS] [XH + ACCENT - DOTRADIUS] [markMiddle - DOTRADIUS] [markMiddle + DOTRADIUS]
}
}
create-glyph 'graveAbove' : glyph-construction {
set-width 0
assign-unicode 0x300
set-anchor 'above' MARK markMiddle XH markMiddle [XH + ACCENT]
put-shapes : create-stroke
:.start-from [markMiddle + markHalfStroke] aboveMarkBot
:.set-width markFine markFine
:.line-to [markMiddle - markExtend] aboveMarkTop
:.set-width markHalfStroke markHalfStroke
:.to-outline
}
create-glyph 'acuteAbove' : glyph-construction {
set-width 0
assign-unicode 0x301
set-anchor 'above' MARK markMiddle XH markMiddle [XH + ACCENT]
put-shapes : create-stroke
:.start-from [markMiddle - markHalfStroke] aboveMarkBot
:.set-width markFine markFine
:.line-to [markMiddle + markExtend] aboveMarkTop
:.set-width markHalfStroke markHalfStroke
:.to-outline
}
create-glyph 'circumflexAbove' : glyph-construction {
set-width 0
assign-unicode 0x302
set-anchor 'above' MARK markMiddle XH markMiddle [XH + ACCENT]
put-shapes : create-stroke
:.start-from [markMiddle - markExtend - markHalfStroke] aboveMarkBot
:.set-width markHalfStroke markHalfStroke
:.line-to markMiddle [aboveMarkTop + markFine * 0.7]
:.heads-to UPWARD
:.to-outline
put-shapes : create-stroke
:.start-from [markMiddle + markExtend + markHalfStroke] aboveMarkBot
:.set-width markHalfStroke markHalfStroke
:.line-to markMiddle [aboveMarkTop + markFine * 0.7]
:.heads-to UPWARD
:.to-outline
}
create-glyph 'tildeAbove' : glyph-construction {
set-width 0
assign-unicode 0x303
set-anchor 'above' MARK markMiddle XH markMiddle [XH + ACCENT]
local leftEnd [markMiddle - markExtend * 1.5]
local rightEnd [markMiddle + markExtend * 1.5]
local ttop aboveMarkTop
local tbot : aboveMarkBot + markFine / 2
local top : ttop + [markFine * 2]
local bot : tbot - [markFine * 2]
local tildeWave [linreg 40 1.45 52 1.33 markHalfStroke]
local tildeWaveX 0.52
local tildeWaveEnd 0
put-shapes : create-stroke
:.start-from leftEnd [mix tbot ttop tildeWaveEnd]
:.set-width markHalfStroke markHalfStroke
:.cubic-to [mix leftEnd rightEnd tildeWaveX] [mix bot top tildeWave] [mix leftEnd rightEnd [1 - tildeWaveX]] [mix bot top [1 - tildeWave]] rightEnd [mix tbot ttop [1 - tildeWaveEnd]]
:.to-outline 0 0 11
}