From c6d2d99013f6bd92006a3c26d3f0833dc963c83e Mon Sep 17 00:00:00 2001 From: Neil Soiffer Date: Wed, 22 Sep 2021 13:22:15 -0700 Subject: [PATCH 1/5] Added capitalization (C) to braille indicators to fix bug where too much space was removed (after a "comma" which is the same as punctuation in Nemeth). Fixed bug where lang indicator was generated in some cases Fixed comma rule to detect being in superscript correctly --- Rules/Nemeth/unicode.yaml | 1211 +++++++++++++++++++------------------ src/main.rs | 3 +- src/speech.rs | 11 +- src/xpath_functions.rs | 8 +- 4 files changed, 620 insertions(+), 613 deletions(-) diff --git a/Rules/Nemeth/unicode.yaml b/Rules/Nemeth/unicode.yaml index 0998e0a69..4e64fc6fb 100755 --- a/Rules/Nemeth/unicode.yaml +++ b/Rules/Nemeth/unicode.yaml @@ -2,36 +2,39 @@ # To greatly simplify typeface/language generation, the chars have unique ASCII chars for them: # Typeface: S: sans-serif, B: bold, T: script/blackboard, I: italic, R: Roman # Language: E: English, D: German, G: Greek, V: Greek variants, H: Hebrew, U: Russian -# Indicators: N: number, P: punctuation, M: multipurpose +# Indicators: C: capital, N: number, P: punctuation, M: multipurpose # SRE doesn't have H: Hebrew or U: Russian, so not encoded (yet) + + + # --- Nemeth Default Alphabet bold chars. --- - - "𝐀": [t: "BE⠠⠁"] # 0x1d400 - - "𝐁": [t: "BE⠠⠃"] # 0x1d401 - - "𝐂": [t: "BE⠠⠉"] # 0x1d402 - - "𝐃": [t: "BE⠠⠙"] # 0x1d403 - - "𝐄": [t: "BE⠠⠑"] # 0x1d404 - - "𝐅": [t: "BE⠠⠋"] # 0x1d405 - - "𝐆": [t: "BE⠠⠛"] # 0x1d406 - - "𝐇": [t: "BE⠠⠓"] # 0x1d407 - - "𝐈": [t: "BE⠠⠊"] # 0x1d408 - - "𝐉": [t: "BE⠠⠚"] # 0x1d409 - - "𝐊": [t: "BE⠠⠅"] # 0x1d40a - - "𝐋": [t: "BE⠠⠇"] # 0x1d40b - - "𝐌": [t: "BE⠠⠍"] # 0x1d40c - - "𝐍": [t: "BE⠠⠝"] # 0x1d40d - - "𝐎": [t: "BE⠠⠕"] # 0x1d40e - - "𝐏": [t: "BE⠠⠏"] # 0x1d40f - - "𝐐": [t: "BE⠠⠟"] # 0x1d410 - - "𝐑": [t: "BE⠠⠗"] # 0x1d411 - - "𝐒": [t: "BE⠠⠎"] # 0x1d412 - - "𝐓": [t: "BE⠠⠞"] # 0x1d413 - - "𝐔": [t: "BE⠠⠥"] # 0x1d414 - - "𝐕": [t: "BE⠠⠧"] # 0x1d415 - - "𝐖": [t: "BE⠠⠺"] # 0x1d416 - - "𝐗": [t: "BE⠠⠭"] # 0x1d417 - - "𝐘": [t: "BE⠠⠽"] # 0x1d418 - - "𝐙": [t: "BE⠠⠵"] # 0x1d419 + - "𝐀": [t: "BEC⠁"] # 0x1d400 + - "𝐁": [t: "BEC⠃"] # 0x1d401 + - "𝐂": [t: "BEC⠉"] # 0x1d402 + - "𝐃": [t: "BEC⠙"] # 0x1d403 + - "𝐄": [t: "BEC⠑"] # 0x1d404 + - "𝐅": [t: "BEC⠋"] # 0x1d405 + - "𝐆": [t: "BEC⠛"] # 0x1d406 + - "𝐇": [t: "BEC⠓"] # 0x1d407 + - "𝐈": [t: "BEC⠊"] # 0x1d408 + - "𝐉": [t: "BEC⠚"] # 0x1d409 + - "𝐊": [t: "BEC⠅"] # 0x1d40a + - "𝐋": [t: "BEC⠇"] # 0x1d40b + - "𝐌": [t: "BEC⠍"] # 0x1d40c + - "𝐍": [t: "BEC⠝"] # 0x1d40d + - "𝐎": [t: "BEC⠕"] # 0x1d40e + - "𝐏": [t: "BEC⠏"] # 0x1d40f + - "𝐐": [t: "BEC⠟"] # 0x1d410 + - "𝐑": [t: "BEC⠗"] # 0x1d411 + - "𝐒": [t: "BEC⠎"] # 0x1d412 + - "𝐓": [t: "BEC⠞"] # 0x1d413 + - "𝐔": [t: "BEC⠥"] # 0x1d414 + - "𝐕": [t: "BEC⠧"] # 0x1d415 + - "𝐖": [t: "BEC⠺"] # 0x1d416 + - "𝐗": [t: "BEC⠭"] # 0x1d417 + - "𝐘": [t: "BEC⠽"] # 0x1d418 + - "𝐙": [t: "BEC⠵"] # 0x1d419 - "𝐚": [t: "BE⠁"] # 0x1d41a - "𝐛": [t: "BE⠃"] # 0x1d41b - "𝐜": [t: "BE⠉"] # 0x1d41c @@ -58,31 +61,31 @@ - "𝐱": [t: "BE⠭"] # 0x1d431 - "𝐲": [t: "BE⠽"] # 0x1d432 - "𝐳": [t: "BE⠵"] # 0x1d433 - - "𝚨": [t: "BG⠠⠁"] # 0x1d6a8 - - "𝚩": [t: "BG⠠⠃"] # 0x1d6a9 - - "𝚪": [t: "BG⠠⠛"] # 0x1d6aa - - "𝚫": [t: "BG⠠⠙"] # 0x1d6ab - - "𝚬": [t: "BG⠠⠑"] # 0x1d6ac - - "𝚭": [t: "BG⠠⠵"] # 0x1d6ad - - "𝚮": [t: "BG⠠⠱"] # 0x1d6ae - - "𝚯": [t: "BG⠠⠹"] # 0x1d6af - - "𝚰": [t: "BG⠠⠊"] # 0x1d6b0 - - "𝚱": [t: "BG⠠⠅"] # 0x1d6b1 - - "𝚲": [t: "BG⠠⠇"] # 0x1d6b2 - - "𝚳": [t: "BG⠠⠍"] # 0x1d6b3 - - "𝚴": [t: "BG⠠⠝"] # 0x1d6b4 - - "𝚵": [t: "BG⠠⠭"] # 0x1d6b5 - - "𝚶": [t: "BG⠠⠕"] # 0x1d6b6 - - "𝚷": [t: "BG⠠⠏"] # 0x1d6b7 - - "𝚸": [t: "BG⠠⠗"] # 0x1d6b8 - - "𝚹": [t: "BG⠠⠹"] # 0x1d6b9 - - "𝚺": [t: "BG⠠⠎"] # 0x1d6ba - - "𝚻": [t: "BG⠠⠞"] # 0x1d6bb - - "𝚼": [t: "BG⠠⠥"] # 0x1d6bc - - "𝚽": [t: "BG⠠⠋"] # 0x1d6bd - - "𝚾": [t: "BG⠠⠯"] # 0x1d6be - - "𝚿": [t: "BG⠠⠽"] # 0x1d6bf - - "𝛀": [t: "BG⠠⠺"] # 0x1d6c0 + - "𝚨": [t: "BGC⠁"] # 0x1d6a8 + - "𝚩": [t: "BGC⠃"] # 0x1d6a9 + - "𝚪": [t: "BGC⠛"] # 0x1d6aa + - "𝚫": [t: "BGC⠙"] # 0x1d6ab + - "𝚬": [t: "BGC⠑"] # 0x1d6ac + - "𝚭": [t: "BGC⠵"] # 0x1d6ad + - "𝚮": [t: "BGC⠱"] # 0x1d6ae + - "𝚯": [t: "BGC⠹"] # 0x1d6af + - "𝚰": [t: "BGC⠊"] # 0x1d6b0 + - "𝚱": [t: "BGC⠅"] # 0x1d6b1 + - "𝚲": [t: "BGC⠇"] # 0x1d6b2 + - "𝚳": [t: "BGC⠍"] # 0x1d6b3 + - "𝚴": [t: "BGC⠝"] # 0x1d6b4 + - "𝚵": [t: "BGC⠭"] # 0x1d6b5 + - "𝚶": [t: "BGC⠕"] # 0x1d6b6 + - "𝚷": [t: "BGC⠏"] # 0x1d6b7 + - "𝚸": [t: "BGC⠗"] # 0x1d6b8 + - "𝚹": [t: "BGC⠹"] # 0x1d6b9 + - "𝚺": [t: "BGC⠎"] # 0x1d6ba + - "𝚻": [t: "BGC⠞"] # 0x1d6bb + - "𝚼": [t: "BGC⠥"] # 0x1d6bc + - "𝚽": [t: "BGC⠋"] # 0x1d6bd + - "𝚾": [t: "BGC⠯"] # 0x1d6be + - "𝚿": [t: "BGC⠽"] # 0x1d6bf + - "𝛀": [t: "BGC⠺"] # 0x1d6c0 - "𝛁": [t: "BG⠫"] # 0x1d6c1 - "𝛂": [t: "BG⠁"] # 0x1d6c2 - "𝛃": [t: "BG⠃"] # 0x1d6c3 @@ -128,32 +131,32 @@ - "𝟗": [t: "BN⠔"] # 0x1d7d7 # --- Nemeth Default Alphabet bold-fraktur chars. --- - - "𝕬": [t: "BD⠠⠁"] # 0x1d56c - - "𝕭": [t: "BD⠠⠃"] # 0x1d56d - - "𝕮": [t: "BD⠠⠉"] # 0x1d56e - - "𝕯": [t: "BD⠠⠙"] # 0x1d56f - - "𝕰": [t: "BD⠠⠑"] # 0x1d570 - - "𝕱": [t: "BD⠠⠋"] # 0x1d571 - - "𝕲": [t: "BD⠠⠛"] # 0x1d572 - - "𝕳": [t: "BD⠠⠓"] # 0x1d573 - - "𝕴": [t: "BD⠠⠊"] # 0x1d574 - - "𝕵": [t: "BD⠠⠚"] # 0x1d575 - - "𝕶": [t: "BD⠠⠅"] # 0x1d576 - - "𝕷": [t: "BD⠠⠇"] # 0x1d577 - - "𝕸": [t: "BD⠠⠍"] # 0x1d578 - - "𝕹": [t: "BD⠠⠝"] # 0x1d579 - - "𝕺": [t: "BD⠠⠕"] # 0x1d57a - - "𝕻": [t: "BD⠠⠏"] # 0x1d57b - - "𝕼": [t: "BD⠠⠟"] # 0x1d57c - - "𝕽": [t: "BD⠠⠗"] # 0x1d57d - - "𝕾": [t: "BD⠠⠎"] # 0x1d57e - - "𝕿": [t: "BD⠠⠞"] # 0x1d57f - - "𝖀": [t: "BD⠠⠥"] # 0x1d580 - - "𝖁": [t: "BD⠠⠧"] # 0x1d581 - - "𝖂": [t: "BD⠠⠺"] # 0x1d582 - - "𝖃": [t: "BD⠠⠭"] # 0x1d583 - - "𝖄": [t: "BD⠠⠽"] # 0x1d584 - - "𝖅": [t: "BD⠠⠵"] # 0x1d585 + - "𝕬": [t: "BDC⠁"] # 0x1d56c + - "𝕭": [t: "BDC⠃"] # 0x1d56d + - "𝕮": [t: "BDC⠉"] # 0x1d56e + - "𝕯": [t: "BDC⠙"] # 0x1d56f + - "𝕰": [t: "BDC⠑"] # 0x1d570 + - "𝕱": [t: "BDC⠋"] # 0x1d571 + - "𝕲": [t: "BDC⠛"] # 0x1d572 + - "𝕳": [t: "BDC⠓"] # 0x1d573 + - "𝕴": [t: "BDC⠊"] # 0x1d574 + - "𝕵": [t: "BDC⠚"] # 0x1d575 + - "𝕶": [t: "BDC⠅"] # 0x1d576 + - "𝕷": [t: "BDC⠇"] # 0x1d577 + - "𝕸": [t: "BDC⠍"] # 0x1d578 + - "𝕹": [t: "BDC⠝"] # 0x1d579 + - "𝕺": [t: "BDC⠕"] # 0x1d57a + - "𝕻": [t: "BDC⠏"] # 0x1d57b + - "𝕼": [t: "BDC⠟"] # 0x1d57c + - "𝕽": [t: "BDC⠗"] # 0x1d57d + - "𝕾": [t: "BDC⠎"] # 0x1d57e + - "𝕿": [t: "BDC⠞"] # 0x1d57f + - "𝖀": [t: "BDC⠥"] # 0x1d580 + - "𝖁": [t: "BDC⠧"] # 0x1d581 + - "𝖂": [t: "BDC⠺"] # 0x1d582 + - "𝖃": [t: "BDC⠭"] # 0x1d583 + - "𝖄": [t: "BDC⠽"] # 0x1d584 + - "𝖅": [t: "BDC⠵"] # 0x1d585 - "𝖆": [t: "BD⠁"] # 0x1d586 - "𝖇": [t: "BD⠃"] # 0x1d587 - "𝖈": [t: "BD⠉"] # 0x1d588 @@ -182,32 +185,32 @@ - "𝖟": [t: "BD⠵"] # 0x1d59f # --- Nemeth Default Alphabet bold-italic chars. --- - - "𝑨": [t: "BIE⠠⠁"] # 0x1d468 - - "𝑩": [t: "BIE⠠⠃"] # 0x1d469 - - "𝑪": [t: "BIE⠠⠉"] # 0x1d46a - - "𝑫": [t: "BIE⠠⠙"] # 0x1d46b - - "𝑬": [t: "BIE⠠⠑"] # 0x1d46c - - "𝑭": [t: "BIE⠠⠋"] # 0x1d46d - - "𝑮": [t: "BIE⠠⠛"] # 0x1d46e - - "𝑯": [t: "BIE⠠⠓"] # 0x1d46f - - "𝑰": [t: "BIE⠠⠊"] # 0x1d470 - - "𝑱": [t: "BIE⠠⠚"] # 0x1d471 - - "𝑲": [t: "BIE⠠⠅"] # 0x1d472 - - "𝑳": [t: "BIE⠠⠇"] # 0x1d473 - - "𝑴": [t: "BIE⠠⠍"] # 0x1d474 - - "𝑵": [t: "BIE⠠⠝"] # 0x1d475 - - "𝑶": [t: "BIE⠠⠕"] # 0x1d476 - - "𝑷": [t: "BIE⠠⠏"] # 0x1d477 - - "𝑸": [t: "BIE⠠⠟"] # 0x1d478 - - "𝑹": [t: "BIE⠠⠗"] # 0x1d479 - - "𝑺": [t: "BIE⠠⠎"] # 0x1d47a - - "𝑻": [t: "BIE⠠⠞"] # 0x1d47b - - "𝑼": [t: "BIE⠠⠥"] # 0x1d47c - - "𝑽": [t: "BIE⠠⠧"] # 0x1d47d - - "𝑾": [t: "BIE⠠⠺"] # 0x1d47e - - "𝑿": [t: "BIE⠠⠭"] # 0x1d47f - - "𝒀": [t: "BIE⠠⠽"] # 0x1d480 - - "𝒁": [t: "BIE⠠⠵"] # 0x1d481 + - "𝑨": [t: "BIEC⠁"] # 0x1d468 + - "𝑩": [t: "BIEC⠃"] # 0x1d469 + - "𝑪": [t: "BIEC⠉"] # 0x1d46a + - "𝑫": [t: "BIEC⠙"] # 0x1d46b + - "𝑬": [t: "BIEC⠑"] # 0x1d46c + - "𝑭": [t: "BIEC⠋"] # 0x1d46d + - "𝑮": [t: "BIEC⠛"] # 0x1d46e + - "𝑯": [t: "BIEC⠓"] # 0x1d46f + - "𝑰": [t: "BIEC⠊"] # 0x1d470 + - "𝑱": [t: "BIEC⠚"] # 0x1d471 + - "𝑲": [t: "BIEC⠅"] # 0x1d472 + - "𝑳": [t: "BIEC⠇"] # 0x1d473 + - "𝑴": [t: "BIEC⠍"] # 0x1d474 + - "𝑵": [t: "BIEC⠝"] # 0x1d475 + - "𝑶": [t: "BIEC⠕"] # 0x1d476 + - "𝑷": [t: "BIEC⠏"] # 0x1d477 + - "𝑸": [t: "BIEC⠟"] # 0x1d478 + - "𝑹": [t: "BIEC⠗"] # 0x1d479 + - "𝑺": [t: "BIEC⠎"] # 0x1d47a + - "𝑻": [t: "BIEC⠞"] # 0x1d47b + - "𝑼": [t: "BIEC⠥"] # 0x1d47c + - "𝑽": [t: "BIEC⠧"] # 0x1d47d + - "𝑾": [t: "BIEC⠺"] # 0x1d47e + - "𝑿": [t: "BIEC⠭"] # 0x1d47f + - "𝒀": [t: "BIEC⠽"] # 0x1d480 + - "𝒁": [t: "BIEC⠵"] # 0x1d481 - "𝒂": [t: "BIE⠁"] # 0x1d482 - "𝒃": [t: "BIE⠃"] # 0x1d483 - "𝒄": [t: "BIE⠉"] # 0x1d484 @@ -234,31 +237,31 @@ - "𝒙": [t: "BIE⠭"] # 0x1d499 - "𝒚": [t: "BIE⠽"] # 0x1d49a - "𝒛": [t: "BIE⠵"] # 0x1d49b - - "𝜜": [t: "BIG⠠⠁"] # 0x1d71c - - "𝜝": [t: "BIG⠠⠃"] # 0x1d71d - - "𝜞": [t: "BIG⠠⠛"] # 0x1d71e - - "𝜟": [t: "BIG⠠⠙"] # 0x1d71f - - "𝜠": [t: "BIG⠠⠑"] # 0x1d720 - - "𝜡": [t: "BIG⠠⠵"] # 0x1d721 - - "𝜢": [t: "BIG⠠⠱"] # 0x1d722 - - "𝜣": [t: "BIG⠠⠹"] # 0x1d723 - - "𝜤": [t: "BIG⠠⠊"] # 0x1d724 - - "𝜥": [t: "BIG⠠⠅"] # 0x1d725 - - "𝜦": [t: "BIG⠠⠇"] # 0x1d726 - - "𝜧": [t: "BIG⠠⠍"] # 0x1d727 - - "𝜨": [t: "BIG⠠⠝"] # 0x1d728 - - "𝜩": [t: "BIG⠠⠭"] # 0x1d729 - - "𝜪": [t: "BIG⠠⠕"] # 0x1d72a - - "𝜫": [t: "BIG⠠⠏"] # 0x1d72b - - "𝜬": [t: "BIG⠠⠗"] # 0x1d72c - - "𝜭": [t: "BIG⠠⠹"] # 0x1d72d - - "𝜮": [t: "BIG⠠⠎"] # 0x1d72e - - "𝜯": [t: "BIG⠠⠞"] # 0x1d72f - - "𝜰": [t: "BIG⠠⠥"] # 0x1d730 - - "𝜱": [t: "BIG⠠⠋"] # 0x1d731 - - "𝜲": [t: "BIG⠠⠯"] # 0x1d732 - - "𝜳": [t: "BIG⠠⠽"] # 0x1d733 - - "𝜴": [t: "BIG⠠⠺"] # 0x1d734 + - "𝜜": [t: "BIGC⠁"] # 0x1d71c + - "𝜝": [t: "BIGC⠃"] # 0x1d71d + - "𝜞": [t: "BIGC⠛"] # 0x1d71e + - "𝜟": [t: "BIGC⠙"] # 0x1d71f + - "𝜠": [t: "BIGC⠑"] # 0x1d720 + - "𝜡": [t: "BIGC⠵"] # 0x1d721 + - "𝜢": [t: "BIGC⠱"] # 0x1d722 + - "𝜣": [t: "BIGC⠹"] # 0x1d723 + - "𝜤": [t: "BIGC⠊"] # 0x1d724 + - "𝜥": [t: "BIGC⠅"] # 0x1d725 + - "𝜦": [t: "BIGC⠇"] # 0x1d726 + - "𝜧": [t: "BIGC⠍"] # 0x1d727 + - "𝜨": [t: "BIGC⠝"] # 0x1d728 + - "𝜩": [t: "BIGC⠭"] # 0x1d729 + - "𝜪": [t: "BIGC⠕"] # 0x1d72a + - "𝜫": [t: "BIGC⠏"] # 0x1d72b + - "𝜬": [t: "BIGC⠗"] # 0x1d72c + - "𝜭": [t: "BIGC⠹"] # 0x1d72d + - "𝜮": [t: "BIGC⠎"] # 0x1d72e + - "𝜯": [t: "BIGC⠞"] # 0x1d72f + - "𝜰": [t: "BIGC⠥"] # 0x1d730 + - "𝜱": [t: "BIGC⠋"] # 0x1d731 + - "𝜲": [t: "BIGC⠯"] # 0x1d732 + - "𝜳": [t: "BIGC⠽"] # 0x1d733 + - "𝜴": [t: "BIGC⠺"] # 0x1d734 - "𝜵": [t: "BIG⠫"] # 0x1d735 - "𝜶": [t: "BIG⠁"] # 0x1d736 - "𝜷": [t: "BIG⠃"] # 0x1d737 @@ -294,32 +297,32 @@ - "𝝕": [t: "BIG⠏"] # 0x1d755 # --- Nemeth Default Alphabet bold-script chars. --- - - "𝓐": [t: "BTE⠠⠁"] # 0x1d4d0 - - "𝓑": [t: "BTE⠠⠃"] # 0x1d4d1 - - "𝓒": [t: "BTE⠠⠉"] # 0x1d4d2 - - "𝓓": [t: "BTE⠠⠙"] # 0x1d4d3 - - "𝓔": [t: "BTE⠠⠑"] # 0x1d4d4 - - "𝓕": [t: "BTE⠠⠋"] # 0x1d4d5 - - "𝓖": [t: "BTE⠠⠛"] # 0x1d4d6 - - "𝓗": [t: "BTE⠠⠓"] # 0x1d4d7 - - "𝓘": [t: "BTE⠠⠊"] # 0x1d4d8 - - "𝓙": [t: "BTE⠠⠚"] # 0x1d4d9 - - "𝓚": [t: "BTE⠠⠅"] # 0x1d4da - - "𝓛": [t: "BTE⠠⠇"] # 0x1d4db - - "𝓜": [t: "BTE⠠⠍"] # 0x1d4dc - - "𝓝": [t: "BTE⠠⠝"] # 0x1d4dd - - "𝓞": [t: "BTE⠠⠕"] # 0x1d4de - - "𝓟": [t: "BTE⠠⠏"] # 0x1d4df - - "𝓠": [t: "BTE⠠⠟"] # 0x1d4e0 - - "𝓡": [t: "BTE⠠⠗"] # 0x1d4e1 - - "𝓢": [t: "BTE⠠⠎"] # 0x1d4e2 - - "𝓣": [t: "BTE⠠⠞"] # 0x1d4e3 - - "𝓤": [t: "BTE⠠⠥"] # 0x1d4e4 - - "𝓥": [t: "BTE⠠⠧"] # 0x1d4e5 - - "𝓦": [t: "BTE⠠⠺"] # 0x1d4e6 - - "𝓧": [t: "BTE⠠⠭"] # 0x1d4e7 - - "𝓨": [t: "BTE⠠⠽"] # 0x1d4e8 - - "𝓩": [t: "BTE⠠⠵"] # 0x1d4e9 + - "𝓐": [t: "BTEC⠁"] # 0x1d4d0 + - "𝓑": [t: "BTEC⠃"] # 0x1d4d1 + - "𝓒": [t: "BTEC⠉"] # 0x1d4d2 + - "𝓓": [t: "BTEC⠙"] # 0x1d4d3 + - "𝓔": [t: "BTEC⠑"] # 0x1d4d4 + - "𝓕": [t: "BTEC⠋"] # 0x1d4d5 + - "𝓖": [t: "BTEC⠛"] # 0x1d4d6 + - "𝓗": [t: "BTEC⠓"] # 0x1d4d7 + - "𝓘": [t: "BTEC⠊"] # 0x1d4d8 + - "𝓙": [t: "BTEC⠚"] # 0x1d4d9 + - "𝓚": [t: "BTEC⠅"] # 0x1d4da + - "𝓛": [t: "BTEC⠇"] # 0x1d4db + - "𝓜": [t: "BTEC⠍"] # 0x1d4dc + - "𝓝": [t: "BTEC⠝"] # 0x1d4dd + - "𝓞": [t: "BTEC⠕"] # 0x1d4de + - "𝓟": [t: "BTEC⠏"] # 0x1d4df + - "𝓠": [t: "BTEC⠟"] # 0x1d4e0 + - "𝓡": [t: "BTEC⠗"] # 0x1d4e1 + - "𝓢": [t: "BTEC⠎"] # 0x1d4e2 + - "𝓣": [t: "BTEC⠞"] # 0x1d4e3 + - "𝓤": [t: "BTEC⠥"] # 0x1d4e4 + - "𝓥": [t: "BTEC⠧"] # 0x1d4e5 + - "𝓦": [t: "BTEC⠺"] # 0x1d4e6 + - "𝓧": [t: "BTEC⠭"] # 0x1d4e7 + - "𝓨": [t: "BTEC⠽"] # 0x1d4e8 + - "𝓩": [t: "BTEC⠵"] # 0x1d4e9 - "𝓪": [t: "BTE⠁"] # 0x1d4ea - "𝓫": [t: "BTE⠃"] # 0x1d4eb - "𝓬": [t: "BTE⠉"] # 0x1d4ec @@ -490,32 +493,32 @@ - "⓾": [t: "⠫⠉⠸⠫⠫⠉⠸⠫⠼⠂⠴⠻⠻"] # 0x24fe # --- Nemeth Default Alphabet double-struck chars. --- - - "𝔸": [t: "TE⠠⠁"] # 0x1d538 - - "𝔹": [t: "TE⠠⠃"] # 0x1d539 - - "ℂ": [t: "TE⠠⠉"] # 0x2102 - - "𝔻": [t: "TE⠠⠙"] # 0x1d53b - - "𝔼": [t: "TE⠠⠑"] # 0x1d53c - - "𝔽": [t: "TE⠠⠋"] # 0x1d53d - - "𝔾": [t: "TE⠠⠛"] # 0x1d53e - - "ℍ": [t: "TE⠠⠓"] # 0x210d - - "𝕀": [t: "TE⠠⠊"] # 0x1d540 - - "𝕁": [t: "TE⠠⠚"] # 0x1d541 - - "𝕂": [t: "TE⠠⠅"] # 0x1d542 - - "𝕃": [t: "TE⠠⠇"] # 0x1d543 - - "𝕄": [t: "TE⠠⠍"] # 0x1d544 - - "ℕ": [t: "TE⠠⠝"] # 0x2115 - - "𝕆": [t: "TE⠠⠕"] # 0x1d546 - - "ℙ": [t: "TE⠠⠏"] # 0x2119 - - "ℚ": [t: "TE⠠⠟"] # 0x211a - - "ℝ": [t: "TE⠠⠗"] # 0x211d - - "𝕊": [t: "TE⠠⠎"] # 0x1d54a - - "𝕋": [t: "TE⠠⠞"] # 0x1d54b - - "𝕌": [t: "TE⠠⠥"] # 0x1d54c - - "𝕍": [t: "TE⠠⠧"] # 0x1d54d - - "𝕎": [t: "TE⠠⠺"] # 0x1d54e - - "𝕏": [t: "TE⠠⠭"] # 0x1d54f - - "𝕐": [t: "TE⠠⠽"] # 0x1d550 - - "ℤ": [t: "TE⠠⠵"] # 0x2124 + - "𝔸": [t: "TEC⠁"] # 0x1d538 + - "𝔹": [t: "TEC⠃"] # 0x1d539 + - "ℂ": [t: "TEC⠉"] # 0x2102 + - "𝔻": [t: "TEC⠙"] # 0x1d53b + - "𝔼": [t: "TEC⠑"] # 0x1d53c + - "𝔽": [t: "TEC⠋"] # 0x1d53d + - "𝔾": [t: "TEC⠛"] # 0x1d53e + - "ℍ": [t: "TEC⠓"] # 0x210d + - "𝕀": [t: "TEC⠊"] # 0x1d540 + - "𝕁": [t: "TEC⠚"] # 0x1d541 + - "𝕂": [t: "TEC⠅"] # 0x1d542 + - "𝕃": [t: "TEC⠇"] # 0x1d543 + - "𝕄": [t: "TEC⠍"] # 0x1d544 + - "ℕ": [t: "TEC⠝"] # 0x2115 + - "𝕆": [t: "TEC⠕"] # 0x1d546 + - "ℙ": [t: "TEC⠏"] # 0x2119 + - "ℚ": [t: "TEC⠟"] # 0x211a + - "ℝ": [t: "TEC⠗"] # 0x211d + - "𝕊": [t: "TEC⠎"] # 0x1d54a + - "𝕋": [t: "TEC⠞"] # 0x1d54b + - "𝕌": [t: "TEC⠥"] # 0x1d54c + - "𝕍": [t: "TEC⠧"] # 0x1d54d + - "𝕎": [t: "TEC⠺"] # 0x1d54e + - "𝕏": [t: "TEC⠭"] # 0x1d54f + - "𝕐": [t: "TEC⠽"] # 0x1d550 + - "ℤ": [t: "TEC⠵"] # 0x2124 - "𝕒": [t: "TE⠁"] # 0x1d552 - "𝕓": [t: "TE⠃"] # 0x1d553 - "𝕔": [t: "TE⠉"] # 0x1d554 @@ -554,32 +557,32 @@ - "𝟡": [t: "TN⠔"] # 0x1d7e1 # --- Nemeth Default Alphabet fraktur chars. --- - - "𝔄": [t: "D⠠⠁"] # 0x1d504 - - "𝔅": [t: "D⠠⠃"] # 0x1d505 - - "ℭ": [t: "D⠠⠉"] # 0x212d - - "𝔇": [t: "D⠠⠙"] # 0x1d507 - - "𝔈": [t: "D⠠⠑"] # 0x1d508 - - "𝔉": [t: "D⠠⠋"] # 0x1d509 - - "𝔊": [t: "D⠠⠛"] # 0x1d50a - - "ℌ": [t: "D⠠⠓"] # 0x210c - - "ℑ": [t: "D⠠⠊"] # 0x2111 - - "𝔍": [t: "D⠠⠚"] # 0x1d50d - - "𝔎": [t: "D⠠⠅"] # 0x1d50e - - "𝔏": [t: "D⠠⠇"] # 0x1d50f - - "𝔐": [t: "D⠠⠍"] # 0x1d510 - - "𝔑": [t: "D⠠⠝"] # 0x1d511 - - "𝔒": [t: "D⠠⠕"] # 0x1d512 - - "𝔓": [t: "D⠠⠏"] # 0x1d513 - - "𝔔": [t: "D⠠⠟"] # 0x1d514 - - "ℜ": [t: "D⠠⠗"] # 0x211c - - "𝔖": [t: "D⠠⠎"] # 0x1d516 - - "𝔗": [t: "D⠠⠞"] # 0x1d517 - - "𝔘": [t: "D⠠⠥"] # 0x1d518 - - "𝔙": [t: "D⠠⠧"] # 0x1d519 - - "𝔚": [t: "D⠠⠺"] # 0x1d51a - - "𝔛": [t: "D⠠⠭"] # 0x1d51b - - "𝔜": [t: "D⠠⠽"] # 0x1d51c - - "ℨ": [t: "D⠠⠵"] # 0x2128 + - "𝔄": [t: "DC⠁"] # 0x1d504 + - "𝔅": [t: "DC⠃"] # 0x1d505 + - "ℭ": [t: "DC⠉"] # 0x212d + - "𝔇": [t: "DC⠙"] # 0x1d507 + - "𝔈": [t: "DC⠑"] # 0x1d508 + - "𝔉": [t: "DC⠋"] # 0x1d509 + - "𝔊": [t: "DC⠛"] # 0x1d50a + - "ℌ": [t: "DC⠓"] # 0x210c + - "ℑ": [t: "DC⠊"] # 0x2111 + - "𝔍": [t: "DC⠚"] # 0x1d50d + - "𝔎": [t: "DC⠅"] # 0x1d50e + - "𝔏": [t: "DC⠇"] # 0x1d50f + - "𝔐": [t: "DC⠍"] # 0x1d510 + - "𝔑": [t: "DC⠝"] # 0x1d511 + - "𝔒": [t: "DC⠕"] # 0x1d512 + - "𝔓": [t: "DC⠏"] # 0x1d513 + - "𝔔": [t: "DC⠟"] # 0x1d514 + - "ℜ": [t: "DC⠗"] # 0x211c + - "𝔖": [t: "DC⠎"] # 0x1d516 + - "𝔗": [t: "DC⠞"] # 0x1d517 + - "𝔘": [t: "DC⠥"] # 0x1d518 + - "𝔙": [t: "DC⠧"] # 0x1d519 + - "𝔚": [t: "DC⠺"] # 0x1d51a + - "𝔛": [t: "DC⠭"] # 0x1d51b + - "𝔜": [t: "DC⠽"] # 0x1d51c + - "ℨ": [t: "DC⠵"] # 0x2128 - "𝔞": [t: "D⠁"] # 0x1d51e - "𝔟": [t: "D⠃"] # 0x1d51f - "𝔠": [t: "D⠉"] # 0x1d520 @@ -608,32 +611,32 @@ - "𝔷": [t: "D⠵"] # 0x1d537 # --- Nemeth Default Alphabet fullwidth chars. --- - - "A": [t: "⠠⠁"] # 0xff21 - - "B": [t: "⠠⠃"] # 0xff22 - - "C": [t: "⠠⠉"] # 0xff23 - - "D": [t: "⠠⠙"] # 0xff24 - - "E": [t: "⠠⠑"] # 0xff25 - - "F": [t: "⠠⠋"] # 0xff26 - - "G": [t: "⠠⠛"] # 0xff27 - - "H": [t: "⠠⠓"] # 0xff28 - - "I": [t: "⠠⠊"] # 0xff29 - - "J": [t: "⠠⠚"] # 0xff2a - - "K": [t: "⠠⠅"] # 0xff2b - - "L": [t: "⠠⠇"] # 0xff2c - - "M": [t: "⠠⠍"] # 0xff2d - - "N": [t: "⠠⠝"] # 0xff2e - - "O": [t: "⠠⠕"] # 0xff2f - - "P": [t: "⠠⠏"] # 0xff30 - - "Q": [t: "⠠⠟"] # 0xff31 - - "R": [t: "⠠⠗"] # 0xff32 - - "S": [t: "⠠⠎"] # 0xff33 - - "T": [t: "⠠⠞"] # 0xff34 - - "U": [t: "⠠⠥"] # 0xff35 - - "V": [t: "⠠⠧"] # 0xff36 - - "W": [t: "⠠⠺"] # 0xff37 - - "X": [t: "⠠⠭"] # 0xff38 - - "Y": [t: "⠠⠽"] # 0xff39 - - "Z": [t: "⠠⠵"] # 0xff3a + - "A": [t: "C⠁"] # 0xff21 + - "B": [t: "C⠃"] # 0xff22 + - "C": [t: "C⠉"] # 0xff23 + - "D": [t: "C⠙"] # 0xff24 + - "E": [t: "C⠑"] # 0xff25 + - "F": [t: "C⠋"] # 0xff26 + - "G": [t: "C⠛"] # 0xff27 + - "H": [t: "C⠓"] # 0xff28 + - "I": [t: "C⠊"] # 0xff29 + - "J": [t: "C⠚"] # 0xff2a + - "K": [t: "C⠅"] # 0xff2b + - "L": [t: "C⠇"] # 0xff2c + - "M": [t: "C⠍"] # 0xff2d + - "N": [t: "C⠝"] # 0xff2e + - "O": [t: "C⠕"] # 0xff2f + - "P": [t: "C⠏"] # 0xff30 + - "Q": [t: "C⠟"] # 0xff31 + - "R": [t: "C⠗"] # 0xff32 + - "S": [t: "C⠎"] # 0xff33 + - "T": [t: "C⠞"] # 0xff34 + - "U": [t: "C⠥"] # 0xff35 + - "V": [t: "C⠧"] # 0xff36 + - "W": [t: "C⠺"] # 0xff37 + - "X": [t: "C⠭"] # 0xff38 + - "Y": [t: "C⠽"] # 0xff39 + - "Z": [t: "C⠵"] # 0xff3a - "a": [t: "⠁"] # 0xff41 - "b": [t: "⠃"] # 0xff42 - "c": [t: "⠉"] # 0xff43 @@ -672,32 +675,32 @@ - "9": [t: "N⠔"] # 0xff19 # --- Nemeth Default Alphabet italic chars. --- - - "𝐴": [t: "IE⠠⠁"] # 0x1d434 - - "𝐵": [t: "IE⠠⠃"] # 0x1d435 - - "𝐶": [t: "IE⠠⠉"] # 0x1d436 - - "𝐷": [t: "IE⠠⠙"] # 0x1d437 - - "𝐸": [t: "IE⠠⠑"] # 0x1d438 - - "𝐹": [t: "IE⠠⠋"] # 0x1d439 - - "𝐺": [t: "IE⠠⠛"] # 0x1d43a - - "𝐻": [t: "IE⠠⠓"] # 0x1d43b - - "𝐼": [t: "IE⠠⠊"] # 0x1d43c - - "𝐽": [t: "IE⠠⠚"] # 0x1d43d - - "𝐾": [t: "IE⠠⠅"] # 0x1d43e - - "𝐿": [t: "IE⠠⠇"] # 0x1d43f - - "𝑀": [t: "IE⠠⠍"] # 0x1d440 - - "𝑁": [t: "IE⠠⠝"] # 0x1d441 - - "𝑂": [t: "IE⠠⠕"] # 0x1d442 - - "𝑃": [t: "IE⠠⠏"] # 0x1d443 - - "𝑄": [t: "IE⠠⠟"] # 0x1d444 - - "𝑅": [t: "IE⠠⠗"] # 0x1d445 - - "𝑆": [t: "IE⠠⠎"] # 0x1d446 - - "𝑇": [t: "IE⠠⠞"] # 0x1d447 - - "𝑈": [t: "IE⠠⠥"] # 0x1d448 - - "𝑉": [t: "IE⠠⠧"] # 0x1d449 - - "𝑊": [t: "IE⠠⠺"] # 0x1d44a - - "𝑋": [t: "IE⠠⠭"] # 0x1d44b - - "𝑌": [t: "IE⠠⠽"] # 0x1d44c - - "𝑍": [t: "IE⠠⠵"] # 0x1d44d + - "𝐴": [t: "IEC⠁"] # 0x1d434 + - "𝐵": [t: "IEC⠃"] # 0x1d435 + - "𝐶": [t: "IEC⠉"] # 0x1d436 + - "𝐷": [t: "IEC⠙"] # 0x1d437 + - "𝐸": [t: "IEC⠑"] # 0x1d438 + - "𝐹": [t: "IEC⠋"] # 0x1d439 + - "𝐺": [t: "IEC⠛"] # 0x1d43a + - "𝐻": [t: "IEC⠓"] # 0x1d43b + - "𝐼": [t: "IEC⠊"] # 0x1d43c + - "𝐽": [t: "IEC⠚"] # 0x1d43d + - "𝐾": [t: "IEC⠅"] # 0x1d43e + - "𝐿": [t: "IEC⠇"] # 0x1d43f + - "𝑀": [t: "IEC⠍"] # 0x1d440 + - "𝑁": [t: "IEC⠝"] # 0x1d441 + - "𝑂": [t: "IEC⠕"] # 0x1d442 + - "𝑃": [t: "IEC⠏"] # 0x1d443 + - "𝑄": [t: "IEC⠟"] # 0x1d444 + - "𝑅": [t: "IEC⠗"] # 0x1d445 + - "𝑆": [t: "IEC⠎"] # 0x1d446 + - "𝑇": [t: "IEC⠞"] # 0x1d447 + - "𝑈": [t: "IEC⠥"] # 0x1d448 + - "𝑉": [t: "IEC⠧"] # 0x1d449 + - "𝑊": [t: "IEC⠺"] # 0x1d44a + - "𝑋": [t: "IEC⠭"] # 0x1d44b + - "𝑌": [t: "IEC⠽"] # 0x1d44c + - "𝑍": [t: "IEC⠵"] # 0x1d44d - "𝑎": [t: "IE⠁"] # 0x1d44e - "𝑏": [t: "IE⠃"] # 0x1d44f - "𝑐": [t: "IE⠉"] # 0x1d450 @@ -724,31 +727,31 @@ - "𝑥": [t: "IE⠭"] # 0x1d465 - "𝑦": [t: "IE⠽"] # 0x1d466 - "𝑧": [t: "IE⠵"] # 0x1d467 - - "𝛢": [t: "IG⠠⠁"] # 0x1d6e2 - - "𝛣": [t: "IG⠠⠃"] # 0x1d6e3 - - "𝛤": [t: "IG⠠⠛"] # 0x1d6e4 - - "𝛥": [t: "IG⠠⠙"] # 0x1d6e5 - - "𝛦": [t: "IG⠠⠑"] # 0x1d6e6 - - "𝛧": [t: "IG⠠⠵"] # 0x1d6e7 - - "𝛨": [t: "IG⠠⠱"] # 0x1d6e8 - - "𝛩": [t: "IG⠠⠹"] # 0x1d6e9 - - "𝛪": [t: "IG⠠⠊"] # 0x1d6ea - - "𝛫": [t: "IG⠠⠅"] # 0x1d6eb - - "𝛬": [t: "IG⠠⠇"] # 0x1d6ec - - "𝛭": [t: "IG⠠⠍"] # 0x1d6ed - - "𝛮": [t: "IG⠠⠝"] # 0x1d6ee - - "𝛯": [t: "IG⠠⠭"] # 0x1d6ef - - "𝛰": [t: "IG⠠⠕"] # 0x1d6f0 - - "𝛱": [t: "IG⠠⠏"] # 0x1d6f1 - - "𝛲": [t: "IG⠠⠗"] # 0x1d6f2 - - "𝛳": [t: "IG⠠⠹"] # 0x1d6f3 - - "𝛴": [t: "IG⠠⠎"] # 0x1d6f4 - - "𝛵": [t: "IG⠠⠞"] # 0x1d6f5 - - "𝛶": [t: "IG⠠⠥"] # 0x1d6f6 - - "𝛷": [t: "IG⠠⠋"] # 0x1d6f7 - - "𝛸": [t: "IG⠠⠯"] # 0x1d6f8 - - "𝛹": [t: "IG⠠⠽"] # 0x1d6f9 - - "𝛺": [t: "IG⠠⠺"] # 0x1d6fa + - "𝛢": [t: "IGC⠁"] # 0x1d6e2 + - "𝛣": [t: "IGC⠃"] # 0x1d6e3 + - "𝛤": [t: "IGC⠛"] # 0x1d6e4 + - "𝛥": [t: "IGC⠙"] # 0x1d6e5 + - "𝛦": [t: "IGC⠑"] # 0x1d6e6 + - "𝛧": [t: "IGC⠵"] # 0x1d6e7 + - "𝛨": [t: "IGC⠱"] # 0x1d6e8 + - "𝛩": [t: "IGC⠹"] # 0x1d6e9 + - "𝛪": [t: "IGC⠊"] # 0x1d6ea + - "𝛫": [t: "IGC⠅"] # 0x1d6eb + - "𝛬": [t: "IGC⠇"] # 0x1d6ec + - "𝛭": [t: "IGC⠍"] # 0x1d6ed + - "𝛮": [t: "IGC⠝"] # 0x1d6ee + - "𝛯": [t: "IGC⠭"] # 0x1d6ef + - "𝛰": [t: "IGC⠕"] # 0x1d6f0 + - "𝛱": [t: "IGC⠏"] # 0x1d6f1 + - "𝛲": [t: "IGC⠗"] # 0x1d6f2 + - "𝛳": [t: "IGC⠹"] # 0x1d6f3 + - "𝛴": [t: "IGC⠎"] # 0x1d6f4 + - "𝛵": [t: "IGC⠞"] # 0x1d6f5 + - "𝛶": [t: "IGC⠥"] # 0x1d6f6 + - "𝛷": [t: "IGC⠋"] # 0x1d6f7 + - "𝛸": [t: "IGC⠯"] # 0x1d6f8 + - "𝛹": [t: "IGC⠽"] # 0x1d6f9 + - "𝛺": [t: "IGC⠺"] # 0x1d6fa - "𝛻": [t: "IG⠫"] # 0x1d6fb - "𝛼": [t: "IG⠁"] # 0x1d6fc - "𝛽": [t: "IG⠃"] # 0x1d6fd @@ -784,32 +787,32 @@ - "𝜛": [t: "IG⠏"] # 0x1d71b # --- Nemeth Default Alphabet monospace chars. --- - - "𝙰": [t: "⠠⠁"] # 0x1d670 - - "𝙱": [t: "⠠⠃"] # 0x1d671 - - "𝙲": [t: "⠠⠉"] # 0x1d672 - - "𝙳": [t: "⠠⠙"] # 0x1d673 - - "𝙴": [t: "⠠⠑"] # 0x1d674 - - "𝙵": [t: "⠠⠋"] # 0x1d675 - - "𝙶": [t: "⠠⠛"] # 0x1d676 - - "𝙷": [t: "⠠⠓"] # 0x1d677 - - "𝙸": [t: "⠠⠊"] # 0x1d678 - - "𝙹": [t: "⠠⠚"] # 0x1d679 - - "𝙺": [t: "⠠⠅"] # 0x1d67a - - "𝙻": [t: "⠠⠇"] # 0x1d67b - - "𝙼": [t: "⠠⠍"] # 0x1d67c - - "𝙽": [t: "⠠⠝"] # 0x1d67d - - "𝙾": [t: "⠠⠕"] # 0x1d67e - - "𝙿": [t: "⠠⠏"] # 0x1d67f - - "𝚀": [t: "⠠⠟"] # 0x1d680 - - "𝚁": [t: "⠠⠗"] # 0x1d681 - - "𝚂": [t: "⠠⠎"] # 0x1d682 - - "𝚃": [t: "⠠⠞"] # 0x1d683 - - "𝚄": [t: "⠠⠥"] # 0x1d684 - - "𝚅": [t: "⠠⠧"] # 0x1d685 - - "𝚆": [t: "⠠⠺"] # 0x1d686 - - "𝚇": [t: "⠠⠭"] # 0x1d687 - - "𝚈": [t: "⠠⠽"] # 0x1d688 - - "𝚉": [t: "⠠⠵"] # 0x1d689 + - "𝙰": [t: "C⠁"] # 0x1d670 + - "𝙱": [t: "C⠃"] # 0x1d671 + - "𝙲": [t: "C⠉"] # 0x1d672 + - "𝙳": [t: "C⠙"] # 0x1d673 + - "𝙴": [t: "C⠑"] # 0x1d674 + - "𝙵": [t: "C⠋"] # 0x1d675 + - "𝙶": [t: "C⠛"] # 0x1d676 + - "𝙷": [t: "C⠓"] # 0x1d677 + - "𝙸": [t: "C⠊"] # 0x1d678 + - "𝙹": [t: "C⠚"] # 0x1d679 + - "𝙺": [t: "C⠅"] # 0x1d67a + - "𝙻": [t: "C⠇"] # 0x1d67b + - "𝙼": [t: "C⠍"] # 0x1d67c + - "𝙽": [t: "C⠝"] # 0x1d67d + - "𝙾": [t: "C⠕"] # 0x1d67e + - "𝙿": [t: "C⠏"] # 0x1d67f + - "𝚀": [t: "C⠟"] # 0x1d680 + - "𝚁": [t: "C⠗"] # 0x1d681 + - "𝚂": [t: "C⠎"] # 0x1d682 + - "𝚃": [t: "C⠞"] # 0x1d683 + - "𝚄": [t: "C⠥"] # 0x1d684 + - "𝚅": [t: "C⠧"] # 0x1d685 + - "𝚆": [t: "C⠺"] # 0x1d686 + - "𝚇": [t: "C⠭"] # 0x1d687 + - "𝚈": [t: "C⠽"] # 0x1d688 + - "𝚉": [t: "C⠵"] # 0x1d689 - "𝚊": [t: "⠁"] # 0x1d68a - "𝚋": [t: "⠃"] # 0x1d68b - "𝚌": [t: "⠉"] # 0x1d68c @@ -948,32 +951,32 @@ - "7": [t: "N⠶"] # 0x37 - "8": [t: "N⠦"] # 0x38 - "9": [t: "N⠔"] # 0x39 - - "A": [t: "⠠⠁"] # 0x41 - - "B": [t: "⠠⠃"] # 0x42 - - "C": [t: "⠠⠉"] # 0x43 - - "D": [t: "⠠⠙"] # 0x44 - - "E": [t: "⠠⠑"] # 0x45 - - "F": [t: "⠠⠋"] # 0x46 - - "G": [t: "⠠⠛"] # 0x47 - - "H": [t: "⠠⠓"] # 0x48 - - "I": [t: "⠠⠊"] # 0x49 - - "J": [t: "⠠⠚"] # 0x4a - - "K": [t: "⠠⠅"] # 0x4b - - "L": [t: "⠠⠇"] # 0x4c - - "M": [t: "⠠⠍"] # 0x4d - - "N": [t: "⠠⠝"] # 0x4e - - "O": [t: "⠠⠕"] # 0x4f - - "P": [t: "⠠⠏"] # 0x50 - - "Q": [t: "⠠⠟"] # 0x51 - - "R": [t: "⠠⠗"] # 0x52 - - "S": [t: "⠠⠎"] # 0x53 - - "T": [t: "⠠⠞"] # 0x54 - - "U": [t: "⠠⠥"] # 0x55 - - "V": [t: "⠠⠧"] # 0x56 - - "W": [t: "⠠⠺"] # 0x57 - - "X": [t: "⠠⠭"] # 0x58 - - "Y": [t: "⠠⠽"] # 0x59 - - "Z": [t: "⠠⠵"] # 0x5a + - "A": [t: "C⠁"] # 0x41 + - "B": [t: "C⠃"] # 0x42 + - "C": [t: "C⠉"] # 0x43 + - "D": [t: "C⠙"] # 0x44 + - "E": [t: "C⠑"] # 0x45 + - "F": [t: "C⠋"] # 0x46 + - "G": [t: "C⠛"] # 0x47 + - "H": [t: "C⠓"] # 0x48 + - "I": [t: "C⠊"] # 0x49 + - "J": [t: "C⠚"] # 0x4a + - "K": [t: "C⠅"] # 0x4b + - "L": [t: "C⠇"] # 0x4c + - "M": [t: "C⠍"] # 0x4d + - "N": [t: "C⠝"] # 0x4e + - "O": [t: "C⠕"] # 0x4f + - "P": [t: "C⠏"] # 0x50 + - "Q": [t: "C⠟"] # 0x51 + - "R": [t: "C⠗"] # 0x52 + - "S": [t: "C⠎"] # 0x53 + - "T": [t: "C⠞"] # 0x54 + - "U": [t: "C⠥"] # 0x55 + - "V": [t: "C⠧"] # 0x56 + - "W": [t: "C⠺"] # 0x57 + - "X": [t: "C⠭"] # 0x58 + - "Y": [t: "C⠽"] # 0x59 + - "Z": [t: "C⠵"] # 0x5a - "a": [t: "⠁"] # 0x61 - "b": [t: "⠃"] # 0x62 - "c": [t: "⠉"] # 0x63 @@ -1000,31 +1003,31 @@ - "x": [t: "⠭"] # 0x78 - "y": [t: "⠽"] # 0x79 - "z": [t: "⠵"] # 0x7a - - "Α": [t: "G⠠⠁"] # 0x391 - - "Β": [t: "G⠠⠃"] # 0x392 - - "Γ": [t: "G⠠⠛"] # 0x393 - - "Δ": [t: "G⠠⠙"] # 0x394 - - "Ε": [t: "G⠠⠑"] # 0x395 - - "Ζ": [t: "G⠠⠵"] # 0x396 - - "Η": [t: "G⠠⠱"] # 0x397 - - "Θ": [t: "G⠠⠹"] # 0x398 - - "Ι": [t: "G⠠⠊"] # 0x399 - - "Κ": [t: "G⠠⠅"] # 0x39a - - "Λ": [t: "G⠠⠇"] # 0x39b - - "Μ": [t: "G⠠⠍"] # 0x39c - - "Ν": [t: "G⠠⠝"] # 0x39d - - "Ξ": [t: "G⠠⠭"] # 0x39e - - "Ο": [t: "G⠠⠕"] # 0x39f - - "Π": [t: "G⠠⠏"] # 0x3a0 - - "Ρ": [t: "G⠠⠗"] # 0x3a1 - - "ϴ": [t: "G⠠⠹"] # 0x3f4 - - "Σ": [t: "G⠠⠎"] # 0x3a3 - - "Τ": [t: "G⠠⠞"] # 0x3a4 - - "Υ": [t: "G⠠⠥"] # 0x3a5 - - "Φ": [t: "G⠠⠋"] # 0x3a6 - - "Χ": [t: "G⠠⠯"] # 0x3a7 - - "Ψ": [t: "G⠠⠽"] # 0x3a8 - - "Ω": [t: "G⠠⠺"] # 0x3a9 + - "Α": [t: "GC⠁"] # 0x391 + - "Β": [t: "GC⠃"] # 0x392 + - "Γ": [t: "GC⠛"] # 0x393 + - "Δ": [t: "GC⠙"] # 0x394 + - "Ε": [t: "GC⠑"] # 0x395 + - "Ζ": [t: "GC⠵"] # 0x396 + - "Η": [t: "GC⠱"] # 0x397 + - "Θ": [t: "GC⠹"] # 0x398 + - "Ι": [t: "GC⠊"] # 0x399 + - "Κ": [t: "GC⠅"] # 0x39a + - "Λ": [t: "GC⠇"] # 0x39b + - "Μ": [t: "GC⠍"] # 0x39c + - "Ν": [t: "GC⠝"] # 0x39d + - "Ξ": [t: "GC⠭"] # 0x39e + - "Ο": [t: "GC⠕"] # 0x39f + - "Π": [t: "GC⠏"] # 0x3a0 + - "Ρ": [t: "GC⠗"] # 0x3a1 + - "ϴ": [t: "GC⠹"] # 0x3f4 + - "Σ": [t: "GC⠎"] # 0x3a3 + - "Τ": [t: "GC⠞"] # 0x3a4 + - "Υ": [t: "GC⠥"] # 0x3a5 + - "Φ": [t: "GC⠋"] # 0x3a6 + - "Χ": [t: "GC⠯"] # 0x3a7 + - "Ψ": [t: "GC⠽"] # 0x3a8 + - "Ω": [t: "GC⠺"] # 0x3a9 - "∇": [t: "G⠫"] # 0x2207 - "α": [t: "G⠁"] # 0x3b1 - "β": [t: "G⠃"] # 0x3b2 @@ -1157,32 +1160,32 @@ - "⒛": [t: "⠆⠴⠸⠲"] # 0x249b # --- Nemeth Default Alphabet sans-serif chars. --- - - "𝖠": [t: "SE⠠⠁"] # 0x1d5a0 - - "𝖡": [t: "SE⠠⠃"] # 0x1d5a1 - - "𝖢": [t: "SE⠠⠉"] # 0x1d5a2 - - "𝖣": [t: "SE⠠⠙"] # 0x1d5a3 - - "𝖤": [t: "SE⠠⠑"] # 0x1d5a4 - - "𝖥": [t: "SE⠠⠋"] # 0x1d5a5 - - "𝖦": [t: "SE⠠⠛"] # 0x1d5a6 - - "𝖧": [t: "SE⠠⠓"] # 0x1d5a7 - - "𝖨": [t: "SE⠠⠊"] # 0x1d5a8 - - "𝖩": [t: "SE⠠⠚"] # 0x1d5a9 - - "𝖪": [t: "SE⠠⠅"] # 0x1d5aa - - "𝖫": [t: "SE⠠⠇"] # 0x1d5ab - - "𝖬": [t: "SE⠠⠍"] # 0x1d5ac - - "𝖭": [t: "SE⠠⠝"] # 0x1d5ad - - "𝖮": [t: "SE⠠⠕"] # 0x1d5ae - - "𝖯": [t: "SE⠠⠏"] # 0x1d5af - - "𝖰": [t: "SE⠠⠟"] # 0x1d5b0 - - "𝖱": [t: "SE⠠⠗"] # 0x1d5b1 - - "𝖲": [t: "SE⠠⠎"] # 0x1d5b2 - - "𝖳": [t: "SE⠠⠞"] # 0x1d5b3 - - "𝖴": [t: "SE⠠⠥"] # 0x1d5b4 - - "𝖵": [t: "SE⠠⠧"] # 0x1d5b5 - - "𝖶": [t: "SE⠠⠺"] # 0x1d5b6 - - "𝖷": [t: "SE⠠⠭"] # 0x1d5b7 - - "𝖸": [t: "SE⠠⠽"] # 0x1d5b8 - - "𝖹": [t: "SE⠠⠵"] # 0x1d5b9 + - "𝖠": [t: "SEC⠁"] # 0x1d5a0 + - "𝖡": [t: "SEC⠃"] # 0x1d5a1 + - "𝖢": [t: "SEC⠉"] # 0x1d5a2 + - "𝖣": [t: "SEC⠙"] # 0x1d5a3 + - "𝖤": [t: "SEC⠑"] # 0x1d5a4 + - "𝖥": [t: "SEC⠋"] # 0x1d5a5 + - "𝖦": [t: "SEC⠛"] # 0x1d5a6 + - "𝖧": [t: "SEC⠓"] # 0x1d5a7 + - "𝖨": [t: "SEC⠊"] # 0x1d5a8 + - "𝖩": [t: "SEC⠚"] # 0x1d5a9 + - "𝖪": [t: "SEC⠅"] # 0x1d5aa + - "𝖫": [t: "SEC⠇"] # 0x1d5ab + - "𝖬": [t: "SEC⠍"] # 0x1d5ac + - "𝖭": [t: "SEC⠝"] # 0x1d5ad + - "𝖮": [t: "SEC⠕"] # 0x1d5ae + - "𝖯": [t: "SEC⠏"] # 0x1d5af + - "𝖰": [t: "SEC⠟"] # 0x1d5b0 + - "𝖱": [t: "SEC⠗"] # 0x1d5b1 + - "𝖲": [t: "SEC⠎"] # 0x1d5b2 + - "𝖳": [t: "SEC⠞"] # 0x1d5b3 + - "𝖴": [t: "SEC⠥"] # 0x1d5b4 + - "𝖵": [t: "SEC⠧"] # 0x1d5b5 + - "𝖶": [t: "SEC⠺"] # 0x1d5b6 + - "𝖷": [t: "SEC⠭"] # 0x1d5b7 + - "𝖸": [t: "SEC⠽"] # 0x1d5b8 + - "𝖹": [t: "SEC⠵"] # 0x1d5b9 - "𝖺": [t: "SE⠁"] # 0x1d5ba - "𝖻": [t: "SE⠃"] # 0x1d5bb - "𝖼": [t: "SE⠉"] # 0x1d5bc @@ -1221,32 +1224,32 @@ - "𝟫": [t: "SN⠔"] # 0x1d7eb # --- Nemeth Default Alphabet sans-serif-bold chars. --- - - "𝗔": [t: "SBE⠠⠁"] # 0x1d5d4 - - "𝗕": [t: "SBE⠠⠃"] # 0x1d5d5 - - "𝗖": [t: "SBE⠠⠉"] # 0x1d5d6 - - "𝗗": [t: "SBE⠠⠙"] # 0x1d5d7 - - "𝗘": [t: "SBE⠠⠑"] # 0x1d5d8 - - "𝗙": [t: "SBE⠠⠋"] # 0x1d5d9 - - "𝗚": [t: "SBE⠠⠛"] # 0x1d5da - - "𝗛": [t: "SBE⠠⠓"] # 0x1d5db - - "𝗜": [t: "SBE⠠⠊"] # 0x1d5dc - - "𝗝": [t: "SBE⠠⠚"] # 0x1d5dd - - "𝗞": [t: "SBE⠠⠅"] # 0x1d5de - - "𝗟": [t: "SBE⠠⠇"] # 0x1d5df - - "𝗠": [t: "SBE⠠⠍"] # 0x1d5e0 - - "𝗡": [t: "SBE⠠⠝"] # 0x1d5e1 - - "𝗢": [t: "SBE⠠⠕"] # 0x1d5e2 - - "𝗣": [t: "SBE⠠⠏"] # 0x1d5e3 - - "𝗤": [t: "SBE⠠⠟"] # 0x1d5e4 - - "𝗥": [t: "SBE⠠⠗"] # 0x1d5e5 - - "𝗦": [t: "SBE⠠⠎"] # 0x1d5e6 - - "𝗧": [t: "SBE⠠⠞"] # 0x1d5e7 - - "𝗨": [t: "SBE⠠⠥"] # 0x1d5e8 - - "𝗩": [t: "SBE⠠⠧"] # 0x1d5e9 - - "𝗪": [t: "SBE⠠⠺"] # 0x1d5ea - - "𝗫": [t: "SBE⠠⠭"] # 0x1d5eb - - "𝗬": [t: "SBE⠠⠽"] # 0x1d5ec - - "𝗭": [t: "SBE⠠⠵"] # 0x1d5ed + - "𝗔": [t: "SBEC⠁"] # 0x1d5d4 + - "𝗕": [t: "SBEC⠃"] # 0x1d5d5 + - "𝗖": [t: "SBEC⠉"] # 0x1d5d6 + - "𝗗": [t: "SBEC⠙"] # 0x1d5d7 + - "𝗘": [t: "SBEC⠑"] # 0x1d5d8 + - "𝗙": [t: "SBEC⠋"] # 0x1d5d9 + - "𝗚": [t: "SBEC⠛"] # 0x1d5da + - "𝗛": [t: "SBEC⠓"] # 0x1d5db + - "𝗜": [t: "SBEC⠊"] # 0x1d5dc + - "𝗝": [t: "SBEC⠚"] # 0x1d5dd + - "𝗞": [t: "SBEC⠅"] # 0x1d5de + - "𝗟": [t: "SBEC⠇"] # 0x1d5df + - "𝗠": [t: "SBEC⠍"] # 0x1d5e0 + - "𝗡": [t: "SBEC⠝"] # 0x1d5e1 + - "𝗢": [t: "SBEC⠕"] # 0x1d5e2 + - "𝗣": [t: "SBEC⠏"] # 0x1d5e3 + - "𝗤": [t: "SBEC⠟"] # 0x1d5e4 + - "𝗥": [t: "SBEC⠗"] # 0x1d5e5 + - "𝗦": [t: "SBEC⠎"] # 0x1d5e6 + - "𝗧": [t: "SBEC⠞"] # 0x1d5e7 + - "𝗨": [t: "SBEC⠥"] # 0x1d5e8 + - "𝗩": [t: "SBEC⠧"] # 0x1d5e9 + - "𝗪": [t: "SBEC⠺"] # 0x1d5ea + - "𝗫": [t: "SBEC⠭"] # 0x1d5eb + - "𝗬": [t: "SBEC⠽"] # 0x1d5ec + - "𝗭": [t: "SBEC⠵"] # 0x1d5ed - "𝗮": [t: "SBE⠁"] # 0x1d5ee - "𝗯": [t: "SBE⠃"] # 0x1d5ef - "𝗰": [t: "SBE⠉"] # 0x1d5f0 @@ -1273,31 +1276,31 @@ - "𝘅": [t: "SBE⠭"] # 0x1d605 - "𝘆": [t: "SBE⠽"] # 0x1d606 - "𝘇": [t: "SBE⠵"] # 0x1d607 - - "𝝖": [t: "SBG⠠⠁"] # 0x1d756 - - "𝝗": [t: "SBG⠠⠃"] # 0x1d757 - - "𝝘": [t: "SBG⠠⠛"] # 0x1d758 - - "𝝙": [t: "SBG⠠⠙"] # 0x1d759 - - "𝝚": [t: "SBG⠠⠑"] # 0x1d75a - - "𝝛": [t: "SBG⠠⠵"] # 0x1d75b - - "𝝜": [t: "SBG⠠⠱"] # 0x1d75c - - "𝝝": [t: "SBG⠠⠹"] # 0x1d75d - - "𝝞": [t: "SBG⠠⠊"] # 0x1d75e - - "𝝟": [t: "SBG⠠⠅"] # 0x1d75f - - "𝝠": [t: "SBG⠠⠇"] # 0x1d760 - - "𝝡": [t: "SBG⠠⠍"] # 0x1d761 - - "𝝢": [t: "SBG⠠⠝"] # 0x1d762 - - "𝝣": [t: "SBG⠠⠭"] # 0x1d763 - - "𝝤": [t: "SBG⠠⠕"] # 0x1d764 - - "𝝥": [t: "SBG⠠⠏"] # 0x1d765 - - "𝝦": [t: "SBG⠠⠗"] # 0x1d766 - - "𝝧": [t: "SBG⠠⠹"] # 0x1d767 - - "𝝨": [t: "SBG⠠⠎"] # 0x1d768 - - "𝝩": [t: "SBG⠠⠞"] # 0x1d769 - - "𝝪": [t: "SBG⠠⠥"] # 0x1d76a - - "𝝫": [t: "SBG⠠⠋"] # 0x1d76b - - "𝝬": [t: "SBG⠠⠯"] # 0x1d76c - - "𝝭": [t: "SBG⠠⠽"] # 0x1d76d - - "𝝮": [t: "SBG⠠⠺"] # 0x1d76e + - "𝝖": [t: "SBGC⠁"] # 0x1d756 + - "𝝗": [t: "SBGC⠃"] # 0x1d757 + - "𝝘": [t: "SBGC⠛"] # 0x1d758 + - "𝝙": [t: "SBGC⠙"] # 0x1d759 + - "𝝚": [t: "SBGC⠑"] # 0x1d75a + - "𝝛": [t: "SBGC⠵"] # 0x1d75b + - "𝝜": [t: "SBGC⠱"] # 0x1d75c + - "𝝝": [t: "SBGC⠹"] # 0x1d75d + - "𝝞": [t: "SBGC⠊"] # 0x1d75e + - "𝝟": [t: "SBGC⠅"] # 0x1d75f + - "𝝠": [t: "SBGC⠇"] # 0x1d760 + - "𝝡": [t: "SBGC⠍"] # 0x1d761 + - "𝝢": [t: "SBGC⠝"] # 0x1d762 + - "𝝣": [t: "SBGC⠭"] # 0x1d763 + - "𝝤": [t: "SBGC⠕"] # 0x1d764 + - "𝝥": [t: "SBGC⠏"] # 0x1d765 + - "𝝦": [t: "SBGC⠗"] # 0x1d766 + - "𝝧": [t: "SBGC⠹"] # 0x1d767 + - "𝝨": [t: "SBGC⠎"] # 0x1d768 + - "𝝩": [t: "SBGC⠞"] # 0x1d769 + - "𝝪": [t: "SBGC⠥"] # 0x1d76a + - "𝝫": [t: "SBGC⠋"] # 0x1d76b + - "𝝬": [t: "SBGC⠯"] # 0x1d76c + - "𝝭": [t: "SBGC⠽"] # 0x1d76d + - "𝝮": [t: "SBGC⠺"] # 0x1d76e - "𝝯": [t: "SBG⠫"] # 0x1d76f - "𝝰": [t: "SBG⠁"] # 0x1d770 - "𝝱": [t: "SBG⠃"] # 0x1d771 @@ -1343,32 +1346,32 @@ - "𝟵": [t: "SBN⠔"] # 0x1d7f5 # --- Nemeth Default Alphabet sans-serif-bold-italic chars. --- - - "𝘼": [t: "SBIE⠠⠁"] # 0x1d63c - - "𝘽": [t: "SBIE⠠⠃"] # 0x1d63d - - "𝘾": [t: "SBIE⠠⠉"] # 0x1d63e - - "𝘿": [t: "SBIE⠠⠙"] # 0x1d63f - - "𝙀": [t: "SBIE⠠⠑"] # 0x1d640 - - "𝙁": [t: "SBIE⠠⠋"] # 0x1d641 - - "𝙂": [t: "SBIE⠠⠛"] # 0x1d642 - - "𝙃": [t: "SBIE⠠⠓"] # 0x1d643 - - "𝙄": [t: "SBIE⠠⠊"] # 0x1d644 - - "𝙅": [t: "SBIE⠠⠚"] # 0x1d645 - - "𝙆": [t: "SBIE⠠⠅"] # 0x1d646 - - "𝙇": [t: "SBIE⠠⠇"] # 0x1d647 - - "𝙈": [t: "SBIE⠠⠍"] # 0x1d648 - - "𝙉": [t: "SBIE⠠⠝"] # 0x1d649 - - "𝙊": [t: "SBIE⠠⠕"] # 0x1d64a - - "𝙋": [t: "SBIE⠠⠏"] # 0x1d64b - - "𝙌": [t: "SBIE⠠⠟"] # 0x1d64c - - "𝙍": [t: "SBIE⠠⠗"] # 0x1d64d - - "𝙎": [t: "SBIE⠠⠎"] # 0x1d64e - - "𝙏": [t: "SBIE⠠⠞"] # 0x1d64f - - "𝙐": [t: "SBIE⠠⠥"] # 0x1d650 - - "𝙑": [t: "SBIE⠠⠧"] # 0x1d651 - - "𝙒": [t: "SBIE⠠⠺"] # 0x1d652 - - "𝙓": [t: "SBIE⠠⠭"] # 0x1d653 - - "𝙔": [t: "SBIE⠠⠽"] # 0x1d654 - - "𝙕": [t: "SBIE⠠⠵"] # 0x1d655 + - "𝘼": [t: "SBIEC⠁"] # 0x1d63c + - "𝘽": [t: "SBIEC⠃"] # 0x1d63d + - "𝘾": [t: "SBIEC⠉"] # 0x1d63e + - "𝘿": [t: "SBIEC⠙"] # 0x1d63f + - "𝙀": [t: "SBIEC⠑"] # 0x1d640 + - "𝙁": [t: "SBIEC⠋"] # 0x1d641 + - "𝙂": [t: "SBIEC⠛"] # 0x1d642 + - "𝙃": [t: "SBIEC⠓"] # 0x1d643 + - "𝙄": [t: "SBIEC⠊"] # 0x1d644 + - "𝙅": [t: "SBIEC⠚"] # 0x1d645 + - "𝙆": [t: "SBIEC⠅"] # 0x1d646 + - "𝙇": [t: "SBIEC⠇"] # 0x1d647 + - "𝙈": [t: "SBIEC⠍"] # 0x1d648 + - "𝙉": [t: "SBIEC⠝"] # 0x1d649 + - "𝙊": [t: "SBIEC⠕"] # 0x1d64a + - "𝙋": [t: "SBIEC⠏"] # 0x1d64b + - "𝙌": [t: "SBIEC⠟"] # 0x1d64c + - "𝙍": [t: "SBIEC⠗"] # 0x1d64d + - "𝙎": [t: "SBIEC⠎"] # 0x1d64e + - "𝙏": [t: "SBIEC⠞"] # 0x1d64f + - "𝙐": [t: "SBIEC⠥"] # 0x1d650 + - "𝙑": [t: "SBIEC⠧"] # 0x1d651 + - "𝙒": [t: "SBIEC⠺"] # 0x1d652 + - "𝙓": [t: "SBIEC⠭"] # 0x1d653 + - "𝙔": [t: "SBIEC⠽"] # 0x1d654 + - "𝙕": [t: "SBIEC⠵"] # 0x1d655 - "𝙖": [t: "SBIE⠁"] # 0x1d656 - "𝙗": [t: "SBIE⠃"] # 0x1d657 - "𝙘": [t: "SBIE⠉"] # 0x1d658 @@ -1395,31 +1398,31 @@ - "𝙭": [t: "SBIE⠭"] # 0x1d66d - "𝙮": [t: "SBIE⠽"] # 0x1d66e - "𝙯": [t: "SBIE⠵"] # 0x1d66f - - "𝞐": [t: "SBIG⠠⠁"] # 0x1d790 - - "𝞑": [t: "SBIG⠠⠃"] # 0x1d791 - - "𝞒": [t: "SBIG⠠⠛"] # 0x1d792 - - "𝞓": [t: "SBIG⠠⠙"] # 0x1d793 - - "𝞔": [t: "SBIG⠠⠑"] # 0x1d794 - - "𝞕": [t: "SBIG⠠⠵"] # 0x1d795 - - "𝞖": [t: "SBIG⠠⠱"] # 0x1d796 - - "𝞗": [t: "SBIG⠠⠹"] # 0x1d797 - - "𝞘": [t: "SBIG⠠⠊"] # 0x1d798 - - "𝞙": [t: "SBIG⠠⠅"] # 0x1d799 - - "𝞚": [t: "SBIG⠠⠇"] # 0x1d79a - - "𝞛": [t: "SBIG⠠⠍"] # 0x1d79b - - "𝞜": [t: "SBIG⠠⠝"] # 0x1d79c - - "𝞝": [t: "SBIG⠠⠭"] # 0x1d79d - - "𝞞": [t: "SBIG⠠⠕"] # 0x1d79e - - "𝞟": [t: "SBIG⠠⠏"] # 0x1d79f - - "𝞠": [t: "SBIG⠠⠗"] # 0x1d7a0 - - "𝞡": [t: "SBIG⠠⠹"] # 0x1d7a1 - - "𝞢": [t: "SBIG⠠⠎"] # 0x1d7a2 - - "𝞣": [t: "SBIG⠠⠞"] # 0x1d7a3 - - "𝞤": [t: "SBIG⠠⠥"] # 0x1d7a4 - - "𝞥": [t: "SBIG⠠⠋"] # 0x1d7a5 - - "𝞦": [t: "SBIG⠠⠯"] # 0x1d7a6 - - "𝞧": [t: "SBIG⠠⠽"] # 0x1d7a7 - - "𝞨": [t: "SBIG⠠⠺"] # 0x1d7a8 + - "𝞐": [t: "SBIGC⠁"] # 0x1d790 + - "𝞑": [t: "SBIGC⠃"] # 0x1d791 + - "𝞒": [t: "SBIGC⠛"] # 0x1d792 + - "𝞓": [t: "SBIGC⠙"] # 0x1d793 + - "𝞔": [t: "SBIGC⠑"] # 0x1d794 + - "𝞕": [t: "SBIGC⠵"] # 0x1d795 + - "𝞖": [t: "SBIGC⠱"] # 0x1d796 + - "𝞗": [t: "SBIGC⠹"] # 0x1d797 + - "𝞘": [t: "SBIGC⠊"] # 0x1d798 + - "𝞙": [t: "SBIGC⠅"] # 0x1d799 + - "𝞚": [t: "SBIGC⠇"] # 0x1d79a + - "𝞛": [t: "SBIGC⠍"] # 0x1d79b + - "𝞜": [t: "SBIGC⠝"] # 0x1d79c + - "𝞝": [t: "SBIGC⠭"] # 0x1d79d + - "𝞞": [t: "SBIGC⠕"] # 0x1d79e + - "𝞟": [t: "SBIGC⠏"] # 0x1d79f + - "𝞠": [t: "SBIGC⠗"] # 0x1d7a0 + - "𝞡": [t: "SBIGC⠹"] # 0x1d7a1 + - "𝞢": [t: "SBIGC⠎"] # 0x1d7a2 + - "𝞣": [t: "SBIGC⠞"] # 0x1d7a3 + - "𝞤": [t: "SBIGC⠥"] # 0x1d7a4 + - "𝞥": [t: "SBIGC⠋"] # 0x1d7a5 + - "𝞦": [t: "SBIGC⠯"] # 0x1d7a6 + - "𝞧": [t: "SBIGC⠽"] # 0x1d7a7 + - "𝞨": [t: "SBIGC⠺"] # 0x1d7a8 - "𝞩": [t: "SBIG⠫"] # 0x1d7a9 - "𝞪": [t: "SBIG⠁"] # 0x1d7aa - "𝞫": [t: "SBIG⠃"] # 0x1d7ab @@ -1455,32 +1458,32 @@ - "𝟉": [t: "SBIG⠏"] # 0x1d7c9 # --- Nemeth Default Alphabet sans-serif-italic chars. --- - - "𝘈": [t: "SIE⠠⠁"] # 0x1d608 - - "𝘉": [t: "SIE⠠⠃"] # 0x1d609 - - "𝘊": [t: "SIE⠠⠉"] # 0x1d60a - - "𝘋": [t: "SIE⠠⠙"] # 0x1d60b - - "𝘌": [t: "SIE⠠⠑"] # 0x1d60c - - "𝘍": [t: "SIE⠠⠋"] # 0x1d60d - - "𝘎": [t: "SIE⠠⠛"] # 0x1d60e - - "𝘏": [t: "SIE⠠⠓"] # 0x1d60f - - "𝘐": [t: "SIE⠠⠊"] # 0x1d610 - - "𝘑": [t: "SIE⠠⠚"] # 0x1d611 - - "𝘒": [t: "SIE⠠⠅"] # 0x1d612 - - "𝘓": [t: "SIE⠠⠇"] # 0x1d613 - - "𝘔": [t: "SIE⠠⠍"] # 0x1d614 - - "𝘕": [t: "SIE⠠⠝"] # 0x1d615 - - "𝘖": [t: "SIE⠠⠕"] # 0x1d616 - - "𝘗": [t: "SIE⠠⠏"] # 0x1d617 - - "𝘘": [t: "SIE⠠⠟"] # 0x1d618 - - "𝘙": [t: "SIE⠠⠗"] # 0x1d619 - - "𝘚": [t: "SIE⠠⠎"] # 0x1d61a - - "𝘛": [t: "SIE⠠⠞"] # 0x1d61b - - "𝘜": [t: "SIE⠠⠥"] # 0x1d61c - - "𝘝": [t: "SIE⠠⠧"] # 0x1d61d - - "𝘞": [t: "SIE⠠⠺"] # 0x1d61e - - "𝘟": [t: "SIE⠠⠭"] # 0x1d61f - - "𝘠": [t: "SIE⠠⠽"] # 0x1d620 - - "𝘡": [t: "SIE⠠⠵"] # 0x1d621 + - "𝘈": [t: "SIEC⠁"] # 0x1d608 + - "𝘉": [t: "SIEC⠃"] # 0x1d609 + - "𝘊": [t: "SIEC⠉"] # 0x1d60a + - "𝘋": [t: "SIEC⠙"] # 0x1d60b + - "𝘌": [t: "SIEC⠑"] # 0x1d60c + - "𝘍": [t: "SIEC⠋"] # 0x1d60d + - "𝘎": [t: "SIEC⠛"] # 0x1d60e + - "𝘏": [t: "SIEC⠓"] # 0x1d60f + - "𝘐": [t: "SIEC⠊"] # 0x1d610 + - "𝘑": [t: "SIEC⠚"] # 0x1d611 + - "𝘒": [t: "SIEC⠅"] # 0x1d612 + - "𝘓": [t: "SIEC⠇"] # 0x1d613 + - "𝘔": [t: "SIEC⠍"] # 0x1d614 + - "𝘕": [t: "SIEC⠝"] # 0x1d615 + - "𝘖": [t: "SIEC⠕"] # 0x1d616 + - "𝘗": [t: "SIEC⠏"] # 0x1d617 + - "𝘘": [t: "SIEC⠟"] # 0x1d618 + - "𝘙": [t: "SIEC⠗"] # 0x1d619 + - "𝘚": [t: "SIEC⠎"] # 0x1d61a + - "𝘛": [t: "SIEC⠞"] # 0x1d61b + - "𝘜": [t: "SIEC⠥"] # 0x1d61c + - "𝘝": [t: "SIEC⠧"] # 0x1d61d + - "𝘞": [t: "SIEC⠺"] # 0x1d61e + - "𝘟": [t: "SIEC⠭"] # 0x1d61f + - "𝘠": [t: "SIEC⠽"] # 0x1d620 + - "𝘡": [t: "SIEC⠵"] # 0x1d621 - "𝘢": [t: "SIE⠁"] # 0x1d622 - "𝘣": [t: "SIE⠃"] # 0x1d623 - "𝘤": [t: "SIE⠉"] # 0x1d624 @@ -1509,32 +1512,32 @@ - "𝘻": [t: "SIE⠵"] # 0x1d63b # --- Nemeth Default Alphabet script chars. --- - - "𝒜": [t: "TE⠠⠁"] # 0x1d49c - - "ℬ": [t: "TE⠠⠃"] # 0x212c - - "𝒞": [t: "TE⠠⠉"] # 0x1d49e - - "𝒟": [t: "TE⠠⠙"] # 0x1d49f - - "ℰ": [t: "TE⠠⠑"] # 0x2130 - - "ℱ": [t: "TE⠠⠋"] # 0x2131 - - "𝒢": [t: "TE⠠⠛"] # 0x1d4a2 - - "ℋ": [t: "TE⠠⠓"] # 0x210b - - "ℐ": [t: "TE⠠⠊"] # 0x2110 - - "𝒥": [t: "TE⠠⠚"] # 0x1d4a5 - - "𝒦": [t: "TE⠠⠅"] # 0x1d4a6 - - "ℒ": [t: "TE⠠⠇"] # 0x2112 - - "ℳ": [t: "TE⠠⠍"] # 0x2133 - - "𝒩": [t: "TE⠠⠝"] # 0x1d4a9 - - "𝒪": [t: "TE⠠⠕"] # 0x1d4aa - - "𝒫": [t: "TE⠠⠏"] # 0x1d4ab - - "𝒬": [t: "TE⠠⠟"] # 0x1d4ac - - "ℛ": [t: "TE⠠⠗"] # 0x211b - - "𝒮": [t: "TE⠠⠎"] # 0x1d4ae - - "𝒯": [t: "TE⠠⠞"] # 0x1d4af - - "𝒰": [t: "TE⠠⠥"] # 0x1d4b0 - - "𝒱": [t: "TE⠠⠧"] # 0x1d4b1 - - "𝒲": [t: "TE⠠⠺"] # 0x1d4b2 - - "𝒳": [t: "TE⠠⠭"] # 0x1d4b3 - - "𝒴": [t: "TE⠠⠽"] # 0x1d4b4 - - "𝒵": [t: "TE⠠⠵"] # 0x1d4b5 + - "𝒜": [t: "TEC⠁"] # 0x1d49c + - "ℬ": [t: "TEC⠃"] # 0x212c + - "𝒞": [t: "TEC⠉"] # 0x1d49e + - "𝒟": [t: "TEC⠙"] # 0x1d49f + - "ℰ": [t: "TEC⠑"] # 0x2130 + - "ℱ": [t: "TEC⠋"] # 0x2131 + - "𝒢": [t: "TEC⠛"] # 0x1d4a2 + - "ℋ": [t: "TEC⠓"] # 0x210b + - "ℐ": [t: "TEC⠊"] # 0x2110 + - "𝒥": [t: "TEC⠚"] # 0x1d4a5 + - "𝒦": [t: "TEC⠅"] # 0x1d4a6 + - "ℒ": [t: "TEC⠇"] # 0x2112 + - "ℳ": [t: "TEC⠍"] # 0x2133 + - "𝒩": [t: "TEC⠝"] # 0x1d4a9 + - "𝒪": [t: "TEC⠕"] # 0x1d4aa + - "𝒫": [t: "TEC⠏"] # 0x1d4ab + - "𝒬": [t: "TEC⠟"] # 0x1d4ac + - "ℛ": [t: "TEC⠗"] # 0x211b + - "𝒮": [t: "TEC⠎"] # 0x1d4ae + - "𝒯": [t: "TEC⠞"] # 0x1d4af + - "𝒰": [t: "TEC⠥"] # 0x1d4b0 + - "𝒱": [t: "TEC⠧"] # 0x1d4b1 + - "𝒲": [t: "TEC⠺"] # 0x1d4b2 + - "𝒳": [t: "TEC⠭"] # 0x1d4b3 + - "𝒴": [t: "TEC⠽"] # 0x1d4b4 + - "𝒵": [t: "TEC⠵"] # 0x1d4b5 - "𝒶": [t: "TE⠁"] # 0x1d4b6 - "𝒷": [t: "TE⠃"] # 0x1d4b7 - "𝒸": [t: "TE⠉"] # 0x1d4b8 @@ -1600,7 +1603,7 @@ - "₆": [t: "⠰⠖"] # 0x2086 - "₇": [t: "⠰⠶"] # 0x2087 - "₈": [t: "⠰⠦"] # 0x2088 - - "₉": [t: "E⠔"] # 0x2089 + - "₉": [t: "⠰⠔"] # 0x2089 # --- Nemeth Default Alphabet super chars. --- - "⁰": [t: "⠘⠴"] # 0x2070 @@ -1731,7 +1734,7 @@ - "∌": [t: "⠌⠈⠢"] # 0x220c - "∍": [t: "TN⠢"] # 0x220d - "∎": [t: "⠸⠳"] # 0x220e - - "∑": [t: "G⠠⠎"] # 0x2211 + - "∑": [t: "GC⠎"] # 0x2211 - "−": [t: "⠤"] # 0x2212 - "∓": [t: "⠤⠬"] # 0x2213 - "∕": [t: "⠸⠌"] # 0x2215 @@ -2141,7 +2144,6 @@ - # overwrites from Murray - " ": [t: "⠀"] # 0x20 (space) - " ": [t: "⠀"] # 0xA0 (non-breaking space) @@ -2164,7 +2166,7 @@ - ",": # 0x002C (Comma) - test: # test if first ancestor that isn't an mrow is a script tag (rule 78) - - if: "ancestor::*[not(parent::m:mrow)][1][parent::m:msub or parent::m:msup or parent::m:msubsup][preceding-sibling::*]" + - if: "ancestor-or-self::*[not(parent::m:mrow)][1][parent::m:msub or parent::m:msup or parent::m:msubsup][preceding-sibling::*]" then: [t: "⠪"] # Rule 78 - else_if: "self::m:mn" then: [t: "⠠"] @@ -2210,60 +2212,60 @@ - "·": [t: "⠡"] # 0x00B7 (Middle dot) - "×": [t: "⠈⠡"] # 0x00D7 (Multiplication sign) - "÷": [t: "⠨⠌"] # 0x00F7 (Division sign) - - "Α": [t: "⠨⠠⠁"] # 0x391 (Greek capital letter alpha) - - "Β": [t: "⠨⠠⠃"] # 0x392 (Greek capital letter beta ) - - "Γ": [t: "⠨⠠⠛"] # 0x393 (Greek capital letter gamma) - - "Δ": [t: "⠨⠠⠙"] # 0x394 (Greek capital letter delta) - - "Ε": [t: "⠨⠠⠑"] # 0x395 (Greek capital letter epsilon) - - "Ζ": [t: "⠨⠠⠵"] # 0x396 (Greek capital letter zeta) - - "Η": [t: "⠨⠠⠱"] # 0x397 (Greek capital letter eta) - - "Θ": [t: "⠨⠠⠹"] # 0x398 (Greek capital letter theta) - - "Ι": [t: "⠨⠠⠊"] # 0x399 (Greek capital letter iota) - - "Κ": [t: "⠨⠠⠅"] # 0x039A (Greek capital letter kappa) - - "Λ": [t: "⠨⠠⠇"] # 0x039B (Greek capital letter lambda) - - "Μ": [t: "⠨⠠⠍"] # 0x039C (Greek capital letter mu) - - "Ν": [t: "⠨⠠⠝"] # 0x039D (Greek capital letter nu) - - "Ξ": [t: "⠨⠠⠭"] # 0x039E (Greek capital letter xi) - - "Ο": [t: "⠨⠠⠕"] # 0x039F (Greek capital letter omicron) - - "Π": [t: "⠨⠠⠏"] # 0x03A0 (Greek capital letter pi) - - "Ρ": [t: "⠨⠠⠗"] # 0x03A1 (Greek capital letter rho) - - "Σ": [t: "⠨⠠⠎"] # 0x03A3 (Greek capital letter sigma) - - "Τ": [t: "⠨⠠⠞"] # 0x03A4 (Greek capital letter tau) - - "Υ": [t: "⠨⠠⠥"] # 0x03A5 (Greek capital letter upsilon) - - "Φ": [t: "⠨⠠⠋"] # 0x03A6 (Greek capital letter phi) - - "Χ": [t: "⠨⠠⠯"] # 0x03A7 (Greek capital letter chi) - - "Ψ": [t: "⠨⠠⠽"] # 0x03A8 (Greek capital letter psi) - - "Ω": [t: "⠨⠠⠺"] # 0x03A9 (Greek capital letter omega) - - "α": [t: "⠨⠁"] # 0x03B1 (Greek small letter alpha) - - "β": [t: "⠨⠃"] # 0x03B2 (Greek small letter beta) - - "γ": [t: "⠨⠛"] # 0x03B3 (Greek small letter gamma) - - "δ": [t: "⠨⠙"] # 0x03B4 (Greek small letter delta) - - "ε": [t: "⠨⠈⠑"] # 0x03B5 (Greek small letter epsilon (alternative epsilon)) - - "ζ": [t: "⠨⠵"] # 0x03B6 (Greek small letter zeta) - - "η": [t: "⠨⠱"] # 0x03B7 (Greek small letter eta) - - "θ": [t: "⠨⠹"] # 0x03B8 (Greek small letter theta) - - "ι": [t: "⠨⠊"] # 0x03B9 (Greek small letter iota) - - "κ": [t: "⠨⠅"] # 0x03BA (Greek small letter kappa) - - "λ": [t: "⠨⠇"] # 0x03BB (Greek small letter lambda) - - "μ": [t: "⠨⠍"] # 0x03BC (Greek small letter mu) - - "ν": [t: "⠨⠝"] # 0x03BD (Greek small letter nu) - - "ξ": [t: "⠨⠭"] # 0x03BE (Greek small letter xi) - - "ο": [t: "⠨⠕"] # 0x03BF (Greek small letter omicron) - - "π": [t: "⠨⠏"] # 0x03C0 (Greek small letter pi) - - "ρ": [t: "⠨⠗"] # 0x03C1 (Greek small letter rho) - - "ς": [t: "⠨⠒"] # 0x03C2 (Greek small letter final sigma) - - "σ": [t: "⠨⠎"] # 0x03C3 (Greek small letter sigma) - - "τ": [t: "⠨⠞"] # 0x03C4 (Greek small letter tau) - - "υ": [t: "⠨⠥"] # 0x03C5 (Greek small letter upsilon) - - "φ": [t: "⠨⠈⠋"] # 0x03C6 (Greek small letter phi (alternative phi)) - - "χ": [t: "⠨⠯"] # 0x03C7 (Greek small letter chi) - - "ψ": [t: "⠨⠽"] # 0x03C8 (Greek small letter psi) - - "ω": [t: "⠨⠺"] # 0x03C9 (Greek small letter omega) - - "ϑ": [t: "⠨⠈⠹"] # 0x03D1 (Greek theta symbol) - - "ϕ": [t: "⠨⠋"] # 0x03D5 (Greek phi symbol) - - "ϖ": [t: "⠨⠈⠏"] # 0x03D6 (Greek pi symbol) - - "ϰ": [t: "⠨⠈⠅"] # 0x03F0 (Greek kappa symbol) - - "ϵ": [t: "⠨⠑"] # 0x03F5 (Greek lunate epsilon symbol) +# - "Α": [t: "⠨⠠⠁"] # 0x391 (Greek capital letter alpha) +# - "Β": [t: "⠨⠠⠃"] # 0x392 (Greek capital letter beta ) +# - "Γ": [t: "⠨⠠⠛"] # 0x393 (Greek capital letter gamma) +# - "Δ": [t: "⠨⠠⠙"] # 0x394 (Greek capital letter delta) +# - "Ε": [t: "⠨⠠⠑"] # 0x395 (Greek capital letter epsilon) +# - "Ζ": [t: "⠨⠠⠵"] # 0x396 (Greek capital letter zeta) +# - "Η": [t: "⠨⠠⠱"] # 0x397 (Greek capital letter eta) +# - "Θ": [t: "⠨⠠⠹"] # 0x398 (Greek capital letter theta) +# - "Ι": [t: "⠨⠠⠊"] # 0x399 (Greek capital letter iota) +# - "Κ": [t: "⠨⠠⠅"] # 0x039A (Greek capital letter kappa) +# - "Λ": [t: "⠨⠠⠇"] # 0x039B (Greek capital letter lambda) +# - "Μ": [t: "⠨⠠⠍"] # 0x039C (Greek capital letter mu) +# - "Ν": [t: "⠨⠠⠝"] # 0x039D (Greek capital letter nu) +# - "Ξ": [t: "⠨⠠⠭"] # 0x039E (Greek capital letter xi) +# - "Ο": [t: "⠨⠠⠕"] # 0x039F (Greek capital letter omicron) +# - "Π": [t: "⠨⠠⠏"] # 0x03A0 (Greek capital letter pi) +# - "Ρ": [t: "⠨⠠⠗"] # 0x03A1 (Greek capital letter rho) +# - "Σ": [t: "⠨⠠⠎"] # 0x03A3 (Greek capital letter sigma) +# - "Τ": [t: "⠨⠠⠞"] # 0x03A4 (Greek capital letter tau) +# - "Υ": [t: "⠨⠠⠥"] # 0x03A5 (Greek capital letter upsilon) +# - "Φ": [t: "⠨⠠⠋"] # 0x03A6 (Greek capital letter phi) +# - "Χ": [t: "⠨⠠⠯"] # 0x03A7 (Greek capital letter chi) +# - "Ψ": [t: "⠨⠠⠽"] # 0x03A8 (Greek capital letter psi) +# - "Ω": [t: "⠨⠠⠺"] # 0x03A9 (Greek capital letter omega) +# - "α": [t: "⠨⠁"] # 0x03B1 (Greek small letter alpha) +# - "β": [t: "⠨⠃"] # 0x03B2 (Greek small letter beta) +# - "γ": [t: "⠨⠛"] # 0x03B3 (Greek small letter gamma) +# - "δ": [t: "⠨⠙"] # 0x03B4 (Greek small letter delta) +# - "ε": [t: "⠨⠈⠑"] # 0x03B5 (Greek small letter epsilon (alternative epsilon)) +# - "ζ": [t: "⠨⠵"] # 0x03B6 (Greek small letter zeta) +# - "η": [t: "⠨⠱"] # 0x03B7 (Greek small letter eta) +# - "θ": [t: "⠨⠹"] # 0x03B8 (Greek small letter theta) +# - "ι": [t: "⠨⠊"] # 0x03B9 (Greek small letter iota) +# - "κ": [t: "⠨⠅"] # 0x03BA (Greek small letter kappa) +# - "λ": [t: "⠨⠇"] # 0x03BB (Greek small letter lambda) +# - "μ": [t: "⠨⠍"] # 0x03BC (Greek small letter mu) +# - "ν": [t: "⠨⠝"] # 0x03BD (Greek small letter nu) +# - "ξ": [t: "⠨⠭"] # 0x03BE (Greek small letter xi) +# - "ο": [t: "⠨⠕"] # 0x03BF (Greek small letter omicron) +# - "π": [t: "⠨⠏"] # 0x03C0 (Greek small letter pi) +# - "ρ": [t: "⠨⠗"] # 0x03C1 (Greek small letter rho) +# - "ς": [t: "⠨⠒"] # 0x03C2 (Greek small letter final sigma) +# - "σ": [t: "⠨⠎"] # 0x03C3 (Greek small letter sigma) +# - "τ": [t: "⠨⠞"] # 0x03C4 (Greek small letter tau) +# - "υ": [t: "⠨⠥"] # 0x03C5 (Greek small letter upsilon) +# - "φ": [t: "⠨⠈⠋"] # 0x03C6 (Greek small letter phi (alternative phi)) +# - "χ": [t: "⠨⠯"] # 0x03C7 (Greek small letter chi) +# - "ψ": [t: "⠨⠽"] # 0x03C8 (Greek small letter psi) +# - "ω": [t: "⠨⠺"] # 0x03C9 (Greek small letter omega) +# - "ϑ": [t: "⠨⠈⠹"] # 0x03D1 (Greek theta symbol) +# - "ϕ": [t: "⠨⠋"] # 0x03D5 (Greek phi symbol) +# - "ϖ": [t: "⠨⠈⠏"] # 0x03D6 (Greek pi symbol) +# - "ϰ": [t: "⠨⠈⠅"] # 0x03F0 (Greek kappa symbol) +# - "ϵ": [t: "⠨⠑"] # 0x03F5 (Greek lunate epsilon symbol) - "—": [t: "⠤⠤"] # 0x2014 (Em dash) - "―": [t: "⠤⠤⠤⠤"] # 0x2015 (Horizontal bar) - "‘": [t: "P⠠⠦"] # 0x2018 (Left single quotation mark) @@ -2274,14 +2276,15 @@ - "‡": [t: "⠸⠸⠻"] # 0x2021 (Double dagger) - "•": [t: "⠔⠔"] # 0x2022 (Bullet) - "…": # 0x2026 (Ellipsis) + # rule 43b about spaces (references rule 42) # tests are ugly because an invisible times might have been inserted and we need to skip that - test: if: - "not(" - - " count(preceding-sibling::*) > 0 and " + - " preceding-sibling::* and " - " preceding-sibling::*[1][ " - " (text() != '\u2062' and IsNode(., 'nemeth_punctuation')) or " - - " (text() = '\u2062' and count(preceding-sibling::*) > 1 and " + - " (text() = '\u2062' and preceding-sibling::* and " - " preceding-sibling::*[2][IsNode(., 'nemeth_punctuation')] " - " ) ] )" then: [t: "⠀"] @@ -2289,11 +2292,11 @@ - test: if: - "not(" - - " count(following-sibling::*) > 0 and " + - " following-sibling::* and " - " following-sibling::*[1][ " - " (text() != '\u2062' and IsNode(., 'nemeth_punctuation')) or " - - " (DEBUG(text() = '\u2062') and DEBUG(count(following-sibling::*) > 1) and " - - " following-sibling::*[2][DEBUG(IsNode(., 'nemeth_punctuation'))] " + - " (text() = '\u2062' and following-sibling::* and " + - " following-sibling::*[2][IsNode(., 'nemeth_punctuation')] " - " ) ] )" then: [t: "⠀"] - "‰": [t: "`00"] diff --git a/src/main.rs b/src/main.rs index 1236be1be..bbb25a88c 100755 --- a/src/main.rs +++ b/src/main.rs @@ -85,9 +85,10 @@ fn main() { // f⁡(x+y) // ""; // let expr = "x2+1"; -let expr = "𝟏𝟐𝟑"; +// let expr = "𝟏𝟐𝟑"; // let expr = "A=00,B= // 01,…,Z=25"; +let expr = "{x||x|<10}"; let instant = Instant::now(); let speech_string = libmathcat::interface::speak_mathml(expr); println!("Computed speech string:\n '{}'", speech_string); diff --git a/src/speech.rs b/src/speech.rs index 2418e1cbe..3e602fd07 100755 --- a/src/speech.rs +++ b/src/speech.rs @@ -84,7 +84,7 @@ pub fn braille_mathml(mathml: &Element) -> String { fn nemeth_cleanup(raw_nemeth: String) -> String { // Typeface: S: sans-serif, B: bold, T: script/blackboard, I: italic, R: Roman // Language: E: English, D: German, G: Greek, V: Greek variants, H: Hebrew, U: Russian - // Indicators: N: number, P: punctuation, M: multipurpose + // Indicators: C: capital, N: number, P: punctuation, M: multipurpose // SRE doesn't have H: Hebrew or U: Russian, so not encoded (yet) // Note: some "positive" patterns find cases to keep the char and transform them to the lower case version static INDICATOR_REPLACEMENTS: phf::Map<&str, &str> = phf_map! { @@ -99,6 +99,7 @@ fn nemeth_cleanup(raw_nemeth: String) -> String { "V" => "⠨⠈", "H" => "⠠⠠", "U" => "⠈⠈", + "C" => "⠠", "P" => "⠸", "M" => "", "m" => "⠐", @@ -115,12 +116,12 @@ fn nemeth_cleanup(raw_nemeth: String) -> String { // In order: fraction, /, cancellation, capitalization, baseline static ref REMOVE_SPACE_BEFORE_PARENS: Regex = Regex::new(r"⠀+(⠾)|(⠈⠾)|(⠨⠾)").unwrap(); - // ellipsis, dashes, {parens, brackets, braces} + + // In order: fraction, /, cancellation, capitalization, baseline static ref REMOVE_SPACE_BEFORE_BRAILLE_INDICATORS: Regex = Regex::new(r"(⠄⠄⠄)|(⠤⠤⠤)⠀+([⠼⠸⠌⠪])").unwrap(); - // In order: fraction, /, cancellation, capitalization, baseline static ref REMOVE_SPACE_AFTER_BRAILLE_INDICATORS: Regex = - Regex::new(r"([⠹⠌⠻⠠⠐])⠀+(⠄⠄⠄)").unwrap(); + Regex::new(r"([⠹⠌⠻C⠐])⠀+(⠄⠄⠄)").unwrap(); // Multipurpose indicator insertion // 177.2 -- add after a letter and before a digit (or decimal pt) -- these will start with N @@ -172,7 +173,7 @@ fn nemeth_cleanup(raw_nemeth: String) -> String { // Typeface: S: sans-serif, B: bold, T: script/blackboard, I: italic, R: Roman // Language: E: English, D: German, G: Greek, V: Greek variants, H: Hebrew, U: Russian // Indicators: N: number, P: punctuation, M: multipurpose - static ref REPLACE_INDICATORS: Regex =Regex::new(r"([SBTIREDGVHPMmNn])").unwrap(); + static ref REPLACE_INDICATORS: Regex =Regex::new(r"([SBTIREDGVHPCMmNn])").unwrap(); static ref REMOVE_LEVEL_IND_BEFORE_BASELINE: Regex = Regex::new(r"(?:[⠘⠰]+⠐)").unwrap(); static ref REMOVE_LEVEL_IND_BEFORE_SPACE: Regex = Regex::new(r"(?:[⠘⠰]+⠐?|⠐)(⠀|$)").unwrap(); diff --git a/src/xpath_functions.rs b/src/xpath_functions.rs index 0fe059ff1..b35afa321 100755 --- a/src/xpath_functions.rs +++ b/src/xpath_functions.rs @@ -307,7 +307,7 @@ impl IsNode { fn is_punctuation(node: &Element) -> bool { lazy_static! { // list of chars from rule VI (p41) [various dashes are from Unicode, not green book] - static ref PUNCTUATION: Regex = Regex::new(r"':,–—―⸺⸻—…!-.?‘’“”;'").unwrap(); // match one or more digits + static ref PUNCTUATION: Regex = Regex::new(r"[':,–—―⸺⸻—…!-.?‘’“”;']").unwrap(); // match one or more digits } let text = get_text_from_element(node); @@ -729,7 +729,7 @@ impl NemethChars { // Language: E: English, D: German, G: Greek, V: Greek variants, H: Hebrew, U: Russian // Indicators: N: number, P: punctuation, M: multipurpose static ref PICK_APART_CHAR: Regex = - Regex::new(r"(?P[SBTIR]*)(?P[EDGVHU]??)(?P[⠠]??)(?P[N]??)(?P[⠴⠂⠆⠒⠲⠢⠖⠶⠦⠔⠁⠃⠉⠙⠑⠋⠛⠓⠊⠚⠅⠇⠍⠝⠕⠏⠟⠗⠎⠞⠥⠧⠺⠭⠽⠵])").unwrap(); + Regex::new(r"(?P[SBTIR]*)(?P[EDGVHU]??)(?PC??)(?P[N]??)(?P[⠴⠂⠆⠒⠲⠢⠖⠶⠦⠔⠁⠃⠉⠙⠑⠋⠛⠓⠊⠚⠅⠇⠍⠝⠕⠏⠟⠗⠎⠞⠥⠧⠺⠭⠽⠵])").unwrap(); } let math_variant = node.attribute_value("mathvariant"); @@ -770,6 +770,8 @@ impl NemethChars { typeface = caps["face"].to_string(); // needs to outlast this instance of the loop nemeth_chars += if typeface.is_empty() {attr_typeface} else {&typeface}; nemeth_chars += &caps["lang"]; + } else { + nemeth_chars += &caps["lang"]; } println!("is_in_list: {}; num: {}", is_in_enclosed_list, caps["num"].is_empty()); if !caps["num"].is_empty() && (typeface_changed || !is_in_enclosed_list) { @@ -782,7 +784,7 @@ impl NemethChars { }); let mut text_chars = text.chars(); // see if more than one char if is_all_caps && text_chars.next().is_some() && text_chars.next().is_some() { - return Ok( "⠠⠠".to_string() + &result.replace("⠠", "")); + return Ok( "CC".to_string() + &result.replace("C", "")); } else { return Ok( result.to_string() ); } From 074ae7dfaa038f7d05a2663dbc7cfa68f741df1a Mon Sep 17 00:00:00 2001 From: Neil Soiffer Date: Wed, 22 Sep 2021 13:25:52 -0700 Subject: [PATCH 2/5] changed generator to add 'C' for caps --- PythonScripts/alphanumerics.py | 94 ++++++++++++++++++++++++++++++++-- 1 file changed, 89 insertions(+), 5 deletions(-) diff --git a/PythonScripts/alphanumerics.py b/PythonScripts/alphanumerics.py index 4037fcfcf..752329bd7 100755 --- a/PythonScripts/alphanumerics.py +++ b/PythonScripts/alphanumerics.py @@ -2,9 +2,9 @@ from bs4 import BeautifulSoup def create_unicode_from_html(in_file: str, out_file): - with open(in_file, encoding='utf8') as _in_stream: + with open(in_file, encoding='utf8') as in_stream: with open(out_file, 'a', encoding='utf8') as out_stream: - file_contents = BeautifulSoup(_in_stream, features="html.parser") + file_contents = BeautifulSoup(in_stream, features="html.parser") for row in file_contents.find_all('tr'): cols = row.find_all('td') if len(cols) > 0: @@ -25,6 +25,80 @@ def generate_digits(out_file, prefix: str, hex: str, description: str): i += 1 + +# get the JSON versions -- the HTML versions seem wrong in many places (e.g., bold or numbers) +import json +def create_unicode_from_json(in_file: str, out_file): + with open(in_file, encoding='utf8') as in_stream: + with open(out_file, 'a', encoding='utf8') as out_stream: + file_contents = json.load(in_stream) + info = file_contents["information"].replace("tests", "chars") + out_stream.write('\n # --- {} ---\n'.format(info)) + for char, braille in file_contents['tests'].items(): + if braille["expected"] != "": + generate_char_line(out_stream, char, braille["expected"]) + +import re +MATCH_FACE_LANG_CHAR = re.compile( + ("(" + "(?P^)" + "(?P⠠⠨)?" + "(?P⠸(?=[^⠠⠔⠁⠃⠉⠙⠑⠋⠛⠓⠊⠚⠅⠇⠍⠝⠕⠏⠟⠗⠎⠞⠥⠧⠺⠭⠽⠵⠯⠫⠱⠹]))?" + "(?P