Add Combining Cyrillic Kavyka Above {Left|Right}. (#2355)

This commit is contained in:
John McWilliams 2024-05-30 20:38:00 -04:00 committed by GitHub
parent ec771008e6
commit d561cac6ba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 50 additions and 27 deletions

View file

@ -1,6 +1,8 @@
* Fix Te bar terminal for Cyrillic TeTse (`U+04B4`..`U+04B5`) and Tche (`U+A693`..`U+A694`) under sans italic/oblique when `T` (`cv19`) is serifed. * Fix Te bar terminal for Cyrillic TeTse (`U+04B4`..`U+04B5`) and Tche (`U+A693`..`U+A694`) under sans italic/oblique when `T` (`cv19`) is serifed.
* Make presence of non-Te serifs of Cyrillic TeTse automatic. * Make presence of non-Te serifs of Cyrillic TeTse automatic.
* Add characters: * Add characters:
- COMBINING KAVYKA ABOVE RIGHT (`U+1DF6`).
- COMBINING KAVYKA ABOVE LEFT (`U+1DF7`).
- DOTTED OBELOS (`U+2E13`). - DOTTED OBELOS (`U+2E13`).
- COMBINING CYRILLIC VZMET (`U+A66F`). - COMBINING CYRILLIC VZMET (`U+A66F`).
- COMBINING CYRILLIC KAVYKA (`U+A67C`) ... CYRILLIC PAYEROK (`U+A67F`). - COMBINING CYRILLIC KAVYKA (`U+A67C`) ... CYRILLIC PAYEROK (`U+A67F`).

View file

@ -504,6 +504,7 @@ glyph-block Mark-Above : begin
flat (0 - Width) aboveMarkTop flat (0 - Width) aboveMarkTop
curl 0 aboveMarkTop curl 0 aboveMarkTop
glyph-block-export BreveShape
define [BreveShape] : with-params [top bottom xMiddle width hs] : glyph-proc define [BreveShape] : with-params [top bottom xMiddle width hs] : glyph-proc
local leftEnd (xMiddle - width * 0.5) local leftEnd (xMiddle - width * 0.5)
local rightEnd (xMiddle + width * 0.5) local rightEnd (xMiddle + width * 0.5)

View file

@ -10,9 +10,9 @@ glyph-block Mark-Horn-And-Angle : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Mark-Shared-Metrics : markExtend markStroke markStress markFine glyph-block-import Mark-Shared-Metrics : markExtend markStroke markStress markFine
glyph-block-import Mark-Shared-Metrics : markMiddle markDotsRadius glyph-block-import Mark-Shared-Metrics : markHalfStroke markMiddle markDotsRadius
glyph-block-import Mark-Above : aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack glyph-block-import Mark-Above : aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack
glyph-block-import Mark-Above : commaAboveRadius glyph-block-import Mark-Above : BreveShape commaAboveRadius
glyph-block-import Mark-Below : belowMarkBot belowMarkTop belowMarkMid glyph-block-import Mark-Below : belowMarkBot belowMarkTop belowMarkMid
# horn and angle marks # horn and angle marks
@ -79,7 +79,6 @@ glyph-block Mark-Horn-And-Angle : begin
select-variant 'horn' 0x31B (follow -- 'diacriticDot') select-variant 'horn' 0x31B (follow -- 'diacriticDot')
create-glyph 'longHorn.round' : glyph-proc create-glyph 'longHorn.round' : glyph-proc
set-width 0 set-width 0
include : HornShape 0 XH (Width / 2) (ArchDepthB) 0.5 include : HornShape 0 XH (Width / 2) (ArchDepthB) 0.5
@ -100,8 +99,30 @@ glyph-block Mark-Horn-And-Angle : begin
set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid
set-base-anchor 'aboveBraceR' 0 aboveMarkMid set-base-anchor 'aboveBraceR' 0 aboveMarkMid
create-glyph 'ltailBR' 0x321 : glyph-proc
set-width 0
set-mark-anchor 'bottomRight' 0 0 0 belowMarkBot
set-base-anchor 'belowBraceL' (-0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) (-0.5 * Hook - HalfStroke)
set-base-anchor 'belowBraceR' (-0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) (-0.5 * Hook - HalfStroke)
include : dispiro
widths.rhs
flat 0 (-O) [heading Downward]
curl 0 0 [heading Downward]
straight.left.end (-HookX - [HSwToV HalfStroke]) (-Hook - HalfStroke)
create-glyph 'rtailBR' 0x322 : glyph-proc
set-width 0
set-mark-anchor 'bottomRight' 0 0 0 belowMarkBot
set-base-anchor 'belowBraceL' (0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.75 * Stroke]) (-0.5 * Hook - HalfStroke)
set-base-anchor 'belowBraceR' (0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.5 * Stroke]) (-0.5 * Hook - HalfStroke)
include : dispiro
widths.rhs
flat 0 (-O) [heading Downward]
curl 0 0 [heading Downward]
straight.right.end (HookX - [HSwToV HalfStroke]) (-Hook + HalfStroke)
foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do foreach { suffix { DrawAt kdr } } [Object.entries DotVariants] : do
create-glyph "dotTL.\(suffix)" 0x358 : glyph-proc create-glyph "dotTL.\(suffix)" : glyph-proc
set-width 0 set-width 0
local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5 local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5
local r : mix radius DotRadius 0.5 local r : mix radius DotRadius 0.5
@ -109,7 +130,7 @@ glyph-block Mark-Horn-And-Angle : begin
set-mark-anchor 'topLeft' 0 XH (-startX) startY set-mark-anchor 'topLeft' 0 XH (-startX) startY
set-base-anchor 'aboveBraceL' (startX - r) startY set-base-anchor 'aboveBraceL' (startX - r) startY
set-base-anchor 'aboveBraceR' (startX - r) startY set-base-anchor 'aboveBraceR' (startX - r) startY
create-glyph "dotTR.\(suffix)" 0x358 : glyph-proc create-glyph "dotTR.\(suffix)" : glyph-proc
set-width 0 set-width 0
local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5 local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5
local r : mix radius DotRadius 0.5 local r : mix radius DotRadius 0.5
@ -117,7 +138,7 @@ glyph-block Mark-Horn-And-Angle : begin
set-mark-anchor 'topRight' 0 XH startX startY set-mark-anchor 'topRight' 0 XH startX startY
set-base-anchor 'aboveBraceL' (startX - r) startY set-base-anchor 'aboveBraceL' (startX - r) startY
set-base-anchor 'aboveBraceR' (startX - r) startY set-base-anchor 'aboveBraceR' (startX - r) startY
create-glyph "dotBL.\(suffix)" 0x358 : glyph-proc create-glyph "dotBL.\(suffix)" : glyph-proc
set-width 0 set-width 0
local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5 local [object radius attX attY startX startY] : HornDim 0 XH 0 0 0.5
local r : mix radius DotRadius 0.5 local r : mix radius DotRadius 0.5
@ -138,30 +159,29 @@ glyph-block Mark-Horn-And-Angle : begin
set-base-anchor 'aboveBraceL' (-SB + DotRadius) aboveMarkMid set-base-anchor 'aboveBraceL' (-SB + DotRadius) aboveMarkMid
set-base-anchor 'aboveBraceR' (-SB + DotRadius) aboveMarkMid set-base-anchor 'aboveBraceR' (-SB + DotRadius) aboveMarkMid
create-glyph 'rtailBR' 0x322 : glyph-proc create-glyph 'cyrlKavykaTR' 0x1DF6 : glyph-proc
set-width 0 set-width 0
set-mark-anchor 'bottomRight' 0 0 0 belowMarkBot include : BreveShape
set-base-anchor 'belowBraceL' (0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.75 * Stroke]) (-0.5 * Hook - HalfStroke) xMiddle -- 0
set-base-anchor 'belowBraceR' (0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.5 * Stroke]) (-0.5 * Hook - HalfStroke) width -- 2 * (markExtend * 1.5 - [HSwToV markHalfStroke])
top -- aboveMarkTop
bottom -- aboveMarkBot
hs -- markHalfStroke
set-mark-anchor 'topRight' 0 XH 0 aboveMarkTop
set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid
set-base-anchor 'aboveBraceR' ( 0.75 * markExtend) aboveMarkMid
include : dispiro create-glyph 'cyrlKavykaTL' 0x1DF7 : glyph-proc
widths.rhs
flat 0 (-O) [heading Downward]
curl 0 0 [heading Downward]
straight.right.end (HookX - [HSwToV HalfStroke]) (-Hook + HalfStroke)
create-glyph 'ltailBR' 0x321 : glyph-proc
set-width 0 set-width 0
include : BreveShape
set-mark-anchor 'bottomRight' 0 0 0 belowMarkBot xMiddle -- 0
set-base-anchor 'belowBraceL' (-0.5 * HookX - 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) (-0.5 * Hook - HalfStroke) width -- 2 * (markExtend * 1.5 - [HSwToV markHalfStroke])
set-base-anchor 'belowBraceR' (-0.5 * HookX + 0.25 * markExtend - [HSwToV : 0.25 * Stroke]) (-0.5 * Hook - HalfStroke) top -- aboveMarkTop
bottom -- aboveMarkBot
include : dispiro hs -- markHalfStroke
widths.rhs set-mark-anchor 'topLeft' 0 XH 0 aboveMarkTop
flat 0 (-O) [heading Downward] set-base-anchor 'aboveBraceL' (-0.75 * markExtend) aboveMarkMid
curl 0 0 [heading Downward] set-base-anchor 'aboveBraceR' ( 0.75 * markExtend) aboveMarkMid
straight.left.end (-HookX - [HSwToV HalfStroke]) (-Hook - HalfStroke)
create-glyph 'rightHalfCircleTR' : glyph-proc create-glyph 'rightHalfCircleTR' : glyph-proc
set-width 0 set-width 0