Finish support for Modifier Tone Letters block. (#2347)

* Add the rest of the Chinantec tone letters (`U+A717`..`U+A719`).

* Add Dotted Obelos (`U+2E13`).

* Make ccmp feature apply to negated maths.
This commit is contained in:
John McWilliams 2024-05-27 17:58:48 -04:00 committed by GitHub
parent 29956e2ef7
commit f517e4fb8d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 76 additions and 10 deletions

3
changes/30.1.2.md Normal file
View file

@ -0,0 +1,3 @@
* Add characters:
- DOTTED OBELOS (`U+2E13`).
- MODIFIER LETTER DOT VERTICAL BAR (`U+A717`) ... MODIFIER LETTER DOT HORIZONTAL BAR (`U+A719`).

View file

@ -236,6 +236,10 @@ glyph-block Autobuild-Transformed : begin
list 0xA703 'substBarNoRise' list 0xA703 'substBarNoRise'
list 0xA704 'supst' list 0xA704 'supst'
list 0xA705 'supstBarNoRise' list 0xA705 'supstBarNoRise'
list 0xA717 'dotvbar'
list 0xA718 'dotslash'
list 0xA719 'dotminus'
list 0xA71A 'turnedRevNegate'
list 0xA71B 'arrowUp.NWID' list 0xA71B 'arrowUp.NWID'
list 0xA71C 'arrowDown.NWID' list 0xA71C 'arrowDown.NWID'
list 0xA71D 'alveolarclick' list 0xA71D 'alveolarclick'

View file

@ -705,13 +705,6 @@ glyph-block Mark-Above : begin
include : VBar.m (RightSB - Width) aboveMarkBot aboveMarkTop (markFine * 2) include : VBar.m (RightSB - Width) aboveMarkBot aboveMarkTop (markFine * 2)
include : HBar.t (SB - Width) (RightSB - Width) aboveMarkTop (markFine * 2) include : HBar.t (SB - Width) (RightSB - Width) aboveMarkTop (markFine * 2)
create-glyph 'lowerRightAngleAbove' : glyph-proc
set-width 0
include : StdAnchors.mediumWide
include : VBar.r (markMiddle + markExtend) aboveMarkBot aboveMarkTop (markFine * 2)
include : HBar.b (markMiddle - markExtend) (markMiddle + markExtend) aboveMarkBot (markFine * 2)
create-glyph 'yerikAbove' 0x33E : glyph-proc create-glyph 'yerikAbove' 0x33E : glyph-proc
set-width 0 set-width 0
include : StdAnchors.narrow include : StdAnchors.narrow

View file

@ -102,7 +102,6 @@ export : define decompOverrides : object
0x1FFD { 'markBaseSpace' 'acuteAbove' } 0x1FFD { 'markBaseSpace' 'acuteAbove' }
0x1FFE { 'markBaseSpace' 'revCommaAbove' } 0x1FFE { 'markBaseSpace' 'revCommaAbove' }
0x2E2F { 'markBaseSpace' 'yerikAbove' } 0x2E2F { 'markBaseSpace' 'yerikAbove' }
0xA71A { 'markBaseSpace' 'lowerRightAngleAbove' }
0xA788 { 'markBaseSpace' 'circumflexBelow' } 0xA788 { 'markBaseSpace' 'circumflexBelow' }
0xA78A { 'markBaseSpace' 'equalOver' } 0xA78A { 'markBaseSpace' 'equalOver' }
0xAB6A { 'markBaseSpace' 'leftTackOver' } 0xAB6A { 'markBaseSpace' 'leftTackOver' }
@ -218,8 +217,49 @@ export : define decompOverrides : object
0x1DF1A { 'iRetroflexHook' 'barOver' } 0x1DF1A { 'iRetroflexHook' 'barOver' }
# List of non-canonical combinations but applicable for ccmp feature # List of canonical and non-canonical combinations but applicable for ccmp feature
export : define ccmpCombinations : list export : define ccmpCombinations : list
# Long solidus overlays
list {0x003C 0x0338} 0x226E # <
list {0x003D 0x0338} 0x2260 # =
list {0x003E 0x0338} 0x226F # >
list {0x2203 0x0338} 0x2204 # ∃
list {0x2208 0x0338} 0x2209 # ∈
list {0x220B 0x0338} 0x220C # ∋
list {0x2223 0x0338} 0x2224 #
list {0x2225 0x0338} 0x2226 # ∥
list {0x223C 0x0338} 0x2241 #
list {0x2243 0x0338} 0x2244 # ≃
list {0x2245 0x0338} 0x2247 # ≅
list {0x2248 0x0338} 0x2249 # ≈
list {0x224D 0x0338} 0x226D # ≍
list {0x2261 0x0338} 0x2262 # ≡
list {0x2264 0x0338} 0x2270 # ≤
list {0x2265 0x0338} 0x2271 # ≥
list {0x2272 0x0338} 0x2274 # ≲
list {0x2273 0x0338} 0x2275 # ≳
list {0x2276 0x0338} 0x2278 # ≶
list {0x2277 0x0338} 0x2279 # ≷
list {0x227A 0x0338} 0x2280 # ≺
list {0x227B 0x0338} 0x2281 # ≻
list {0x227C 0x0338} 0x22E0 # ≼
list {0x227D 0x0338} 0x22E1 # ≽
list {0x2282 0x0338} 0x2284 # ⊂
list {0x2283 0x0338} 0x2285 # ⊃
list {0x2286 0x0338} 0x2288 # ⊆
list {0x2287 0x0338} 0x2289 # ⊇
list {0x2291 0x0338} 0x22E2 # ⊑
list {0x2292 0x0338} 0x22E3 # ⊒
list {0x22A2 0x0338} 0x22AC # ⊢
list {0x22A8 0x0338} 0x22AD # ⊨
list {0x22A9 0x0338} 0x22AE # ⊩
list {0x22AB 0x0338} 0x22AF # ⊫
list {0x22B2 0x0338} 0x22EA # ⊲
list {0x22B3 0x0338} 0x22EB # ⊳
list {0x22B4 0x0338} 0x22EC # ⊴
list {0x22B5 0x0338} 0x22ED # ⊵
list {0x2ADD 0x0338} 0x2ADC # ⫝
########## Data from L2/24-021 ########## Data from L2/24-021
# Tilde overlays # Tilde overlays
@ -340,3 +380,6 @@ export : define ccmpCombinations : list
# Ring overlays # Ring overlays
list {0x006C 0x20D8} 0xAB39 # l list {0x006C 0x20D8} 0xAB39 # l
# Reverse solidus overlays
list {0x2223 0x20E5} 0x2AEE #

View file

@ -237,9 +237,21 @@ glyph-block Symbol-Math-Arith : begin
refer-glyph 'plus' refer-glyph 'plus'
DrawAt Middle (SymbolMid * 2 - OperatorStroke / 2) (dr + gap - overshoot) DrawAt Middle (SymbolMid * 2 - OperatorStroke / 2) (dr + gap - overshoot)
create-glyph "dotminus.\(suffix)" : composite-proc [refer-glyph 'minus'] create-glyph "dotminus.\(suffix)" : composite-proc
refer-glyph 'minus'
DrawAt Middle PlusTop (dr - overshoot) DrawAt Middle PlusTop (dr - overshoot)
create-glyph "dotslash.\(suffix)" : composite-proc
dispiro
widths.center OperatorStroke
flat [mix Middle SB Math.SQRT1_2] [mix SymbolMid PlusBot Math.SQRT1_2]
curl [mix Middle RightSB Math.SQRT1_2] [mix SymbolMid PlusTop Math.SQRT1_2]
DrawAt [mix Middle SB Math.SQRT1_2] [mix SymbolMid PlusTop Math.SQRT1_2] (dr - overshoot)
create-glyph "dotvbar.\(suffix)" : composite-proc
VBar.m [mix Middle RightSB 0.5] PlusTop PlusBot OperatorStroke
DrawAt [mix Middle SB 0.5] SymbolMid (dr - overshoot)
create-glyph "dottimes.\(suffix)" : glyph-proc create-glyph "dottimes.\(suffix)" : glyph-proc
include : refer-glyph "multiply" include : refer-glyph "multiply"
define sw : AdviceStroke 4 define sw : AdviceStroke 4
@ -270,6 +282,12 @@ glyph-block Symbol-Math-Arith : begin
include : DrawAt Middle (SymbolMid + gap) (dr - overshoot) include : DrawAt Middle (SymbolMid + gap) (dr - overshoot)
include : DrawAt Middle (SymbolMid - gap) (dr - overshoot) include : DrawAt Middle (SymbolMid - gap) (dr - overshoot)
create-glyph "rotatedDivide.\(suffix)" : glyph-proc
include : refer-glyph "multiplyStroke1"
define gap : (RightSB - SB) / 2
include : DrawAt (Middle - Math.SQRT1_2 * gap) (SymbolMid + Math.SQRT1_2 * gap) (dr - overshoot)
include : DrawAt (Middle + Math.SQRT1_2 * gap) (SymbolMid - Math.SQRT1_2 * gap) (dr - overshoot)
create-glyph "innerDivide.\(suffix)" : glyph-proc create-glyph "innerDivide.\(suffix)" : glyph-proc
include : refer-glyph "innerMinus" include : refer-glyph "innerMinus"
define sw : MathEnclosureSw / 1.5 define sw : MathEnclosureSw / 1.5
@ -309,11 +327,15 @@ glyph-block Symbol-Math-Arith : begin
select-variant 'dotminus' 0x2238 (follow -- 'punctuationDot') select-variant 'dotminus' 0x2238 (follow -- 'punctuationDot')
turned 'minusdot' 0x2A2A 'dotminus' Middle SymbolMid turned 'minusdot' 0x2A2A 'dotminus' Middle SymbolMid
select-variant 'dotslash' null (follow -- 'punctuationDot')
select-variant 'dotvbar' null (follow -- 'punctuationDot')
select-variant 'dottimes' 0x2A30 (follow -- 'punctuationDot') select-variant 'dottimes' 0x2A30 (follow -- 'punctuationDot')
select-variant 'geometricProportion' 0x223A (follow -- 'punctuationDot') select-variant 'geometricProportion' 0x223A (follow -- 'punctuationDot')
select-variant 'minusColon' 0x2239 (follow -- 'punctuationDot') select-variant 'minusColon' 0x2239 (follow -- 'punctuationDot')
select-variant 'divide' 0xF7 (follow -- 'punctuationDot') select-variant 'divide' 0xF7 (follow -- 'punctuationDot')
select-variant 'rotatedDivide' 0x2E13 (follow -- 'punctuationDot')
select-variant 'innerDivide' null (follow -- 'punctuationDot') select-variant 'innerDivide' null (follow -- 'punctuationDot')
select-variant 'rotatedInnerDivide' null (follow -- 'punctuationDot') select-variant 'rotatedInnerDivide' null (follow -- 'punctuationDot')
select-variant 'divisionTimes' 0x22C7 (follow -- 'punctuationDot') select-variant 'divisionTimes' 0x22C7 (follow -- 'punctuationDot')

View file

@ -20,6 +20,7 @@ glyph-block Symbol-Math-Logicals : begin
include : VBar.l SB (SymbolMid - (RightSB - SB) * 0.55) SymbolMid OperatorStroke include : VBar.l SB (SymbolMid - (RightSB - SB) * 0.55) SymbolMid OperatorStroke
turned 'turnedNegate' 0x2319 'negate' Middle SymbolMid turned 'turnedNegate' 0x2319 'negate' Middle SymbolMid
turned 'turnedRevNegate' null 'revNegate' Middle SymbolMid
local top TackTop local top TackTop
local bot TackBot local bot TackBot