diff --git a/c-example/Rules/Braille/UEB/UEB_Rules.yaml b/c-example/Rules/Braille/UEB/UEB_Rules.yaml index f9caafa..7f18ad1 100644 --- a/c-example/Rules/Braille/UEB/UEB_Rules.yaml +++ b/c-example/Rules/Braille/UEB/UEB_Rules.yaml @@ -274,7 +274,7 @@ - name: single-char-exceptions # GTM 12 tag: [mover, munder] - match: "*[2][string-length(.) = 1 and ( translate(., '_¯→.˙~^','')='' or (parent::m:mover and text()='⌒') )]" + match: "*[2][string-length(.) = 1 and ( translate(., '_¯→.˙~^','')='' or (self::m:mover and text()='⌒') )]" replace: - test: # omit grouping indicators in the following cases diff --git a/c-example/Rules/Braille/UEB/unicode.yaml b/c-example/Rules/Braille/UEB/unicode.yaml index 04bca6f..4f40423 100644 --- a/c-example/Rules/Braille/UEB/unicode.yaml +++ b/c-example/Rules/Braille/UEB/unicode.yaml @@ -21,6 +21,7 @@ - "<": [t: "⠈⠣"] # 0x003C (Less than) - "≤": [t: "⠸⠈⠣"] # 0x2264 (Less than or equal to) - ">": [t: "⠈⠜"] # 0x003E (Greater than) + - "≣": [t: "⠸⠠⠤"] # 0x2263 - "≥": [t: "⠸⠈⠜"] # 0x2265 (Greater than or equal to) - "≪": [t: "⠨⠈⠣"] # 0x226A (Much less than) - "≫": [t: "⠨⠈⠜"] # 0x226B (Much greater than) @@ -51,6 +52,7 @@ - "⊳": [t: "⠈⠸⠜"] # 0x22B3 (Contains as normal subgroup) - "⊴": [t: "⠸⠸⠣"] # 0x22B4 (Normal subgroup of or equal) - "⊵": [t: "⠸⠸⠜"] # 0x22B5 (Contains as normal subgroup or equal) + - "⊻": [t: "⠈⠖⠠⠱."] # 0x22bb (Xor) - "⋬": [t: "⠨⠸⠣"] # 0x22EC (not normal subgroup) -- this isn't the same as what is in GTM 10, but that similar has no Unicode equiv - "⋭": [t: "⠨⠸⠣"] # 0x22ED (does not contain as normal subgroup) -- this isn't the same as what is in GTM 10, but that similar has no Unicode equiv - "⊢": [t: "⠸⠒"] # 0x22a2 (Right tack) diff --git a/c-example/Rules/Braille/Vietnam/Vietnam_Rules.yaml b/c-example/Rules/Braille/Vietnam/Vietnam_Rules.yaml index ebaf96b..b989e89 100644 --- a/c-example/Rules/Braille/Vietnam/Vietnam_Rules.yaml +++ b/c-example/Rules/Braille/Vietnam/Vietnam_Rules.yaml @@ -49,8 +49,13 @@ replace: - T: "#" # signal end of previous numeric mode - x: "*[1]" - - t: "N⠌" - - x: "*[2]" + - test: + if: "$Vietnam_UseDropNumbers='true'" + then: + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'UEB')" # drop numbers for the denominator + else: + - T: "N⠌" + - x: "*[2]" - name: simple-number @@ -59,8 +64,13 @@ replace: - T: "#" # signal end of any previous numeric mode (probably not needed, but...) - x: "*[1]" - - T: "N⠌" - - x: "*[2]" + - test: + if: "$Vietnam_UseDropNumbers='true'" + then: + - x: "BrailleChars(translate(*[2], '0123456789', '\ue000\ue001\ue002\ue003\ue004\ue005\ue006\ue007\ue008\ue009'), 'UEB')" # drop numbers for the denominator + else: + - T: "N⠌" + - x: "*[2]" - name: default diff --git a/c-example/Rules/Braille/Vietnam/unicode.yaml b/c-example/Rules/Braille/Vietnam/unicode.yaml index 860a6e7..23f8176 100644 --- a/c-example/Rules/Braille/Vietnam/unicode.yaml +++ b/c-example/Rules/Braille/Vietnam/unicode.yaml @@ -61,7 +61,7 @@ - "÷": [T: "⠐⠲"] # 0x00F7 (Division sign (divided by)) - "±": [T: "⠐⠖⠤"] # 0x00B1 (Plus or minus) - "∓": [T: "⠐⠤⠖"] # 0x2213 (Minus or plus) - - "∗": [t: "⠐⠔"] # 0x2217 (Asterisk operator) + - "∗": [t: "⠐⠦"] # 0x2217 (Asterisk operator) - "∘": [t: "⠐⠴"] # 0x2218 (Ring operator) - "◦": [t: "⠐⠴"] # 0x25E6 (White bullet) - "∼": [t: "⠈⠔"] # 0x223C (Tilde operator) @@ -88,8 +88,8 @@ - "#": [T: "⠼"] # 0x23 (Number sign (hash)) - "%": [T: "⠼⠚⠴"] # 0x25 (Percent sign) No dots 46 before as in UEB - "&": [t: "⠈⠯"] # 0x26 (Ampersand) - - "*": [T: "⠐⠔"] # 0x002A (Asterisk) - - "/": [T: "⠌"] # 0x002F (Solidus (slash)) + - "*": [T: "⠐⠦"] # 0x002A (Asterisk) + - "/": [T: "⠐⠌"] # 0x002F (Solidus (slash)) - ";": [t: "c⠆"] # 0x003B (Semicolon) - "?": [T: "c⠢"] # 0x003F (Question mark) - "@": [T: "⠈⠁"] # 0x0040 (Commercial at sign) @@ -222,8 +222,8 @@ - "≝": [t: "⠣⠙⠑⠋⠜⠻⠐⠶"] # 0x225D (Equal to by definition) - "⊕": [t: "⠫⠿⠪⠐⠖t"] # 0x2295 (Circled plus) - "⊖": [t: "⠫⠿⠪⠐⠤t"] # 0x2296 (Circled minus) - - "⊗": [t: "⠫⠿⠪⠐⠦t"] # 0x2297 (Circled times) - - "⊛": [t: "⠫⠿⠪⠐⠔t"] # 0x229B (Circled asterisk operator) + - "⊗": [t: "⠐⠦t"] # 0x2297 (Circled times) + - "⊛": [t: "⠐⠦t"] # 0x229B (Circled asterisk operator) - "⊞": [t: "⠫⠼⠙⠪⠐⠖t"] # 0x229E (Squared plus) - "⊟": [t: "⠫⠼⠙⠪⠐⠤t"] # 0x229F (Squared minus) - "⊠": [t: "⠫⠼⠙⠪⠐⠦t"] # 0x22A0 (Squared times) @@ -323,6 +323,18 @@ - "8": [t: "N⠓"] # 0x38 - "9": [t: "N⠊"] # 0x39 + # we stick the drop numbers into the private use area for consistency + - "\ue000": [t: "N⠴"] # 0 + - "\ue001": [t: "N⠂"] # 1 + - "\ue002": [t: "N⠆"] # 2 + - "\ue003": [t: "N⠒"] # 3 + - "\ue004": [t: "N⠲"] # 4 + - "\ue005": [t: "N⠢"] # 5 + - "\ue006": [t: "N⠖"] # 6 + - "\ue007": [t: "N⠶"] # 7 + - "\ue008": [t: "N⠦"] # 8 + - "\ue009": [t: "N⠔"] # 9 + - "a": [t: "L⠁"] # 0x61 - "b": [t: "L⠃"] # 0x62 - "c": [t: "L⠉"] # 0x63 @@ -1533,4 +1545,6 @@ # Not yet defined symbols - "⋮": [T: "⠣⠴⠜"] # 0x22ee (vertical ellipsis used to indicate dividable) #- "⧸⋮": [T: "⠣⠼⠜"] # 0x29f8\x22ee (for not dividable sign, not sure if MathCAT supporting multiple-char definition or not + - "∕": [T: "⠐⠌"] + - "⊘": [T: "⠐⠌"] \ No newline at end of file diff --git a/c-example/Rules/Intent/general.yaml b/c-example/Rules/Intent/general.yaml index 5b6e882..a9e9c4b 100644 --- a/c-example/Rules/Intent/general.yaml +++ b/c-example/Rules/Intent/general.yaml @@ -268,7 +268,7 @@ - name: bigop tag: [msub, munder] - match: "IsInDefinition(*[1], 'LargeOperators') or contains(@data-intent-property, ':largeop:')" + match: "IsLargeOp(*[1]) or contains(@data-intent-property, ':largeop:')" replace: - intent: name: "large-op" # Fix: the name in the spreadsheet needs updating/fixing @@ -494,7 +494,7 @@ - "*[2][self::m:mrow][count(*)=2] and" # exponent is an mrow with children... - "*[2]/*[1][self::m:mo][text()='-'] and" # '-' - "*[2]/*[2][self::m:mn][text()=1] and" # and '1' - - "*[1][self::m:mi] and IsInDefinition(*[1], 'TrigFunctionNames') and" # base is a trig function name (e.g, sin, sinh) + - "*[1][self::m:mi] and IsNode(*[1], 'trig_name') and" # base is a trig function name (e.g, sin, sinh) - "following-sibling::*[1][self::m:mo][text()='\u2061']" # and msup is followed by invisible function apply replace: - intent: @@ -506,7 +506,7 @@ - name: bigop tag: [msubsup, munderover] - match: "IsInDefinition(*[1], 'LargeOperators') or contains(@data-intent-property, ':largeop:')" + match: "IsLargeOp(*[1]) or contains(@data-intent-property, ':largeop:')" replace: - intent: name: "large-op" # Fix: the name in the spreadsheet needs updating/fixing diff --git a/c-example/Rules/Languages/en/ClearSpeak_Rules.yaml b/c-example/Rules/Languages/en/ClearSpeak_Rules.yaml index 0622e7d..ff41339 100644 --- a/c-example/Rules/Languages/en/ClearSpeak_Rules.yaml +++ b/c-example/Rules/Languages/en/ClearSpeak_Rules.yaml @@ -686,7 +686,7 @@ tag: mo match: - "text()='⁡' and $ClearSpeak_Functions = 'None' and" - - "not(preceding-sibling::*[1][IsInDefinition(., 'TrigFunctionNames')])" # Functions=None does not apply to "trig" functions + - not(preceding-sibling::*[1][IsNode(., 'trig_name')]) # Functions=None does not apply to "trig" functions replace: test: if: "$ClearSpeak_ImpliedTimes = 'None'" diff --git a/c-example/Rules/Languages/en/SharedRules/general.yaml b/c-example/Rules/Languages/en/SharedRules/general.yaml index 7a6f059..5f31b7f 100644 --- a/c-example/Rules/Languages/en/SharedRules/general.yaml +++ b/c-example/Rules/Languages/en/SharedRules/general.yaml @@ -236,7 +236,7 @@ - name: largeop tag: mrow - match: "count(*)=2 and IsInDefinition(*[1], 'LargeOperators')" + match: "count(*)=2 and IsLargeOp(*[1])" replace: - test: if: "$Verbosity!='Terse'" diff --git a/c-example/Rules/Languages/id/ClearSpeak_Rules.yaml b/c-example/Rules/Languages/id/ClearSpeak_Rules.yaml index d7ed1f7..fc564b1 100644 --- a/c-example/Rules/Languages/id/ClearSpeak_Rules.yaml +++ b/c-example/Rules/Languages/id/ClearSpeak_Rules.yaml @@ -704,7 +704,7 @@ tag: mo match: - "text()='⁡' and $ClearSpeak_Functions = 'None' and" - - "not(preceding-sibling::*[1][IsInDefinition(., 'TrigFunctionNames')])" # Functions=None does not apply to "trig" functions + - not(preceding-sibling::*[1][IsNode(., 'trig_name')]) # Functions=None does not apply to "trig" functions replace: test: if: "$ClearSpeak_ImpliedTimes = 'None'" diff --git a/c-example/Rules/Languages/id/SharedRules/general.yaml b/c-example/Rules/Languages/id/SharedRules/general.yaml index cbe4826..888194f 100644 --- a/c-example/Rules/Languages/id/SharedRules/general.yaml +++ b/c-example/Rules/Languages/id/SharedRules/general.yaml @@ -233,7 +233,7 @@ - name: largeop tag: mrow - match: "count(*)=2 and IsInDefinition(*[1], 'LargeOperators')" + match: "count(*)=2 and IsLargeOp(*[1])" replace: - test: if: "$Verbosity!='Terse'" diff --git a/c-example/Rules/Languages/vi/ClearSpeak_Rules.yaml b/c-example/Rules/Languages/vi/ClearSpeak_Rules.yaml index b72f1cd..f872f71 100644 --- a/c-example/Rules/Languages/vi/ClearSpeak_Rules.yaml +++ b/c-example/Rules/Languages/vi/ClearSpeak_Rules.yaml @@ -618,19 +618,19 @@ if: "$log_is_simple" then_test: - if: "*[1][text()='log']" - then: [{T: logarit}] + then: [{T: lóc}] - else_if: $ClearSpeak_Log = 'LnAsNaturalLog' - then: [{T: logarit tự nhiên}] - else: [{SPELL: "'ln'"}] # t: -- needs translation? + then: [{T: lóc nơ be}] + else: [{T: "lóc nơ be"}] # t: -- needs translation? else: # if: "$Verbosity!='Terse' and not(log_is_simple)" # then: {T: the} - test: - if: "*[1][text()='log']" - then: [{T: logarit}] + then: [{T: lóc}] - else_if: $ClearSpeak_Log = 'LnAsNaturalLog' - then: [{T: logarit tự nhiên}] - else: [{SPELL: "'ln'"}] # t: -- needs translation? + then: [{T: lóc nơ be}] + else: [{T: "lóc nơ be"}] # t: -- needs translation? - T: của - pause: short - x: "*[3]" @@ -700,7 +700,7 @@ tag: mo match: - "text()='⁡' and $ClearSpeak_Functions = 'None' and" - - "not(preceding-sibling::*[1][IsInDefinition(., 'TrigFunctionNames')])" # Functions=None does not apply to "trig" functions + - not(preceding-sibling::*[1][IsNode(., 'trig_name')]) # Functions=None does not apply to "trig" functions replace: test: if: "$ClearSpeak_ImpliedTimes = 'None'" @@ -736,7 +736,7 @@ - " IsBracketed(., '(', ')') or IsBracketed(., '[(]', ']') or IsBracketed(., '|', '|')]" # followed by parens - " )" replace: - - T: lần + - T: nhân - name: no-say-parens tag: mrow diff --git a/c-example/Rules/Languages/vi/SharedRules/default.yaml b/c-example/Rules/Languages/vi/SharedRules/default.yaml index bcc8c1d..6f60107 100644 --- a/c-example/Rules/Languages/vi/SharedRules/default.yaml +++ b/c-example/Rules/Languages/vi/SharedRules/default.yaml @@ -79,7 +79,7 @@ - x: "*[2]" - test: if: "$Verbosity!='Terse' or not(*[2][self::m:mn])" # just say "x 1" for terse vs "x sub 1" - then: [{T: "dưới"}] + then: [{T: " "}] - name: default tag: particular-value-of @@ -96,7 +96,7 @@ match: "." replace: - x: "*[1]" - - T: chỉ số dưới là + #- T: chỉ số dưới là - x: "*[2]" - T: "mũ" - x: "*[3]" @@ -108,11 +108,11 @@ replace: - test: if: "not(IsNode(*[1], 'leaf'))" - then: [{T: "cho"}] + then: [{T: " "}] - x: "*[1]" - - T: "với" - - x: "*[2]" - - T: bên dưới + #- T: "với" + #- x: "*[2]" + - T: đáy - name: default tag: mover @@ -120,11 +120,11 @@ replace: - test: if: "not(IsNode(*[1], 'leaf'))" - then: [{T: "cho"}] + then: [{T: " "}] - x: "*[1]" - - T: "với" - - x: "*[2]" - - T: "bên trên" + #- T: "với" + #- x: "*[2]" + - T: "ngang" - name: default tag: munderover @@ -132,13 +132,13 @@ replace: - test: if: "not(IsNode(*[1], 'leaf'))" - then: [{T: "cho"}] + then: [{T: " "}] - x: "*[1]" - - T: "với" - - x: "*[2]" - - T: "bên dưới và" + #- T: "với" + #- x: "*[2]" + - T: "đáy và" - x: "*[3]" - - T: "bên trên" + - T: "ngang" - name: default # Here we support up to 2 prescripts and up to 4 postscripts -- that should cover all reasonable cases # If there are more, we just dump them out without regard to sup/super :-( diff --git a/c-example/Rules/Languages/vi/SharedRules/general.yaml b/c-example/Rules/Languages/vi/SharedRules/general.yaml index 51d4294..de40001 100644 --- a/c-example/Rules/Languages/vi/SharedRules/general.yaml +++ b/c-example/Rules/Languages/vi/SharedRules/general.yaml @@ -197,7 +197,7 @@ replace: - x: "*[1]" - x: "*[2]" - - T: "dưới" + - T: " " - name: bigop-both tag: large-op @@ -232,7 +232,7 @@ - name: largeop tag: mrow - match: "count(*)=2 and IsInDefinition(*[1], 'LargeOperators')" + match: "count(*)=2 and IsLargeOp(*[1])" replace: # - test: # if: "$Verbosity!='Terse'" @@ -247,8 +247,8 @@ replace: - test: if: "$Verbosity!='Terse'" - then: [{T: giới hạn}] - else: [{T: "giới hạn"}] + then: [{T: lim}] + else: [{T: "lim"}] - x: "*[2]" - pause: short @@ -373,8 +373,8 @@ - bookmark: "@id" - test: if: "$Verbosity='Terse'" - then: {T: sinch} - else: {T: hyperbolic sin} + then: {T: sin híp bơ bôn} + else: {T: sin híp bơ bôn} - name: cosh tag: mi match: "text()='cosh'" @@ -382,8 +382,8 @@ - bookmark: "@id" - test: if: "$Verbosity='Terse'" - then: {T: cosh} - else: {T: hyperbolic cosine} + then: {T: cô sin híp bơ bôn} + else: {T: cô sin híp bơ bôn} - name: tanh tag: mi match: "text()='tanh'" @@ -391,8 +391,8 @@ - bookmark: "@id" - test: if: "$Verbosity='Terse'" - then: {T: tanch} - else: {T: hyperbolic tangent} + then: {T: tang híp bơ bôn} + else: {T: tang híp bơ bôn} - name: sech tag: mi match: "text()='sech'" @@ -400,8 +400,8 @@ - bookmark: "@id" - test: if: "$Verbosity='Terse'" - then: {T: sheck} - else: {T: hyperbolic secant} + then: {T: xê can híp bơ bôn} + else: {T: xê can híp bơ bôn} - name: csch tag: mi match: "text()='csch'" @@ -409,8 +409,8 @@ - bookmark: "@id" - test: if: "$Verbosity='Terse'" - then: {T: co-sheck} - else: {T: hyperbolic co-secant} + then: {T: cô xê can híp bơ bôn} + else: {T: cô xê can híp bơ bôn} - name: coth tag: mi match: "text()='coth'" @@ -418,8 +418,8 @@ - bookmark: "@id" - test: if: "$Verbosity='Terse'" - then: {T: co-tanch} - else: {T: hyperbolic co-tangent} + then: {T: cô tang híp bơ bôn} + else: {T: cô tang híp bơ bôn} - # handle both log and ln name: log @@ -435,20 +435,20 @@ if: "$log_is_simple" then_test: - if: "*[1][text()='log']" - then: [{T: logaric}] + then: [{T: lóc}] - else_if: "$Verbosity='Terse'" - then: [{SPELL: ln}] - else: [{T: logaric tự nhiên}] + then: [{T: lóc nơ be}] + else: [{T: lóc nơ be}] else: - test: if: "$Verbosity!='Terse' and not(log_is_simple)" then: {T: " "} - test: - if: "*[1][text()='log']" - then: [{T: logaric}] + then: [{T: lóc}] - else_if: "$Verbosity='Terse'" - then: [{SPELL: ln}] - else: [{T: logaric tự nhiên}] + then: [{T: lóc nơ be}] + else: [{T: lóc nơ be}] - T: của - pause: short - x: "*[3]" @@ -458,7 +458,7 @@ match: "." replace: - bookmark: "@id" - - T: logaric cơ số + - T: lóc cơ số # - test: # if: "$Verbosity!='Terse'" # then: {T: the} @@ -697,7 +697,7 @@ then: [{T: "chỉ số dưới"}] else_test: if: "$Verbosity='Medium'" - then: [{T: "dưới"}] + then: [{T: " "}] #- x: "*[3]" - name: chemistry-msup @@ -754,7 +754,7 @@ then: [{T: "chỉ số dưới"}] else_test: if: "$Verbosity='Medium'" - then: [{T: "dưới"}] + then: [{T: " "}] #- x: "$Prescripts[1]" - pause: "short" - test: @@ -781,7 +781,7 @@ then: [{T: "chỉ số dưới"}] else_test: if: "$Verbosity='Medium'" - then: [{T: "dưới"}] + then: [{T: " "}] #- x: "$Prescripts[3]" - pause: "short" - x: "*[1]" # base @@ -797,7 +797,7 @@ then: [{T: "chỉ số dưới"}] else_test: if: "$Verbosity='Medium'" - then: [{T: "dưới"}] + then: [{T: " "}] #- x: "$Postscripts[1]" - pause: "short" - test: @@ -824,7 +824,7 @@ then: [{T: "chỉ số dưới"}] else_test: if: "$Verbosity='Medium'" - then: [{T: "dưới"}] + then: [{T: " "}] #- x: "$Postscripts[3]" - pause: "short" - test: @@ -836,7 +836,7 @@ then: [{T: "chỉ số trên"}] else_test: if: "$Verbosity='Medium'" - then: [{T: "trên"}] + then: [{T: "chỉ số trên"}] #- x: "$Postscripts[4]" - pause: "short" - test: @@ -851,7 +851,7 @@ then: [{T: "chỉ số dưới"}] else_test: if: "$Verbosity='Medium'" - then: [{T: "dưới"}] + then: [{T: " "}] #- x: "$Postscripts[5]" - pause: "short" - test: @@ -878,7 +878,7 @@ then: [{T: "chỉ số dưới"}] else_test: if: "$Verbosity='Medium'" - then: [{T: "dưới"}] + then: [{T: " "}] #- x: "$Postscripts[7]" - pause: "short" - test: diff --git a/c-example/Rules/Languages/vi/SharedRules/geometry.yaml b/c-example/Rules/Languages/vi/SharedRules/geometry.yaml index 3bc06b6..9623c55 100644 --- a/c-example/Rules/Languages/vi/SharedRules/geometry.yaml +++ b/c-example/Rules/Languages/vi/SharedRules/geometry.yaml @@ -28,7 +28,7 @@ - T: "đến" - x: "*[2]" else: - - T: "tia" + - T: "véc tơ" - x: "*[1]" - x: "*[2]" diff --git a/c-example/Rules/Languages/vi/unicode-full.yaml b/c-example/Rules/Languages/vi/unicode-full.yaml index 916b0f5..acc97f2 100644 --- a/c-example/Rules/Languages/vi/unicode-full.yaml +++ b/c-example/Rules/Languages/vi/unicode-full.yaml @@ -116,7 +116,7 @@ if: $ClearSpeak_MultSymbolX = 'By' then: [T: "cho"] else: [t: "vượt qua"] # (en: 'cross') - - "÷": [T: "chia cho"] # 0xf7 + - "÷": [T: "chia"] # 0xf7 - "ʰ": [t: "công cụ sửa đổi nhỏ h"] # 0x2b0 (en: 'modifier small h') - "ʱ": [t: "công cụ sửa đổi h nhỏ với móc"] # 0x2b1 (en: 'modifier small h with hook') - "ʲ": [t: "sửa đổi nhỏ j"] # 0x2b2 (en: 'modifier small j') @@ -253,7 +253,7 @@ - "̲": [t: "tinh chỉnh dòng thấp"] # 0x332 (en: 'low line embellishment') - "̳": [t: "double line dòng tô điểm"] # 0x333 (en: 'double low line embellishment') - "̴": [t: "tinh chỉnh lớp phủ tilde"] # 0x334 (en: 'tilde overlay embellishment') - - "̵": [t: "tiếng đột quỵ ngắn tô điểm"] # 0x335 (en: 'short stroke overlay embellishment') + - "̵": [t: "tiếng gạch ngắn tô điểm"] # 0x335 (en: 'short stroke overlay embellishment') - "̶": [t: "tinh chỉnh lớp phủ dài"] # 0x336 (en: 'long stroke overlay embellishment') - "̷": [t: "slidus lớp phủ ngắn gọn"] # 0x337 (en: 'short solidus overlay embellishment') - "̸": [t: "tinh chỉnh lớp phủ solidus dài"] # 0x338 (en: 'long solidus overlay embellishment') @@ -474,7 +474,7 @@ - "⃣": [t: "kèm theo tô điểm khóa"] # 0x20e3 (en: 'enclosing keycap embellishment') - "⃤": [t: "kèm theo tô điểm hình tam giác hướng lên"] # 0x20e4 (en: 'enclosing upward pointing triangle embellishment') - "⃥": [t: "đảo ngược solidus overlay tô điểm"] # 0x20e5 (en: 'reverse solidus overlay embellishment') - - "⃦": [t: "tinh chỉnh đột quỵ đôi"] # 0x20e6 (en: 'double verticle stroke embellishment') + - "⃦": [t: "tinh chỉnh gạch đôi"] # 0x20e6 (en: 'double verticle stroke embellishment') - "⃧": [t: "tổ chức biểu tượng niên kim"] # 0x20e7 (en: 'annuity symbol embellishment') - "⃨": [t: "triple underdot"] # 0x20e8 - "⃩": [t: "cầu rộng phía trên sự tô điểm"] # 0x20e9 (en: 'wide bridge above embellishment') @@ -600,7 +600,7 @@ - "↑": [t: "mũi tên hướng lên"] # 0x2191 (en: 'upwards arrow') - "→": [t: "mũi tên phải"] # 0x2192 (en: 'rightwards arrow') - "↓": [t: "mũi tên xuống"] # 0x2193 (en: 'downwards arrow') - - "↔": [t: "mũi tên trái bên trái"] # 0x2194 (en: 'left right arrow') + - "↔": [t: "tương đương"] # 0x2194 (en: 'left right arrow') - "↕": [t: "lên mũi tên xuống"] # 0x2195 (en: 'up down arrow') - "↖": [t: "mũi tên tây bắc"] # 0x2196 (en: 'north west arrow') - "↗": # 0x2197 @@ -616,8 +616,8 @@ else: [t: "mũi tên đông nam"] # (en: 'south east arrow') - "↙": [t: "mũi tên tây nam"] # 0x2199 (en: 'south west arrow') - - "↚": [t: "mũi tên trái với đột quỵ"] # 0x219a (en: 'leftwards arrow with stroke') - - "↛": [t: "mũi tên phải với đột quỵ"] # 0x219b (en: 'rightwards arrow with stroke') + - "↚": [t: "mũi tên trái với gạch"] # 0x219a (en: 'leftwards arrow with stroke') + - "↛": [t: "mũi tên phải với gạch"] # 0x219b (en: 'rightwards arrow with stroke') - "↜": [t: "mũi tên sóng trái"] # 0x219c (en: 'leftwards wave arrow') - "↝": [t: "mũi tên sóng bên phải"] # 0x219d (en: 'rightwards wave arrow') - "↞": [t: "bên trái hai mũi tên đầu"] # 0x219e (en: 'leftwards two headed arrow') @@ -636,7 +636,7 @@ - "↫": [t: "mũi tên trái với vòng lặp"] # 0x21ab (en: 'leftwards arrow with loop') - "↬": [t: "mũi tên phải với vòng lặp"] # 0x21ac (en: 'rightwards arrow with loop') - "↭": [t: "mũi tên bên trái bên phải"] # 0x21ad (en: 'left right wave arrow') - - "↮": [t: "mũi tên trái bên phải với đột quỵ"] # 0x21ae (en: 'left right arrow with stroke') + - "↮": [t: "mũi tên trái bên phải với gạch"] # 0x21ae (en: 'left right arrow with stroke') - "↯": [t: "mũi tên ngoằn ngoèo xuống"] # 0x21af (en: 'downwards zigzag arrow') - "↰": [t: "mũi tên hướng lên với đầu trái"] # 0x21b0 (en: 'upwards arrow with tip leftwards') - "↱": [t: "mũi tên hướng lên với đầu bên phải"] # 0x21b1 (en: 'upwards arrow with tip rightwards') @@ -667,14 +667,14 @@ - "⇊": [t: "mũi tên đi xuống"] # 0x21ca (en: 'downwards paired arrows') - "⇋": [t: "trái harpoon qua harpoon phải"] # 0x21cb (en: 'left harpoon over right harpoon') - "⇌": [t: "harpoon phải qua harpoon trái"] # 0x21cc (en: 'right harpoon over left harpoon') - - "⇍": [t: "mũi tên đôi bên trái với đột quỵ"] # 0x21cd (en: 'leftwards double arrow with stroke') - - "⇎": [t: "mũi tên kép bên trái với đột quỵ"] # 0x21ce (en: 'left right double arrow with stroke') - - "⇏": [t: "mũi tên kép phải với đột quỵ"] # 0x21cf (en: 'rightwards double arrow with stroke') + - "⇍": [t: "mũi tên đôi bên trái với gạch"] # 0x21cd (en: 'leftwards double arrow with stroke') + - "⇎": [t: "mũi tên kép bên trái với gạch"] # 0x21ce (en: 'left right double arrow with stroke') + - "⇏": [t: "mũi tên kép phải với gạch"] # 0x21cf (en: 'rightwards double arrow with stroke') - "⇐": [t: "mũi tên đôi trái"] # 0x21d0 (en: 'leftwards double arrow') - "⇑": [t: "mũi tên tăng gấp đôi"] # 0x21d1 (en: 'upwards double arrow') - "⇒": [t: "mũi tên kép phải"] # 0x21d2 (en: 'rightwards double arrow') - "⇓": [t: "xuống mũi tên đôi"] # 0x21d3 (en: 'downwards double arrow') - - "⇔": [t: "mũi tên trái bên trái"] # 0x21d4 (en: 'left right double arrow') + - "⇔": [t: "tương đương"] # 0x21d4 (en: 'left right double arrow') - "⇕": [t: "lên xuống mũi tên đôi"] # 0x21d5 (en: 'up down double arrow') - "⇖": [t: "mũi tên đôi tây bắc"] # 0x21d6 (en: 'north west double arrow') - "⇗": [t: "mũi tên đôi đông bắc"] # 0x21d7 (en: 'north east double arrow') @@ -709,12 +709,12 @@ - "⇴": [t: "mũi tên phải với vòng tròn nhỏ"] # 0x21f4 (en: 'right arrow with small circle') - "⇵": [t: "mũi tên xuống bên trái của mũi tên hướng lên"] # 0x21f5 (en: 'downwards arrow leftwards of upwards arrow') - "⇶": [t: "ba mũi tên phải"] # 0x21f6 (en: 'three rightwards arrows') - - "⇷": [t: "mũi tên trái với đột quỵ dọc"] # 0x21f7 (en: 'leftwards arrow with vertical stroke') - - "⇸": [t: "mũi tên phải với đột quỵ dọc"] # 0x21f8 (en: 'rightwards arrow with vertical stroke') - - "⇹": [t: "mũi tên trái bên trái với đột quỵ dọc"] # 0x21f9 (en: 'left right arrow with vertical stroke') - - "⇺": [t: "mũi tên trái với đột quỵ dọc"] # 0x21fa (en: 'leftwards arrow with double vertical stroke') - - "⇻": [t: "mũi tên phải với đột quỵ dọc"] # 0x21fb (en: 'rightwards arrow with double vertical stroke') - - "⇼": [t: "mũi tên trái bên trái với đột quỵ dọc"] # 0x21fc (en: 'left right arrow with double vertical stroke') + - "⇷": [t: "mũi tên trái với gạch dọc"] # 0x21f7 (en: 'leftwards arrow with vertical stroke') + - "⇸": [t: "mũi tên phải với gạch dọc"] # 0x21f8 (en: 'rightwards arrow with vertical stroke') + - "⇹": [t: "mũi tên trái bên trái với gạch dọc"] # 0x21f9 (en: 'left right arrow with vertical stroke') + - "⇺": [t: "mũi tên trái với gạch dọc"] # 0x21fa (en: 'leftwards arrow with double vertical stroke') + - "⇻": [t: "mũi tên phải với gạch dọc"] # 0x21fb (en: 'rightwards arrow with double vertical stroke') + - "⇼": [t: "mũi tên trái bên trái với gạch dọc"] # 0x21fc (en: 'left right arrow with double vertical stroke') - "⇽": [t: "mũi tên mở bên trái"] # 0x21fd (en: 'leftwards open headed arrow') - "⇾": [t: "mũi tên mở bên phải"] # 0x21fe (en: 'rightwards open headed arrow') - "⇿": [t: "bên trái mũi tên mở đầu"] # 0x21ff (en: 'left right open headed arrow') @@ -822,8 +822,8 @@ - "−": [t: "dấu trừ"] # 0x2212 (en: 'minus') - "∓": [t: "trừ hoặc cộng"] # 0x2213 (en: 'minus or plus') - "∔": [t: "dot plus"] # 0x2214 - - "∕": [T: "chia cho"] # 0x2215 - - "∖": [t: "đặt điểm trừ"] # 0x2216 (en: 'set minus') + - "∕": [T: "chia"] # 0x2215 + - "∖": [t: "hiệu"] # 0x2216 (en: 'set minus') - "∗": [T: "nhân"] # 0x2217 - "∘": [t: "sáng tác với"] # 0x2218 (en: 'composed with') - "∙": [T: "nhân"] # 0x2219 @@ -932,16 +932,16 @@ - "≈": # 0x2248 - test: if: "$Verbosity!='Terse'" - then: [t: "gần như bằng"] # (en: 'is almost equal to') + then: [t: "xấp xỉ"] # (en: 'is almost equal to') - "≉": # 0x2249 - test: if: "$Verbosity!='Terse'" - then: [t: "là"] # (en: 'is') - - t: "không gần như bằng" # (en: 'not almost equal to') + then: [t: " "] # (en: 'is') + - t: "không gần bằng" # (en: 'not almost equal to') - "≊": # 0x224a - test: if: "$Verbosity!='Terse'" - then: [t: "gần như bằng hoặc bằng"] # (en: 'is almost equal or equal to') + then: [t: "xấp xỉ hoặc bằng"] # (en: 'is almost equal or equal to') - "≋": [t: "triple tilde"] # 0x224b - "≌": [t: "đều bằng"] # 0x224c (en: 'are all equal to') - "≍": # 0x224d @@ -1158,7 +1158,7 @@ - "⊕": [t: "bao quanh cộng"] # 0x2295 (en: 'circled plus') - "⊖": [t: "khoanh tròn trừ đi"] # 0x2296 (en: 'circled minus') - "⊗": [t: "thời gian khoanh tròn"] # 0x2297 (en: 'circled times') - - "⊘": [t: "cắt bao quanh chém"] # 0x2298 (en: 'circled slash') + - "⊘": [t: "chia"] # 0x2298 (en: 'circled slash') - "⊙": [t: "toán tử chấm được khoanh tròn"] # 0x2299 (en: 'circled dot operator') - "⊚": [t: "vòng tròn"] # 0x229a (en: 'circled ring') - "⊛": [t: "asterisk bao quanh"] # 0x229b (en: 'circled asterisk') @@ -1363,17 +1363,17 @@ - "⋯": [t: "chấm chấm chấm"] # 0x22ef (en: 'dot dot dot') - "⋰": [t: "elip chéo lên trên"] # 0x22f0 (en: 'upwards diagonal ellipsis') - "⋱": [t: "dấu chấm lửng chéo"] # 0x22f1 (en: 'diagonal ellipsis') - - "⋲": [t: "yếu tố của với đột quỵ ngang dài"] # 0x22f2 (en: 'element of with long horizontal stroke') - - "⋳": [t: "yếu tố của thanh dọc ở cuối đột quỵ ngang"] # 0x22f3 (en: 'element of with vertical bar at end of horizontal stroke') - - "⋴": [t: "yếu tố của thanh dọc ở cuối đột quỵ ngang"] # 0x22f4 (en: 'element of with vertical bar at end of horizontal stroke') + - "⋲": [t: "yếu tố của với gạch ngang dài"] # 0x22f2 (en: 'element of with long horizontal stroke') + - "⋳": [t: "yếu tố của thanh dọc ở cuối gạch ngang"] # 0x22f3 (en: 'element of with vertical bar at end of horizontal stroke') + - "⋴": [t: "yếu tố của thanh dọc ở cuối gạch ngang"] # 0x22f4 (en: 'element of with vertical bar at end of horizontal stroke') - "⋵": [t: "phần tử của với dấu chấm ở trên"] # 0x22f5 (en: 'element of with dot above') - "⋶": [t: "yếu tố của với overbar"] # 0x22f6 (en: 'element of with overbar') - "⋷": [t: "yếu tố của với overbar"] # 0x22f7 (en: 'element of with overbar') - "⋸": [t: "yếu tố của với atarbar"] # 0x22f8 (en: 'element of with underbar') - "⋹": [t: "yếu tố của hai nét ngang"] # 0x22f9 (en: 'element of with two horizontal strokes') - - "⋺": [t: "chứa với đột quỵ ngang dài"] # 0x22fa (en: 'contains with long horizontal stroke') - - "⋻": [t: "chứa với thanh dọc ở cuối đột quỵ ngang"] # 0x22fb (en: 'contains with vertical bar at end of horizontal stroke') - - "⋼": [t: "chứa với thanh dọc ở cuối đột quỵ ngang"] # 0x22fc (en: 'contains with vertical bar at end of horizontal stroke') + - "⋺": [t: "chứa với gạch ngang dài"] # 0x22fa (en: 'contains with long horizontal stroke') + - "⋻": [t: "chứa với thanh dọc ở cuối gạch ngang"] # 0x22fb (en: 'contains with vertical bar at end of horizontal stroke') + - "⋼": [t: "chứa với thanh dọc ở cuối gạch ngang"] # 0x22fc (en: 'contains with vertical bar at end of horizontal stroke') - "⋽": [t: "chứa với overbar"] # 0x22fd (en: 'contains with overbar') - "⋾": [t: "chứa với overbar"] # 0x22fe (en: 'contains with overbar') - "⋿": [t: "z ký hiệu thành viên túi"] # 0x22ff (en: 'z notation bag membership') @@ -1715,7 +1715,7 @@ - "⟇": [t: "hoặc với dấu chấm bên trong"] # 0x27c7 (en: 'or with dot inside') - "⟈": [t: "đảo ngược solidus preeding tập hợp con"] # 0x27c8 (en: 'reverse solidus preceeding subset') - "⟉": [t: "superset preceding solidus"] # 0x27c9 (en: 'superset preceeding solidus') - - "⟊": [t: "thanh dọc với đột quỵ ngang"] # 0x27ca (en: 'vertical bar with horizontal stroke') + - "⟊": [t: "thanh dọc với gạch ngang"] # 0x27ca (en: 'vertical bar with horizontal stroke') - "⟋": [t: "đường chéo tăng toán"] # 0x27cb (en: 'mathematical rising diagonal') - "⟌": [t: "phân chia dài"] # 0x27cc (en: 'long division') - "⟍": [t: "đường chéo giảm toán"] # 0x27cd (en: 'mathematical falling diagonal') @@ -1769,16 +1769,16 @@ - "⟽": [t: "mũi tên đôi dài trái từ thanh"] # 0x27fd (en: 'long leftwards double arrow from bar') - "⟾": [t: "mũi tên dài gấp đôi từ thanh"] # 0x27fe (en: 'long rightwards double arrow from bar') - "⟿": [t: "mũi tên squiggle dài phải"] # 0x27ff (en: 'long rightwards squiggle arrow') - - "⤀": [t: "phải hai mũi tên hai đầu với đột quỵ thẳng đứng"] # 0x2900 (en: 'rightwards two headed arrow with vertical stroke') - - "⤁": [t: "phải hai mũi tên hai đầu với đột quỵ thẳng đứng"] # 0x2901 (en: 'rightwards two headed arrow with double vertical stroke') - - "⤂": [t: "mũi tên đôi bên trái với đột quỵ dọc"] # 0x2902 (en: 'leftwards double arrow with vertical stroke') - - "⤃": [t: "mũi tên kép phải với đột quỵ dọc"] # 0x2903 (en: 'rightwards double arrow with vertical stroke') - - "⤄": [t: "mũi tên kép bên trái với đột quỵ dọc"] # 0x2904 (en: 'left right double arrow with vertical stroke') + - "⤀": [t: "phải hai mũi tên hai đầu với gạch thẳng đứng"] # 0x2900 (en: 'rightwards two headed arrow with vertical stroke') + - "⤁": [t: "phải hai mũi tên hai đầu với gạch thẳng đứng"] # 0x2901 (en: 'rightwards two headed arrow with double vertical stroke') + - "⤂": [t: "mũi tên đôi bên trái với gạch dọc"] # 0x2902 (en: 'leftwards double arrow with vertical stroke') + - "⤃": [t: "mũi tên kép phải với gạch dọc"] # 0x2903 (en: 'rightwards double arrow with vertical stroke') + - "⤄": [t: "mũi tên kép bên trái với gạch dọc"] # 0x2904 (en: 'left right double arrow with vertical stroke') - "⤅": [t: "phải hai mũi tên hai đầu từ thanh"] # 0x2905 (en: 'rightwards two headed arrow from bar') - "⤆": [t: "mũi tên đôi bên trái từ thanh"] # 0x2906 (en: 'leftwards double arrow from bar') - "⤇": [t: "mũi tên kép bên phải từ thanh"] # 0x2907 (en: 'rightwards double arrow from bar') - - "⤈": [t: "mũi tên xuống với đột quỵ ngang"] # 0x2908 (en: 'downwards arrow with horizontal stroke') - - "⤉": [t: "mũi tên hướng lên với đột quỵ ngang"] # 0x2909 (en: 'upwards arrow with horizontal stroke') + - "⤈": [t: "mũi tên xuống với gạch ngang"] # 0x2908 (en: 'downwards arrow with horizontal stroke') + - "⤉": [t: "mũi tên hướng lên với gạch ngang"] # 0x2909 (en: 'upwards arrow with horizontal stroke') - "⤊": [t: "mũi tên tăng ba"] # 0x290a (en: 'upwards triple arrow') - "⤋": [t: "mũi tên ba xuống xuống"] # 0x290b (en: 'downwards triple arrow') - "⤌": [t: "mũi tên double double bên trái"] # 0x290c (en: 'leftwards double dash arrow') @@ -1789,11 +1789,11 @@ - "⤑": [t: "mũi tên phải với thân chấm chấm"] # 0x2911 (en: 'rightwards arrow with dotted stem') - "⤒": [t: "mũi tên hướng lên đến thanh"] # 0x2912 (en: 'upwards arrow to bar') - "⤓": [t: "mũi tên xuống thanh"] # 0x2913 (en: 'downwards arrow to bar') - - "⤔": [t: "mũi tên phải với đuôi và đột quỵ dọc"] # 0x2914 (en: 'rightwards arrow with tail and vertical stroke') - - "⤕": [t: "mũi tên phải với đuôi và đột quỵ dọc"] # 0x2915 (en: 'rightwards arrow with tail and double vertical stroke') + - "⤔": [t: "mũi tên phải với đuôi và gạch dọc"] # 0x2914 (en: 'rightwards arrow with tail and vertical stroke') + - "⤕": [t: "mũi tên phải với đuôi và gạch dọc"] # 0x2915 (en: 'rightwards arrow with tail and double vertical stroke') - "⤖": [t: "phải hai mũi tên hai đầu với đuôi"] # 0x2916 (en: 'rightwards two headed arrow with tail') - - "⤗": [t: "phải hai mũi tên hai đầu với đuôi với đột quỵ thẳng đứng"] # 0x2917 (en: 'rightwards two headed arrow with tail with vertical stroke') - - "⤘": [t: "phải hai mũi tên hai đầu với đuôi với đột quỵ thẳng đứng"] # 0x2918 (en: 'rightwards two headed arrow with tail with double vertical stroke') + - "⤗": [t: "phải hai mũi tên hai đầu với đuôi với gạch thẳng đứng"] # 0x2917 (en: 'rightwards two headed arrow with tail with vertical stroke') + - "⤘": [t: "phải hai mũi tên hai đầu với đuôi với gạch thẳng đứng"] # 0x2918 (en: 'rightwards two headed arrow with tail with double vertical stroke') - "⤙": [t: "đuôi mũi tên trái"] # 0x2919 (en: 'leftwards arrow tail') - "⤚": [t: "đuôi mũi tên phải"] # 0x291a (en: 'rightwards arrow tail') - "⤛": [t: "đuôi hai mũi tên trái"] # 0x291b (en: 'leftwards double arrow tail') @@ -2014,9 +2014,9 @@ - "⧲": [t: "vòng tròn trắng lỗi"] # 0x29f2 (en: 'error-barred white circle') - "⧳": [t: "vòng tròn đen lỗi"] # 0x29f3 (en: 'error-barred black circle') - "⧴": [t: "sự triệt tiêu quy tắc"] # 0x29f4 (en: 'rule-delayed') - - "⧵": [t: "đảo ngược vận hành solidus"] # 0x29f5 (en: 'reverse solidus operator') + - "⧵": [t: "hiệu"] # 0x29f5 (en: 'reverse solidus operator') - "⧶": [t: "solidus với overbar"] # 0x29f6 (en: 'solidus with overbar') - - "⧷": [t: "đảo ngược solidus với đột quỵ ngang"] # 0x29f7 (en: 'reverse solidus with horizontal stroke') + - "⧷": [t: "đảo ngược solidus với gạch ngang"] # 0x29f7 (en: 'reverse solidus with horizontal stroke') - "⧸": [t: "solidus lớn"] # 0x29f8 (en: 'big solidus') - "⧹": [t: "solidus đảo ngược lớn"] # 0x29f9 (en: 'big reverse solidus') - "⧺": [t: "double plus"] # 0x29fa @@ -2039,7 +2039,7 @@ - "⨋": [t: "tổng hợp với tích phân"] # 0x2a0b (en: 'summation with integral') - "⨌": [t: "toán tử tích phân tứ giác"] # 0x2a0c (en: 'quadruple integral operator') - "⨍": [t: "tích hợp phần hữu hạn"] # 0x2a0d (en: 'finite part integral') - - "⨎": [t: "tích hợp với đột quỵ đôi"] # 0x2a0e (en: 'integral with double stroke') + - "⨎": [t: "tích hợp với gạch đôi"] # 0x2a0e (en: 'integral with double stroke') - "⨏": [t: "tích hợp trung bình với chém"] # 0x2a0f (en: 'integral average with slash') - "⨐": [t: "chức năng lưu thông"] # 0x2a10 (en: 'circulation function') - "⨑": [t: "tích hợp ngược chiều kim đồng hồ"] # 0x2a11 (en: 'anticlockwise integration') @@ -2129,7 +2129,7 @@ - "⩥": [t: "z ký hiệu phạm vi chống trọng yếu"] # 0x2a65 (en: 'z notation range antirestriction') - "⩦": [t: "bằng dấu hiệu với dấu chấm dưới đây"] # 0x2a66 (en: 'equals sign with dot below') - "⩧": [t: "giống hệt với dấu chấm trên"] # 0x2a67 (en: 'identical with dot above') - - "⩨": [t: "thanh ba ngang với đột quỵ dọc"] # 0x2a68 (en: 'triple horizontal bar with double vertical stroke') + - "⩨": [t: "thanh ba ngang với gạch dọc"] # 0x2a68 (en: 'triple horizontal bar with double vertical stroke') - "⩩": [t: "thanh ba ngang với cú đánh thẳng đứng ba"] # 0x2a69 (en: 'triple horizontal bar with triple vertical stroke') - "⩪": [t: "toán tử tilde với dấu chấm ở trên"] # 0x2a6a (en: 'tilde operator with dot above') - "⩫": [t: "nhà điều hành tilde với các chấm tăng"] # 0x2a6b (en: 'tilde operator with rising dots') @@ -2262,15 +2262,15 @@ - "⫪": [t: "nhân đôi tack xuống"] # 0x2aea (en: 'double down tack') - "⫫": [t: "nhân đôi tack"] # 0x2aeb (en: 'double up tack') - "⫬": [t: "cú đánh đôi không ký"] # 0x2aec (en: 'double stroke not sign') - - "⫭": [t: "đảo ngược đột quỵ đôi không ký"] # 0x2aed (en: 'reversed double stroke not sign') + - "⫭": [t: "đảo ngược gạch đôi không ký"] # 0x2aed (en: 'reversed double stroke not sign') - "⫮": [t: "không phân chia với sự phủ định đảo ngược"] # 0x2aee (en: 'does not divide with reversed negation slash') - "⫯": [t: "đường thẳng đứng với vòng tròn ở trên"] # 0x2aef (en: 'vertical line with circle above') - "⫰": [t: "đường thẳng đứng với vòng tròn dưới đây"] # 0x2af0 (en: 'vertical line with circle below') - "⫱": [t: "xuống tack với vòng tròn bên dưới"] # 0x2af1 (en: 'down tack with circle below') - - "⫲": [t: "song song với đột quỵ ngang"] # 0x2af2 (en: 'parallel with horizontal stroke') + - "⫲": [t: "song song với gạch ngang"] # 0x2af2 (en: 'parallel with horizontal stroke') - "⫳": [t: "song song với toán tử tilde"] # 0x2af3 (en: 'parallel with tilde operator') - "⫴": [t: "triple dọc quan hệ nhị phân thanh dọc"] # 0x2af4 (en: 'triple vertical bar binary relation') - - "⫵": [t: "thanh ba dọc với đột quỵ ngang"] # 0x2af5 (en: 'triple vertical bar with horizontal stroke') + - "⫵": [t: "thanh ba dọc với gạch ngang"] # 0x2af5 (en: 'triple vertical bar with horizontal stroke') - "⫶": [t: "triple colon toán tử"] # 0x2af6 (en: 'triple colon operator') - "⫷": [t: "triple lồng ít hơn"] # 0x2af7 (en: 'triple nested less than') - "⫸": [t: "triple lồng nhau lớn hơn"] # 0x2af8 (en: 'triple nested greater than') @@ -2333,16 +2333,16 @@ - "⬱": [t: "ba mũi tên trái"] # 0x2b31 (en: 'three leftwards arrows') - "⬲": [t: "mũi tên trái với circled plus"] # 0x2b32 (en: 'left arrow with circled plus') - "⬳": [t: "mũi tên vỗ tay dài sang trái"] # 0x2b33 (en: 'long leftwards squiggle arrow') - - "⬴": [t: "bên trái hai mũi tên đầu với đột quỵ thẳng đứng"] # 0x2b34 (en: 'leftwards two headed arrow with vertical stroke') - - "⬵": [t: "lettwards hai mũi tên đầu với đột quỵ dọc"] # 0x2b35 (en: 'lettwards two headed arrow with double vertical stroke') + - "⬴": [t: "bên trái hai mũi tên đầu với gạch thẳng đứng"] # 0x2b34 (en: 'leftwards two headed arrow with vertical stroke') + - "⬵": [t: "lettwards hai mũi tên đầu với gạch dọc"] # 0x2b35 (en: 'lettwards two headed arrow with double vertical stroke') - "⬶": [t: "bên trái hai mũi tên đầu từ thanh"] # 0x2b36 (en: 'leftwards two headed arrow from bar') - "⬷": [t: "bên trái hai mũi tên ba đầu"] # 0x2b37 (en: 'leftwards two headed triple dash arrow') - "⬸": [t: "mũi tên trái với thân chấm chấm"] # 0x2b38 (en: 'leftwards arrow with dotted stem') - - "⬹": [t: "mũi tên trái với đuôi với đột quỵ dọc"] # 0x2b39 (en: 'leftwards arrow with tail with vertical stroke') - - "⬺": [t: "mũi tên trái với đuôi với đột quỵ dọc"] # 0x2b3a (en: 'leftwards arrow with tail with double vertical stroke') + - "⬹": [t: "mũi tên trái với đuôi với gạch dọc"] # 0x2b39 (en: 'leftwards arrow with tail with vertical stroke') + - "⬺": [t: "mũi tên trái với đuôi với gạch dọc"] # 0x2b3a (en: 'leftwards arrow with tail with double vertical stroke') - "⬻": [t: "bên trái hai mũi tên đầu với đuôi"] # 0x2b3b (en: 'leftwards two headed arrow with tail') - - "⬼": [t: "bên trái hai mũi tên đầu với đuôi với đột quỵ thẳng đứng"] # 0x2b3c (en: 'leftwards two headed arrow with tail with vertical stroke') - - "⬽": [t: "bên trái hai mũi tên đầu với đuôi với đột quỵ thẳng đứng"] # 0x2b3d (en: 'leftwards two headed arrow with tail with double vertical stroke') + - "⬼": [t: "bên trái hai mũi tên đầu với đuôi với gạch thẳng đứng"] # 0x2b3c (en: 'leftwards two headed arrow with tail with vertical stroke') + - "⬽": [t: "bên trái hai mũi tên đầu với đuôi với gạch thẳng đứng"] # 0x2b3d (en: 'leftwards two headed arrow with tail with double vertical stroke') - "⬾": [t: "mũi tên trái qua x"] # 0x2b3e (en: 'leftwards arrow through x') - "⬿": [t: "mũi tên sóng hướng trực tiếp bên trái"] # 0x2b3f (en: 'wave arrow pointing directly left') - "⭀": [t: "bằng dấu hiệu phía trên mũi tên trái"] # 0x2b40 (en: 'equals sign above leftwards arrow') @@ -2870,9 +2870,9 @@ - "": [t: "điểm nhấn mũi tên lớn bên trái"] # 0xeb0c (en: 'large leftwards arrow accent') - "": [t: "đầu mũi tên trái"] # 0xeb0d (en: 'leftwards arrowhead') - "": [t: "đầu mũi tên phải"] # 0xeb0e (en: 'rightwards arrowhead') - - "": [t: "mũi tên lớn bên trái với đột quỵ"] # 0xeb0f (en: 'large left right arrow with stroke') + - "": [t: "mũi tên lớn bên trái với gạch"] # 0xeb0f (en: 'large left right arrow with stroke') - "": [t: "bộ mở rộng mũi tên kép ngang"] # 0xeb10 (en: 'horizontal double arrow extender') - - "": [t: "mũi tên đôi bên trái lớn bên trái với đột quỵ"] # 0xeb11 (en: 'large left right double arrow with stroke') + - "": [t: "mũi tên đôi bên trái lớn bên trái với gạch"] # 0xeb11 (en: 'large left right double arrow with stroke') - "": [t: "mũi tên xuống bên trái của mũi tên hướng lên"] # 0xeb12 (en: 'downwards arrow leftwards of upwards arrow') - "⇵": [t: "mũi tên xuống bên trái của mũi tên hướng lên"] # 0x21f5 (en: 'downwards arrow leftwards of upwards arrow') - "": [t: "mũi tên trái với góc xuống"] # 0xeb13 (en: 'leftwards arrow with corner downwards') @@ -2882,7 +2882,7 @@ - "⤽": [t: "mũi tên bán nguyệt trên cùng theo chiều kim đồng hồ với plus"] # 0x293d (en: 'anticlockwise top semicircle arrow with plus') - "": [t: "mũi tên bán nguyệt trên cùng theo chiều kim đồng hồ với điểm trừ"] # 0xeb17 (en: 'clockwise top semicircle arrow with minus') - "⤼": [t: "mũi tên bán nguyệt trên cùng theo chiều kim đồng hồ với điểm trừ"] # 0x293c (en: 'clockwise top semicircle arrow with minus') - - "": [t: "mũi tên bên phải với đuôi với đột quỵ"] # 0xeb18 (en: 'rightwards arrow with tail with stroke') + - "": [t: "mũi tên bên phải với đuôi với gạch"] # 0xeb18 (en: 'rightwards arrow with tail with stroke') - "": [t: "harpoon phải xuống"] # 0xeb19 (en: 'right harpoon down') - "": [t: "rời harpoon xuống"] # 0xeb1a (en: 'left harpoon down') - "": [t: "bên trái harpoon xuống"] # 0xeb1b (en: 'left right harpoon down') @@ -3316,7 +3316,7 @@ else: [x: "$SpeechOverrides_CapitalLetters"] - pitch: value: "$CapitalLetters_Pitch" - replace: [t: "o với đột quỵ"] # (en: 'o with stroke') + replace: [t: "o với gạch"] # (en: 'o with stroke') # MathType only has a few of the cap Greek letters in PUA - "": # 0xf201 - 0xf209 diff --git a/c-example/Rules/Languages/vi/unicode.yaml b/c-example/Rules/Languages/vi/unicode.yaml index add6adf..459449a 100644 --- a/c-example/Rules/Languages/vi/unicode.yaml +++ b/c-example/Rules/Languages/vi/unicode.yaml @@ -75,7 +75,7 @@ if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' then: [T: mở ngoặc vuông] else: [T: ngoặc vuông trái] - - "\\": [T: chéo ngược] # 0x5c + - "\\": [T: hiệu] # 0x5c - "]": # 0x5d - test: if: $SpeechStyle = 'ClearSpeak' or $SpeechStyle = 'SimpleSpeak' @@ -162,31 +162,31 @@ - "β": [T: bê ta] # 0x3b2 - "γ": [T: gam ma] # 0x3b3 - "δ": [T: đen ta] # 0x3b4 - - "ε": [T: ép xi lon] # 0x3b5 + - "ε": [T: ép si lon] # 0x3b5 - "ζ": [T: dê ta] # 0x3b6 - "η": [T: ê ta] # 0x3b7 - - "θ": [T: thê ta] # 0x3b8 + - "θ": [T: tê ta] # 0x3b8 - "ι": [T: i ô ta] # 0x3b9 - - "κ": [T: ca ba] # 0x3ba + - "κ": [T: k pa] # 0x3ba - "λ": [T: lam đa] # 0x3bb - "μ": [T: mu] # 0x3bc - "ν": [T: nu] # 0x3bd - - "ξ": [T: giai] # 0x3be - - "ο": [T: o mi ron] # 0x3bf - - "π": [T: bi] # 0x3c0 + - "ξ": [T: xi] # 0x3be + - "ο": [T: o mi rong] # 0x3bf + - "π": [T: pi] # 0x3c0 - "ρ": [T: rô] # 0x3c1 - "ς": [T: xích ma cuối] # 0x3c2 - "σ": [T: xích ma] # 0x3c3 - - "τ": [T: tau] # 0x3c4 - - "υ": [T: ấp xi lon] # 0x3c5 + - "τ": [T: tô] # 0x3c4 + - "υ": [T: ấp si lon] # 0x3c5 - "φ": [T: phi] # 0x3c6 - "χ": [T: cai] # 0x3c7 - - "ψ": [T: psi] # 0x3c8 + - "ψ": [T: bờ si] # 0x3c8 - "ω": [T: ô mê ga] # 0x3c9 - "ϕ": [T: phi] # 0x3d5 - - "ϖ": [T: bi] # 0x3d6 - - "ϵ": [T: ép xi lon] # 0x3f5 - - "϶": [T: ép xi lon đảo ngược] # 0x3f6 + - "ϖ": [T: pi] # 0x3d6 + - "ϵ": [T: ép si lon] # 0x3f5 + - "϶": [T: ép si lon đảo ngược] # 0x3f6 - "А": # 0x410 - T: a - test: @@ -287,10 +287,10 @@ - "→": # 0x2192 - test: if: "ancestor::*[2][self::m:limit]" - then: [T: "tiếp cận"] + then: [T: "tiến đến"] else: [T: "mũi tên phải"] - "↓": [T: mũi tên xuống] # 0x2193 - - "⇒": [T: mũi tên đôi hướng phải] # 0x21d2 + - "⇒": [T: suy ra] # 0x21d2 - "∀": [T: với mọi] # 0x2200 - "∂": # 0x2202 - test: @@ -327,17 +327,17 @@ - else: [T: thuộc về] # $ClearSpeak_SetMemberSymbol = 'Belongs' else_test: - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: là một phần tử của] + then: [T: thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: là một phần tử của] + then: [T: thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'In' then: [T: thuộc] - - else: [T: thuộc về] # $ClearSpeak_SetMemberSymbol = 'Belongs' + - else: [T: thuộc] # $ClearSpeak_SetMemberSymbol = 'Belongs' - "∉": # 0x2209 # rule is identical to 0x2208 - test: if: "$SpeechStyle != 'ClearSpeak'" - then: [T: không là phần tử thuộc] + then: [T: không thuộc] # Several options for speaking elements in ClearSpeak -- they split between being inside a set or not and then the option else_test: if: "../../self::m:set or ../../../self::m:set" # inside a set @@ -345,22 +345,22 @@ - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' then: [T: không thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: không là phần tử thuộc] + then: [T: không thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: không là phần tử thuộc] + then: [T: không thuộc] - else: [T: không thuộc về] # $ClearSpeak_SetMemberSymbol = 'Belongs' else_test: - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: không là phần tử thuộc] + then: [T: không thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: không là phần tử thuộc] + then: [T: không thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'In' then: [T: không thuộc] - - else: [T: không thuộc về] # $ClearSpeak_SetMemberSymbol = 'Belongs' + - else: [T: không thuộc] # $ClearSpeak_SetMemberSymbol = 'Belongs' - "∊": # 0x220a - test: if: "$SpeechStyle != 'ClearSpeak'" - then: [T: là phần tử của] + then: [T: thuộc] # Several options for speaking elements in ClearSpeak -- they split between being inside a set or not and then the option else_test: if: "../../self::m:set or ../../../self::m:set" # inside a set @@ -368,18 +368,18 @@ - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'In' then: [T: thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: phần tử của] + then: [T: thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: phần tử của] - - else: [T: thuộc về] # $ClearSpeak_SetMemberSymbol = 'Belongs' + then: [T: thuộc] + - else: [T: thuộc] # $ClearSpeak_SetMemberSymbol = 'Belongs' else_test: - if: $ClearSpeak_SetMemberSymbol = 'Auto' or $ClearSpeak_SetMemberSymbol = 'Member' - then: [T: là một phần tử của] + then: [T: thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'Element' - then: [T: là một phần tử của] + then: [T: thuộc] - else_if: $ClearSpeak_SetMemberSymbol = 'In' then: [T: thuộc] - - else: [T: thuộc về] # $ClearSpeak_SetMemberSymbol = 'Belongs' + - else: [T: thuộc] # $ClearSpeak_SetMemberSymbol = 'Belongs' - "∏": [T: pi] # 0x220f - "∐": [T: pi ngược] # 0x2210 - "∑": [T: tổng] # 0x2211 @@ -459,26 +459,26 @@ - "⊂": # 0x2282 - test: if: "$Verbosity!='Terse'" - then: {T: là tập hợp con của} + then: {T: chứa trong} - "⊃": # 0x2283 - test: if: "$Verbosity!='Terse'" - then: {T: là tập cha của} + then: {T: chứa} - "⊄": # 0x2284 # - test: # if: "$Verbosity!='Terse'" # then: [T: is] - - T: không là tập con của + - T: không chứa trong - "⊅": # 0x2285 # - test: # if: "$Verbosity!='Terse'" # then: [T: is] - - T: không là tập cha của + - T: không chứa - "⊆": # 0x2286 - test: if: "$Verbosity!='Terse'" - then: {T: là tập hợp con của} + then: {T: chứa trong} - "⊇": # 0x2287 - test: if: "$Verbosity!='Terse'" - then: {T: là tập hợp cha của} + then: {T: chứa} diff --git a/c-example/Rules/definitions.yaml b/c-example/Rules/definitions.yaml index 8b36ae3..1f64885 100644 --- a/c-example/Rules/definitions.yaml +++ b/c-example/Rules/definitions.yaml @@ -219,34 +219,5 @@ NemethCurrencyAfterSymbols: [ "$", "¢", "€", "£", "₡", "₤", "₨", "₩", "₪", "₱", "₹", "₺", "₿", # 42(iv) most are dubious as applying after... "%", "′", "″", "‴", "⁗" - ], - - CMUCharsWithDotsOnLeft: [ - # The caps indicator has no dots in left half, so cap letters are not included - "a", "b", "c", "d", "e", "f","g", "h", "i", "j", "k", "i", "j", "k", "l", - "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", - "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", - "=", "<", "≤", ">", "≦", "≪", "≫", "×", "÷", "±", - "(", ")", "[", "]", "〈", "〉", "!", "*", - ";", "?", "¿", "_", "—", "²", "³", - "⩽", "⩾", "©", "®", - "\"", "'", "“", "”", "‘", "’", "«", "»", - ",", ".", ":", "-", - ], - - # These get a '.' after them (an abbreviation). From 7.2, 7.5.2, 7.5.3 - # arcXXX should also get a "." after the "arc" - CMUFunctionNames: [ - "lim", - "Antilog", "antilog", "Alog", "alog", "Colog", "colog", "Ln", "Aln", "aln", - "cos", "cosec", "cosech", "cosh", "cot", "cotan", "cotanh", "coth", "csc", "csch", - "sec", "sech", "sin", "sinh", "tan", "tang", "tanh", "tg", "ln", "log", "lg", - "sen", "cotg", "tn", - "arccos", "arccosec", "arccosech", "arccosh", - "arccot", "arccotan", "arccotanh", "arccoth", - "arccsc", "arccsch", "arcsec", "arcsech", "arcsin", "arcsinh", - "arctan", "arctang", "arctanh", - "arcsen", "arctn", "arccotg", "asin", "acos", "atan", ] - ] diff --git a/c-example/Rules/prefs.yaml b/c-example/Rules/prefs.yaml index 2a647b3..e95c13e 100644 --- a/c-example/Rules/prefs.yaml +++ b/c-example/Rules/prefs.yaml @@ -68,7 +68,8 @@ GreekVariant: "⠨" # default to Greek Vietnam: - # The guideline is being revised -- current guidance is to follow UEB + UseDropNumbers: false # drop digits down a row in simple numeric fractions + # The guideline is being revised -- current guidance is to follow UEB for alternative scripts # UEB Guide to Technical Material (https://iceb.org/Guidelines_for_Technical_Material_2008-10.pdf) # says to normally treat Fraktur and DoubleStruck as Script # Here we provide an option to specify a transcriber-defined typeform prefix indicator instead diff --git a/c-example/mathcat.h b/c-example/mathcat.h index 9d911f0..a4ddc48 100644 --- a/c-example/mathcat.h +++ b/c-example/mathcat.h @@ -90,4 +90,7 @@ const char *GetNavigationMathMLId(); /// Return the MathML associated with the current (navigation) node. const char *GetNavigationMathML(); +/// Return the MathML associated with the current (navigation) node. +int32_t GetNavigationMathMLOffset(); + } // extern "C" diff --git a/c-example/test.cpp b/c-example/test.cpp index 09cbb7d..77887ba 100644 --- a/c-example/test.cpp +++ b/c-example/test.cpp @@ -101,6 +101,8 @@ int main(int argc, char *argv[]) { singleTest(mathml, true); // shows results and removes initialization times from the loop + printf("Nav Offset=%d", GetNavigationMathMLIdOffset()); + if (argc > 1) { // argv[0] is command printf("Looping %d times...\n", atoi(argv[1])); testForMemoryLeak(mathml, atoi(argv[1])-1); // already did once