84 lines
No EOL
2.8 KiB
Text
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
|
|
} |